Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
37
Cevap
1718
Tıklama
0
Öne Çıkarma
C++ ta Random Kodu
S
12 yıl
Onbaşı
Konu Sahibi

Arkadaslar ben C++ icin bi uygulama gelistiriyorum uygulamamda aynen suna benzer olacak;elimizde 100e yakin soru olucak ve bu sorulari yanitlayan yarismaci olucak kim 500 milyar gibi,ama benim maksat amacim yarismaci programa her defa girdiginde sorular farkli farkli ciksin yani elimizde bulunan 100 soruyu random olarak secip sorulara yerlestirsin.Sizden yardim bekliyorum.



U
12 yıl
Çavuş

Şu Kütüphaneleri Girmelisin
#include <stdio.h>
#include <stdlib.h>
#include<time.h>
ve Şu Kodları Yazmalısın
srand(time(0));
b=rand()%100;

%100 bölümü 100 e kadar bir sayi atilacağını gösterin b=rand bölümünde a sayısı atılsın istiyosan a=rand demelisin kolay gelsin


Bu mesaja 1 cevap geldi.
F
12 yıl
Binbaşı

quote:

Orijinalden alıntı: Umutttttttt

Şu Kütüphaneleri Girmelisin
#include <stdio.h>
#include <stdlib.h>
#include<time.h>
ve Şu Kodları Yazmalısın
srand(time(0));
b=rand()%100;

%100 bölümü 100 e kadar bir sayi atilacağını gösterin b=rand bölümünde a sayısı atılsın istiyosan a=rand demelisin kolay gelsin


Aynısını yazmak için girdim


Bu mesaja 1 cevap geldi.
U
12 yıl
Çavuş

S
12 yıl
Onbaşı
Konu Sahibi

Verdiginiz cevaplar icin cok tesekkur ederim,ama ben sorulari yazip altinada sikklarini yazip sonrada en alta bu komutu mu giricem yani kisa bi bilgi verebilirseniz iyi olucak.Tesekkurler


Bu mesaja 1 cevap geldi.
F
12 yıl
Binbaşı

quote:

Orijinalden alıntı: sertaclincoln

Verdiginiz cevaplar icin cok tesekkur ederim,ama ben sorulari yazip altinada sikklarini yazip sonrada en alta bu komutu mu giricem yani kisa bi bilgi verebilirseniz iyi olucak.Tesekkurler

Kardesim sorulari database‘de tutuyorsan su sekilde yapabilirsin:
Seviye 1 de 100fakli sorun var diyelim. Her sorunun da bir id‘si olsun. Bu idleri 1‘den baslat her soruda bir arttir. Sonra random deger almayi 1~100arasinda yap. Randomdan cikan sonucu database de id‘si ile esleseni ekranda goster.

Database‘siz yapacaksaniz:
Dizi olusturun. Sorulari burada saklayin. Random degeri alin. Cikan sonucu indis numarasiyla esleseni secin.

Suan otobusteyim rahat yazamiyorum. Aklinizda soru var ise yazin. Eve gider gitmez daha verimli sekilde size yardim edebilirim.



< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
S
12 yıl
Onbaşı
Konu Sahibi

cevapladigin icin sagol kardesim.benim database ile isim yok yani dizileri nerde tanimlamam gerekiyor vede nasil tanimlamam gerekiyor,bide benim elimde 100tane soru olucak kullanici bu programa girdiginde 15 tane soru cevaplayip oyun biticek,yine oyuna girdiginde farkli farkli sorular sormasini istiyorum,(elimizdeki 100 sorudan)bu programi sizce en uygun sekilde nasil yapabilirim.Yardimin icin tesekkur ettim


Bu mesaja 1 cevap geldi.
F
12 yıl
Binbaşı

quote:

Orijinalden alıntı: sertaclincoln

cevapladigin icin sagol kardesim.benim database ile isim yok yani dizileri nerde tanimlamam gerekiyor vede nasil tanimlamam gerekiyor,bide benim elimde 100tane soru olucak kullanici bu programa girdiginde 15 tane soru cevaplayip oyun biticek,yine oyuna girdiginde farkli farkli sorular sormasini istiyorum,(elimizdeki 100 sorudan)bu programi sizce en uygun sekilde nasil yapabilirim.Yardimin icin tesekkur ettim

