C Programlama #07 | Gözcü Değerli Döngü, double ve Tür Dönüşümü
Döngüler (Loops)Eğitmen: Dr. Süleyman Burak ÇELİK
Kaç öğrenci olduğunu bilmeden puanları programa nasıl girersin, bittiğini nasıl söylersin? Yedinci derste gözcü değerli döngüyü kuruyor, geçen dersin 79.8 yerine 79 çıkan ortalamasını da double ve tür dönüşümüyle düzeltiyoruz. Programı yukarıdan aşağıya, adım adım inceltme yöntemiyle tasarlıyoruz: tek cümlelik tepeden üç aşamaya, oradan doğrudan C'ye çevrilebilecek sözde koda. 78, 92, 65, 88 ve ardından -1 girince program dört puan sayıyor ve ortalamayı 80.75 yazıyor; lldb ile alınan koşul kontrolleri tablosunda toplamın 0, 78, 170, 235 ve 323 diye büyüdüğünü görüyoruz. Hiç puan girmeden -1 yazınca döngü bir kez bile dönmüyor ve program sıfıra bölmeye kalkışmıyor. Ardından int bölmesini, açık (double) dönüşümünü, örtük dönüşümü ve %f, %.2f, %.1f biçimlerini 399 / 5 üzerinde deniyoruz: 79, 79.800000, 79.80, 79.8; dönüşüm bölmenin dışındaysa 79.000000. Son olarak üç tuzak: dönüşümü unutmak (80.00), gözcünün hesaba karışması (64.40) ve ondalıklı sayıların yaklaşıklığı (0.1 + 0.2, -Wfloat-equal). Ekrandaki her çıktı, kodun gerçekten derlenip çalıştırılmasından geliyor. Bu derste: 1. Gözcü değerli döngü: kaç veri geleceği bilinmediğinde 2. Yukarıdan aşağıya, adım adım inceltme ile tasarım 3. Önce oku, sonra sına: ilk okuma döngüden önce, sonraki gövdenin sonunda 4. double, açık (double) ve örtük tür dönüşümü; %f, %.2f ve %.1f 5. Tuzaklar: unutulan dönüşüm, hesaba karışan gözcü, ondalıklı sayılarda eşitlik (-Wfloat-equal) Bölümler: 0:00 Geçen ders 79.8 yerine 79; bugün gözcü ve double 0:19 Bittiğini programa nasıl söylersin? 0:48 Yukarıdan aşağıya, adım adım inceltme 1:35 Kod: önce oku, sonra sına 2:19 Çalıştır: 80.75 ve hiç puan yoksa 2:47 int, double ve tür dönüşümü 3:40 Üç tuzak 4:43 Bugünün dört kuralı 5:10 Sonraki ders: atama işleçleri, ++ ve -- Kaynak kitap: Paul Deitel, Harvey Deitel — C How to Program, 9. baskı (2022), §3.9. Konu sırası ve kavramlar kaynak kitaptan izlenir; anlatım, örnekler ve ekranlar özgündür. Hedef kitle: C'ye yeni başlayan tüm mühendislik ve bilgisayar/yazılım öğrencileri. Ön koşul: C Programlama #01–#06.