Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

1 Bölüm 4 Seçme Komutları Alıştırmalar Bu bölümdeki problemler “C Dersi Çözümlü Problem Kitabı”, N. E. Ça ğ ıltay, C. E. Selbes, G. Tokdemir, ve Ç. Turhan,

Benzer bir sunumlar


... konulu sunumlar: "1 Bölüm 4 Seçme Komutları Alıştırmalar Bu bölümdeki problemler “C Dersi Çözümlü Problem Kitabı”, N. E. Ça ğ ıltay, C. E. Selbes, G. Tokdemir, ve Ç. Turhan,"— Sunum transkripti:

1 1 Bölüm 4 Seçme Komutları Alıştırmalar Bu bölümdeki problemler “C Dersi Çözümlü Problem Kitabı”, N. E. Ça ğ ıltay, C. E. Selbes, G. Tokdemir, ve Ç. Turhan, 5. Baskı, Ada Matbaacılık Ltd. Şti., 2013 kitabındaki problemlerdendir.

2 Örnek 1: 2 Aşa ğ ıdaki koşul ifadelerinin de ğ erlerini bulunuz. int k=5, m=14; double x=-6.1, y=4.2; char kr=‘U’; Aşa ğ ıdaki koşul ifadelerinin de ğ erlerini bulunuz. int k=5, m=14; double x=-6.1, y=4.2; char kr=‘U’; True False !(k>=10)||(x*y<0) (x-y!=2*x)&&!(kr!=‘u’) 12%k/k%12&&(int)kr (‘A’ =‘Z’)

3 (x%2==0)||(y%2==1) Örnek 2: 3 Aşa ğ ıdaki ifadelerin C dilindeki koşul ifadesi karşılıklarını yazınız. x!=‘+’ A) x değişken değeri ile karakter ‘+’ eşit değildir. ((numa>0)&&(numa 0)&&(numb 0)&&(numc<10)) (numa>0)&&(numb!=75) B) numa, numb ve numc değişkenlerinden herhangi birisinin değeri 0 ile 10 arasındadır. C) numa pozitif iken numb değişkeninin değeri 75’den farklıdır. D) x çift sayı veya y tek sayıdır.

4 Örnek 3: 4 Aşa ğ ıda C program parçasını ele alalım. if ((kr1==‘a’)&&(kr2==‘s’)) if (kr3==‘i’) printf(“Yanlis degerler.\n”); else printf(“%c%c%c\n”,kr1,’*’,kr2); else if ((kr1==‘k’)&&(kr2==‘h’)) printf(“%c%c%c\n”,kr1,’-’,kr2); a*s Hiç bir şey basılmaz k-h A) kr1, kr2 ve kr3 değişkenlerinin değerleri sırasıyla ‘a’, ‘s’ ve ‘t’ ise program çıktısı ne olur? B) kr1, kr2 ve kr3 değişkenlerinin değerleri sırasıyla ‘k’, ‘k’ ve ‘t’ ise program çıktısı ne olur? C) kr1, kr2 ve kr3 değişkenlerinin değerleri sırasıyla ‘k’, ‘h’ ve ‘h’ ise program çıktısı ne olur?

