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,

Slides:



Advertisements
Benzer bir sunumlar
BPR151 ALGORİTMA VE PROGRAMLAMA - I
Advertisements

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.
Nöbetçi Kontrollü Döngü
Bölüm 2 C Dilinin Temelleri
switch - case Yapısı Döngü Yapıları
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 5 Döngü Komutları while Komutu Diğer Operatörler Bileşik Komut
Bölüm 2 C Dilinin Temelleri Genel Kavramlar
Program Kontrol İfadeleri
Makine Müh. & Jeoloji Müh.
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.
BPR152 ALGORİTMA VE PROGRAMLAMA - II
C++ Temelleri C++ genel amaçlı, nesne tabanlı, yüksek seviye programlama dilidir.
BM-103 Programlamaya Giriş Güz 2014 (4. Sunu)
PROGRAM DENETİM DEYİMLERİ
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.
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.
Algoritmalar ve Programlama I Ders 5: Operatörler
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.
3. HAFTA 3. Hafta.
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
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.
İnternet Programlama-I
Fonksiyonlar.
Adım Adım Algoritma.
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
BİLGİSAYAR PROGRAMLAMA Ders 5: Döngüler
PROGRAMLAMA MANTIĞI, ALGORİTMA PROBLEM ÇÖZME
BİLGİSAYAR PROGRAMLAMA Ders 6: Diziler Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği.
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.
5. HAFTA Mart Discussion: comp.soft-sys.matlab An unmoderated newsgroup that focuses on the.
Bölüm 4 Seçme Komutları Alıştırmalar
Ö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,
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
Bölüm 8 Diziler Dizi Tanımı Dizi Elemanlarına Değer Atama Diziler ve Göstergeler 2-Boyutlu Diziler.
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 3 Atama ve Girdi/Çıktı Komutları
Bilgisayar Programlama BIL 107
BİLGİSAYAR PROGRAMLAMA Ders 6: Diziler
BİLGİSAYAR PROGRAMLAMA Ders 6: Diziler
BM-103 Programlamaya Giriş Güz 2016 (5. Sunu)
BÖLÜM 5 POINTER’LER (İŞARETÇİLER)
BİLGİSAYAR PROGRAMLAMA Ders 5: Döngüler
BİLGİSAYAR PROGRAMLAMA Ders 5: Döngüler
Algoritma ve Programlamaya Giriş
Bölüm 8 Diziler Dizi Tanımı Dizi Elemanlarına Değer Atama
tanımları yapabilmeniz gerekmektedir .
Bölüm 9 Dizgiler Dizgi Tanımı Dizgi Girdi İşlemleri
Bölüm 2 C Dilinin Temelleri
Bölüm 8 Diziler Dizi Tanımı Dizi Elemanlarına Değer Atama
Bölüm 3 Atama ve Girdi/Çıktı Komutları
Bilgisayar Bilimi Problem Çözme Süreci-2.
Bölüm 2: Program Denetimi
Discussion: comp.soft-sys.matlab
Bölüm 3 Atama ve Girdi/Çıktı Komutları
Bölüm 2 C Dilinin Temelleri
Aritmetik Operatörler
C ile Programlamaya Giriş
Diziler(Arrays).
Sunum transkripti:

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, 2. Baskı, Ada Matbaacılık Ltd. Şti., 2009 kitabındaki problemlerdendir.

Örnek 1: 2 Aşa ğ ıdaki atama komutlarını, bileşik atama operatörlerini kullanarak yeniden yazınız. yar*=5; alfa+=n+3; has-=42*t; beta/=25+k; yar=yar*5; alfa=(n+3)+alfa; has=has-42*t; beta=beta/(25+k); vay*=(st+3)*(st/4); vay=vay*(st+3)*(st/4);

Örnek 2: 3 Aşa ğ ıda verilen program parçalarının çıktılarını bulunuz i=5; m=-i++; printf(“%d %d”,i,m); i=5; m=-i++; printf(“%d %d”,i,m); i=2;k=1; m=i k; printf(“%d %d %d”,i,k,m); i=2;k=1; m=i k; printf(“%d %d %d”,i,k,m); i=1;k=1;m=1; m+=++i + k++; printf(“%d %d %d”,i,k,m); i=1;k=1;m=1; m+=++i + k++; printf(“%d %d %d”,i,k,m); i=1;k=5;m=2; m*=-i * k++; printf(“%d %d %d”,i,k,m); i=1;k=5;m=2; m*=-i * k++; printf(“%d %d %d”,i,k,m);

Örnek 3: 4 Aşa ğ ıda verilen program parçalarının çıktılarını bulunuz st=1; while(st<4) { printf(“%3d”,st); st++; } st=1; while(st<4) { printf(“%3d”,st); st++; } st=1; while(st>-4) { printf(“%3d”,st); st--; } st=1; while(st>-4) { printf(“%3d”,st); st--; } st=1; while(st<14) { printf(“%3d”,st); st=st+3; } st=1; while(st<14) { printf(“%3d”,st); st=st+3; } st=1; while(st>=-18) { printf(“%3d”,st+2); st=st*(-2); } st=1; while(st>=-18) { printf(“%3d”,st+2); st=st*(-2); }

Örnek 4: Aşa ğ ıda verilen program parçalarının çıktılarını bulunuz a=25; bayrak=1; while(bayrak) { if(a>10) { printf("%d\n",a); a=a-3; } else bayrak=0; } a=25; bayrak=1; while(bayrak) { if(a>10) { printf("%d\n",a); a=a-3; } else bayrak=0; } a=2; b=3; while(a+b<41) { a=a+b; b=b+a; printf("%2d %2d\n",a,b); } a=2; b=3; while(a+b<41) { a=a+b; b=b+a; printf("%2d %2d\n",a,b); }

Örnek 5: 6 Aşa ğ ıdaki while döngülerini inceleyerek “Merhaba” sözcü ğ ünün kaç kere çıktıda görüntülendi ğ ini belirtiniz. Sonsuz kere 6 kere s=10; while(s==10) printf(“Merhaba”); s=10; while(s==10) printf(“Merhaba”); s=10; while(s<=15) { printf(“Merhaba”); s++; } s=10; while(s<=15) { printf(“Merhaba”); s++; } 1 kere s=10; while(s<=10) { printf(“Merhaba”); s++; } s=10; while(s<=10) { printf(“Merhaba”); s++; } Hiç basılmaz s=10; while(s<10) { printf(“Merhaba”); s++; } s=10; while(s<10) { printf(“Merhaba”); s++; } 1 kere s=10; while(s>9) { printf(“Merhaba”); s--; } s=10; while(s>9) { printf(“Merhaba”); s--; }

Örnek 6: Aşa ğ ıda verilen matematiksel ifadeleri while, for ve do-while döngülerini kullanarak hesaplayacak olan program parçacıklarını yazınız. a b c.1+1/2+1/ /100 d.1-1/2+1/3-1/ /100 Aşa ğ ıda verilen matematiksel ifadeleri while, for ve do-while döngülerini kullanarak hesaplayacak olan program parçacıklarını yazınız. a b c.1+1/2+1/ /100 d.1-1/2+1/3-1/ /100 7

8

Örnek 7: 9 Aşa ğ ıda verilen program parçalarının çıktılarını bulunuz for (st=1;st<4;st++) printf("%d\n",st); for (st=1;st<4;st++) printf("%d\n",st); for (st=1;st>-4;st--) printf("%d\n",st); for (st=1;st>-4;st--) printf("%d\n",st); for (st=1;st<14;st=st+3) printf("%d\n",st); for (st=1;st<14;st=st+3) printf("%d\n",st); for (st=1;st>=-18;st=st*(-2)) printf("%d\n",st+2); for (st=1;st>=-18;st=st*(-2)) printf("%d\n",st+2);

Örnek 8: 10 Aşa ğ ıdaki for döngülerini inceleyerek “Merhaba” sözcü ğ ünün kaç kere çıktıda görüntülendi ğ ini belirtiniz. 1 kere Hiç basılmaz for (s=10;s==10;s++) printf(“Merhaba”); for (s=10;s==10;s++) printf(“Merhaba”); for (s=10;s>=15;s++) printf(“Merhaba”); for (s=10;s>=15;s++) printf(“Merhaba”); 1 kere for (s=10;s<=10;s++) printf(“Merhaba”); for (s=10;s<=10;s++) printf(“Merhaba”); Hiç basılmaz for (s=10;s<10;s++) printf(“Merhaba”); for (s=10;s<10;s++) printf(“Merhaba”); 4 kere for (s=13;s>9;s--) printf(“Merhaba”); for (s=13;s>9;s--) printf(“Merhaba”);

