BİLECİK ŞEYH EDEBALİ ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ PROGRAMLAMA DİLLERİ 1 ÇALIŞMA SORULARI 1. Klavyeden kullanıcının girdiği [0,100] arasındaki 15 sayının ortalamasını bulan ve ekrana döken C kodunu yazınız. Kullanıcı verilen sayı aralığının dışına çıktığında bir uyarı mesajı ile [20,50] aralığında sayı girmesi gerektiği hatırlatılarak tekrar sayı girişi yapması istensin. 2. (a) Klavyeden kullanıcının girdiği karakterleri ekrana basan ve „Q‟/‟q‟ harflerinden birine bastığında klavyeden karakter alımını durduran ve programı bitiren C kodunu do/while döngüsü ile yazınız. (b) Klavyeden girilen rakamları ekrana basmayacak şekilde (a) şıkkında yazılan C kodunda gerekli değişiklikleri/ilaveleri yapınız. (c) Klavyeden arka arkaya girilen aynı karakterlerin ekrana tekrarlı basılmasına izin verilmeyecek şekilde bir önceki şıkta geliştirilen C kodunda gerekli değişiklikleri/ilaveleri yapınız. Örneğin b şıkkında ekran çıktısı: bir karakter giriniz: Eeedrfgs/r‟??KKLmndddfq c şıkkı sonundaki ekran çıktısı: bir karakter giriniz: Eedrfgs/r‟?KLmndfq 3. (a) int faktor (int x) isimli bir tamsayının faktöriyel değerini (𝑥!) bularak geri dönen işlevi yazınız. (b) Klavyeden girilen bir tamsayının 𝑓 𝑥 = 𝑒 𝑥 fonksiyon değerini aşağıdaki şekilde ilk beş değere göre sayısal olarak hesaplayan ve ekrana fonksiyon değerini dönen C kodunu yazınız. 𝑓 𝑥 = 𝑒 𝑥 fonksiyon değerini float exp(int y) işlevi ile yazınız. 𝑥 𝑥2 𝑥3 𝑥4 𝑓 𝑥 = 𝑒𝑥 = 1 + + + + 1! 2! 3! 4! 4. İki bilinmeyenli bir denklemin köklerini hesaplayan ve ekrana basan aşağıdaki C program kodunu tamamlayınız. (karekök almak için sqrt() işlevini kullanabilirsiniz. Örneğin sqrt(5), sqrt(a) gibi) 5. Klavyeden girilen üç tamsayıdan küçük/BÜYÜK/ortanca olanını bulan ve ekrana yazdıran programın blok diyagramını ve C kodunu yazınız. 6. Aşağıda tanımlanmış olan matematiksel fonksiyon için koşul işlecini (?) kullanarak C dilinde mat_fonk isimli bir işlev yazınız. 10 x 5 fonk( x) 0 x 5 10 x 5 7. Klavyeden girilen tamsayının her bir basamağını, sayının değeri kadar ekrana basan programı yazınız. Not: 0 için “ X” karakterini basınız. Örnek ekran çıktısı: klavyeden bir sayi giriniz: 7082 22 88888888 x 7777777 1 BİLECİK ŞEYH EDEBALİ ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ PROGRAMLAMA DİLLERİ 1 ÇALIŞMA SORULARI 8. Klavyeden girilen üç basamaklı bir sayının rakamları toplamını bulan ve ekrana çıktısını gönderen programı C dilinde yazınız. Örnek ekran çıktıları: uc basamakli bir sayi giriniz : 657 657 sayisinin rakamlari toplami = 18 uc basamakli bir sayi giriniz : -657 -657 sayisinin rakamlari toplami = 18 9. Aşağıda verilen fonksiyonun değerini klavyeden girilen x değeri için bulan ve ekrana çıktısını veren C programı yazınız. Örnek ekran çıktısı: x degeri giriniz : 2.346 f(2.346000) = 2.346000 x degeri giriniz : -12.346 f(-12.346000) = -3.000000 x degeri giriniz : 6.087 f(6.087000) = 3.000000 10. Klavyeden girilen saat ve dakika değerleri ile akrep ile yelkovan arasındaki açıyı, “derece” cinsinden hesaplayarak geri döndüren “aci_bul” isimli işlevi kullanan ve bulduğu açı değerini ekrana bastıran C programını yazınız. (30p) İşlevin bildirimi : float aci_bul(int saat, int dakika); Örnek ekran çıktıları: saat ve dakika degerleri giriniz : 5:30 akreple yelkovan arasindaki aci = 15.000000 saat ve dakika degerleri giriniz : 2:35 akreple yelkovan arasindaki aci = 132.500000 saat ve dakika degerleri giriniz : 11:49 akreple yelkovan arasindaki aci = 60.500000 11. Klavyeden sürekli karakter alınması sağlanarak, alınan karakterleri ekranda gösteren ve arka arkaya "abc" karakterleri girildiğinde program sonlandıran C programını yazınız. 12. Klavyeden kullanıcının girdiği 3 harfi ekrana sıralı ve büyük harf olarak çıktısını veren C kodunu yazınız. Örnek ekran çıktısı: Lütfen üc karakter giriniz: M, c, k Sirali harfler -> C, K, M 2 BİLECİK ŞEYH EDEBALİ ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ PROGRAMLAMA DİLLERİ 1 ÇALIŞMA SORULARI 13. (a) int signum (int x) isimli signum fonksiyonunu hesaplayan işlevi yazınız. (b) Girilen karakteri test eden büyük harf ise 1, küçük harf ise 2, sayı ise 3, diğer karakterlerden ise 0 dönen int test (int ch) işlevini yazınız. (c) Girilen sayının basamak değerlerinin toplamını geri dönen int basamak(int sayi) işlevini yazınız. 14. [50,150] arasında rastgele sayılardan oluşan 30 elemanlı benten isimli dizi ile ilgili aşağıdaki soruları cevaplayınız. (a) benten dizisindeki 30 sayının ortalamasını bulan ve ekrana döken C kodunu yazınız. (b) benten dizisindeki en büyük değeri (maksimum) ekrana indisi (dizideki yeri) ile birlikte döken C kodunu yazınız. Örnek ekran çıktısı: benten dizisinin en büyük değeri benten [14]=257‟dir. (c) benten dizisinin en küçük ikinci elemanını bulan ve ekrana döken C kodunu yazınız. 15. Klavyeden girilen karakterlerden yalnızca harfleri ekranda gösteren ve '%' veya '+' karakteri girilince karakter girişini durdurarak, ekrana girilen karakterlerdeki sesli (a,e,i,o,u) ve sessiz harflerin sayısını veren c kodunu yazınız. 16. (a) void cevir2 (int sayi) isimli verilen tamsayıyı ikilik sayı sisteminde ekrana basan işlevi yazınız. (b) void cevir16 (int sayi) isimli verilen tamsayıyı onaltılık sayı sisteminde ekrana basan işlevi yazınız. (c) void kokbulma (int a, int b, int c) isimli verilen ikinci dereceden tek bilinmeyenli bir denklemin köklerini bularak ekrana basan işlevi yazınız. (karekök için sqrt (int a) hazır fonksiyonunu kullanın) (d) int basamak (int sayi) isimli girilen sayının basamak değerlerinin toplamını geri dönen işlevi yazınız. 17. Klavyeden girilen 5 tane gerçel sayının 10'dan büyük olanlarının toplamını bulan Toplam10Buyuk isimli işlevi while ve for yapıları ile ayrı ayrı yapınız. 18. Klavyeden girilen a ve b sayına göre a'dan b'ye ya da b'den a'ya kadar olan sayıları ekrana yazdıran SayiYazdir isimli işlevi yazınız. NOT: İşlevlerin sadece isimleri verilmiş olup kullanılacak argüman/parametreleri ve geri dönüş tiplerini belirlemeniz gerekmektedir. İNTERNETTEN DE C PROGRAMLAMA İLE İLGİLİ ÇOK SAYIDA SORU BULABİLİRSİNİZ. BUNDAN SONRAKİ SINAVLARINIZ İÇİN ÇALIŞMA SORULARI ADI ALTINDA HERHANGİ BİR SORU PAYLAŞIMIM OLMAYACAKTIR. LÜTFEN BİRAZ ARAŞTIRIN :-))) 3
© Copyright 2024 Paperzz