Zadanie : Test z informatyki .

biOtX

Użytkownik
Dołączył
Maj 2, 2008
Posty
11
Witam !
Dostalem zadanie z informatyki i mam nadzieje, ze ktos mi pomoże bo dopiero zaczynam w C++
smile.gif
.
Zadanie brzmi : Program, w ktorym wyswietlac beda sie pytania, a my bedziemy odpowiadac wciskajac a/b/c lub d . Na koncu testu program zsumuje nasz wynik i poda go nam.
Jesli ktos moze podac taki ogolny skrypt, bylbym bardzo wdzieczny poniewaz to dopiero moj drugi prog ;D . Mysle jednak, ze z niewielka pomoca dam rade
smile.gif


Z gory Dziekuje
smile.gif
 

grzonu

Były Moderator
Dołączył
Grudzień 26, 2006
Posty
1390
poszukaj na forum bo nie dalej jak pol roku temu pisałem gotowy kod komuś z forum zadanie było identyczne
 

biOtX

Użytkownik
Dołączył
Maj 2, 2008
Posty
11
Tam masz napisane C++
<
.
A zeby skompilowac program to trzeba miec skrypt non nie ?
<
 

RobertG

Użytkownik
Dołączył
Styczeń 3, 2007
Posty
391
<div class='quotetop'>CYTAT(biOtX @ 9.05.2008, 19:01) <{POST_SNAPBACK}></div>
Tam masz napisane C++
<
.
A zeby skompilowac program to trzeba miec skrypt non nie ?
<
[/b]
Nie. Skrypt jest wykonywany przez interpreter (języki interpretowane, np. php, ruby, perl, js). Kompilujesz kod źródłowy (języki kompilowalne, np. C++, C, C#, Java). Do tego są różne mieszanki, np skrypt perla można skompilować do kodu maszynowego, kod Javy i pythona jest kompilowany do kodyu pośredniego ale to już takie niuanse
smile.gif
 

spiterbot

Użytkownik
Dołączył
Listopad 1, 2007
Posty
143
Kod:
#include<iostream>
#include<string>
using namespace std;

const int nLiczbaOdpowiedzi=3;
string strListaPytan[nLiczbaOdpowiedzi];

int main()
{
    strListaPytan[0]="jak grzmi twoje imie\na - Andrzej\nb - bartek\nc-czeslaw\nd-daniel\n";
    strListaPytan[1]="skad jestes\na - ameryki\nb - belgii\nc-czechoslowacji\nd-danii\n";
    strListaPytan[2]="w czym programujesz\na - assemblerze\nb - visual basicu\nc-c++\nd-delphi\n";
    int nOdpA,nOdpB,nOdpC,nOdpD;
    nOdpA=nOdpB=nOdpC=nOdpD=0;
    for(int i=0;i<=nLiczbaOdpowiedzi-1;++i)
    {
        char chOdp;
        cout<<strListaPytan[i];
        cin>>chOdp;
        switch(chOdp)
        {
        case 'a':
        case 'A':
            nOdpA++;
            break;
        case 'b':
        case 'B':
            nOdpB++;
            break;
        case 'c':
        case 'C':
            nOdpC++;
            break;
        case 'd':
        case 'D':
            nOdpD++;
            break;
        default:
            cout<<"nie ma takiej odpowiedzi\n";
            --i;
        }
    }
    cout<<"liczba odpowiedzi:\na - "<<nOdpA<<"\nb - "<<nOdpB<<"\nc - "<<nOdpC<<"\nd - "<<nOdpD<<"\n";
    return 0;
}


P.S
kod zrodlowy to nie skrypt
 

Dark Smark

Były Moderator
Dołączył
Kwiecień 29, 2006
Posty
1953
O widzę że się spóźniłem ale to moja wersja bez wstępnego projektowania wyszła w biegu, kompilowane pod pingwinem ale pod winda tez smignie:
Kod:
/*

Komentarz: Kod zrodlowy prostego quiz'u.

Licencja: Open Source

Data: 9.maj.2008

Autor: Dark Smark

E-mail: sirsmark[MAŁPA]wp.pl

[url]http://www.cracker.xt.pl/[/url]

Kompilator: GCC

Jezyk: C++

OS: Linux

*/
#include <iostream>
using namespace std;

int main()
{
    char odpowiedz;
    int punkty;
    punkty=0;
//-----------------------------------------------------
    cout << "Witam w tescie by sm4rk \n \n";
    cout << "Czy masz na imie...\n";
    cout << "A: " << "Adam\n";
    cout << "B: " << "Bartek\n";
    cout << "C: " << "Celina\n";
    cout << "D: " << "Darek\n";
    cout << "Wybierz odpowiedz wciskajac a, b, c lub d: ";    
    do {
    cin >> odpowiedz;
    switch(odpowiedz) 
    {
    case 'a':
    case 'A': 
    cout << "Wybrales a...\n\n";
    punkty++; //dobra odpowiedz!
    break;
    case 'b':
    case 'B': 
    cout << "Wybrales b...\n\n";
    break;
    case 'c':
    case 'C': 
    cout << "Wybrales c...\n\n";
    break;
    case 'd':
    case 'D': 
    cout << "Wybrales d...\n\n";
    break;
    default:
    cout << "Zly znak! ";
    continue;
}
break;
} while(true); 
//-----------------------------------------------------
//-----------------------------------------------------
    cout << "Czy najlepszy klub to:\n";
    cout << "A: " << "Legia\n";
    cout << "B: " << "Zaglebie Sosnowiec\n";
    cout << "C: " << "Wisla Krakow\n";
    cout << "D: " << "Klub AA\n";
    cout << "Wybierz odpowiedz wciskajac a, b, c lub d: ";    
    do {
    cin >> odpowiedz;
    switch(odpowiedz) 
    {
    case 'a':
    case 'A': 
    cout << "Wybrales a...\n";
    break;
    case 'b':
    case 'B': 
    cout << "Wybrales b...\n\n";
    punkty++; //dobra odpowiedz!
    break;
    case 'c':
    case 'C': 
    cout << "Wybrales c...\n\n";
    break;
    case 'd':
    case 'D': 
    cout << "Wybrales d...\n\n";
    break;
    default:
    cout << "Zly znak! ";
    continue;
}
break;
} while(true); 
//-----------------------------------------------------
//-----------------------------------------------------
    cout << "C++ jest:\n";
    cout << "A: " << "Glupie\n";
    cout << "B: " << "Trudne\n";
    cout << "C: " << "Fajne\n";
    cout << "D: " << "Proste\n";
    cout << "Wybierz odpowiedz wciskajac a, b, c lub d: ";    
    do {
    cin >> odpowiedz;
    switch(odpowiedz) 
    {
    case 'a':
    case 'A': 
    cout << "Wybrales a...\n\n";
    break;
    case 'b':
    case 'B': 
    cout << "Wybrales b...\n\n";
    break;
    case 'c':
    case 'C': 
    cout << "Wybrales c...\n\n";
    break;
    case 'd':
    case 'D': 
    cout << "Wybrales d...\n\n";
    punkty++; //dobra odpowiedz!
    break;
    default:
    cout << "Zly znak! ";
    continue;
}
break;
} while(true); 
//-----------------------------------------------------
//-----------------------------------------------------
//-----------------------------------------------------
cout << "Twoja liczba punktow to: " << punkty;

//DODATEK:
/*if (punkty>=2) { //Jezeli ilosc punktow jest wieksza lub rowna 2 to wyswietla
    cout << "Jestes dosyc madry... :)";
} else { //W innym przypadku
    cout << "Zdobyles ponizej 2 punktow, troszke szkoda...";
}
*/

return 0;
}
 

RobertG

Użytkownik
Dołączył
Styczeń 3, 2007
Posty
391
W/w kody można znacząco skrócić i uelastycznić
<

Kod:
// R.Gawron [url]http://rgawron.megiteam.pl/[/url]
#include <iostream>

int main(){   
    char poprawne[] = {'a', 'b', 'a', 'b', 'd'};
    std::string pytania[] = {"Ile mam lat?", "Co lubisz robic?",
         "Boisz sie:", "Polska to:", "Bo?"};
    std::string odpowiedzi[][4] = {
        {"10", "20", "30", "40"}, {"latac", "plywac", "spac", "biegac"},
        {"lekow", "psow", "barykad", "brudu"}, {"kraj", "rzeka", "wyspa", "dom"},
        {"tak", "bo nie", "nie wiem", "nie ja"}
    };
    int wynik = 0;
    for(int i=0; i< sizeof(poprawne)/sizeof(poprawne[0]); i++){
        std::cout<<pytania[i]<<std::endl;
        for(int j=0; j<  sizeof(odpowiedzi[i])/sizeof(odpowiedzi[0][0]); j++){
            std::cout<<"\t"<<odpowiedzi[i][j]<<std::endl;
        }
        char ans;
        std::cin>>ans;
        if( !(ans-poprawne[i]) ){
            std::cout<<"ok"<<std::endl;
            wynik++;
        }
    }
    std::cout<<"wynik: "<<wynik<<std::endl;
}
 

RobertG

Użytkownik
Dołączył
Styczeń 3, 2007
Posty
391
Tak do oddania na zajęciach to Twoja wersja jest lepsza, bo prostsza, a długość kodu i tak nikogo nie będzie obchodzić.
<
 

biOtX

Użytkownik
Dołączył
Maj 2, 2008
Posty
11
Dzieki
smile.gif

Tylko jeszcze o jedna rzecz poprosze : Zeby program na koncu podawal liczbę odpowiedzi poprawnych np. 20/30 .
Ale i tak thx
smile.gif
 

sebik90

Użytkownik
Dołączył
Wrzesień 15, 2006
Posty
233
to sobie zrob zmienna licz_punkty czy jak tam chcesz i przy prawidlowej odpowiedzie zwiekszaj o 1 (licz_punkty++) a na koncu walnij cout << licz_punkty ;
 

spiterbot

Użytkownik
Dołączył
Listopad 1, 2007
Posty
143
Do góry Bottom