Örnek 9: Aşa ğ ıda verilen program parçasını for ve do-while döngülerini kullanarak tekrar yazınız. printf(“Pozitif bir sayi giriniz:”); scanf(“%d”,&sayi); sayi_hane=0; while(sayi>0) { sayi=sayi/10; sayi_hane++; } Aşa ğ ıda verilen program parçasını for ve do-while döngülerini kullanarak tekrar yazınız. printf(“Pozitif bir sayi giriniz:”); scanf(“%d”,&sayi); sayi_hane=0; while(sayi>0) { sayi=sayi/10; sayi_hane++; } 11 sayi_hane=0; printf(“Pozitif bir sayi giriniz:”); for(scanf(“%d”,&sayi);sayi>0;sayi=sayi/10) sayi_hane++; sayi_hane=0; printf(“Pozitif bir sayi giriniz:”); for(scanf(“%d”,&sayi);sayi>0;sayi=sayi/10) sayi_hane++; printf(“Pozitif bir sayi giriniz:”); scanf(“%d”,&sayi); sayi_hane=0; do { sayi=sayi/10; sayi_hane++; }while(sayi>0); printf(“Pozitif bir sayi giriniz:”); scanf(“%d”,&sayi); sayi_hane=0; do { sayi=sayi/10; sayi_hane++; }while(sayi>0);

Örnek 10: 12 Aşa ğ ıda verilen program parçalarının çıktılarını bulunuz st=1; do { printf("%d\n",st); st++; }while (st<4); st=1; do { printf("%d\n",st); st++; }while (st<4); st=1; do { printf("%d\n",st); st--; }while (st>-4); st=1; do { printf("%d\n",st); st--; }while (st>-4); st=1; do { printf("%d\n",st); st=st+3; }while (st<14); st=1; do { printf("%d\n",st); st=st+3; }while (st<14); st=1; do { printf("%d\n",st+2); st=st*(-2); }while (st>=-18); st=1; do { printf("%d\n",st+2); st=st*(-2); }while (st>=-18);

Örnek 11: 13 Aşa ğ ıdaki do-while döngülerini inceleyerek “Merhaba” sözcü ğ ünün kaç kere çıktıda görüntülendi ğ ini belirtiniz. Sonsuz kere 1 kere s=10; do { printf(“Merhaba”); }while(s==10); s=10; do { printf(“Merhaba”); }while(s==10); s=10; do { printf(“Merhaba”); s++; }while(s>=15); s=10; do { printf(“Merhaba”); s++; }while(s>=15); 3 kere s=8; do { printf(“Merhaba”); s++; }while(s<=10); s=8; do { printf(“Merhaba”); s++; }while(s<=10); 1 kere s=10; do { printf(“Merhaba”); s++; }while(s<10); s=10; do { printf(“Merhaba”); s++; }while(s<10); 1 kere s=10; do { printf(“Merhaba”); s--; }while(s>9); s=10; do { printf(“Merhaba”); s--; }while(s>9);

Örnek 12: Aşa ğ ıda verilen program parçalarının çıktılarını bulunuz. a=0; while(a<15) { for(b=1;b<3;b++) printf("%3d %3d\n",a,b); a++; printf("%3d %3d\n",a,b); } a=0; while(a<15) { for(b=1;b<3;b++) printf("%3d %3d\n",a,b); a++; printf("%3d %3d\n",a,b); }

Örnek 12 (Devam): for(a=10;a>1;a-=2) { b=1; while(b<3) { printf("%3d %3d\n",a,b); ++b; } a++; printf("%3d %3d\n",a,b); } for(a=10;a>1;a-=2) { b=1; while(b<3) { printf("%3d %3d\n",a,b); ++b; } a++; printf("%3d %3d\n",a,b); }

Örnek 12 (Devam): a=10; do { b=1; do { printf("%3d %3d\n",a,b); ++b; }while(b<=5); printf("%3d %3d\n",a,b); a=a+2; }while(a!=16); a=10; do { b=1; do { printf("%3d %3d\n",a,b); ++b; }while(b<=5); printf("%3d %3d\n",a,b); a=a+2; }while(a!=16);

