PDA

Tam Sürümünü Görmek İçin : asal sayılar


tharivol
14/04/2007, 18:25
#include<stdio.h>
#include<iostream.h>
#include<conio.h>
int asalmi(int *a)
{
int i;
char asal='E';
for(i=2; i<*a; i++)
{
if(((*a)%i)==0)
{
asal='H';
break;
}
}
if((*a)<2)return 0;
if(asal=='H')return 0;
if((*a)==2)return 1;
if(asal=='E')return 1;
}
void asal_ara(int *a,int *b)
{
int i;
for(i=(*a); i<=(*b); i++)
{
if(asalmi(&i)==1){cout<<i<<"\t";}
else continue;
}
}
main()
{
int a,b;
cout<<"ALT SINIR:";
cin>>a;
cout<<"UST SINIR:";
cin>>b;
asal_ara(&a,&b);
getch();
}


c++ da yazılmış bu algoritmayı matlaba çevirmeyi yapamıyoruuuum. lütfen yardım edin odev yarına... matlapda bu şekilde çalışcak bi program yapmam lazım verilen değerler arasındaki asal sayıları söyleyen matlap algorıtması c++ da bu algorıtma oluyor ama bir türlü matlapda yapamıyorum lütfen yardım çaresiz durumdayım vallaa...


civil
14/04/2007, 19:23
1.clc;
2.clear all;k=0;
3.x1=input('1. sayıyı giriniz=');
4.x2=input('2. sayıyı giriniz=');
5.for i=x1:x2
6.c=0;
7.for j=2:i
8.if (i~=j)&mod(i,j)==0
9.c=1;
10.end
11. if c==1
12.k=k+1;
13.A(k)=i;
14.end
15.end
16.end
17.A

Kardeş bu programın matlabda girilen iki sayı arasındaki asal sayıları bulabiliyor olması lazım ama c++ bilmediğim için yukarıdakinin tam karşılığımı bilmiyorum....
Kodları denemedim metin belgesinde yazdım bazı hatalar oluşabilir yazım hataları dır büyük ihtimal mantığında hata yok kolay gelsin....

tharivol
14/04/2007, 19:37
program calıstıda sorun 20 ,16 fln asal dıo yane asal sayıları vermiyooo... bu arada ilgin için tesekkürler

tharivol
14/04/2007, 19:44
alt function felan kullanlarak yapsak daha mantıklı olur gıbı ama yazamıyorum :(

civil
14/04/2007, 19:50
ya pardon karıştı yapılan hata şu 11. satırda if c==0 de biz asal olmayan sayıları bulmuşuz bide o şekilde dene ha bunu fonksiyonmu yapim diyorsun tam hatırlamıyom notlarıma bakmam lazım fakat temel i bu...
bide değiştirip denesene olması lazım daha yeni bir arkadaşa yaptım aynı ödevi onda çalıştı...:super:

civil
14/04/2007, 19:56
1.clc;
2.clear all;k=0;
3.x1=input('1. sayıyı giriniz=');
4.x2=input('2. sayıyı giriniz=');
5.for i=x1:x2
6.c=0;
7.for j=2:i
8.if (i~=j)&mod(i,j)==0
9.c=1;
10.end
11.end
12. if c==0
13.k=k+1;
14.A(k)=i;
15.end
16.end
17.A

Kardeş bunun çalışıyor olması lazım yukarıdaki çözümümdede eksik olcaktır bu tam çözüm sanırım...

civil
14/04/2007, 19:56
Birde kullanıcının bir şeyleri bildiğini kabul ediyoruz yukarıdaki programda 2 nin en küçük asal sayı olduğu gibi....

tharivol
14/04/2007, 20:04
yaf saolasın senden bısıy ıstıcem civil sende alt functionlu algorıtma var mı matlap ıcın varsa rica edebilirmiyim ornek olarak kullanmak için

tharivol
14/04/2007, 20:08
Error: Incomplete or misformed expression or statement. olmadı:(

civil
14/04/2007, 20:28
Girdiğin sayılar arsında asal sayı yoksa böyle bir hata çıkmış olabilir yada formda yazım
hatası var hangi satırda hata gösteriyor dediğim gibi şu an matlab yüklü bir bilgisayarla çalışmıyorum biraz incelersen hataları bulabilirsin çünkü temel mantığı bu şekilde...

civil
14/04/2007, 20:34
hafta içinde ancak bulurum örnek malum vizeler :)
Hafta içerisinde eklerim...

acehreli
15/04/2007, 00:30
c++ da yazılmış bu algoritmayı matlaba çevirmeyi yapamıyoruuuum. lütfen yardım edin odev yarına...

Ogretmeninle konustun mu? Sana bu odevi yapacak kadar bilgi vermeden senden bu odevi yapmani beklememeleri gerekir.

Odev de cok sacma: C++'ta yazilmis algoritmayi matlab'a cevirmek... Daha neler...

Ali

furkans
15/04/2007, 13:58
ödevleri anlamaya çalışmamak lasım onları olduğu gibi kabul etmek lazım :d adı üstünde hoca bu ne zmn ne isteyeceği belli olmaz :d

xlegend
16/04/2007, 00:04
asal sayı bulma problemi bir çok üniversitenin bilgisayar mühendisliği böümünde programlama dersi birinci arasınavnda soru olarak soruluyor.
öğrenci arkadaşlarımızın bu konuya ilgili olması ve forumu takip etmesi bu açıdan önemli

civil
16/04/2007, 22:27
Asal sayı problemi bize sorulmuştu ders matlab dı Akıl pyunları nı okudu iseniz orada John Nash in bigisayar kullanmayı öğrenmesinin ve onu heyecanlandıran konunun iki sayı arasında asal sayıları bulan programlar yazılabilmesi...

civil
06/05/2007, 15:42
Ayrıca son yazdığım kodlar doğru matlab de çalıştılar hata çıkarmamaları gerek...
Tabi kod satırı numaralarını da kopyalamadı isen...

yildirim
06/05/2007, 16:29
program asal;
var
a,b,c,d,e,i:integer;
begin
e:=0;
writeln('kontrol etmek istediginiz sayiyi giriniz.');
readln(a);
b:=sqrt(a);
for i:=2 to b do;
begin
c:= a div i;
d:= a*i;
if c=d then e:=e+1;
end;
if e=0 then writeln('sayi asal')
else writeln('sayi asal degil');
end.



Pascal da yazdım ama gayet anlaşılabilir ve çok kolay bi algoritma asal sayı bulmak için :)

Sayıyı kareköküne kadar olan sayılara bölüp tam olarak bölünebilip bölünemediğini kontrol ediyorsunuz. Tam olarak bölünebildiği sayı varsa asal değildir.

civil
06/05/2007, 20:07
Benim kinin mantığıda aynı ama matlab da ...