5 Örnek 4: 5 Aşa ğ ıdaki komutu (a)içiçe if (b)switch komutlarını kullanarak yeniden yazınız. a= x == 50 ? 53 : (y == 40 ? 4 : -4); Aşa ğ ıdaki komutu (a)içiçe if (b)switch komutlarını kullanarak yeniden yazınız. a= x == 50 ? 53 : (y == 40 ? 4 : -4); Part a) if (x==50) a=53; else if (y==40) a=4; else a=-4; Part a) if (x==50) a=53; else if (y==40) a=4; else a=-4; Part b) switch (x) { case 50: a=53; break; default: switch (y) { case 40: a=4; break; default: a=-4; } Part b) switch (x) { case 50: a=53; break; default: switch (y) { case 40: a=4; break; default: a=-4; }

6 Örnek 5: 6 Aşa ğ ıda verilen if komutlarını tek bir içiçe if komutu kullanarak yeniden yazınız. if (sayi<0) { printf(“Kucuk bir sayi.\n”); printf(“Tekrar giriniz.\n”); scanf(“%d”,&sayi); } if (sayi>=0 && sayi<=25) printf(“Dogru bir sayi.\n”); if (sayi>25) sayi=sayi%25; if (sayi<0) { printf(“Kucuk bir sayi.\n”); printf(“Tekrar giriniz.\n”); scanf(“%d”,&sayi); } else if (sayi<=25) printf(“Dogru bir sayi.\n”); else sayi=sayi%25; if (sayi<0) { printf(“Kucuk bir sayi.\n”); printf(“Tekrar giriniz.\n”); scanf(“%d”,&sayi); } else if (sayi<=25) printf(“Dogru bir sayi.\n”); else sayi=sayi%25;

7 Örnek 6: Aşa ğ ıdaki program, girilen 4 basamaklı bir sayının (abcd), özel sayı olup olmadı ğ ını abcd=(ab+cd) 2 özelli ğ ine bakarak kontrol eder girdisi için bu programın çıktısını bulunuz. #include int main (void) { int sayi,bol1,bol2,yeni; printf("Pozitif bir sayi giriniz: "); scanf("%d",&sayi); if ((sayi/1000==0)||(sayi/10000>0)) printf("%d dort haneli sayi degil.\n",sayi); else { bol1=sayi/100; bol2=sayi%100; yeni=(bol1+bol2)*(bol1+bol2); if (yeni==sayi) printf("%d ozel sayidir.\n",sayi); else printf("%d ozel sayi degildir.\n",sayi); } system("pause"); return (0); } ÇIKTI: 3025 ozel sayidir. ÇIKTI: 3025 ozel sayidir. 7

8 Örnek 7: Aşa ğ ıdaki program, girilen çalışma kodu ve çalışma saatine göre kişinin ücretini hesaplar. Girdi de ğ erleri sırasıyla 2 ve 25 ise, bu programın çıktısı ne olur? #include int main (void) {int kod,saat; double ucret; printf("Kodunuzu giriniz: "); scanf("%d",&kod); if ((kod==2)||(kod==3)) {printf("Toplam calisma saatinizi giriniz: "); scanf("%d",&saat); } switch(kod) { case 1: ucret=875; break; case 2: ucret=6.80*saat; break; case 3: ucret=12.5*(saat%40)+875; } printf("Ucretiniz: %8.4f\n",ucret); system("pause"); return (0); } ÇIKTI: Ucretiniz: ÇIKTI: Ucretiniz:

9 Örnek 8: Aşa ğ ıdaki programda boş bırakılan yerleri doldurunuz. Bu program, pozitif bir tamsayıyı girdi olarak almakta ve bu sayının karekökünün bir tamsayı de ğ eri olup olmadı ğ ını görüntülemektedir. #include int main (void) { int sayi,n; printf("Pozitif bir tamsayi giriniz: "); scanf("%d",&sayi); n=sqrt((double)sayi); if (n*n==sayi) printf("%d karekoku bir tamsayidir.\n",sayi); else printf("%d karekoku bir tamsayi degildir.\n",sayi); return (0); } 9

10 Örnek 9: Kullanıcıdan pozitif bir tamsayı girdi olarak alıp, bu sayının 13 ve/veya 17’ye bölünüp bölünmedi ğ ini bularak bu durumu bir mesaj ile belirten bir C programı yazınız. E ğ er girilen sayı sadece 13’e bölünüyorsa, “13’e bolunuyor.” sadece 17’ye bölünüyorsa, “17’ye bolunuyor.” 13 ve 17’ye bölünüyorsa, “13 ve 17’ye bolunuyor.” 13 ve 17’ye bölünmüyorsa, “13 ve 17’ye bolunmuyor.” mesajlarını ekranda gösteriniz. Örnek Çıktı: Bir sayı giriniz: ’ye bolunuyor. Kullanıcıdan pozitif bir tamsayı girdi olarak alıp, bu sayının 13 ve/veya 17’ye bölünüp bölünmedi ğ ini bularak bu durumu bir mesaj ile belirten bir C programı yazınız. E ğ er girilen sayı sadece 13’e bölünüyorsa, “13’e bolunuyor.” sadece 17’ye bölünüyorsa, “17’ye bolunuyor.” 13 ve 17’ye bölünüyorsa, “13 ve 17’ye bolunuyor.” 13 ve 17’ye bölünmüyorsa, “13 ve 17’ye bolunmuyor.” mesajlarını ekranda gösteriniz. Örnek Çıktı: Bir sayı giriniz: ’ye bolunuyor. 10

11 Örnek 9 (Devam): #include int main (void) { int n; printf("Bir sayi giriniz: "); scanf("%d",&n); if ((n%13==0)&&(n%17==0)) printf("13 ve 17'ye bolunuyor.\n"); else if (n%13==0) printf("13'e bolunuyor.\n"); else if (n%17==0) printf("17'ye bolunuyor.\n"); else printf("13 ve 17'ye bolunmuyor.\n"); system("pause"); return (0); } 11

12 Örnek 10: Bir halıcı çocuklar için üç ayrı tip halı satmaktadır. Bu halıların tipi, kodu ve metrekare birim fiyatları aşa ğ ıda verilmiştir. Halı Tipi Kodu Metrekare Birim fiyatı Tweety T TL BugsBunny B TL Spiderman S TL Sipariş alınan halının tipi ve döşenecek alanın metrekaresi girildi ğ inde ödenmesi gereken ücreti görüntüleyen bir C programı yazınız. Örnek Çıktı: Hali tipi (T/B/S): B Kac metrekare hali dosenecek: 19.6 Odenmesi gereken ucret: TL. Bir halıcı çocuklar için üç ayrı tip halı satmaktadır. Bu halıların tipi, kodu ve metrekare birim fiyatları aşa ğ ıda verilmiştir. Halı Tipi Kodu Metrekare Birim fiyatı Tweety T TL BugsBunny B TL Spiderman S TL Sipariş alınan halının tipi ve döşenecek alanın metrekaresi girildi ğ inde ödenmesi gereken ücreti görüntüleyen bir C programı yazınız. Örnek Çıktı: Hali tipi (T/B/S): B Kac metrekare hali dosenecek: 19.6 Odenmesi gereken ucret: TL. 12

13 Örnek 10 (Devam): #include int main (void) { char kod; float alan,ucret=0; printf("Hali tipi (T/B/S): "); scanf("%c",&kod); printf("Kac metrekare hali dosenecek: "); scanf("%f",&alan); if (kod=='T') ucret=alan*18.8; else if (kod=='B') ucret=alan*17.8; else if (kod=='S') ucret=alan*19.2; if (ucret<=0) printf("Girişlerde bir hata yapılmıştır.\n"); else printf("Odenmesi gereken ucret: %7.2f TL.\n",ucret); return (0); } 13

14 Örnek 11: Bir telefon şirketi telefonda 3 dakikaya kadar konuşmanın ücretini 0.25 TL. olarak belirlemiştir. Ancak şirket, konuşma süresi 3 dakikayı aştı ğ ı durumda bundan sonraki her dakika için ek olarak 0.08 TL. almaktadır. Telefon görüşmesinin süresini dakika cinsinden girdi olarak alan ve konuşmanın ücretini hesaplayan C programını yazınız. Örnek Çıktı: Telefon konusma suresi: 8.0 Ucret: 0.65 TL. Bir telefon şirketi telefonda 3 dakikaya kadar konuşmanın ücretini 0.25 TL. olarak belirlemiştir. Ancak şirket, konuşma süresi 3 dakikayı aştı ğ ı durumda bundan sonraki her dakika için ek olarak 0.08 TL. almaktadır. Telefon görüşmesinin süresini dakika cinsinden girdi olarak alan ve konuşmanın ücretini hesaplayan C programını yazınız. Örnek Çıktı: Telefon konusma suresi: 8.0 Ucret: 0.65 TL. 14

15 Örnek 11 (Devam): #include int main (void) { float sure, ucret; printf("Telefon konusma suresi: "); scanf("%f",&sure); if (sure<=3) ucret=0.25; else ucret=0.25+(sure-3)*0.08; printf("Ucret: %6.2f TL.\n",ucret); system("pause"); return (0); } 15

16 Örnek 12: artık Bir yılı (pozitif tamsayı) girdi olarak alan ve bu yılın artık yıl olup olmadı ğ ını bulan bir C programı yazınız. Bir yılın artık yıl olması için yılın 4’e bölünmesi ve e ğ er 100’e bölünüyorsa, 400’e de bölünmesi gerekir. Örne ğ in: 2004 ve 2000 yılları artık yıl olup, 2007 ve 1900 yılları artık yıl de ğ ildirler. Örnek Çıktı: Yili giriniz: yili artik yil degildir. artık Bir yılı (pozitif tamsayı) girdi olarak alan ve bu yılın artık yıl olup olmadı ğ ını bulan bir C programı yazınız. Bir yılın artık yıl olması için yılın 4’e bölünmesi ve e ğ er 100’e bölünüyorsa, 400’e de bölünmesi gerekir. Örne ğ in: 2004 ve 2000 yılları artık yıl olup, 2007 ve 1900 yılları artık yıl de ğ ildirler. Örnek Çıktı: Yili giriniz: yili artik yil degildir. 16

17 Örnek 12 (Devam): #include int main (void) { int yil; printf("Yili giriniz: "); scanf("%d",&yil); if (yil%4==0) if (yil%100==0) if (yil%400==0) printf("%d yili artik yildir.\n",yil); else printf("%d yili artik yil degildir.\n",yil); else printf("%d yili artik yildir.\n",yil); else printf("%d yili artik yil degildir.\n",yil); system("pause"); return (0); } 17

18 Örnek 13: Bir üçgenin açılarını girdi olarak alan ve bu üçgenin türünü (geniş, dar veya dik açılı üçgen) saptayan bir C programı yazınız. Program aynı zamanda bir üçgen oluşturulup oluşturulmadı ğ ını da iç açılarının toplamını bularak kontrol etmelidir. Üçgenin iç açılarının toplamı 180 o olmalıdır. Üçgenin açılarının her biri 90 o ’den küçük ise dar açılı; herhangi bir açısı 90 o ’den büyükse geniş açılı; bir açısı 90 o ise dik üçgendir. Örnek Çıktı: Uc aci giriniz: Bu bir dik acili ucgendir. Bir üçgenin açılarını girdi olarak alan ve bu üçgenin türünü (geniş, dar veya dik açılı üçgen) saptayan bir C programı yazınız. Program aynı zamanda bir üçgen oluşturulup oluşturulmadı ğ ını da iç açılarının toplamını bularak kontrol etmelidir. Üçgenin iç açılarının toplamı 180 o olmalıdır. Üçgenin açılarının her biri 90 o ’den küçük ise dar açılı; herhangi bir açısı 90 o ’den büyükse geniş açılı; bir açısı 90 o ise dik üçgendir. Örnek Çıktı: Uc aci giriniz: Bu bir dik acili ucgendir. 18

19 Örnek 13 (Devam): #include int main (void) { int aci1,aci2,aci3; printf("Uc aci giriniz: "); scanf("%d%d%d",&aci1,&aci2,&aci3); if (aci1+aci2+aci3==180) if (aci1<90 && aci2<90 && aci3<90) printf("Bu bir dar acili ucgendir.\n"); else if (aci1==90 || aci2==90 || aci3==90) printf("Bu bir dik acili ucgendir.\n"); else printf("Bu bir genis acili ucgendir.\n"); else printf("Acilar ucgen olusturmaz.\n"); system("pause"); return (0); } 19

20 Örnek 14: Herhangi bir karakteri girdi olarak alan ve bu karakterin bir harf olup olmadı ğ ını bulan bir C programı yazınız. E ğ er girilen karakter bir harf ise küçük harf veya büyük harf olarak belirtiniz. Örnek Çıktı: Bir karakter giriniz: T T bir buyuk harftir. Örnek Çıktı: Bir karakter giriniz: & & bir harf degildir. Herhangi bir karakteri girdi olarak alan ve bu karakterin bir harf olup olmadı ğ ını bulan bir C programı yazınız. E ğ er girilen karakter bir harf ise küçük harf veya büyük harf olarak belirtiniz. Örnek Çıktı: Bir karakter giriniz: T T bir buyuk harftir. Örnek Çıktı: Bir karakter giriniz: & & bir harf degildir. 20

21 Örnek 14 (Devam): #include int main (void) { char kar; printf("Bir karakter giriniz: "); scanf("%c",&kar); if ((kar>='A') && (kar<='Z')) printf("%c bir buyuk harftir.\n",kar); else if ((kar>='a') && (kar<='z')) printf("%c bir kucuk harftir.\n",kar); else printf("%c bir harf degildir.\n",kar); system("pause"); return (0); } 21

22 Örnek 15: İ ngiliz alfabesinden herhangi bir büyük veya küçük harfi ch de ğ işkenine okuyan ve bu harfin bu alfabede kaçıncı harf oldu ğ unu bulan bir C programı yazınız. ( İ pucu: Büyük harf için (int)ch-(int)’A’+1, küçük harf için (int)ch-(int)’a’+1 ifadelerini kullanabilirsiniz). Örnek Çıktı: Bir harf giriniz: D D: 4. harftir. İ ngiliz alfabesinden herhangi bir büyük veya küçük harfi ch de ğ işkenine okuyan ve bu harfin bu alfabede kaçıncı harf oldu ğ unu bulan bir C programı yazınız. ( İ pucu: Büyük harf için (int)ch-(int)’A’+1, küçük harf için (int)ch-(int)’a’+1 ifadelerini kullanabilirsiniz). Örnek Çıktı: Bir harf giriniz: D D: 4. harftir. 22

23 Örnek 15 (Devam): #include int main (void) { char ch; int sira; printf("Bir harf giriniz: "); scanf("%c",&ch); if ((ch>='A') && (ch<='Z')) sira=(int)ch-(int)'A'+1; else if ((ch>='a') && (ch<='z')) sira=(int)ch-(int)'a'+1; printf("%c: %d. harftir.\n",ch,sira); system("pause"); return (0); } 23

24 Örnek 16: Toplama, çıkarma, çarpma ve bölme operatörlerinden birini ve iki reel sayıyı girdi olarak alan ve girilen operatöre göre işlem sonucunu bulan bir C programı yazınız. Programda switch komutunu kullanınız. Örnek Çıktı: Isleminizi seciniz (+, -, *, /): / Iki deger giriniz: / 2.5 = 9.4 Toplama, çıkarma, çarpma ve bölme operatörlerinden birini ve iki reel sayıyı girdi olarak alan ve girilen operatöre göre işlem sonucunu bulan bir C programı yazınız. Programda switch komutunu kullanınız. Örnek Çıktı: Isleminizi seciniz (+, -, *, /): / Iki deger giriniz: / 2.5 =

25 Örnek 16 (Devam): #include int main (void) { float no1,no2; char op; printf("Isleminizi seciniz (+, -, *, /): "); scanf("%c",&op); printf("Iki deger giriniz: "); scanf("%f%f",&no1,&no2); switch(op) { case '+': printf("%0.1f %c %0.1f = %0.1f\n",no1,op,no2,no1+no2); break; case '-': printf("%0.1f %c %0.1f = %0.1f\n",no1,op,no2,no1-no2); break; case '*': printf("%0.1f %c %0.1f = %0.1f\n",no1,op,no2,no1*no2); break; case '/': printf("%0.1f %c %0.1f = %0.1f\n",no1,op,no2,no1/no2); break; default: printf("Yanlis operator girildi.\n"); } system("pause"); return (0); } 25

26 Örnek 17: Aşa ğ ıda belirtilen işlemleri yapan bir C programı yazınız. Toplama (+) veya çıkarma (-) operatörünü giriniz. a ve b de ğ işkenlerine iki tamsayı giriniz. Burada a ve/veya b de ğ erlerinden biri 0 girilmiş ise işlemin yapılamayaca ğ ını bir mesaj ile belirtiniz. ‘+’ operatörü için 1/a + 1/b, ‘-’ operatörü için 1/a – 1/b işlemlerinin sonucunu basit kesir cinsinden bulunuz. Bu kısım için switch komutunu kullanmalısınız. Örnek Çıktı: Isleminizi seciniz (+, -): + Iki tamsayi giriniz: 5 8 1/5 + 1/8 = 13/40 Aşa ğ ıda belirtilen işlemleri yapan bir C programı yazınız. Toplama (+) veya çıkarma (-) operatörünü giriniz. a ve b de ğ işkenlerine iki tamsayı giriniz. Burada a ve/veya b de ğ erlerinden biri 0 girilmiş ise işlemin yapılamayaca ğ ını bir mesaj ile belirtiniz. ‘+’ operatörü için 1/a + 1/b, ‘-’ operatörü için 1/a – 1/b işlemlerinin sonucunu basit kesir cinsinden bulunuz. Bu kısım için switch komutunu kullanmalısınız. Örnek Çıktı: Isleminizi seciniz (+, -): + Iki tamsayi giriniz: 5 8 1/5 + 1/8 = 13/40 26

27 Örnek 17 (Devam): #include int main (void) { int no1,no2; char op; printf("Isleminizi seciniz (+, -): "); scanf("%c",&op); printf("Iki tamsayi giriniz: "); scanf("%d%d",&no1,&no2); if ((no1==0) || (no2==0)) printf("Islem yapilamiyor.\n"); else { switch(op) { case '+': printf("1/%d %c 1/%d = %d/%d\n",no1,op,no2,no1+no2,no1*no2); break; case '-': printf("1/%d %c 1/%d = %d/%d\n",no1,op,no2,no1-no2,no1*no2); break; default: printf("Yanlis operator girildi.\n"); } system("pause"); return (0); } 27


"1 Bölüm 4 Seçme Komutları Alıştırmalar Bu bölümdeki problemler “C Dersi Çözümlü Problem Kitabı”, N. E. Ça ğ ıltay, C. E. Selbes, G. Tokdemir, ve Ç. Turhan," indir ppt

Benzer bir sunumlar


Google Reklamları