Piccolo problemino in c!
Salve a tutti
Avrei un problemino con il linguaggio c.
Vorrei creare una calcolatrice con l'istruzione switch solo che essendo da poco che lo uso commetto parecchi errori di sintassi
che non so riconoscere.
Per favore qualcuno potrebbe postarmi il codice di questo banale programmino, in maniera più semplice possibile anche con solo 2 operazioni? es somma e differenza in modo da poter eseguire l'operazione richiesta e se l'operazione non compare tra le predefinite stampare "errore" o una cavolata qualsiasi.
vi ringrazio tutti anticipatamente
Avrei un problemino con il linguaggio c.
Vorrei creare una calcolatrice con l'istruzione switch solo che essendo da poco che lo uso commetto parecchi errori di sintassi
che non so riconoscere.
Per favore qualcuno potrebbe postarmi il codice di questo banale programmino, in maniera più semplice possibile anche con solo 2 operazioni? es somma e differenza in modo da poter eseguire l'operazione richiesta e se l'operazione non compare tra le predefinite stampare "errore" o una cavolata qualsiasi.
vi ringrazio tutti anticipatamente

Risposte
oddio questo l'avro fatto si e no 4/5 anni fa, fa schifo, non so neanche se funziona, comunque eccotelo 

#include <iostream> using namespace std; double r; void continu(){ char s; double n; char *sign; double n1, n2; while(n1){ cout << "- "; cin >> sign; if(*sign=='=') break; if(!isdigit((int)*sign)){ cin >> n1; switch((int)*sign){ case '+': r=n1+r; break; case '-': r=r-n1; break; case '*': r=n1*r; break; case '/': r=r/n1; break; } } else { cin >> s >> n2; n1=atof(sign); switch(s){ case '+': r=n1+n2; break; case '-': r=n1-n2; break; case '*': r=n1*n2; break; case '/': r=n1/n2; break; } } cout << "- " << r << "\n"; } cout << "- The result is: " << r << "\n"; return; } int main(){ char sign; double n1, n2; cout << "SCE [Simple Calculator by Eafkuor]\nPut = to end\n"; cout << "- "; cin >> n1 >> sign >> n2; switch(sign){ case '+': r=n1+n2; break; case '-': r=n1-n2; break; case '*': r=n1*n2; break; case '/': r=n1/n2; break; } cout << "- " << r << "\n"; continu(); return 0; }
ah, è in c++:
cout << "- The result is: " << r << "\n";
corrisponde a
printf("- The result is: %f\n", r);
poi le altre cose si capiscono
cout << "- The result is: " << r << "\n";
corrisponde a
printf("- The result is: %f\n", r);
poi le altre cose si capiscono
grazie mille
comunque non è che ti trovi qualcosa di più semplice? lo so chiedo troppo
comunque non è che ti trovi qualcosa di più semplice? lo so chiedo troppo
Per essere una "calcolatrice" in c/c++ questa è fin troppo semplice; per capire come funziona basta studiarsela un po'. Se ti fa comodo traducila prima in c.
Comunque chiamarla calcolatrice è un insulto alle calcolatrici
Comunque chiamarla calcolatrice è un insulto alle calcolatrici

ok adesso provo a farlo in maniera molto semplice e te lo posto per vedere se va bene
Mi raccomando, non cominciare a scrivere il programma senza farti prima un progetto, altrimenti ti viene fuori una cosa incasinatissima come la mia. Prima di iniziare a programmare decidi quali saranno le funzionalità che dovranno essere supportate dal programma, definisci la struttura della main, e fai un elenco delle funzioni che ti serviranno per implementare tutte le funzionalità programma.
Detto questo, buona programmazione
Detto questo, buona programmazione

ho dei dubbi su come procedere. non è che potresti postarmi un programmino che fa la somma e la differenza con lo switch?
scusa se rompo un po però capiscimi mi serve per la scuola perchè giovedì ho compito e penso che potrebbe metterci un
qualcosa del genere e non vorrei sbagliare.
grazie
grazie
scusa se rompo un po però capiscimi mi serve per la scuola perchè giovedì ho compito e penso che potrebbe metterci un
qualcosa del genere e non vorrei sbagliare.
grazie