Kardesim ben en iyisi evde kisaca programi yazip atarim. Birde dusundum de char diziyle cok karisir olay sorun cikarabilir. Biraz uzun olucak ama switch~case ile ayri bir fonksiyon icinde halledilebilir. Birde vector diye bir konu vardi. Ben size programi yazana kadar bir incelemenizi tavsiye ederim. Biraz ileri duzey oluyor o konu.



< Bu ileti mobil sürüm kullanılarak atıldı >

F
12 yıl
Binbaşı

Aaa tamam kardes aklima guzel bi fikir geldi kolay yoldan halledecegiz



< Bu ileti mobil sürüm kullanılarak atıldı >

F
12 yıl
Binbaşı

Az kaldı kardeş. Bitiyor senin işin. String fonksiyonlarını unutmuşum da bakmaya bakmaya ondan biraz gecikti. İyi oldu böyle hatırladım :)


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @furkant1
S
12 yıl
Onbaşı
Konu Sahibi

cok sagolasin furkant1 kardes senden guzel seyler bekliyorum.Saygilarla


Bu mesaja 1 cevap geldi.
U
12 yıl
Çavuş

Reis işi bitirmiş bi girdim bitmiş en başta yazcan kodları a=rand dersen başında ilerde cout << a dersen kafadan atılan sayıyı yazar 55 de yazabilir 1 de :WE:QWE:WQ



S
12 yıl
Yarbay

arkadaşlar bu konuya benzer bir şey sormak istiyorum.
şimdi soruları hazırlayacağız mesela ama her soru için if else yapısı kurmak istemiyorsak nasıl bir yol izleyebiliriz ?
Yani 100 soru var ve şıkları var her seferinde tek tek if cevap şuysa doğru yanlış demek istemiyorum.
umarım anlatabilmişimdir teşekkürler



< Bu ileti mobil sürüm kullanılarak atıldı >

F
12 yıl
Binbaşı

Hocam çok bilmediğim konulara girdiğim için C'de yapmayı bıraktım. C++'daki klasik basit kodu atıyorum. C++ bilmiyorsanız takıldığınız heryeri sorabilirsiniz.

 
#include <iostream>
#include <string>
#include <ctime>
#include <cstdlib>
#define SORU_SAY 5

using namespace std;

int main ()
{
string sorular[] = {"Turkiyenin baskenti ?", "Ben kimim ?", "2012 Sampiyonu kimdir ?","Soru adas ?","Neden asdwed?"};
int secilenSoru=0;

srand(time(0));

secilenSoru = rand() % SORU_SAY;

cout << sorular[secilenSoru];

return 0;
}




Bu mesajda bahsedilenler: @sertaclincoln
F
12 yıl
Binbaşı

Hocam 100indisli char tipinde bir dizi yapın. İçerisine teker teker cevapları girin. ( char cevapAnahtarı[soruSayısı] = {'a', 'b', 'c'}; ) Daha sonra kullanıcının cevaplarını saklamak için de bir char dizi oluşturun. Kullanıcıya soru sorulsun, a, b, c, d veya e girmesi istensin ve bu soru sayısına göre o diziye kaydedilsin. ( cevap anahtarındaki cevapların indisleriyle aynı olması lazım. Mesela cevapAnahrarında 55. soru (54. indis oluyor) C ise, kullanıcının verdiği cevabı da cevap dizimizdeki 54. indise kaydetmeliyiz) En sonunda dogru sayısı ve yanlış sayısı diye birer integer değişken oluşturursunuz. Elimizde olan bu iki diziyi for döngüsüyle sıra sıra karşılaştırırız. Doğru olan sorular için doğru değişkenimiz bir artar, yanlışlar için yanlış değişkenimiz.


