1.       Ekrana isminizi, soy isminizi ve okul numaran}z} bast}ran C dilinde bir kod yaz}n}z.

#include <stdio.h>

int main(){

printf(Sadi Evren SEKER 11111);

return 0;

}

Yukar}daki cevap ile ilgili olarak isteyenler conio.h ve getch() ekleyebilirlerdi ama eklemeyenlerinkini de yukar}daki ~ekilde tam kabul ettik. Ayr}ca en gok yap}lan hatalardan birisi scanf kullanmak. Scanf kullanarak isim ve soy ismi okutan arkada~lar %s ile bir diziye okutmal}yd} ancak bunu hen|z gvrmedik. Neden bvyle bir ~ey yapt}klar}n} da anlayam}yorum, bu tip hatalar yapanlar cevaplar} gal}~mayacak olmas}na rapmen sorudan 10 puan ald}lar.

2.       Klavyeden 3 say} okuyunuz. Bu say}lar s}ras}yla ~imdiki saat, ~imdiki dakika ve dakika olarak fark olacakt}r. Bu say}larla ~imdiki saat ve dakika deperlerine girilen fark deperini ekleyerek istenilen saat ve dakika deperini bulunuz. (vrnepin: saat = 23, dakika = 30 , fark = 500 ise sonug olarak 7:50 bulunacakt}r.)

#include <stdio.h>

int main(){

printf(3 say} giriniz);

int saat,dakika,fark;

scanf(%d %d %d,&saat,&dakika,&fark);

fark + = saat * 60 + dakika;

dakika = fark %60;

saat = (fark /60) %24;

printf(%d : %d,saat,dakika);

return 0;

}

Bu soruda okumay} tek scanf yerine 3 scanf ile yapman}z da doprudur. Genel yap}lan hata hesaplamada ve saatin 24ten fazla olamayacap}n} unutma gibi basit hesap hatalar}.

Bu sorunun vlgmeyi hedefledipi beceriler, basit kullan}c} ileti~imi ve form|l geli~tirerek C dilinde bu form|l| uygulayabilme becerisidir.

 

3.       Klavyeden iki farkl} say} okutunuz. Okunan say}lar}n aras}ndaki tek say}lar} ekrana bast}ran ve bu say}lar}n ortalamas}n} bulan kodu yaz}n}z.

#include <stdio.h>

int main(){

printf(2 say} giriniz);

int a,b;

scanf(%d %d,&a,&b);

if(a > b){

int c = b;

b=a;

a=c;

}

int toplam = 0;

for (int i = a;i<b;i++){

if(i%2==1){

printf(%d\n,i);

toplam + = i;

}

}

printf( ortalama : %d,toplam / (b-a)/2);

return 0;

}

Yukar}da s}k yap}lan hatalardan birisi b|y|k k|g|k say} kontrol|n|n olmamas}. Dvng|n|n hatal} yaz}lmas} ( 0dan ba~latmak gibi). Toplam}n hesaplanmas}nda hata yap}lmas}, Ortalama al}n}rken aral}ktaki tek say}lar}n say}s}na bvlmek yerine b|t|n say}lara bvlmek, gibi hatalard}r.

Bu sorunun amac} dvng| kurabilme, dvng| igerisindeki deperleri biriktirebilme (Accumulator style) yeteneklerinin vlg|lmesidir.

 

 

4.       ]lk 20 fibonacci say}s}n} hesaplayarak diziye yerle~tiren (dizinin boyutu 20lik olacakt}r) program yaz}n}z. (fibonacci say}lar} 1 1 2 3 5 8 13  ~eklinde gider ve her say} kendinden vnceki iki say}n}n toplam}d}r)

#include <stdio.h>

int main(){

int a[20];

a[0] = 1;

a[1] = 1;

for(int i = 2;i<20;i++){

a[i] = a[i-1] + a[i-2];

}

return 0;

}

Yukar}daki soruda s}k yap}lan hatalar dizinin ilk deperlerinin verilmemesi, dizinin boyutlar}n}n hatal} tan}t}lmas}. Diziyi dvnen dvng|n|n ba~lang}g ve biti~ deperlerinin hatal} olmas}, fibonacci form|l|n|n yanl}~ kurulmas} gibi hatalard}r. Baz} cevaplarda dizinin igerisine veriler at}ld}ktan sonra ekrana da bast}r}lm}~ bu ilave olmadan yukar}daki haliyle de soruyu dopru kabul ettik isteyenler bu eklentiyi de yazabilirdi, soruda bu istenmedipi igin bu eklentinin nota bir etkisi yoktur.

Bu sorunun amac} tek boyutlu dizilerin kullan}lmas} ve dizi ile verilen say} serisi aras}nda matematiksel ili~ki kurabilmektir.

 

5.       Matris garp}m} yapan bir kod yaz}n}z. (sadece garp}m i~leminin yap}ld}p} k}sm} yazman}z yeterlidir dizilerin iginde matris deperlerinin girilmi~ oldupunu kabul edebilirsiniz)

int i, j, k;

for(i=0;i<N;i++)

for(j=0;j<N;j++)

for(k=0,C[i][j]=0; k<N; k++)

C[i][j] += A[i][k] + B[k][j];

 

Bu soruda s}k yap}lan hatalar dvng|lerin yanl}~ kurulmas}, dizilerin indislerinin hatal} garp}lmas} ve toplama hatalar} gibi hatalard}r.

Bu sorunun amac} 2 boyutlu dizileri kullanabilme yetenepinin vlg|lmesidir.

 

6.       f(3)+fact(fib(4))+f(fib(2))+g(fib(5),f(3),fact(2)) i~lemini bulup sonucu ekrana yazan program} yaz}n}z. Bu hesaplama igin gereken fonksiyonlar}n tan}m} a~ap}da yap}lm}~t}r (not: sqrt fonksiyonu karekvk almaya yarar ve math.h k|t|phanesinde bulunur. Vrnepin sqrt (4) = 2dir):

f(x) = x2 + 2x fib(x) = x. Fibonacci say}s}

fact(x) = x! g(a,b,c) =

#include <stdio.h>

#include <math.h>

int f(int x){

return x * x + 2 *x ;

}

int fib(int x){

int a = 1;

int b = 1;

int c;

for(int i = 2;i<=x;i++){

c = a+ b;

a= b;

b=c;

}

return c;

}

int fact(int x){

int result = 1;

for (int i = 1;i<=x;i++){

result *=i;

}

return result;

}

float g(int a, int b, int c){

return (-1*b + sqrt(b*b-4*a*c)) /2*a;

}

int main(){

printf(%f, f(3)+fact(fib(4))+f(fib(2))+g(fib(5),f(3),fact(2)));

return 0;

}

 

Bu sorunun amac} basit fonksiyon yazabilme ve fonksiyonlar} gap}rabilme yeteneklerinin vlg|lmesidir.