Evet güzel bir program.. Ayrıca üstteki verdiğin programdan daha rahat yazarsın o programı. |
Bu arada suriye günlüğünü okuyamadım. ![]() |
Hocam while döngüsü , döngünün başında nasıl durdurulur . Yani durduracak değer alındıktan sonra döngünün geri kalanı yürütülmeyecek. |
Bunun içni break komutunu kullanabilirsin. Basit şekilde gösterirsek
|
Merhaba arkadaşlar benim bi yazılım ihtiyacım var. Örnek aşagıdadır bu şekilde bi yazılım nasıl olur ne kadara yaparsınız lütfen mail atın. 1234567891234567/1234567891234567 şeklinde değişken rakamlar mp3 dosyası şeklinde kayıt edilip bana geliyor. ben bu mp3 dosyasını tekrar 1234567891234567/1234567891234567 bu rakamlara dönüştürerek başka yere txt dosyasında göndermek istiyorum. bu değişimi yapabilecek bir program satan yazıp bana satabilecek arkadaşlarımız varmı ? ilgi alakanız için şimdiden teşekkür ederim. Murat GÜLER |
İkimiz kaldık heralde hocam bir tek ![]() ![]() #include <stdio.h> |
Kısayı boşver temiz yazmaya bak. Senin kod kirli olmuş. Sistematik düşün, böylece kısa da olur zaten. main deki argc, argv leri sil önce, gerekmedikçe yazma onları. system("pause") gibi sistem bağımlı gereksiz şeylerden de uzak dur, programı komut satırından çalıştır (cmd). Bunlar taçizane tavsiyelerim.
|
Hocam programı açtığımda direk onları koyduğu için silmiyorum , argc,argv ne işe işe yarıyor bilmiyorum zaten. Pause olmadan ekranı nasıl göreceğiz , bir de int min in işlevi tam olarak ne ? Kitaptan gittiğimden farklı şeyler kullanmıyorum konu dışında . Teşekkür ederim tavsiyeleriniz için ![]() |
Elektro_gadget hocamız gene bizden önce davrandı. Hocam sizleri burada görmek çok güzel ![]() #include <limits.h> -> INT_MIN leri bunun sayesinde yazdırdık. öncelikle bu kütüphanemiz. INT_MIN dediğimiz ise mesela buyuk1 değişkenine verilecek en küçük değeri veriyor. internetten bakabilirsin bu değerlere.. argc,argv'a gelince, büyük ihtimalle "Kaynak Kodu Dosyası" açmıyorsunuz. "Kaynak Kodu Dosyası" açarsanız bembeyaz bir ekran gelecektir önünüze. system("pause"); yerine, #include <conio.h> ekleyerek, system("pause"); yerine getch(); yazarakta programı ekranda tutabilirsiniz. |
INT_MIN int değişkene atanabilecek en küçük sayı (benim sistemde -2147483648). Bunun max olanları var, diğer türde olanları var, hepsi limits.h içinde sembolik sabit olarak tanımlı. Peki niye direkt o sayıyı yazmadık ta (hard coding) semboliğini yazdık? Sebebi hem hatadan korunmak hem de programı taşınabilir (her ortamda derlenip çalışabilen) bir hale getirmek. C/C++ ta char haricinde hiçbir değişken türünün standart bir uzunluğu yoktur, limits.h gibi başlık dosyaları ile uyumluluk sağlanır. Birde stdint.h var. Diyelimki bir değişkene ihtiyacınız var ve "kesinlikle" 32 bit olmalı. Eğer siz bunu int olarak tanımlarsanız hata edersiniz. Sizin sisteminizde int 32 bit olabilir ama başka bir ortamda 16, 32 veya 64 olabilir. Bu değişkeni int yerine stdint.h dosyasında tanımlanan "int32_t" yaparsanız işiniz garanti olur. Aynı şekilde mutlaka 64 bit gerekiyorsa int64_t var ve bunların başında "u" olan unsigned olanları var. uint16_t gibi. Konuya dönelim. buyuk2 ye atanan INT_MIN gereksiz olmuş, sonradan farkettim. buyuk1 e atanan ise algoritmanın bir parçası. Eğer bunu yapmamış olsaydık ilk aldığımız sayıyı en büyük varsayıp buyuk1 e atmamız gerekecekti. Bu da döngü yapısını bozacaktı (strahd_von_zarovich in örneğindeki gibi. ![]() Yukarıda taşınabilirlikten bahsetmiştik. system("pause"); satırı, programı windows tan başka bir ortama "taşınamaz" hale getirir. Mesela ben şu an linux tayım. O kodu aynen kopyalasam derlenir ama çalışmaz çünkü linux ta pause komutu yok. getch() ise standart değil, bende getch yok mesela. İlla ki durdurucu bir kod ekleyecek iseniz getchar() koyun, bu standarttır. http://www.cplusplus.com/reference/clibrary/cstdio/getchar/ Ama dediğim gibi en iyisi onların hepsini silip konsol penceresi açarak çalıştırmak. Çalıştığınız IDE kendisi çalıştır penceresi açıyorsa onu da kullanabilirsiniz. |
Teşekkürler ederim , çok iyi anladım ![]() ![]() Burada ekrana ne yazdirir demiş ama , printf de ne yapılıyor anlamadım . #include <stdio.h> |
Bir de buradaki işleyiş tam olarak nasıl , x=9 ve y=11 dedik diyelim. X in doğruluğuna bakıyor doğru olduğu için y nin doğruluğuna bakıyor o da doğru olduğundan * lı satırı oynatıyor, $ satır ne olursa olsun zaten yazılacak dimi ? x=11, y=9 dediğimizde ise sadece $ lı satır yazılacak, yani kısaca # lı satırı yazdırmak için x e doğru değeri , y ye ise yanlış değeri vermek gerekiyor ? if(x<10) if(y>10) printf("*****\n"); else printf("#####\n"); printf("$$$$$\n"); |
parantezleri nerde bu kodun ya. öğrenmenin kolay yolu var kodu çalıştır öğren buraya yazmanın manası yok ki? |
x'e doğru y'ye yanlış değer verirsen, yani mesela x=9, y=11 verirsen, çıktı olarak hem ##### hemde $$$$ elde edersin.. Eğer x=11,y=9; yaparsan $$$$$ elde edersin. vs kendin deneyerekte görebilirsin. |
Parantezleri nerede bu kodun Paul J Deitel ![]() |
Hepsini denedim hocam zaten de genede yanlış bir şeyler öğrenmemek için sordum teşekkür ederim . printf("%s\n",sayac%2?"****":"++++++++"); Burada tam olarak ne yapılıyor ? ![]() |
Hocam bir tavsiyede bulunmak istiyorum. Ben visual studio kullanıyorum ve debug modu çok işime yarıyor hiç birşey anlamadığım bir koddan bile adım adım çalıştırarak nasıl işlediğini anlayabiliyorum. Bu tarz problemlerinide o şekilde kullanımla çok rahat anlayabilirsin. |
Dediğim gibi C'a tam hakim değilim.. Şu linki inceleyerek öğrenebilirsin. http://www.cplusplus.com/reference/clibrary/cstdio/printf/ |
Teşekkürler yorumun için. Aynen dediğin gibi bir if kontrolü ile halledilebilir bir olay.
Bu aralar farklı bir program üzerine çalışıyorum. Örneğin 257 TL yi 200, 100, 50, 20, 10, 5, 1 TL ve kuruşlar ile kaç farklı şekilde verilebilir. Bunun üzerine kısa ve öz bir algoritma üzerinde çalışıyorum. Bittiği zaman onuda buraya koyarım inşallah.
Bu mesaja 2 cevap geldi. Cevapları Gizle