arkdaşlar dev c ile derledğimde abuk subuk bi hara veriyo berak not loob felan diyo anlayamadım:)
tam inceleyecek vakit bulamadım şöyle bir baktımda else ler yerine if kullanmayı dermisin bi.
quote:
Orijinalden alıntı: atletico
tam inceleyecek vakit bulamadım şöyle bir baktımda else ler yerine if kullanmayı dermisin bi.
olmuyor:(
//sayı tahmin oyunu #include<stdio.h> #include<time.h> #include<stdlib.h> #include<conio.h>
int main() { int tutulansayi=0; int tahmin=0; int saniyeler=0; int kactahmin=0; int puan=50; saniyeler=time(NULL); srand(saniyeler); tutulansayi=(rand()%100)+1; printf("Tahminlere basliyoruz\n1-100 arasi deger tuttum bakalim bilebilecenmi?\n"); while(tahmin!=-1) {
Sorun goto Detayı biraz karmaşık ama önemi yok. Zira asıl sorun o goto'nun kendisi. Goto'yu sözlüklerinizden, zihninizden filan çıkarıp, duyarsanız "Nedir o, turşusu mu oluyor?" sormadıkça bu iş yürümez.
Derleyici az bile şarlamış, ben olsam bilmem ne yapardım artık
Biz bu işi ilk öğrenirken, bir BASIC vardı, başka bir şey yoktu. Tamam bir şeyler vardı, 8086 PC'ler için, ama disketini filan nerden bulacaksın ki, COBOL'muş, C'ymiş vs. Hatta 8086 CPU, 64K RAM makineyi bulmak bile bir şeydi zaten. Ve Commodore'lar, ZX-81'ler vs. için defacto dil, assembler ve BASIC'ti. 8086'larda da elbette, meşhur GW-BASIC.. Hatta IBM'in INT 18H BASIC'i..
Ve o dillerde JMP ila GOTO bizim işimizi harika bir şekilde görürdü. Zaten başka bir şey yok ki, nerde while filan? Bu yüzden, itiraf edeyim, yapısal programlamaya intibakımız zor oldu. Hatta sırf bu yüzden PASCAL'ı hiç sevemedim.
Siz siz olun, goto'yu unutun. Ve ardından goto'yu bir daha unutun.
Sorun goto Detayı biraz karmaşık ama önemi yok. Zira asıl sorun o goto'nun kendisi. Goto'yu sözlüklerinizden, zihninizden filan çıkarıp, duyarsanız "Nedir o, turşusu mu oluyor?" sormadıkça bu iş yürümez.
Derleyici az bile şarlamış, ben olsam bilmem ne yapardım artık
Biz bu işi ilk öğrenirken, bir BASIC vardı, başka bir şey yoktu. Tamam bir şeyler vardı, 8086 PC'ler için, ama disketini filan nerden bulacaksın ki, COBOL'muş, C'ymiş vs. Hatta 8086 CPU, 64K RAM makineyi bulmak bile bir şeydi zaten. Ve Commodore'lar, ZX-81'ler vs. için defacto dil, assembler ve BASIC'ti. 8086'larda da elbette, meşhur GW-BASIC.. Hatta IBM'in INT 18H BASIC'i..
Ve o dillerde JMP ila GOTO bizim işimizi harika bir şekilde görürdü. Zaten başka bir şey yok ki, nerde while filan? Bu yüzden, itiraf edeyim, yapısal programlamaya intibakımız zor oldu. Hatta sırf bu yüzden PASCAL'ı hiç sevemedim.
Siz siz olun, goto'yu unutun. Ve ardından goto'yu bir daha unutun.
2. mesajımda goto suz yaptım bi bakarmısn:)..mesajı okursan bişi yazdım bi zahmet ona göre cevap veririmisn teşekkülrer ilgilendiğin içn
Gördüğüm kadarıyla, çalışmasını engelleyecek bir hata yok.
Fakat çalışıyor olmak, iyi olmak demek değil maalesef.
Mesela:
if (tahmin == -1) break;
Eğer hiç tahmin yapmadan çıkarsa, 50 puan alacaktır sanıyorum oyuncu. Skorboarda yazılmak için iyi bir yöntem
Ama asıl sorun, kullanıcın bundan haberdar olmaması. Paskalya yumurtası koymak gibi bir niyetiniz var olabilir, bilemiyorum, ama bu biraz basit kalır.
Bir diğer mesele ise, olmayacak işe bakalım. Eğer bu koda aynı rakamı belli defa girersek, kod acayip enteresan bir hale gelmezmi? Şöyle ki, her defasında -5, -5 derken, kactahmin değeri, -MAXINT olacak, ardından 0 ve "0 tahminde bildin" gibi abes bir durum ortaya çıkacak. Programcı, bu gibi durumları gören ve göz önüne alan kimsedir.
Daha başka bir mesele ise şu. O main() fonksiyonu için demişsiniz ki: int main();
Bu durumda bu fonksiyonun geriye bir değer döndürmesi gerekiyor. Ne değeri, ne olacak filan demeyin, derleyiciyi kızdırmamak, kafasını karıştırmamak, onu mutlu etmek gerekir. Derleyicinin mutluluğu ile programcının mutluluğu arasında kesin bir parallellik olacaktır her daim.
Bu gibi hususları görmeyi öğrenmeye çalışın, her durumu düşünün. Derleyiciyi mutlu etmeyi öğrenin. Bir kaç iyi kaide vardır bizim meslekte: KISS, "Keep compiler happy" gibi..
quote:
Orijinalden alıntı: skoylu
Gördüğüm kadarıyla, çalışmasını engelleyecek bir hata yok.
Fakat çalışıyor olmak, iyi olmak demek değil maalesef.
Mesela:
if (tahmin == -1) break;
Eğer hiç tahmin yapmadan çıkarsa, 50 puan alacaktır sanıyorum oyuncu. Skorboarda yazılmak için iyi bir yöntem
Ama asıl sorun, kullanıcın bundan haberdar olmaması. Paskalya yumurtası koymak gibi bir niyetiniz var olabilir, bilemiyorum, ama bu biraz basit kalır.
Bir diğer mesele ise, olmayacak işe bakalım. Eğer bu koda aynı rakamı belli defa girersek, kod acayip enteresan bir hale gelmezmi? Şöyle ki, her defasında -5, -5 derken, kactahmin değeri, -MAXINT olacak, ardından 0 ve "0 tahminde bildin" gibi abes bir durum ortaya çıkacak. Programcı, bu gibi durumları gören ve göz önüne alan kimsedir.
Daha başka bir mesele ise şu. O main() fonksiyonu için demişsiniz ki: int main();
Bu durumda bu fonksiyonun geriye bir değer döndürmesi gerekiyor. Ne değeri, ne olacak filan demeyin, derleyiciyi kızdırmamak, kafasını karıştırmamak, onu mutlu etmek gerekir. Derleyicinin mutluluğu ile programcının mutluluğu arasında kesin bir parallellik olacaktır her daim.
Bu gibi hususları görmeyi öğrenmeye çalışın, her durumu düşünün. Derleyiciyi mutlu etmeyi öğrenin. Bir kaç iyi kaide vardır bizim meslekte: KISS, "Keep compiler happy" gibi..
peki teşekkür ederim :)
yeni mesaja git
Yeni mesajları sizin için sürekli kontrol ediyoruz, bir mesaj yazılırsa otomatik yükleyeceğiz.Bir Daha Gösterme