... yanlislikla oldu herlocksholmes tarafından 16/Ara/16 03:21 tarihinde düzenlenmiştir

@herlockholmes hocam elinize sağlık ve @alli hocam çok sağolun anladım sonunda.. Argo tabirle " çaktım mevzuyu". "introduction to computer science" diye bir ders alıyorum netten. Derleyici olarak cs50'yi verdiler. çalışmalarınızı cloud storing yapmak için işe yarar. İsteyen olursa: cs50.io burada kendisi. Ama girebilmek için bir şekilde Harvard cs50 ğrencisi olmanız veya da Edx'ten kayıt yaptırmanız gerekiyor. balbazar tarafından 16/Ara/16 03:49 tarihinde düzenlenmiştir

İşlerimden ve okuduğum blümden vakit buldukça C ğrenmeye çabalıyorum kendi imkanlarımca. Soru soracağım kodlar ve output aşağıda. // Program to generate a table of prime numbers #include <stdio. h> int main { int p, d; _Bool isPrime; for ( p = 2; p <= 50; ++p ) printf ; return 0; Output ise bu şekildedir. Greceğiniz üzere asal sayıları yazdırmış 50'ye kadar olan : 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 Benim ise 2 adet anlamadığım yer var. Birincisi asal sayıları yazdırma mantığını anlamadım. Benim anladığım şyle olması gerekiyor: iç for dngüsündeki "d" değişkeni "p-1" şeklinde ilerlediğinden dolayı: p=3, d= 2, p%d = 1p=4, d= 3, p%d =1p=5, d=4, p%d = 1.. p= 50, d = 49, p%d = 1şeklinde gitmesi gerekiyor. Ancak bu durumda kalan sayı sürekli 1 olacağından p=2 den 50 ye kadar bütün geçtiği sayıları asal diye yazdırması gerekiyor . Bu benim anladığımdı. Ancak program gayet doğru şekilde asal sayıları yazdırıyor. Ben bir yeri yanlış anlıyorum veya da bir şeyi kaçırıyorum lütfen biri açıklayabilir mi? ikinci soruma gelirsek: Şunu farkettimki içteki for dngüsüne küme parantezi yani koyduğumuzda output garip bir şekil alıyor . Bunun sebebini de aynı şekilde Bilale anlatır gibi anlatabilir misiniz? 3 5 5 5 7 7 7 7 7 9 11 11 11 11 11 11 11 11 11 13 13 13 13 13 13 13 13 13 13 13 15 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 21 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 25 25 25 27 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 33 35 35 35 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 39 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 45 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 49 49 49 49 49 balbazar tarafından 16/Ara/16 03:12 tarihinde düzenlenmiştir

for dongusunun govdesi kod bloguna alinmadigi icin, kendisinden sonraki ilk ifadenin govdesinde oldugunu varsayacak; yani icteki for icerisindeki ilk if ifadesi icteki for dongusune ait, digeri ise distaki for dongusune ait. yani kod aslinda boyle: for ( p = 2; p <= 50; ++p ) { isPrime = 1; for ( d = 2; d < p; ++d ) if ( isPrime!= 0 ) printf ;} yanlis yeri kod blogu icerisine aliyorsun. program 2 den baslayarak 50 sayisina kadar olan sayilarin, 2 den baslayarak kendisine kadar olan sayilar arasinda TAM boleni olup olmadigina bakiyor. bunu yaparken de ikinci for dongusune girmeden once her sayinin asal oldugunu varsayarak basliyor. eger TAM boleni varsa asal olma durumu ortadan kaldiriliyor. yani; p=2 iken, d=2 den 2ye, kosulu karsilamadigi icin for dongusu calismiyor, ikinci if ifadesi sayiyi yazdiriyor p=3 oluyor, d=2 den 3e kadar donmek uzere ayarlaniyor, 3 sayisi 2 ye tam bolunuyor mu bakiyor, bolunmedigi icin geciyor, d=3 oluyor dongu bitiyor bu sekilde devam ediyor... herlocksholmes tarafından 16/Ara/16 03:23 tarihinde düzenlenmiştir

cevap yukarda verilmiş. benim sana tavsiyem eğer kodu derlemek için visual studio yada eclipse kullanıyorsan adım adım debug seçeneğini kullanman. bylelikle değişkenlerin nasıl değiştiğini, dngünün nasıl çalıştığını daha iyi gzlemleyebilirsin. https://i. imgur.com/lCgZ0V0. jpg