Örnek 13: Aşa ğ ıda verilen programın çıktısını bulunuz #include int main(void) { int i, j,k=4; for(i =1; i<8; i++) { if(k>=100) k=k/3; else k=k*2; j=k; while (j%5>0) j++; printf(“%5d/n”,j); } return (0); } #include int main(void) { int i, j,k=4; for(i =1; i<8; i++) { if(k>=100) k=k/3; else k=k*2; j=k; while (j%5>0) j++; printf(“%5d/n”,j); } return (0); } 17

Örnek 14: Aşa ğ ıda verilen şekli ekranda görüntüleyen program parçasını yazınız. *** Aşa ğ ıda verilen şekli ekranda görüntüleyen program parçasını yazınız. *** 18 int i,j; for(i=1;i<=6;i++) { for(j=6-i;j>=1;j--) printf("%c",' '); printf("***\n"); }

Örnek 15: m ve n pozitif tamsayılarını girdi olarak alan ve bu iki sayı arasındaki (m ve n dahil) tek sayıların toplamını ve ortalamasını çift sayıların toplamını ve ortalamasını hesaplayan bir C programı yazınız. Bu problemde n de ğ eri m’den büyük olmalıdır, aksi durumda program hata mesajı vermelidir. Örnek Çıktı: m ve n pozitif tamsayılarını girdi olarak alan ve bu iki sayı arasındaki (m ve n dahil) tek sayıların toplamını ve ortalamasını çift sayıların toplamını ve ortalamasını hesaplayan bir C programı yazınız. Bu problemde n de ğ eri m’den büyük olmalıdır, aksi durumda program hata mesajı vermelidir. Örnek Çıktı: 19

Örnek 15 (Devam): #include int main(void) { int i,m,n; int tek_toplam=0,cift_toplam=0; int tek_sayac=0,cift_sayac=0; printf("Iki tamsayi giriniz: "); scanf("%d%d",&m,&n); if (m<n) { for (i=m;i<=n;i++) { if(i%2==0) { cift_toplam+=i; cift_sayac++; } else { tek_toplam+=i; tek_sayac++; } printf("Tek sayilarin toplami: %d\n",tek_toplam); printf("Tek sayilarin ortalamasi: %f\n",(float)tek_toplam/tek_sayac); printf("Cift sayilarin toplami: %d\n",cift_toplam); printf("Cift sayilarin ortalamasi: %f\n",(float)cift_toplam/cift_sayac); } else printf("n degeri m'den buyuk degildir!!\n"); return 0; } 20

Örnek 16: 1,1,2,3,5,8,13,21,34,... serisi bir Fibonacci serisidir. Bu serinin başlangıç de ğ erleri 1 ve 1 olup, takip eden sayılar kendinden önce gelen iki sayının toplamıyla oluşturulur. İ lk 20 Fibonacci sayısını bulup ekranda görüntüleyecek C programını yazınız. 21

Örnek 16 (Devam): #include int main(void) { int fib1,fib2,sayac,fibyeni; fib1=1; fib2=1; printf("%5d\n%5d\n",fib1,fib2); sayac=2; while(sayac<20) { fibyeni=fib1+fib2; sayac++; printf("%5d\n",fibyeni); fib1=fib2; fib2=fibyeni; } system("pause"); return 0; } 22

Örnek 17: Tamsayı n’i girdi olarak alan ve n’nin de ğ erine göre g(n) fonksiyonunu hesaplayan bir C programı yazınız. E ğ er n negatif bir sayı ise program hata mesaji vermelidir n n≥10 g(n)= n! 0≤n≤9 Bu programda her hesaplama sonunda kullanıcının yeni bir n de ğ eri girip girmeyece ğ i sorulmalıdır. Tamsayı n’i girdi olarak alan ve n’nin de ğ erine göre g(n) fonksiyonunu hesaplayan bir C programı yazınız. E ğ er n negatif bir sayı ise program hata mesaji vermelidir n n≥10 g(n)= n! 0≤n≤9 Bu programda her hesaplama sonunda kullanıcının yeni bir n de ğ eri girip girmeyece ğ i sorulmalıdır. 23

Örnek 17 (Devam): #include int main(void) { int n,i,carpim,toplam; int cevap; do { printf("n degerini giriniz: "); scanf("%d",&n); if (n>=0) { if(n<=9) { carpim=1; for(i=2;i<=n;i++) carpim*=i; printf("g(%d)=%d\n",n,carpim); } else { toplam=0; for(i=1;i<=n;i++) toplam+=i; printf("g(%d)=%d\n",n,toplam); } else printf("n degeri negatif olamaz!!\n"); printf("Yeni bir n degeri girmek istiyor musunuz? (1- Evet / 2- Hayir): "); scanf("%d",&cevap); }while(cevap==1); system("pause"); return 0; } 24

Örnek 18: Bir cümledeki karakter sayısını ve kelime sayısını bulacak olan programı yazınız. Cümlenin sonu nokta ile sonlanırken kelimeler arasında bir boşluk bulunmaktadır. Örnek Çıktı: Cumle giriniz: Tunca eve git. Karakter sayisi: 14 Kelime sayisi: 3 Bir cümledeki karakter sayısını ve kelime sayısını bulacak olan programı yazınız. Cümlenin sonu nokta ile sonlanırken kelimeler arasında bir boşluk bulunmaktadır. Örnek Çıktı: Cumle giriniz: Tunca eve git. Karakter sayisi: 14 Kelime sayisi: 3 25

Örnek 18 (Devam): #include int main(void) { int karakter_sayi,kelime_sayi; char karakter; kelime_sayi=0; karakter_sayi=0; printf("Cumle giriniz: "); scanf("%c",&karakter); while(karakter!='.') { karakter_sayi++; if(karakter==' ') kelime_sayi++; scanf("%c",&karakter); } printf("Karakter sayisi: %d\n",karakter_sayi+1); printf("Kelime sayisi: %d\n",kelime_sayi+1); system("pause"); return 0; } 26

Örnek 19: m ve n pozitif tamsayılarını girdi olarak alan ve bu iki sayı arasındaki (m ve n dahil) bütün asal sayıları ekranda gösterecek C programını yazınız. 27

Örnek 19 (Devam): #include int main(void) {int m,n; int num,bayrak,i; printf("Pozitif iki tamsayi giriniz: "); scanf("%d%d",&m,&n); printf("\n %d-%d arasindaki butun asal sayilar:",m,n); printf("\n \n"); for (num=m ; num<=n ; num=num+1) { bayrak=1; i=2; while ((i<num) && (bayrak==1)) { if((num%i)==0) bayrak=0; i=i+1; } if (bayrak==1 && num!=1) printf("%3d",num); } printf("\n"); system("pause"); return 0; } 28 Eğer kullanıcı m için 1 değeri girmişse ekrana 1 rakamının yazılmasını engellemek gerekir. Çünkü 1 asal sayı değildir.

Örnek 20: Bir pozitif tamsayı olan n de ğ eri ile bir reel sayı olan x de ğ erini girdi olarak alan ve serisini birden fazla n ve x çiftleri için hesaplayan programı yazınız. Programda her seri hesaplamasından sonra kullanıcıya devam edilip edilmeyece ğ i sorulmalıdır. Kullanıcı devam etmek istiyorsa evet anlamında “E” veya “e” girmelidir. Di ğ er karakter girişlerinde ise program sonlandırılmalıdır. Örnek Çıktı: Pozitif tamsayi: 3 Reel sayi: 1.0 Seri: 9.00 Devam edecek misiniz: E Pozitif tamsayi: 2 Reel sayi: 1.5 Seri: 1.04 Devam edecek misiniz: t Hoscakalin! Bir pozitif tamsayı olan n de ğ eri ile bir reel sayı olan x de ğ erini girdi olarak alan ve serisini birden fazla n ve x çiftleri için hesaplayan programı yazınız. Programda her seri hesaplamasından sonra kullanıcıya devam edilip edilmeyece ğ i sorulmalıdır. Kullanıcı devam etmek istiyorsa evet anlamında “E” veya “e” girmelidir. Di ğ er karakter girişlerinde ise program sonlandırılmalıdır. Örnek Çıktı: Pozitif tamsayi: 3 Reel sayi: 1.0 Seri: 9.00 Devam edecek misiniz: E Pozitif tamsayi: 2 Reel sayi: 1.5 Seri: 1.04 Devam edecek misiniz: t Hoscakalin! 29