Karşılaştırma bu şekilde olacak. (#include string.h kütüphaneyi eklemeyi unutmayın.)
 
for(int i=0; i < soruSayisi; i++)
{
if(strcmp(cevapAnahtari[i], kullaniciCevaplari[i]))
dogruSayisi++;
else
yanlisSayisi++;
}


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @Seviyeli Yarbay
S
12 yıl
Yarbay

quote:

Orijinalden alıntı: furkant1

Hocam 100indisli char tipinde bir dizi yapın. İçerisine teker teker cevapları girin. ( char cevapAnahtarı[soruSayısı] = {'a', 'b', 'c'}; ) Daha sonra kullanıcının cevaplarını saklamak için de bir char dizi oluşturun. Kullanıcıya soru sorulsun, a, b, c, d veya e girmesi istensin ve bu soru sayısına göre o diziye kaydedilsin. ( cevap anahtarındaki cevapların indisleriyle aynı olması lazım. Mesela cevapAnahrarında 55. soru (54. indis oluyor) C ise, kullanıcının verdiği cevabı da cevap dizimizdeki 54. indise kaydetmeliyiz) En sonunda dogru sayısı ve yanlış sayısı diye birer integer değişken oluşturursunuz. Elimizde olan bu iki diziyi for döngüsüyle sıra sıra karşılaştırırız. Doğru olan sorular için doğru değişkenimiz bir artar, yanlışlar için yanlış değişkenimiz.


Karşılaştırma bu şekilde olacak. (#include string.h kütüphaneyi eklemeyi unutmayın.)
 
for(int i=0; i < soruSayisi; i++)
{
if(strcmp(cevapAnahtari[i], kullaniciCevaplari[i]))
dogruSayisi++;
else
yanlisSayisi++;
}


hocam mantığı anladım, biliyordum da düşünememişim gereksiz zorladım sanırım

çok teşekkürler



F
12 yıl
Binbaşı

Önemli değil hocam


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @Seviyeli Yarbay
S
12 yıl
Onbaşı
Konu Sahibi

furkant1 verdiğin cevaplar için çok teşekkür ederim hocam.çok yararlı oldu sayenizde.Peki şimdi benım elımde sorular ve altındada dogrudan şıkklar olucak örn:
Türkiyenin başkenti? a)istanbul b)edirne c)ankara (elimde 100 soru olucak buna benzer şekilde) gıbı dogru cevap verırse dıger soruya gecsın random kodu ıle yanlışsa yeniden oynayın yani çıkış yazsın dıyıcez bu programı nasıl yazabılırız acaba en kısa yoldan.Saygılarla teşekkürler



F
12 yıl
Binbaşı

Kardesim onu da su sekilde yapalim. Char bir dizi olusturun. Icerisine cevap anahtarini teker teker girin. Simdi siz sorulari sormak icin donguye sokacaksiniz ya, mesela 5. soruyu soracaksiniz. Verilen cevap c diyelim. O dizideki indisi besinci soruya denk gelen dizi elemaniyla karsilastirin. Dogru ise ilerleyin, yanlis ise donguden cikin.
Kardesim onu da su sekilde yapalim. Char bir dizi olusturun. Icerisine cevap anahtarini teker teker girin. Simdi siz sorulari sormak icin donguye sokacaksiniz ya, mesela 5. soruyu soracaksiniz. Verilen cevap c diyelim. O dizideki indisi besinci soruya denk gelen dizi elemaniyla karsilastirin. Dogru ise ilerleyin, yanlis ise donguden cikin.

for(int i=0; i < soruSayisi; i++)
{
2.dereceSorular[rastgeleDeger];
if(strcmp(kullaniciCevabi, cevapAnahtari))
cevapdogru;
else
Dongudencik;
}
for(int i=0; i < soruSayisi; i++)
{
if(strcmp(cevapAnahtari, kullaniciC evaplari)) dogruSayisi++; else yanlisSayisi++;



< Bu ileti mobil sürüm kullanılarak atıldı >

F
12 yıl
Binbaşı

Ama bu sekilde yaparsak 2. seviye tum sorularin cevabinin ayni olmasi lazim. Her sorunun farkli cevabi olsun isterseniz su sekilde yapin.
Mesela soruyu diziye yazdiniz.
sorular[] = {"Soru sjsjs ? A", "Soru jejeezj ? C", "Soru ierbjdxi ? E"};

Bu sekilse yapin hocam. Daha sonra bir fonksiyon yazin. Bu fonksiyona string bir deger yollayalim. Bu string degerin sonunda bulunan degeri ayirsin ve bize onu dondursun. O da cevabimiz olsun. Demin dedigin gibi if ile bu fonksiyondan dondurulen deger ile karsilastirin. Ama soruyu gosterirken de en son bosluktan sonraki cevabimizi silerek gosterin. Bu dediklerimi string fonksiyonlariyla yapabilirsiniz.



< Bu ileti mobil sürüm kullanılarak atıldı >