1 / 7

Soru1: kuvvet( taban,us ) Şeklinde bir yinelenen fonksiyon yazın. Fonksiyon

Soru1: kuvvet( taban,us ) Şeklinde bir yinelenen fonksiyon yazın. Fonksiyon

khuong
Télécharger la présentation

Soru1: kuvvet( taban,us ) Şeklinde bir yinelenen fonksiyon yazın. Fonksiyon

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Soru1:kuvvet(taban,us) Şeklinde bir yinelenen fonksiyon yazın. Fonksiyon taban^usgeri göndersin. Örneğin kuvvet(3,4)=3*3*3*3. Us değişkeninin, 1'e eşit yada daha büyük bir tamsayı olduğunu kabul edin.Yineleme basamağı taban^us = taban * taban^(us-1) şeklinde olmalı ve döngüden us, 1‘e eşit olduğunda çıkılmalıdır çünkü taban^1 = taban ‘dır. #include <stdio.h> #include <conio.h> double kuvvet(double taban,int us); int main() { double taban; int us; printf("Lutfensirasiiletabanveusu(tamsayi) giriniz: "); scanf("%lf%d",&taban,&us); printf("%.2f 'in %d' ncikuvveti: %.2f",taban,us,kuvvet(taban,us)); getch(); return 0; } double kuvvet(double taban,int us) { if(us==1) return taban; else return taban*kuvvet(taban,us-1); }

  2. Soru2: (Yineleme Fonksiyonun Görselleştirilmesi) Daha önce anlatılan faktöriyel fonksiyonunu çağıran parametresini her yinelemede ekrana yazdırın. Bu işlem 1’den 10 ‘a kadar olan sayıların faktöriyelleri için gerçekleştirilsin. #include <stdio.h> #include <conio.h> long faktoriyel(long f); void yinelemeG(int s); int main() { inti; for(i=1;i<=10;i++) printf("%3d!=%ld\n",i,faktoriyel(i)); getch(); return 0; } long faktoriyel(long sayi) { if(sayi<=1) return 1; else { yinelemeG(sayi); return(sayi*faktoriyel(sayi-1)); } } void yinelemeG(int s) { printf("Sayi= %*d\n",s,s); }

  3. Soru3: x ve y tam sayılarının ortak bölenlerinin en büyüğü (OBEB), her ikisini de tam bölen tam sayıların en büyüğüdür. x ve y sayılarının OBEB'ini bulan ver döndüren bir obebyineleme fonksiyonu yazınız. x ve y ‘ninOBEB'i yineleme fonksiyonunda şu şekilde ifade edilmelidir: Eğer y sıfır ise, obeb(x, y) = x, eğer y, sıfıra eşit değilse obeb(x, y) = obeb(y, x % y) #include <stdio.h> #include <conio.h> intobeb(intx,int y); int main() { int x; int y; printf("OBEB'ibulunacak x ve y tamsayilarinigiriniz:"); scanf("%d%d",&x,&y); printf("Bu sayilaricin OBEB: %d",obeb(x,y)); getch(); return 0; } intobeb(intx,int y) { if(y==0) return x; else return obeb(y,x%y); }

  4. Soru4: main fonksiyonunun kendi kendini çağırmasıyla 500’e kadar sayan bir sayaç programı yazınız. #include <stdio.h> #include <conio.h> int main() { static inti=1; printf("%d\n",i); i++; if(i>500) { getch(); return 0; } else main(); }

  5. Soru5: Notları [0, 100] aralığında olacak şekilde 10 öğrencinin notları giriliyor. Bu notların hepsini, en yüksek puanlı öğrencinin puanı 100 olacak şekilde öteleyip sonra da ötelenmiş puanlara ekrana yazdıran ve bu puanlara göre ortalama hesaplayarak bu ortalamanın altında hangi öğrencilerin kaldığını yazdıran programı yazın. #include <stdio.h> #include <conio.h> #define BOYUT 10 int main() { inti,d[BOYUT],max=0,ek=0,top=0; floatort; for(i=0;i<BOYUT;i++) { printf("%d. not:",(i+1)); scanf("%d",&d[i]); if(d[i]>max) max=d[i]; } ek=100-max; printf("Otelenmis notlar\n"); for(i=0;i<BOYUT;i++) { d[i]=d[i]+ek; printf("%d. not:%d\n",(i+1),d[i]); top+=d[i]; } ort= 1.0*top/BOYUT; printf("Kalan ogrenciler\n"); for(i=0;i<BOYUT;i++) { if(d[i]<ort) printf("%d. ogr. kaldi.\n",(i+1)); } getch(); return 0; }

  6. Soru6: Tek belirteçli(boyut) bir dizi kullanarak, kullanıcıdan 10 ile 100 arasında en fazla 20 tamsayı alarak bunların tekrarlı olanlarını göz ardı edecek biçimde ekrana yazdıran programı yazınız. Mümkün olan en küçük diziyi kullanınız. #include <stdio.h> #include <conio.h> #define MAX 10 int main() { intsayi; intsaydizi[MAX]; int k=0; inti; int dup; printf("Lutfen 10-100 arasibirtamsayigiriniz:(Bitirmekicin -1) "); scanf("%d",&sayi); while(sayi !=-1 && k<MAX) { if(sayi<10 || sayi>100) { printf("Hataligiristaptiniz!\n"); printf("Lutfen 10-100 arasibirtamsayigiriniz:(Bitirmekicin -1) "); scanf("%d",&sayi); continue; }

  7. dup=1; for(i=0;i<k;i++) { if(sayi==saydizi[i]) dup=0; } if(dup==1) { saydizi[k]=sayi; k++; } printf("Lutfen 10-100 arasibirtamsayigiriniz:(Bitirmekicin -1) "); scanf("%d",&sayi); } printf("Tekrarsizsayilar:\n"); for(i=0;i<k;i++) { printf("%4d",saydizi[i]); } getch(); return 0; }

More Related