Bilgisayar Programlama BIL 107 Örnek Sorular Bilgisayar Programlama BIL 107
Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları SORU Celcius (C) cinsinden verilen bir sıcaklık değerini Fahrenheit (F) ve Kelvin (K) birimlerine çeviren C programı yazınız. Bilgi: F=1.8C+32 K=C + 273.15 #include<stdio.h> main(){ float c,f,k; printf("Celcius degeri girin:"); scanf("%f",&c); f=1.8*c+32; k=c+273.15; printf("%7.2f C = %7.2f F = %7.2f K",c,f,k); } Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları SORU Girilen Not 45 den Büyükse GEÇTİ, küçükse KALDI yazacak programı kodlayınız. #include<stdio.h> main(){ int not; printf("not girin:"); scanf("%d",¬); if(not>=45)printf("gecti"); else printf("kaldi"); } Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
SORU Katsayıları verilen 2. dereceden bir denklemin köklerini hesaplayan C programını yazınız. NOT: Kök hesaplamak için; math.h kitaplığı ve sqrt(x) fonksiyonu kullanılmalıdır. #include<stdio.h> #include<math.h> main(){ float a,b,c; printf("katsayilari girin:"); scanf("%f %f %f",&a,&b,&c); float d=b*b-4*a*c; if(d>0){float x1=(-b+sqrt(d))/(2*a); float x2=(-b-sqrt(d))/(2*a); printf("kokler %f ve %f\n",x1,x2);} else if(d==0){float x1=(-b)/(2*a); printf("katli kokler %f\n",x1);} else printf("reel kok yoktur\n"); }
Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları SORU Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları Bir dairenin alanını veya bir çemberin çevresini hesaplayan C programını yazınız. İSTENENLER: Programda ilk önce daire veya çember seçimi yapılacak, seçime göre daire için alan hesabı, çember için ise çevre hesabı yapılarak sonuç ekrana yazdırılacaktır. Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları Klavyeden girilen bir sayının pozitif, negatif ve sıfır olduğunu ekrana yazan C programını yazınız. Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları 1’den verilen N sayısına kadar olan sayıların ortalamasını bulan programı yazınız. Not: programınız girilen sayılardan kaç tanesinin asal olduğunu da ekrana yazsın. Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları Girilen N adet sayıdan en büyüğünü bulan programını yazınız. Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları Dusme yuksekliği=200 Zaman (s) Yerden Yükseklik (m) -------------------------------------------------------- 0 200.00 1 195.10 2 180.38 3 155.85 4 121.52 5 77.38 6 23.42 7 -40.35 Yere çarpma zamanı(s)= 6.4 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları Elemanları girilen N elemanlı bir A dizisi için : 1. Girilen bir B sayısından büyük olan elemanların sayısını, 2. A dizisinin ortalamasını, 3. Ortalamadan büyük kaç eleman olduğunu, hesaplayan Fortran programı kodlayın. Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
Soru 1: Ekran çıktısında 66 yazması için boşlukları doldurunuz ______ i = 'A'; printf(____, i__); CEVAP: char i = 'A'; printf("%d", i+1);
Soru 2: Aşağıdaki programın üreteceği çıktıyı yazınız #include <stdio.h> int b = 5; float f(float a){ for (; b>a; a=a*2) printf("%.2f\n", b/a); return a; } void main(){ float a = 5, b = 2.5; for (; b<a; a=a/2) printf("%.2f\n", f(b/a)); CEVAP: 10.00 5.00 2.50 1.25 8.00
Soru 3: Yandaki matematiksel fonksiyon ile aynı işlemi yapan C dili fonksiyonunu yazınız float f(int x) { int i; float sonuc = 0; for (i = 1; i <= 5; i++) sonuc += i * pow(x, i) / fakt(x+i); return sonuc; } long fakt(int sayi) { long i, f = 1; for (i = 1; i <= sayi; i++) f *= i; return f; }
Soru 4: Kullanıcıdan 2 tamsayı değer alan ve bu değerler arasında yer alan tüm asal sayıları ve bu asal sayıların toplamını ekranda gösteren programı yazınız main(){ int sayi1, sayi2, i, j, toplam = 0; printf ("kucuk sayiyi girin: "); scanf("%d", &sayi1); printf ("buyuk sayiyi girin: "); scanf("%d", &sayi2); printf("iki sayi arasindaki asal sayilar:\n"); for (i = sayi1; i <= sayi2; i++){ for (j = 2; j <= sqrt(i); j++) if (i % j == 0) break; if (j > sqrt(i) && i > 1){ printf("%d\n", i); toplam += i; } printf ("toplami = %d", toplam);
Önceki soruyu asal fonksiyonunu kullanarak yapalım: bool asal(int sayi){ for (int i=2; i<=sqrt(sayi); i++) if (sayi%i == 0) return false; return true; } main(){ int sayi1, sayi2, i, j, toplam = 0; printf ("kucuk sayiyi girin: "); scanf("%d", &sayi1); printf ("buyuk sayiyi girin: "); scanf("%d", &sayi2); printf("iki sayi arasindaki asal sayilar:\n"); for (i = sayi1; i <= sayi2; i++){ if (asal(i)) { printf("%d\n", i); toplam += i; printf ("toplami = %d", toplam);
Soru 5: Parametre olarak aldığı iki sayının dost sayı olup olmadığını döndüren fonksiyonu yazınız (A’nın tam bölenlerinin toplamı B’ye eşitse ve B’nin tam bölenlerinin toplamı A’ya eşitse, A ve B dost sayılardır) private bool dost(int sayi1, int sayi2) { int i, bolenler1 = 0, bolenler2 = 0; for (i = 1; i <= sayi1 / 2; i++) if (sayi1 % i == 0) bolenler1 += i; for (i = 1; i <= sayi2 / 2; i++) if (sayi2 % i == 0) bolenler2 += i; if (bolenler1 == sayi2 && bolenler2 == sayi1) return true; else return false; }
Soru 6: Aşağıdaki programı hatalarını düzelterek tekrar yazınız #include <stdlib.h> int main(){ printf("10 tane sayi girin %d", &sayi); for (i=1; i<10; i++) { printf("%d. sayi : "); printf("sayilarin ortalamasi = "); printf("%d\n", sayi/10); }; } #include <stdio.h> void main(){ int i=1, toplam, sayi; printf("10 tane sayi giriniz"); for(i=1; i<=10; i++) { printf("%d. sayi :", i); scanf("%d", &sayi); toplam = toplam + sayi; } printf("sayilarin ortalamasi = "); printf("%d\n", toplam/10);