Oppure

Loading
Questo topic e' stato chiuso dal moderatore.
06/04/10 16:38
gforce
se io ho questa traccia come posso risolverla:

Scrivete un programma che calcoli un espressione:

Inserisci l'espressione: 1+2*3 (input dell'utente)
Valore = 9

Gli operatori sono + - * / e nessun operatore ha precedenza sugli altri !


MI fareste questo programma commentato, perchè non riesco a risolverlo. Grazie
Ultima modifica effettuata da gforce 06/04/10 17:07
aaa
06/04/10 16:50
gio97
Ah, vuole il programma e pure commentato, cosa vuole di contorno il signore? Vuole ordinare anche del vino?
Non siamo qui per farti il programma, altrimenti non impari nulla e non ha assolutamente senso. Innanzitutto sono certo che riesci perlomeno ad avere in input l'espressione, almeno quello potevi degnarti di scriverlo. Poi tra l'altro è ancora più semplice, in quanto non c'è la precedenza degli operatori. Nel caso ci fosse dovresti vedere la "Notazione Polacca Inversa". Basta un semplice controllo delle stringhe, se ti impegni sono certo che riesci a fare gran parte del lavoro, altrimenti, se proprio hai QUALCHE problema, siamo qui per aiutarti.

PS: Ma prima di imparare a programmare, potresti imparare un po' di matematica. Hai detto che non c'è precedenza degli operatori, quindi 1 + 2 = 3 * 3 = 9;
E anche se ci fosse 2 * 3 = 6 + 1 = 7.
Ultima modifica effettuata da gio97 06/04/10 16:53
aaa
06/04/10 17:07
gforce
Postato originariamente da gio97:

Ah, vuole il programma e pure commentato, cosa vuole di contorno il signore? Vuole ordinare anche del vino?
Non siamo qui per farti il programma, altrimenti non impari nulla e non ha assolutamente senso. Innanzitutto sono certo che riesci perlomeno ad avere in input l'espressione, almeno quello potevi degnarti di scriverlo. Poi tra l'altro è ancora più semplice, in quanto non c'è la precedenza degli operatori. Nel caso ci fosse dovresti vedere la "Notazione Polacca Inversa". Basta un semplice controllo delle stringhe, se ti impegni sono certo che riesci a fare gran parte del lavoro, altrimenti, se proprio hai QUALCHE problema, siamo qui per aiutarti.

PS: Ma prima di imparare a programmare, potresti imparare un po' di matematica. Hai detto che non c'è precedenza degli operatori, quindi 1 + 2 = 3 * 3 = 9;
E anche se ci fosse 2 * 3 = 6 + 1 = 7.


Grazie .. Ho capito come devo costruire il programma adesso mi manca la risposta sul mio secondo topic aperto !
aaa
06/04/10 20:28
Luk3
Non fare caso a gio97, è un po' sgarbato di suo.
aaa
06/04/10 20:38
gio97
Era ironico, però credo che con queste frasi si capisca bene ciò che intendo, spero di non offendere nessuno, ma è il mio carattere.
aaa
08/04/10 5:35
gforce
Mi dovreste dire soltanto questo:

come si fa con il getchar a riconoscere se è un numero.
Char ch;
INT pila;
while ((ch = getchar) != '\n')
switch (ch)
case '2' pila += 2

+ o - è così ? ( non badare a parentesi o cose varie che sto sull iPhone )
aaa
08/04/10 5:39
gio97
Oltre al fatto di non aver compreso la tua ultima domanda, un libro che ti consiglio assolutamente di prendere è quello Deitel & Deitel: C Corso di Programmazione.
Fai un sacco di errori, è evidente che non conosci il linguaggio.
aaa
08/04/10 17:57
gforce
bhe la domanda è facile ... Non vedo cosa non hai capito ... E tu oltre al libro sai dire qualche altra cosa ? Adesso non dire "Ti stavo solo consigliando oppure, è il mio carattere ecc. ..."

Ripeto la domanda ... Getchar riceve caratteri per esempio se digito 2 non mi lo riconosce come int ma come char ! C'è un modo oltre al if o switch per far vedere se il carattere immesso dall'utente è un numero, quindi convertilo in numero ? E di conseguenza fare operazioni ?

Hai capito ora gio97 ? Se no è meglio che ti copri un dizionario della lingua italiana, zanichelli e ottimo !
Ultima modifica effettuata da gforce 08/04/10 17:59
aaa