Bodovanje i zadaci

poruka: 6
|
čitano: 1.187
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
16 godina
offline
Bodovanje i zadaci pomocu varijabli i kondicionala

Evo opet ja imam problema, zapravo ne baš problema jer program radi... da pređem odmah na stvar, evo kod:

 

#include <iostream>

using namespace std;

int main() {

float bodovi, odgovor1, odgovor2;
bodovi = 0;

cout << "Ispit znanja" << endl;
cout << "------------" << endl << endl;

//Prvo pitanje
cout << "Prvo pitanje: " << endl;
cout << "Koliko je 2 + 2?" << endl;
cin >> odgovor1;
cout << endl;
   
   if(odgovor1 == 4)
   {
       cout << "------------Tocan odgovor, dobili ste 1 bod!------------" << endl;
       cout << "------------------------------------------------------" << endl << endl;
       bodovi = bodovi + 1;
   }
   else
   {
       cout << "------------Netocan odgovor, gubite 2 boda------------" << endl;
       cout << "------------------------------------------------------" << endl << endl;
       bodovi = bodovi - 2;
   }

//Drugo pitanje
cout << "Drugo pitanje: " << endl;
cout << "Koliko je 4 * 8?" << endl;
cin >> odgovor2;
cout << endl;

   if(odgovor2 == 32)
   {
       cout << "------------Tocan odgovor, dobili ste 1 bod!------------" << endl;
       cout << "------------------------------------------------------" << endl << endl;
       bodovi = bodovi + 1;
   }
   else
   {
       cout << "------------Netocan odgovor, gubite 2 boda------------" << endl;
       cout << "------------------------------------------------------" << endl << endl;
       bodovi = bodovi - 2;
   }

cout << "Osvarili ste " << bodovi << " boda/bodova!" << endl;
system("pause");
return 0;
}

 

 

Eh, pošto su u mojem programčiću samo 2 pitanja pa ovo što želim pitati nebi imalo baš nekakvog smisla. No, zamislite da imam po 100 pitanja i kao što vidite gore na početku ispita imam 0 bodova, ako odgovorim točno dobiti ću 1 bod, ako pogriješim gubim 2 boda. Problem je u tome što uvijek gubim po 2 boda ako pogrešno odgovorim na pitanje bez obzira imao ja 1 bod ili 47. Meni NIJE CILJ da idem u minus, želim da mi bude najmanje 0 bodova.

 

Ovako:

 

1. Imam 1 bod, odgovorim netočno na pitanje i gubim 2 boda = Ostvareno bodova: -1  ----  OVO NE ŽELIM

2. Imam 5 bodova, odgovorim netočno na pitanje i gubim 2 boda = Ostvareno bodova: 3  ---  OVO ŽELIM

 

Kako to izvesti?

Ne stavljajte ruku u ventilator dok ventilator radi. Upozorenje na klimatizacijskom uređaju
Poruka je uređivana zadnji put pet 29.10.2010 3:11 (lovac82).
Moj PC  
0 0 hvala 0
15 godina
neaktivan
offline
RE: Bodovanje i zadaci pomocu varijabli i kondicio

U biti ti samo zelis da ti varijabla "bodovi" nikada ne ode u minus? Lagano.

 

pretvori:

 

bodovi = bodovi - 2;

 

u:

 

if (bodovi-2<0)
    bodovi = 0;
else
    bodovi = bodovi - 2;

 

To jest, samo vrsis provjeru kod svakog oduzimanja hoce li broj otici u minus, ako hoce onda postavis vrijednost na nulu, a ako nece ici u minus vrsis normalno oduzimanje.

Pathogenic fundamentals clearly indicate that homogenous populations are most vulnerable.
Poruka je uređivana zadnji put pet 29.10.2010 3:42 (rustweaver).
17 godina
neaktivan
offline
RE: Bodovanje i zadaci pomocu varijabli i kondicio

Ili prvo oduzmeš, onda provjeriš. Ovako moraš dvaputa oduzimati.

 

bodovi = bodovi - 2;

if (bodovi < 0) {

  bodovi = 0;

}

 

 

16 godina
offline
Bodovanje i zadaci

Hvala, to je ono što sam tražio

Ne stavljajte ruku u ventilator dok ventilator radi. Upozorenje na klimatizacijskom uređaju
Moj PC  
0 0 hvala 0
15 godina
neaktivan
offline
Bodovanje i zadaci

I inače, kad smo već kod "ispravnih" i "neispravnih" stvari u kodu... Ovo što ti radiš se ne radi tako - upisivati pitanja i odgovore u kod... Pravi način bi bio da upišeš pitanja i odgovore u neku TXT datoteku i onda ih učitavaš redom iz datoteke u nekoj petlji. To ćeš kao početnik vjerujem lako svladati. Hardkodirati svako pitanje je u (najmanju ruku!) jako nepraktično.

Retry. Reboot. Reinstall. Reformat. // Sve se hoće kad se može. ;)
Moj PC  
0 0 hvala 0
16 godina
offline
Bodovanje i zadaci

Ovo je zapravo prvi put da koristim naredbe if, else...

 

C++ sam počeo učiti prije jedno 5-10 dana

 

E, sada raditi s file-ovima još ne znam, do toga nisam došao još

Ne stavljajte ruku u ventilator dok ventilator radi. Upozorenje na klimatizacijskom uređaju
Moj PC  
0 0 hvala 0
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice