[Çözüldü] Dizilerle aynı sorulara atama yapıp test oluşturma.

Başlatan Onur48, 17 Haziran 2019 - 12:40:44

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

Onur48

Bu programın mantığı ile çoklu eşleştirme, test(aynı soru kalıbı dört beş tane kelime soracak veya diziler soru cevap şeklinde arttırılabilir.) yapılabilir. Bazı şeyler eklenirse güzel olur. Linux için curses.h indirilmeli. Windows için curses yerine conio yazılmalı. Windows ta getchar getch diye yazılıyor olabilir. Açıklama yapmaya vaktim yoktu. Arada İngilizce kelime yazacağım yere Türkçe yazdım. Bazı değişkenleri çok yazmış olabilirim. Kolaylığı tek dizi kısmına kelime girip dizi sayısını arttırmak ve rand kısmını arttırmak..
Not: Düzeltme yaptım. Çiftleri tekrar tekrar soruyordu. Düzeldi.

#include<stdio.h>
#include<curses.h>
#include<stdlib.h>
#include<time.h>
#include<locale.h>

int main()

{
setlocale(LC_ALL, "Turkish");
    int k, dongu, basla, a, z, b, c, dogru, yanlis;
    int l;
    char in[22][19]={"elma", "armut" , "kedi", "son","başla", "okul", "deve", "yağmur", "sınıf","sevmek", "ev", "oda", "maymun","Thank you!", "sleep", "otel", "top", "child", "el", "nerede", "phone", "false"};
    char tr[22][19]={"apple", "peach", "cat", "end", "enter", "school", "camel", "rain", "class", "love", "house", "room", "monkey", "Teşekkür ederim.", "uyumak", "hotel", "ball", "çocuk", "hand", "where", "telephone", "yanlış"};
   
    do
   {
dogru=0;
yanlis=0;
    printf("Kaç eşleştirme istiyorsunuz: ");
    scanf("%d", &dongu);
     
    for(basla=1; basla<=dongu; basla++)
   {
   srand(time(NULL));
   k=rand()%22;
   l=rand()%22;
   a=rand()%12;
if(a%2==0)
b=k;
else
b=l;
   printf("\n%d. soru) \"%s\" kelimesinin anlamı ", basla, in[k]);
   printf(" \"%s\"'dır.\n", tr[b]);
   
   printf("Eşleştirme doğru ise 1 yazın, Yanlış ise 0: ");
   scanf("%d", &z);


while(z!=1 && z!=0){
printf("\n%d. soru) \"%s\" kelimesinin anlamı ", basla, in[k]);
   printf(" \"%s\"'dır.\n", tr[b]);
   
   printf("Eşleştirme doğru ise 1 yazın, Yanlış ise 0: ");
   scanf("%d", &z);
}



   
   if(z==1)
   {
   if(b==k)
   {printf("Doğru\n\n");
dogru++;
}   
else
   {printf("Yanlış\n\n");
yanlis++;
  }
}
  if(z==0)
   {
   if(b==k)
   {printf("Yanlış\n\n");
yanlis++;
   
}   
else
   {printf("Doğru\n\n");
dogru++;
   
}
   }


}
printf("%d doğru, %d yanlış\n\n", dogru, yanlis);
}while((z!=1 || z!=0) );
   
   

    getchar();
    return 0;
}

Empat

3+ günden beri bilgisi veya bir fikri olan herhangi bir üye çıkmamış.

Maalesef ki, ben de bu konuda yeterli bilgi ve deneyime sahip değilim.

Bu yönlendirmeyi 3 gün ve daha fazla çözüm bulunamayan konularda yapıyorum.

Aşağıda belirttiğim gruplarda yeterince bilgili aktif üyeler mevcut.

Sorununuzu bu gruplarda çözerseniz, gelecek zamanda aynı sorunla karşılaşacak forum ziyaretçi ve üyeleri için, lütfen çözümünü burada paylaşın.

Bu ve şu Facebook grubuna katılıp, sorununuzu detaylarıyla anlatın.

Everything for me is just Peace - Love - Coding. Also, as they say: I am a programmer, I have no life!

Onur48