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.