7.3.. Napisati program za ispis uspjeha a za ostale vrijednosti ispisati greska. Vidi slijedeću tabelu:
Opis rješenja: Opseg /RANGE/ u SWITCH/CASE neredbi nije satatavni dio standradna C/C** nego njegovo proširenje (GNU C kompajlera).
Opseg vrijednosti u nizu se navodi kao dio jedne labele po santaksi:
case low ... high // sa obaveznim razmakom između vrijednosti i ... !
inače kompajler javlja grešku.
// Ispiravno - case 1 ... 5:
// Pogrešno - case 1...5:
Ovaj primjer prikazuje i mogučnost ispisa greške za slučaj da se sa tasture upiše vrijednost različita od predviđenih SWITCH naredbom (ELSE).
Listing programa:
//07311011
#include <iostream>
using namespace std;
int main()
{
cout << "Za ucitani broj bodova ispisati uspjeh" << endl;
int bb;
cout << "Osvojeno bodova (0 - 100): ";
cin >> bb; // broj bodova
switch (bb) {
case 0 ... 50:
cout << "nije prosao" << endl;
break;
case 51 ... 59:
cout << "prosao" << endl;
break;
case 60 ... 79:
cout << "prosjek" << endl;
break;
case 80 ... 100:
cout << "super" << endl;
break;
default:
cout << "Greska" << endl;
}
return 0;
}
//07311011
#include <iostream>
using namespace std;
int main()
{
int BR;
bool bPRvi, bDrugi;
cin>>BR;
if((BR>=0)&&(BR<=50)){bPRvi=true;}
else if((BR>=51)&&(BR<=59)){bPRvi=false;}
else goto DRUGI_DIO;
switch(bPRvi)
{
case true: cout<<"nije prosao"<<endl; cout<<endl; system("PAUSE"); return 0;
case false: cout<<"prosao"<<endl; cout<<endl; system("PAUSE"); return 0;
}
DRUGI_DIO:
if((BR>=60)&&(BR<=79)){bDrugi=true;}
else if((BR>=80)&&(BR<=100)){bDrugi=false;}
else goto TRECI_DIO;
switch(bDrugi)
{
case true: cout<<"prosjek"<<endl; cout<<endl; system("PAUSE"); return 0;
case false: cout<<"super"<<endl; cout<<endl; system("PAUSE"); return 0;
}
TRECI_DIO:
cout<<"greska"<<endl; cout<<endl;
return 0;
}
II Varijanta
//07311011
#include <iostream>
using namespace std;
int main()
{
int BR;
cin>>BR;
if ((BR>=0)&&(BR<=50))
{cout<<"nije prosao"<<endl; cout<<endl;}
else if ((BR>=51)&&(BR<=59))
{cout<<"prosao"<<endl; cout<<endl;}
else if ((BR>=60)&&(BR<=79))
{cout<<"prosjek"<<endl; cout<<endl;}
else if((BR>=80)&&(BR<=100))
{cout<<"super"<<endl; cout<<endl;}
else
{cout<<"greska"<<endl; cout<<endl;}
return 0;
}
Ispis na ekranu:
Index
|