Merhaba bugün sizlere temel algoritmalar soruları ve çözümlerinden bahsediyor olacağım. Bu yazımızda dört tane algoritma sorusunu ve C programlama dili ile yazılmış çözümlerini göreceksiniz.
Soru 1: Program derlenmesini engelleyecek olan hataları düzeltmiş olarak yeniden yazınız. Doğru programın derlenip çalıştırıldığında ortaya çıkacak olan ekran görüntüsünü ve her bir elemanın sayısal olarak değerini yazınız.
#include<stdio>
Function basla int a {
İnt b:1 /*a=2*/
Printf(‘\Baslangıç değeri % d’, b, a)
}
Void main ()
İnt a, b, c, d = 5;
C = 2, b = 10;
/*a=3;//*///b=5;
Printf(“ % d”,c - a);
C = a + b
İf(a <= c) a = d;
İf(b >= d) a = c;
printf(“D büyüktür”);
İf(a == b) a = a + 3;
basla(b);
Printf(“ % d % d\a % d % d”,a, b, c, d);
Çözüm:
#include<stdio.h>
#include<conio.h>
int basla ( int a ){
int b = 1;/*a=2*/
printf("\nBaslangıç değeri %d", b, a);
return 0;
}
int main () {
int a = 0, b = 0, c = 0, d = 5;
c = 2;
b = 10;
/*a=3;//*///b=5;
printf("%d ", c - a);
c = a + b;
if (a <= c) a = d;
if (b >= d) {
a = c;
printf("D büyüktür");
}
if (a == b) {
a = a + 3;
basla(b);
}
printf("%d %d\a %d %d ", a, b, c, d);
getch();
}
Ekran Görüntüsü Eleman Değerleri
2 D Büyüktür a=13,b=10,c=10,d=5
Başlangıç değeri 113 10 10 5
Soru 2: Aşağıda verilen fonksiyon için, dışarıdan girilecek herhangi bir y değeri için fonksiyonun sonucunu hesaplayan programın C kodlarını yazınız.

Çözüm:
#include<stdio.h>
#include<conio.h>
int x = 1, y = 0;
float t = 0;
main() {
printf("Y Değeri:");
scanf("%d", & y);
for (x = 1; x <= 100; x++) {
if (y * y != 2 * x)
t += (x * x * x + 3 * y) / (y * y - 2 * x);
}
printf("\nSonuc : %f", t);
getch();
}
Soru 3: Dışarıdan verilen X değerine göre aşağıdaki matrisi iki boyutlu bir dizide oluşturup bu dizideki elemanları aşağıda gösterildiği gibi ekrana yazan programı yazınız.
Çözüm:
#include<stdio.h>
#include<conio.h>
int x, a[ 25][25],i, j;
main() {
do {
printf("1-25 Arasi bir Sayi: ");
scanf("%d", & x);
} while (x > 25);
for (i = 0; i < x; i++) {
for (j = 0; j < x; j++) {
if (j >= i) {
a[i][j] = 1 + (j - i);
printf("%3d", a[i][j]);
} else {
printf(" ");
}
}
printf("\n");
}
getch();
}
Soru 4: Gömülü bir sistemde çalışabilecek bir şans oyunu tasarlanmak istenmektedir. Aşağıdaki gereksinim analizi tablosuna göre tüm kuralları çalıştıracak bir oyun programı yazınız.
- Bir sayı tahmin oyunu yazılacaktır.
- Sayı 0 ile 25 arasında rastgele olarak program tarafından seçilecektir.
- Seçilecek olan sayı kullanıcı tarafından edilmeye çalışacaktır.
- Tahmin hakkı 5’tir.
- Kullanıcının 0 ve 25 arasında bir sayı haricinde kesinlikle bir karakter girmesine izin verilmeyecektir.
- Her hatalı tahminde kullanıcının kaç tahmin hakkı kaldığına dair bir bilgilendirme yapılacaktır.
- Aralık dışında girilecek olan sayı tahminlerinde kullanıcı aralık dışı sayı girdiğine dair uyarılmalı ve mevcut hakkı eksilmemelidir.
- Başarılı ve başarısız olan kullanıcılar uygun şekilde uyarılmalı ve oyunu tekrar oynamak isteyip istemediği kullanıcıya Evet/Hayır mantığı ile sorulmalı ve devam etmek isteyen oyuncular tekrar oyunun en başından bir daha oynayabilmelidir.
- Sistem iki seviye olarak tasarlanmalıdır. Sayıyı 5 hakkı hak içerisinde tahmin eden kişi, aralığın iki katı olduğu ikinci seviyeye taşınacaktır. Yani doğru sonucu bulan kişi oyuna seviye 2’den devam ederek 0-50 arasında olan bir sayı kümesi içerisinden seçilen yeni sayıyı tahmin etmeye çalışacaktır.
Çözüm:
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<time.h>
int SAYI = 0, level = 1, h = 1, t = 0, BILDIM = 0;
char kr;
int main ()
{
int a = 1, sayi;
srand(time(NULL));
do {
SAYI = rand() % 25 * level;
h = 1;
BILDIM = 0;
printf("\nSEVIYE : %d , Aralik 0-%d :
% d\n",level,SAYI,level*25);
do {
printf("%d. hakkniz Bir sayi giriniz : ", h);
scanf("%d", & t);
if (t >= 0 && t <= 25 * level) {
if (t == SAYI) {
BILDIM = 1;
} else
printf("Tekrar deneyin.\n");
h++;
} else {
printf("Aralik disindasiniz, tekrar
deneyiniz.\n");
}
} while (h <= 5 && BILDIM == 0);
if (BILDIM == 0) {
printf("\nTahmin Edemediniz !");
printf("\nTekrar denemek istermisiniz ?
[E / H]");
level = 1;
kr = getch();
} else {
if (level == 1) {
printf("TEBRIKLER !!!");
printf("\nIkinci seviye icin lutfen bir
tusa basiniz.");
getch();
level = 2;
kr = 'e';
} else {
printf("\nOYUNU BASARIYLA
BITTIRDINIZ...");
getch();
return 0;
}
}
} while (kr == 'E' || kr == 'e');
printf("\nProgram Kapatiliyor.");
getch();
}
Örnek algoritma soruları ve çözümlerini pdf olarak indirmek için TIKLAYINIZ.