noki57oo Pubblicato: 2 Febbraio 2009 Segnalazione Share Pubblicato: 2 Febbraio 2009 (modificato) ho copiato questo codice dalla guida solo che non va!! use UI ui.menu("Operazioni", ["Somma", "Sottrazione", "Esci"]); while true do c=ui.cmd(); if c="Somma" then num1=ui.query("Inserisci il primo numero: ",""); num2=ui.query("Inserisci il secondo numero: ",""); print "La somma è uguale a " num1+num2; end; if c="Sottrazione" then num1=ui.query("Inserisci il primo numero: ",""); num2=ui.query("Inserisci il secondo numero: ",""); print "La differenza è uguale a " num1-num2; end; if c="Esci" then break end; end mi da questo errore syntax error 'end' expected cosa c'è di sbagliato?? help me please!! sono un novellino e stavo cercando di creare una calcolatrice molto, ma molto semplice solo che se non va nemmeno il testo della guida, qundi o sono sfigato o sono talmente incapace che non riesco nemmeno a copiarlo quindi mi potete dire perche non va? grazie EDIT:avevo pernsato anche di allulngarlo cosi use UI ui.menu("Operazioni", ["Somma", "Sottrazione", "moltiplicazione", "divisione", "Esci"]); while true do c=ui.cmd(); if c="Somma" then num1=ui.query("Inserisci il primo numero: ",""); num2=ui.query("Inserisci il secondo numero: ",""); print "La somma è uguale a " num1+num2; end; if c="Sottrazione" then num1=ui.query("Inserisci il primo numero: ",""); num2=ui.query("Inserisci il secondo numero: ",""); print "La differenza è uguale a " num1-num2; end; if c="moltiplicazione" then num1=ui.query("Inserisci il primo numero: ",""); num2=ui.query("Inserisci il secondo numero: ",""); print "La moltiplicazione è uguale a " num1*num2; end; if c="divisione" then num1=ui.query("Inserisci il primo numero: ",""); num2=ui.query("Inserisci il secondo numero: ",""); print "La divisione è uguale a " num1/num2; end; if c="Esci" then break end; end solo che non va lo stesso Modificato 2 Febbraio 2009 da noki57oo Link to comment Condividi su altri siti More sharing options...
Il.Socio Pubblicato: 2 Febbraio 2009 Segnalazione Share Pubblicato: 2 Febbraio 2009 (modificato) la butto li... manca il punto e virgola dopo l'end finale... Modificato 2 Febbraio 2009 da Il.Socio Link to comment Condividi su altri siti More sharing options...
noki57oo Pubblicato: 2 Febbraio 2009 Autore Segnalazione Share Pubblicato: 2 Febbraio 2009 (modificato) be provo a metterci il punto e la virgola EDIT:non va lo stesso EDIT:per specificare meglio mi da l'errore e va nel qui all'interno del codice codice: use UI ui.menu("Operazioni", ["Somma", "Sottrazione", "moltiplicazione", "divisione", "Esci"]); while true do c=ui.cmd(); if c="Somma" then num1=ui.query("Inserisci il primo numero: ",""); num2=ui.query("Inserisci il secondo numero: ",""); print "La somma è uguale a "qui num1+num2; end; if c="Sottrazione" then num1=ui.query("Inserisci il primo numero: ",""); num2=ui.query("Inserisci il secondo numero: ",""); print "La differenza è uguale a "qui num1-num2; end; if c="moltiplicazione" then num1=ui.query("Inserisci il primo numero: ",""); num2=ui.query("Inserisci il secondo numero: ",""); print "La moltiplicazione è uguale a "qui num1*num2; end; if c="divisione" then num1=ui.query("Inserisci il primo numero: ",""); num2=ui.query("Inserisci il secondo numero: ",""); print "La divisione è uguale a "qui num1/num2; end; if c="Esci" then break end; end fine codice Modificato 2 Febbraio 2009 da noki57oo Link to comment Condividi su altri siti More sharing options...
madhacker Pubblicato: 2 Febbraio 2009 Segnalazione Share Pubblicato: 2 Febbraio 2009 (modificato) la butto lì anche io. come fai a sapere che i numeri che inserisci nella query siano numeri e non stringhe di numeri? perchè se fossero stringhe sarebbe impossibile fare le operazioni matematiche. prova cosi use UI ui.menu("Operazioni", ["Somma", "Esci"]); while true do c=ui.cmd(); if c="Somma" then num1=6 num2=5 print "La somma è uguale a " num1+num2; end; if c="Esci" then break end; end fai la somma e dimmi se il risultato te lo stampa. se così fosse, devi accertarti che i caratteri che vengono inseriti nelle query siano di tipo numerico. spero di esserti stato di aiuto Modificato 2 Febbraio 2009 da madhacker Link to comment Condividi su altri siti More sharing options...
noki57oo Pubblicato: 2 Febbraio 2009 Autore Segnalazione Share Pubblicato: 2 Febbraio 2009 no, non va Link to comment Condividi su altri siti More sharing options...
xMetallicax Pubblicato: 2 Febbraio 2009 Segnalazione Share Pubblicato: 2 Febbraio 2009 Vecchia stringa: print "La somma è uguale a " num1+num2; nuova stringa: print "La somma è uguale a "+ num1+num2; manca la più (+) Link to comment Condividi su altri siti More sharing options...
noki57oo Pubblicato: 2 Febbraio 2009 Autore Segnalazione Share Pubblicato: 2 Febbraio 2009 (modificato) grazie mille solo che adesso mi dice excstringnotnumber: operand is a string, not a number con le sottrazioni, moltiplicazioni e divisioni, con le addizioni mi somma cosi 12+2=122 come risolvo? EDIT:piccola domanda, il mshell è il linguaggio piu facile vero?? Modificato 2 Febbraio 2009 da noki57oo Link to comment Condividi su altri siti More sharing options...
memoryn70 Pubblicato: 2 Febbraio 2009 Segnalazione Share Pubblicato: 2 Febbraio 2009 (modificato) grazie mille solo che adesso mi dice excstringnotnumber: operand is a string, not a number con le sottrazioni, moltiplicazioni e divisioni, con le addizioni mi somma cosi 12+2=122 come risolvo? EDIT:piccola domanda, il mshell è il linguaggio piu facile vero?? Dovresti sapere che esistono vari tipi di dati: numerici, stringhe, array... Se ti somma cosi: 12+2=122 vuol dire che stai facendo somma tra due stringhe, contengono numeri ma sempre stringhe sono Per trasformarli in numeri dovresti fare una cosa tipo int(num)... Modificato 2 Febbraio 2009 da memoryn70 Link to comment Condividi su altri siti More sharing options...
noki57oo Pubblicato: 2 Febbraio 2009 Autore Segnalazione Share Pubblicato: 2 Febbraio 2009 (modificato) quindi una cosa cosi use UI ui.menu("Operazioni", ["Somma", "Esci"]); while true do c=ui.cmd(); if c="Somma" then int(num1)=ui.query("Inserisci il primo numero: ",""); int(num2)=ui.query("Inserisci il secondo numero: ",""); print "La somma è uguale a "+ num1+num2; end; se no sono proprio negato e torno al symbian hack(che almeno era piu facile, ma credo che anche qui diventi facile, basta sapere come gira la cosa) no non va cosi, aiutatemi per favore!!!(in seguito pensero alla parte grafica e vi rompero tranquilli) Modificato 2 Febbraio 2009 da noki57oo Link to comment Condividi su altri siti More sharing options...
madhacker Pubblicato: 2 Febbraio 2009 Segnalazione Share Pubblicato: 2 Febbraio 2009 (modificato) come pensavo facevi un'operazione tra 2 stringhe di numeri e non tra 2 numeri. prova così use UI ui.menu("Operazioni", ["Somma", "Esci"]); while true do c=ui.cmd(); if c="Somma" then num1=ui.query("Inserisci il primo numero: ",value="Number"); num2=ui.query("Inserisci il secondo numero: ",value="Number"); print "La somma è uguale a "+ num1+num2; end; così nell'input dovrai anche riuscire ad inserire soltanto numeri. Modificato 2 Febbraio 2009 da madhacker Link to comment Condividi su altri siti More sharing options...
noki57oo Pubblicato: 2 Febbraio 2009 Autore Segnalazione Share Pubblicato: 2 Febbraio 2009 non va lo stesso, sono disperato, ho creato qualcosa che assomiglia ad un'applicazione e mi da errore ovunque aiutatemi!! le sto provando tutte! Link to comment Condividi su altri siti More sharing options...
madhacker Pubblicato: 2 Febbraio 2009 Segnalazione Share Pubblicato: 2 Febbraio 2009 nel mio esempio che genere di errore ti riporta? Link to comment Condividi su altri siti More sharing options...
noki57oo Pubblicato: 2 Febbraio 2009 Autore Segnalazione Share Pubblicato: 2 Febbraio 2009 nessun errore, almeno li, solo che mi somma sempre cosi 1+1=11 Link to comment Condividi su altri siti More sharing options...
madhacker Pubblicato: 2 Febbraio 2009 Segnalazione Share Pubblicato: 2 Febbraio 2009 prova use UI ui.menu("Operazioni", ["Somma", "Esci"]); while true do c=ui.cmd(); if c="Somma" then num1=ui.query("Inserisci il primo numero: ",title="Titolo",value="Number"); num2=ui.query("Inserisci il secondo numero: ",title="Titolo",value="Number"); print "La somma è uguale a "+ num1+num2; end; Link to comment Condividi su altri siti More sharing options...
Il.Socio Pubblicato: 2 Febbraio 2009 Segnalazione Share Pubblicato: 2 Febbraio 2009 (modificato) non va lo stesso, sono disperato, ho creato qualcosa che assomiglia ad un'applicazione e mi da errore ovunque aiutatemi!! le sto provando tutte! nessun errore, almeno li, solo che mi somma sempre cosi 1+1=11 Ma leggere una guida invece di andare completamente a casaccio, no?!? Prova cosi', dovrebbe andare: print "La somma è uguale a "+ (num1+num2) Altrimenti: num3 = num1 + num2; print "La somma è uguale a "+ num3 Modificato 2 Febbraio 2009 da Il.Socio Link to comment Condividi su altri siti More sharing options...
noki57oo Pubblicato: 2 Febbraio 2009 Autore Segnalazione Share Pubblicato: 2 Febbraio 2009 (modificato) sempre cosi 1+1=11 adesso lo tiro contro il muro e vediamo se mi da ancora errore , comunque grazie per la tua disponibilita ad aiutarmi adesso provo quella del socio sempre 1+1=11 ma quella int(num) detta da memoryn70 come è? anzi cosa intendeva? Modificato 2 Febbraio 2009 da noki57oo Link to comment Condividi su altri siti More sharing options...
Simon88 Pubblicato: 3 Febbraio 2009 Segnalazione Share Pubblicato: 3 Febbraio 2009 sempre cosi 1+1=11 adesso lo tiro contro il muro e vediamo se mi da ancora errore , comunque grazie per la tua disponibilita ad aiutarmiadesso provo quella del socio sempre 1+1=11 ma quella int(num) detta da memoryn70 come è? anzi cosa intendeva? Praticamente memory ti diceva di convertire la stringa in numero. Infatti ti restituisce 11 quando fai 1+1 perchè concatena due stringhe invece che sommare due numeri! Dovresti trovare in mshell la funzione che prende come parametro una stringa e ti restituisce come risultato un intero. Come suggerito da memory in python si ottiene con int(num) in mshell però non so come si fa.Sicuramente non potrà differire di molto! Prova, magari, a cercare qualche guida, penso che queste siano cose basilari di un linguaggio di programmazione Link to comment Condividi su altri siti More sharing options...
memoryn70 Pubblicato: 3 Febbraio 2009 Segnalazione Share Pubblicato: 3 Febbraio 2009 Praticamente memory ti diceva di convertire la stringa in numero. Infatti ti restituisce 11 quando fai 1+1 perchè concatena due stringhe invece che sommare due numeri! Dovresti trovare in mshell la funzione che prende come parametro una stringa e ti restituisce come risultato un intero. Come suggerito da memory in python si ottiene con int(num) in mshell però non so come si fa.Sicuramente non potrà differire di molto! Prova, magari, a cercare qualche guida, penso che queste siano cose basilari di un linguaggio di programmazione Eh sono basilari si! Di solito int è una funzione presente su molti linguaggi di programmazione Link to comment Condividi su altri siti More sharing options...
madhacker Pubblicato: 3 Febbraio 2009 Segnalazione Share Pubblicato: 3 Febbraio 2009 peccato che stavolta abbiamo beccato quello che usa num() Link to comment Condividi su altri siti More sharing options...
Simon88 Pubblicato: 4 Febbraio 2009 Segnalazione Share Pubblicato: 4 Febbraio 2009 peccato che stavolta abbiamo beccato quello che usa num() ehm ok, scusate...ma il concetto rimane lo stesso Link to comment Condividi su altri siti More sharing options...
masmil1988 Pubblicato: 5 Febbraio 2009 Segnalazione Share Pubblicato: 5 Febbraio 2009 In mShell le variabili non sono tipizzate. Se la variabile viene usata come stringa una volta quella sarà una stringa. var="ciao" Se poi a quella variabile assegnate un numero il tipo di quella variabile diverrà numerico (e la variabile rimane sempre la stessa, come nome!). var=2 Quindi quando si chiama la ui.query(), il valore ritornato è una stringa (nella guida ufficiale è spiegato per ogni funzione il tipo di ritorno), quindi è necessario convertire il tipo di ritorno in numero, tramite la num(). Ovviamente per evitare errori nel corso dell'applicazione è bene fare un controllo per vedere se ciò che è stato inserito è un numero, per fare questo c'è la funzione di tipo booleano isnum(valore)... Link to comment Condividi su altri siti More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Accedi Ora