Programlama Hassasiyet İpucu: Noktalı Sayı Kullanımı

Noktalı sayı kullanılırken özellikle eşitlik karşılaştırmalarında kurguladığımız senaryo gereği iki sayının birbirine eşit olma durumu için bir tolerans aralığı seçilmelidir. Aşağıda örnek bir senaryo üzerinde ne demek istediğimizi anlatmaya çalışalım.

Örneğin demir çelik endüstrisi için bir otomasyon geliştiriyorsunuz ve birim ağırlık olarak kg kullanıyorsunuz. Böyle bir senaryoda 5000 kg ve 5000,005 kg aslında birbirine eşit kabul edilebilir bir aralıktır. Ama programlamada 5000 kg içerisinde aradaki 5 gramlık farktan ötürü eşitlik şartı sağlanmamaktadır ve eşitlik durumunda çalışması gereken kodlar çalışmayacaktır. Bunun için direk if(sayi1 == sayi2) şeklinde bir karşılaştırma değil de aşağıdaki gibi bir tolerans payı ile karşılaştırma yapılmalıdır.

const double tolerans = 0.005;
double sayi1 = 5000;
double sayi2 = 5000.005;

if (Math.Abs(sayi2 - sayi2) <= tolerans)
{
    // eşitlik durumu için çalışacak kodlar
}

Kodumuzda if şartı içerisinde aradaki toleransı (+) ve (-) durumlarının ikisinde de sağlamak için aradaki farkın mutlak değerini alıp tolerans değerinden küçük veya eşit olup olmadığının sorguluyoruz.




Program Kontrol Deyimleri Soruları

1. Klavyeden girilen bir sayının faktöriyelini bulan programı yazınız.

2. f(x) = x^3 + 5*x^2 + 4*x –3 fonksiyonunun sonucunu x = 0, 0.2, 0.4, 0.6, ……., 4.8, 5.0 için hesaplayıp ekrana yazan programı yazınız.

x^3 : x’in 3.kuvvetini gösteriyor.

3. 1,2,3,5,8,13,21,34,55… şeklinde devam eden serinin 2000 den küçük elemanlarını ekrana yazan programı yazınız.

4. abc = a^3 + b^3 + c^3 şartını sağlayan üç basamaklı abc sayılarını bulan programı yazınız.

5. [100, 300] aralığında 3 e veya 4 e tam bölünen ancak ikisine birden bölünmeyen sayıların toplamını bulan programı yazınız.




C – C++ Çalışma Soruları – 2

1. Girilen bir yıla ait şubat ayının kaç gün çektiğini bulan programı yazınız.

2. Girilen üç sayıdan en büyüğünü bulup ekrana yazan programı yazınız.

3. Bir işletmede çalışan elemanlara normal ücretlerine ek olarak ürettikleri parça sayısına göre ek ücret verilmektedir. Parça başına ücret aşağıdaki şartlara göre verilmektedir:

Parça sayısı (0,10] arası için parça başına 0.5 TL,

Parça sayısı (10,30] arası için parça başına 0.8 TL,

Parça sayısı (30,…] arası için parça başına 1.2 TL,

Buna göre normal maaşı ve ürettiği parça sayısı bilgilerini alarak bir elemanın maaşını hesaplayan programı yazınız.

4. Girilen iki sayının bir birine tam bölünüp bölünmediğini veren programı yazınız.

5. Şu anda A şehrinin nüfusu 450.000, B şehrinin nüfusu 850.000,

A şehrinin yıllık nüfus artış hızı %2.5

B şehrinin yıllık nüfus artış hızı %1.3

bu verilere göre A şehrinin nüfusu kaç yıl sonra B şehrinin nüfusuna eşit olur ve o yıl ki nüfusları ne kadar olur? Hesaplayan programı yazınız.

DAHA UĞRAŞTIRICI SORU:

Girilen iki tarih arasında ki gün sayısını hesaplayan programı yazınız.

Program geçersiz tarih girildiğinde uyarı mesajı verecektir. (31 4 2011 gibi bir tarih girildiğinde 4. ayın 31 gün çekmediğini belirtecek)

– Yıllara göre aynı şekilde şubat ayı özel durumu da göz önüne alınacak

– Her ay standart 30 gün kabul edilecek




if–else Kontrol Deyimi Örnekleri

1. Klavyeden girilen bir sayının pozitif mi, negatif mi, 0 mı olduğınu ekrana yazan program.

2. Kenar uzunlukları girilen üçgenin alanını hesaplayan program.

3. Öğrencinin not ortalaması vizenin %40 ını, finalin de %60 ı toplanarak. Alınan vize ve final notuna göre ortalamasını hesaplayıp;

not 50 den küçük ise T yazan,

not [50,65) aralığında ise C,

not [65, 85) aralığında ise B,

not [85,100] aralığında ise A yazan program.

 




C Programlama Çalışma Soruları – 1 (Bazıların Cevapları)

NOT: Kodlar C++’ta yazılmıştır.

1.

3.




C Programlama Çalışma Soruları – 1

1. Santigrat cinsinden girilen sıcaklığın fahrenhayt ve kelvin cinsinden değerini hesaplayan programı kodlayınız.

2. Girilen saat degerine göre akrep ve yelkovan arasındaki küçük veya büyük açıyı ekrana yazan programı kodlayınız.

Saat ve Dakika değerlerini iki ayrı değişkende tutabilirsiniz.

3. Tek bir printf() komutu kullanarak aşağıdaki çıktıyı ekrana yazdırınız.

4. Bir işci saat ücreti olarak 6TL almaktadır. Ayrıca yemek ve yol yardımı olarak günlük 10TL almaktadır. Ayda %8 oranında sigorta kesintileri olmaktadır. Ekrandan girilen aylık çalışma saatine gore işçinin kesintilerden sonra eline geçen aylık parayı hesaplayan programı kodlayınız.

5. Klavyeden girilen r değerine göre:

a) Dairenin çevresini,

b) Dairenin alanını,

c) Dairenin çapını hesaplayıp ekrana yazan programı kodlayınız.




Girilen İki Tarih Arasındaki Gün Sayısı




Matris Uygulaması

5X5 boyutunda rastgele bir matris tanımlayınız. Oluşturulan bu matrisin en büyük elemanın kaç olduğunu ve bu elemanın yerini matris[i][j] şeklinde veren program:




Alıştırma: Resimdeki Çıktıyı Veren Program




Yazı mı Tura mı