Algoritma Örnek Sorular

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.

  1. Bir sayı tahmin oyunu yazılacaktır.
  2. Sayı 0 ile 25 arasında rastgele olarak program tarafından seçilecektir.
  3. Seçilecek olan sayı kullanıcı tarafından edilmeye çalışacaktır.
  4. Tahmin hakkı 5’tir.
  5. Kullanıcının 0 ve 25 arasında bir sayı haricinde kesinlikle bir karakter girmesine izin verilmeyecektir.
  6. Her hatalı tahminde kullanıcının kaç tahmin hakkı kaldığına dair bir bilgilendirme yapılacaktır.
  7. Aralık dışında girilecek olan sayı tahminlerinde kullanıcı aralık dışı sayı girdiğine dair uyarılmalı ve mevcut hakkı eksilmemelidir.
  8. 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.
  9. 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.

Yorum Gönderin

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir