Bölüm 4 Seçme Komutları Alıştırmalar

Slides:



Advertisements
Benzer bir sunumlar
Soru1 : Bir borcun faizi, basit olarak aşağıdaki formülle hesaplanır:
Advertisements

Bölüm 4 Seçme Komutları Koşul İfadesi if Komutu Bileşik Komut
Soru1: 1’den 4’e kadar olan tamsayıları ekrana tek satırda görülecek şekilde yazdıran bir programı aşağıdaki metotları kullanarak yazınız. Bir printf ifadesi.
Bölüm 4 Seçme Komutları Koşul İfadesi if Komutu Bileşik Komut
Bölüm 2 C Dilinin Temelleri
switch - case Yapısı Döngü Yapıları
Kontrol Çevrimleri FOR WHILE DO-WHILE IF-ELSE SWITCH-CASE-DEFAULT
Atama ve Girdi/Çıktı Komutları
Bölüm 2: Program Denetimi
Soru1: kuvvet(taban,us) Şeklinde bir yinelenen fonksiyon yazın
Bölüm 10 Yapılar ve Birleşimler
Bölüm 2 C Dilinin Temelleri Genel Kavramlar
Yapısal Program Geliştirme – if, if-else
Program Kontrol İfadeleri
Soru1: Kullanıcıdan iki tam sayı girmesini isteyen ve daha sonra büyük olan sayı ile beraber ‘en büyüktür’ ifadesi yazan, ancak sayılar birbirine eşitse.
Fonksiyonlar.
C++ Temelleri C++ genel amaçlı, nesne tabanlı, yüksek seviye programlama dilidir.
C ile Programlamaya Giriş
Kontrol Yapıları ve Döngüler
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
DEĞİŞKENLER.
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 2: Koşula Göre İşlem Yapma
Diziler Adres Kavramı Nesnelerin Adresleri sizeof Operatörü
Diziler Dizi Tanımı Dizi Elemanlarına Değer Atama Diziler ve Göstergeler 2-Boyutlu Diziler.
PHP'de Program Denetimi
C Programlama Diline Giriş
PROGRAM DENETİM DEYİMLERİ
The if statement. if Şartlı kontrol Koşul değimi doğru (1) yada yanlış (0) değeri üretir. Şartın doğru olması durumunda if satırından sonraki değimler.
Bölüm 2 C Diline Genel Bir Bakış. 1/29 /* Örnek1- toplama.c Klavyeden girilen iki tamsayının toplamını bulup ekrana yazar. Erkan Yasan */ #include.
Bu Günkü Konular If yapısı ve karşılaştırma operatörleri
Bugünkü Konular Döngüler ve Akış Diyagramları C de Döngü Tanımlama
2. HAFTA 2. Hafta.
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
Bölüm 3 Atama ve Girdi/Çıktı Komutları Bölüm 3 Atama ve Girdi/Çıktı Komutları Atama Komutu Operatörler İsim Sabitleri Veri Tipi Dönüşümü Çıktı Fonksiyonu.
BİLGİSAYAR programlama II
4. Hafta1 4. HAFTA. 4. Hafta2 Fonksiyonlar  Büyük problemler, küçük parçalara bölünerek kolay çözülür  Yazılımlar benzer modüller içerirler  Hata ayıklama.
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
Döngü Komutları. for deyimi bir alt limitten, bir üst limite kadar programın belirli bir parçasını tekrar eder. for deyiminde sayaç artış oranı da verilmelidir.
BM-103 Programlamaya Giriş Güz 2012 (3. Sunu)
Fonksiyonlar.
BİLGİSAYAR PROGRAMLAMA Ders 4: Koşula Göre İşlem Yapma Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği.
BİLGİSAYAR PROGRAMLAMA Ders 5: Döngüler
1 Bölüm 5 Döngü 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,
Bölüm 2 C Dilinin Temelleri Genel Kavramlar Yazım ve Noktalama Kuralları C Kütüphaneleri C Dilindeki Sözcükler Değer Sabitleri Veri Tipleri Değişkenler.
Örnek Sorular Bilgisayar Programlama BIL 107. Soru 1: Ekran çıktısında 66 yazması için boşlukları doldurunuz ______ i = 'A'; printf(____, i__); CEVAP:
Bölüm 5 Döngü Komutları while Komutu while Komutu Diğer Operatörler (Bileşik atama, artırma ve azaltma operatörleri ) Diğer Operatörler (Bileşik atama,
1 Bölüm 3 Atama ve Girdi/Çıktı Komutları Alıştırmalar Bu bölümdeki problemler “C Dersi Çözümlü Problem Kitabı”, N. E. Ça ğ ıltay, C. E. Selbes, G. Tokdemir,
1 Bölüm 2 C Dilinin Temelleri Alıştırmalar Bu bölümdeki problemler “C Dersi Çözümlü Problem Kitabı”, N. E. Ça ğ ıltay, C. E. Selbes, G. Tokdemir, ve Ç.
Algoritma ve Programlamaya Giriş Ders 5. C Programlama Dili - 2.
Bölüm 2 C Dilinin Temelleri
Bölüm 3 Atama ve Girdi/Çıktı Komutları
Bilgisayar Programlama BIL 107
BİLGİSAYAR PROGRAMLAMA Ders 8: Fonksiyonlar
C Programlama Diline Giriş
Bölüm 4 Seçme Komutları Koşul İfadesi if Komutu Bileşik Komut
BİLGİSAYAR PROGRAMLAMA Ders 5: Döngüler
BİLGİSAYAR PROGRAMLAMA Ders 5: Döngüler
Algoritma ve Programlamaya Giriş
Algoritma ve Programlamaya Giriş
Bölüm 2 C Dilinin Temelleri
Bölüm 3 Atama ve Girdi/Çıktı Komutları
PROGRAM KONTROL KOMUTLARI 1. if koşulu 2. if else koşulu
ARDUİNO Arduino Eğitimleri Bölüm 3 Programlama Dili Temelleri
Veri Tipleri 12/4/2018.
Bölüm 2: Program Denetimi
Bölüm 3 Atama ve Girdi/Çıktı Komutları
?: KARŞILAŞTIRMA OPERATÖRÜ
Bölüm 2 C Dilinin Temelleri
Aritmetik Operatörler
Sunum transkripti:

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.

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

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

Örnek 3: if ((kr1==‘a’)&&(kr2==‘s’)) if (kr3==‘i’) 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) 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? a*s Hiç bir şey basılmaz k-h