Una calcolatrice C ridotta veramente all'osso.
Se il programma risulta, come credo, chiaro, consiglio di migliorarlo un po', ad esempio rendendo iterativo, controllando poi, nel caso di divisione, la correttezza degli operandi (evitando di calcolare n/0, 0/0), ecc. ecc.
Buon lavoro e in bocca al lupo per il compito!

#include <stdio.h> main() { double op1, op2, ris; unsigned int scelta; printf("##################################\n"); printf("#CALCOLATRICE - prototipo #\n"); printf("##################################\n\n\n"); printf("1- +\n"); printf("2- -\n"); printf("3- *\n"); printf("4- /\n\n"); printf("Scegli l'operazione: "); scanf("%d", &scelta); printf("\nprimo operando: "); scanf("%lf", &op1); printf("\nsecondo operando: "); scanf("%lf", &op2); switch(scelta){ case 1 : ris=op1 + op2; break; case 2 : ris= op1 - op2; break; case 3 : ris= op1 * op2; break; case 4 : ris= op1 / op2; break; default : printf("operatore errato"); break; } printf("%f%s",ris,"\n"); system("pause"); return(0); }
Se il programma risulta, come credo, chiaro, consiglio di migliorarlo un po', ad esempio rendendo iterativo, controllando poi, nel caso di divisione, la correttezza degli operandi (evitando di calcolare n/0, 0/0), ecc. ecc.
Buon lavoro e in bocca al lupo per il compito!

Direi anche di fare in modo che si possa usare come una calcolatrice normale, senza cose del tipo "Che tipo di operazione vuoi fare" 
Comunque brava lorven, bell'esempio.
Sicuramente meglio del mio

Comunque brava lorven, bell'esempio.
Sicuramente meglio del mio

"eafkuor":
brava lorven
Ah, sei una ragazza? Pensavo proprio di no...
"Crook":
[quote="eafkuor"]
brava lorven
Ah, sei una ragazza? Pensavo proprio di no...[/quote]

Temo che vi sbagliate ...

oddio scusa, è che il nick mi sembrava da femmina

"eafkuor":
oddio scusa, è che il nick mi sembrava da femmina
"Lorven" forse ti ricorda una certa Sophia ...

ma questo nick deriva semplicemente dai primi caratteri anagrafici

grazie mille lorven non so come ringraziarti. se ti conoscessi ti offrirei un caffè.
grazie anche a te eafkuor.
ho aggiunto alla calcolatrice le condizioni di realtà per quanto riguarda la divisione e sto provando a rendere il programma più bello esteticamente.
grazie ancora
grazie anche a te eafkuor.
ho aggiunto alla calcolatrice le condizioni di realtà per quanto riguarda la divisione e sto provando a rendere il programma più bello esteticamente.
grazie ancora
"peppesmile":
grazie mille lorven non so come ringraziarti. se ti conoscessi ti offrirei un caffè.
grazie anche a te eafkuor.
ho aggiunto alla calcolatrice le condizioni di realtà per quanto riguarda la divisione e sto provando a rendere il programma più bello esteticamente.
grazie ancora
Per combinazione, ho appena preso un caffè!
Ti ringrazio, è proprio come se me l'avessi offerto tu.

Ciao, e ancora buon compito!
scusate un ultima cosa per rendere il programma più sintetico potrei aggiungere la scelta dell'operazione all'interno dello switch ?
Non si può inserire la scelta dell'operazione all'interno dello switch, perchè questo deve attivare i vari calcoli a seconda della scelta già effettuata in precedenza!

ok lo pensav anch'io comunque il programma funziona? io non lo ho ancora provato perchè sto cercando di renderlo più presentabile per un compito in modo che il prof non sospetti che me lo sono preparato a casa.
sai, piccoli segreti di studenti, ci sei passato anche tu o lo sei ancora?
sai, piccoli segreti di studenti, ci sei passato anche tu o lo sei ancora?
La versione da me postata funzionava.
Non sono più studente, ahimè, da un bel po'.
Non sono più studente, ahimè, da un bel po'.

"lorven":
[quote="Crook"][quote="eafkuor"]
brava lorven
Ah, sei una ragazza? Pensavo proprio di no...[/quote]

Temo che vi sbagliate ...

Ah, ecco. I conti mi tornano