Örnek 20 (Devam): #include int main(void) { int n,i; float x, seri; char devam; do { printf("\nPozitif tamsayi: "); scanf("%d",&n); printf("Reel sayi: "); scanf("%f",&x); seri=0; for (i=1;i<=2*n-1; i+=2) seri+= i/pow(x,i+1); printf("Seri:%6.2f\n", seri); printf("Devam edecek misiniz: "); scanf("%c",&devam); }while ((devam=='E')||(devam=='e')); printf("Hoscakalin!\n"); system("pause"); return(0); } 30

Örnek 21: Yazaca ğ ınız C programında pozitif bir tamsayıyı girdi olarak alınız. Bu sayının basamaklarını çarparak yeni bir sayı elde ediniz. Bu yeni sayı tek basamaklı de ğ ilse tekrar basamakları çarpınız ve başka bir sayı elde ediniz. Basamakların çarpılarak yeni sayı elde etme işlemi, tek basamaklı bir sayı elde edinceye kadar devam etmelidir. Örne ğ in; girilen sayı 9838 ise basamakların çarpımı 9x8x3x8 olan 1728 sayısı elde edilir sayısının basamakları tekrar çarpılarak (1x7x2x8) 112 sayısı elde edilir. 112 sayısının basamakları çarpıldı ğ ında ise (1x1x2) tek basamaklı bir sayı olan 2 elde edilir ve program sonlandırılır. Örnek Çıktı: Pozitif sayi giriniz: sayi: sayi: sayi: 2 Yazaca ğ ınız C programında pozitif bir tamsayıyı girdi olarak alınız. Bu sayının basamaklarını çarparak yeni bir sayı elde ediniz. Bu yeni sayı tek basamaklı de ğ ilse tekrar basamakları çarpınız ve başka bir sayı elde ediniz. Basamakların çarpılarak yeni sayı elde etme işlemi, tek basamaklı bir sayı elde edinceye kadar devam etmelidir. Örne ğ in; girilen sayı 9838 ise basamakların çarpımı 9x8x3x8 olan 1728 sayısı elde edilir sayısının basamakları tekrar çarpılarak (1x7x2x8) 112 sayısı elde edilir. 112 sayısının basamakları çarpıldı ğ ında ise (1x1x2) tek basamaklı bir sayı olan 2 elde edilir ve program sonlandırılır. Örnek Çıktı: Pozitif sayi giriniz: sayi: sayi: sayi: 2 31

Örnek 21 (Devam): #include int main(void) { int no,carpim, i; printf("Pozitif sayi giriniz: "); scanf("%d",&no); i=1; do { carpim=1; /*Basamaklarin carpimi*/ while(no>0) { carpim*=(no%10); no/=10; } printf("%d. sayi: %d\n", i++, carpim); no=carpim; /*Tek basamak kontrolu*/ }while(no>9); system("pause"); return(0); } 32

Örnek 22: Bir ö ğ rencinin genel not ortalaması (GNO), toplam sayısal not de ğ erinin, toplam kredi saatine bölünmesiyle bulunmaktadır. Derslere ait kredi saatini ve harf notlarını girdi olarak alıp, ö ğ rencinin genel not ortalamasını hesaplayan bir program yazınız. Harf notlarına ait katsayılar: A’nın 4; B’nin 3; C’nin 2; D’nin 1 ve F’nin 0’dır. Programınız derslere ait bilgi girişinin yapılıp yapılmayaca ğ ını kullanıcıya sormalıdır. Aşa ğ ıdaki örnekte ö ğ rencinin genel not ortalamasının nasıl hesaplandı ğ ı gösterilmiştir. DersKredi SaatiHarf NotuSayısal Not Ders1 5 C 5*2=10 Ders2 3 A 3*4=12 Ders3 4 D 4*1=4 Toplam Dolayısıyla, ö ğ rencinin genel not ortalaması 26/12 olarak hesaplanır ve 2.17 sonucu elde edilir. Örnek Çıktı: Bir ö ğ rencinin genel not ortalaması (GNO), toplam sayısal not de ğ erinin, toplam kredi saatine bölünmesiyle bulunmaktadır. Derslere ait kredi saatini ve harf notlarını girdi olarak alıp, ö ğ rencinin genel not ortalamasını hesaplayan bir program yazınız. Harf notlarına ait katsayılar: A’nın 4; B’nin 3; C’nin 2; D’nin 1 ve F’nin 0’dır. Programınız derslere ait bilgi girişinin yapılıp yapılmayaca ğ ını kullanıcıya sormalıdır. Aşa ğ ıdaki örnekte ö ğ rencinin genel not ortalamasının nasıl hesaplandı ğ ı gösterilmiştir. DersKredi SaatiHarf NotuSayısal Not Ders1 5 C 5*2=10 Ders2 3 A 3*4=12 Ders3 4 D 4*1=4 Toplam Dolayısıyla, ö ğ rencinin genel not ortalaması 26/12 olarak hesaplanır ve 2.17 sonucu elde edilir. Örnek Çıktı: 33 Ders 3: Kredi saatini giriniz: 4 Harf notunu giriniz: D Yeni ders bilgisi girecekseniz (E/e) giriniz: H Toplam kredi saati: 12 Toplam not: Genel Not Ortalamasi: 2.17 Ders 3: Kredi saatini giriniz: 4 Harf notunu giriniz: D Yeni ders bilgisi girecekseniz (E/e) giriniz: H Toplam kredi saati: 12 Toplam not: Genel Not Ortalamasi: 2.17 Ders 1: Kredi saatini giriniz: 5 Harf notunu giriniz: C Yeni ders bilgisi girecekseniz (E/e) giriniz: E Ders 2: Kredi saatini giriniz: 3 Harf notunu giriniz: A Yeni ders bilgisi girecekseniz (E/e) giriniz: e Ders 1: Kredi saatini giriniz: 5 Harf notunu giriniz: C Yeni ders bilgisi girecekseniz (E/e) giriniz: E Ders 2: Kredi saatini giriniz: 3 Harf notunu giriniz: A Yeni ders bilgisi girecekseniz (E/e) giriniz: e