Örnek 4: Part a) Part b) if (x==50) a=53; else if (y==40) a=4; a=-4; Aşağıdaki komutu içiçe if 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; a=-4; Part b) switch (x) { case 50: a=53; break; default: switch (y) case 40: a=4; default: a=-4; }

Örnek 5: 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;

Örnek 6: 3025 ozel sayidir. ÇIKTI: 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. 3025 girdisi için bu programın çıktısını bulunuz. #include <stdio.h> #include <stdlib.h> 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); printf("%d ozel sayi degildir.\n",sayi); } system("pause"); return (0); ÇIKTI: 3025 ozel sayidir.

Örnek 7: Ucretiniz: 170.0000 ÇIKTI: 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 <stdio.h> #include <stdlib.h> 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; case 3: ucret=12.5*(saat%40)+875; printf("Ucretiniz: %8.4f\n",ucret); system("pause"); return (0); ÇIKTI: Ucretiniz: 170.0000

Örnek 8: #include <stdio.h> #include <math.h> 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 <stdio.h> #include <math.h> 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); }

Ö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: 3502 17’ye bolunuyor.

Örnek 9 (Devam): #include <stdio.h> #include <stdlib.h> 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); }

Ö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 18.80 TL BugsBunny B 17.80 TL Spiderman S 19.20 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: 348.88 TL.

Örnek 10 (Devam): #include <stdio.h> 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); }

Ö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.

Örnek 11 (Devam): #include <stdio.h> #include <stdlib.h> 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); }

Örnek 12: 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: 2007 2007 yili artik yil degildir.

Örnek 12 (Devam): #include <stdio.h> #include <stdlib.h> 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); system("pause"); return (0); }

Ö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ı 180o olmalıdır. Üçgenin açılarının her biri 90o’den küçük ise dar açılı; herhangi bir açısı 90o’den büyükse geniş açılı; bir açısı 90o ise dik üçgendir. Örnek Çıktı: Uc aci giriniz: 30 90 60 Bu bir dik acili ucgendir.

Örnek 13 (Devam): #include <stdio.h> #include <stdlib.h> 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"); printf("Acilar ucgen olusturmaz.\n"); system("pause"); return (0); }

Ö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. Bir karakter giriniz: & & bir harf degildir.

Örnek 14 (Devam): #include <stdio.h> #include <stdlib.h> 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); }

Ö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.

Örnek 15 (Devam): #include <stdio.h> #include <stdlib.h> 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); }

Ö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: 23.5 2.5 23.5 / 2.5 = 9.4

Örnek 16 (Devam): #include <stdio.h> #include <stdlib.h> 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); case '*': printf("%0.1f %c %0.1f = %0.1f\n",no1,op,no2,no1*no2); case '/': printf("%0.1f %c %0.1f = %0.1f\n",no1,op,no2,no1/no2); default: printf("Yanlis operator girildi.\n"); } system("pause"); return (0);

Ö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

Örnek 17 (Devam): #include <stdio.h> #include <stdlib.h> 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); default: printf("Yanlis operator girildi.\n"); } system("pause"); return (0);