PDA

View Full Version : [C++] non riesco a fare un esercizio


lorenzoakatheking
05-12-2007, 19:57
:doh:

mi sono intrippato con un esercizio che mi chiede un libro.


/******************************************************************
*--------------->Esercizio 6-1 di pagina 88<--------------------- *
*Un professore ricava voti in lettere utilizzando la tabella 6-3.*
*Scrivere un programma che accetta un voto numerico e visualizza *
*il voto corrispondente in lettere. *
* *
*--------------->Esercizio 6-2 di pagina 88<---------------------*
*Modificare il programma precedente per visualizzare un + o un - *
*dopo la lettera del voto, in base all'ultima cifra del voto. *
*I modificatori sono elencati nella tabella 6-4. *
* *
* *
* *
******************************************************************/



#include <iostream>

int voto_numerico; //valore del voto
char voto_lettera; //valutazione finale (calcolata)

using namespace std; //evita di scrivere std:: prima delle tag di input/output
int main ()

{
while (true) { //ripeti finché non è falsa
cout << "Per uscire inserire un valore n>100\n";
cout << "Inserire la valutazione: ";
cin >> voto_numerico;
if(voto_numerico > 100) //se il numero è maggiore di 100 finisce il ciclo
break;
if((voto_numerico >= 0) && (voto_numerico <= 60)) {
voto_lettera = 'F';
cout << "Il voto è " << voto_lettera << "\n";
} else if((voto_numerico > 60) && (voto_numerico <= 70)) {
voto_lettera = 'D';
cout << "Il voto è " << voto_lettera << "\n";
} else if((voto_numerico > 70) && (voto_numerico <= 80)) {
voto_lettera = 'C';
cout << "Il voto è " << voto_lettera << "\n";
} else if((voto_numerico > 80) && (voto_numerico <= 90)) {
voto_lettera = 'B';
cout << "Il voto è " << voto_lettera << "\n";
} else if((voto_numerico > 90) && (voto_numerico <= 100)) {
voto_lettera = 'A';
cout << "Il voto è " << voto_lettera << "\n";
}
}
system ("pause");
return (0);
}



la tabella che dice è così:

ultima cifra: 1-3 --> modificatore: -
ultima cifra: 4-7 --> modificatore: <blank>
ultima cifra: 8-0 --> modificatore: +


P.S. non sono riuscito a ricopiare in manienra perfetta il programma ma credo si capisca.

wingman87
05-12-2007, 22:49
Qual è il problema? Non riesci a ricavare l'ultima cifra? Devi usare l'operatore %.
Es:
3%2=1
5%3=2
14%10=4

Praticamente % restituisce il resto della divisione tra dividendo e divisore. Nel tuo caso guarda l'ultimo esempio che è ciò che ti serve.

lorenzoakatheking
06-12-2007, 20:13
in pratica devo trovare il resto dividendo per 100?

wingman87
06-12-2007, 22:44
A te serve solo l'ultima cifra, quindi non per 100 ma per 10.

lorenzoakatheking
07-12-2007, 10:35
si giusto hai ragione ovviamente:D :D :D :D


ora proverò!

lorenzoakatheking
07-12-2007, 14:58
Ci sono riuscito...

questo è quello che mi è uscito fuori.

/******************************************************************
*--------------->Esercizio 6-1 di pagina 88<---------------------*
*Un professore ricava voti in lettere utilizzando la tabella 6-3.*
*Scrivere un programma che accetta un voto numerico e visualizza *
*il voto corrispondente in lettere. *
* *
*--------------->Esercizio 6-2 di pagina 88<---------------------*
*Modificare il programma precedente per visualizzare un + o un - *
*dopo la lettera del voto, in base all'ultima cifra del voto. *
*I modificatori sono elencati nella tabella 6-4. *
* *
* *
*Autore: Lorenzo Carnevale *
******************************************************************/



#include <iostream>

int voto_numerico; //valore del voto
char voto_lettera; //valutazione finale (calcolata)
int ultimo_numero; //ultima cifra del voto

using namespace std; //evita di scrivere std:: prima delle tag di input/output
int main ()

{
while (true) { //ripeti finché non è falsa
cout << "Per uscire inserire un valore n>100\n";
cout << "Inserire la valutazione: ";
cin >> voto_numerico;
ultimo_numero=voto_numerico%10;
if(voto_numerico>100) //se il numero è maggiore di 100 finisce il ciclo
break;
if((voto_numerico>=0) && (voto_numerico<=60)) {
voto_lettera='F';
cout<<"Il voto è "<<voto_lettera<<"\n";
} else if((voto_numerico>60) && (voto_numerico<=70)) {
voto_lettera='D';
if((ultimo_numero>=1) && (ultimo_numero<=3)) { //funzione per la positività o negatività del voto
cout<<"Il voto è "<<voto_lettera<<"-\n";
} else if((ultimo_numero>=4) && (ultimo_numero<=7)) { //funzione per la positività o negatività del voto
cout<<"Il voto è "<<voto_lettera<<"\n";
} else if((ultimo_numero=8) || (ultimo_numero=9) || (ultimo_numero=0)) { //funzione per la positività o negatività del voto
cout<<"Il voto è "<<voto_lettera<<"+\n";
}
} else if((voto_numerico > 70) && (voto_numerico <= 80)) {
voto_lettera = 'C';
if((ultimo_numero>=1) && (ultimo_numero<=3)) { //funzione per la positività o negatività del voto
cout<<"Il voto è "<<voto_lettera<<"-\n";
} else if((ultimo_numero>=4) && (ultimo_numero<=7)) { //funzione per la positività o negatività del voto
cout<<"Il voto è "<<voto_lettera<<"\n";
} else if((ultimo_numero=8) || (ultimo_numero=9) || (ultimo_numero=0)) { //funzione per la positività o negatività del voto
cout<<"Il voto è "<<voto_lettera<<"+\n";
}
} else if((voto_numerico > 80) && (voto_numerico <= 90)) {
voto_lettera = 'B';
if((ultimo_numero>=1) && (ultimo_numero<=3)) { //funzione per la positività o negatività del voto
cout<<"Il voto è "<<voto_lettera<<"-\n";
} else if((ultimo_numero>=4) && (ultimo_numero<=7)) { //funzione per la positività o negatività del voto
cout<<"Il voto è "<<voto_lettera<<"\n";
} else if((ultimo_numero=8) || (ultimo_numero=9) || (ultimo_numero=0)) { //funzione per la positività o negatività del voto
cout<<"Il voto è "<<voto_lettera<<"+\n";
}
} else if((voto_numerico > 90) && (voto_numerico <= 100)) {
voto_lettera = 'A';
if((ultimo_numero>=1) && (ultimo_numero<=3)) { //funzione per la positività o negatività del voto
cout<<"Il voto è "<<voto_lettera<<"-\n";
} else if((ultimo_numero>=4) && (ultimo_numero<=7)) { //funzione per la positività o negatività del voto
cout<<"Il voto è "<<voto_lettera<<"\n";
} else if((ultimo_numero=8) || (ultimo_numero=9) || (ultimo_numero=0)) { //funzione per la positività o negatività del voto
cout<<"Il voto è "<<voto_lettera<<"+\n";
}
}
}
system ("pause");
return (0);
}