Örnek 22 (Devam): #include int main(void) { int kredi, derssayi=1, kreditoplam=0; char not, cevap,enter; float gno, toplam=0; do{ printf("\nDers %d:\n", derssayi++); printf("Kredi saatini giriniz: "); scanf("%d",&kredi); scanf("%c", &enter); /*Kredilerin toplami */ kreditoplam += kredi; printf("Harf notunu giriniz: "); scanf("%c",&not); scanf("%c", &enter); 34 /*Harf katsayilarinin toplami */ if (not=='A') toplam+= kredi *4; else if (not=='B') toplam+= kredi *3; else if (not=='C') toplam+= kredi *2; else if (not=='D') toplam+= kredi; else toplam+= kredi *0; printf("Yeni ders bilgisi girecekseniz (E/e) giriniz: "); scanf("%c",&cevap); /*Devam kontrolu */ }while( cevap=='e' || cevap=='E'); /*Ortalama hesabi */ gno= (float) toplam / kreditoplam; printf("\nToplam kredi saati: %d\n", kreditoplam); printf("Toplam not: %5.2f\n", toplam); printf("Genel Not Ortalamasi: %5.2f\n", gno); system("pause"); return(0); }

EV ÖDEV İ : E ğ er kullanıcı yanlış bir harf notu girerse programda ne gibi bir aksaklık oluşur. Bu aksaklı ğ ı gidermek için programda gerekli düzeltmeleri yaparak önlem alınız. Örnek 22 (Devam):

Örnek 23: Yazaca ğ ınız C programı ile pozitif bir tamsayı olan n’yi girdi olarak alınız. Daha sonra program eşitli ğ ini sa ğ layan ve n’den küçük veya eşit olan a, b, ve c tamsayı de ğ erlerini bulup ekranda göstermelidir. Örnek Çıktı: Pozitif bir tamsayi giriniz :15 a b c Yazaca ğ ınız C programı ile pozitif bir tamsayı olan n’yi girdi olarak alınız. Daha sonra program eşitli ğ ini sa ğ layan ve n’den küçük veya eşit olan a, b, ve c tamsayı de ğ erlerini bulup ekranda göstermelidir. Örnek Çıktı: Pozitif bir tamsayi giriniz :15 a b c

Örnek 23 (Devam): #include int main(void) { int n,a,b,c; printf("Pozitif bir tamsayi giriniz: "); scanf("%d",&n); printf(" a b c\n"); printf(" \n"); /*a,b,c degerleri */ for(a=1;a<=n;a++) for(b=1;b<=n;b++) for(c=1;c<=n;c++) /*Esitlik kontrolu */ if (pow(a,2.0)+pow(b,2.0)==pow(c,2.0)) printf("%4d%5d%5d\n",a,b,c); system("pause"); return(0); } 37