aiuto codice per esercizio sulla calcolatrice

Posto la mia idea qui, in caso qualcuno sappia darci una dritta e correggere eventuali errori.

mettiamo che vuoi fare il numero 25
il tuo programma funziona così:
premi il 2:
numero=numero10 + numero che hai premuto (in questo caso il 2)
quindi numero=0
10+2 cioè numero = 2
visualizza numero nel label
premi il 5:
numero=numero10+ numero premuto (5)
quindi numero=2
10+5 → numero ora è = 25
visualizza numero nel label

ora per fare le virgole ho pensato a questa cosa:
inizializzi altre 2 variabili e crei il tasto con la virgola.

int virgola; (che sarà uguale a 0)
int decimale; (che sarà uguale a 1)

per prima cosa crei l’evento della pressione del tasto virgola, una volta premuto deve succedere solamente questo:
virgola=1

e modifichi il tuo codice alla pressione dei tasti coi numeri in questo modo

if virgola=0
numero = numero*10 + numero che hai premuto
visualizza numero
else
numero = numero + (numero che hai premuto/(10^decimale))
decimale= decimale+1
visualizza numero

cosa succederà? Mettiamo che vuoi fare 25,47

finchè virgola=0, sarà tutto come prima e il 25 verrà contato come prima.
ora premendo il tasto virgola, la variabile virgola diventa 1e allora scatterà l’else della tua if…
perciò:
premi il 4 e succede questo:
numero = numero + (numero che hai premuto/(10^decimale))
decimale = decimale + 1
cioè
numero= 25+(4/10^1) ovvero 25 + 0,4
decimale = 1 + 1
visualizza numero che sarà dunque 25,4

adesso premi il 7. virgola è ancora a 1 perciò scatterà ancora l'else:
numero=25,4+(7/10^2)   ovvero 25,4 + 0,07   
decimale = 2 + 1 

in questo modo puoi aggiungere tutti i decimali che vuoi perchè la variabile decimale terrà il conto delle cifre dopo la virgola e dividerà il numero premuto successivamente per 10-100-1000 e così via, specificando quindi la posizione della cifra fra i decimali.
L’unica cosa che devi ricordarti è di riportare le variabili virgola e decimale alla situazione iniziale (virgola a 0 e decimale a 1) alla pressione di un qualsiasi altro tasto che non sia un numero… tipo l’AC, il +, il –, il x e il / .

chiaramente io ho messo l’idea, ora sta a te ad impostare la sintassi corretta perchè il linguaggio che hai usato tu non lo conosco. Per qualsiasi cosa chiedi pure.

va bene grazie :slight_smile: stasera mi ci metto dietro e provo a scrivere tutto in codice sperando di riuscirci, poi vi faccio sapere :wink:

niente, non riesco a trascriverlo in codice è tutto il giorno che ci provo, appena ho altro tempo riprovo

Ciao, mi sono fatto direttamente tutta l’app e a me funziona…
nel file .h invece di float usa double e metti queste variabili:

@interface ViewController : UIViewController {
IBOutlet UILabel *calculatorScreen;
double numero;
double risultato;
int operazione;
int decimale;
int virgola;
double prov;
}
-(IBAction)buttonDigitPressed: (id)sender;
-(IBAction)buttonOperationPressed: (id)sender;

-(IBAction)cancelOperation;
-(IBAction)virgola;
@end

poi crea nel file .xib il tasto virgola. (ricorda il collegamento da file’s owner)

nel file .m invece quando premi un numero imposta così:
-(IBAction)buttonDigitPressed: (id)sender{

if (virgola == 0) {
numero = numero*10 +(float)[sender tag];
calculatorScreen.text = [NSString stringWithFormat:@"%2f",numero];
}
else {
    prov = (float)[sender tag];
    double kk = prov/decimale;
    numero = numero+(kk);
    decimale = decimale*10;
    calculatorScreen.text = [NSString stringWithFormat:@"%2f",numero];
}

}

poi sempre nel file .m aggiungi:

-(IBAction)virgola{
virgola = 1;
decimale = 10;
}

adesso devi solo aggiungere in operation pressed e negli altri tasti per cancellare
decimale = 10;
virgola =0;
prov =0;

perfetto, all’ora ho provato a scrivere il codici e a collegare tutto, ma non capisco, ora se schiaccio tipo 1 poi tasto virgola e 2 mi viene 1,20000 (e gli zeri vanno bene perché è settato cosi) però appena premo un tasto tipo “+,-,=” ecc mi viene questo errore) Schermata 2013-07-13 alle 12.52.54.jpg
ora in tanto cerco di capire il motivo magari ho sbagliato a scrivere il codice o a collegare

ecco il file.m ho provato in 2 modi
1 Schermata 2013-07-13 alle 13.22.11.jpg aggiungendo il codice come avevo fatto dall’inizio
2 Schermata 2013-07-13 alle 13.26.32.jpg copiando il codice che mi hai postato

aiuto codice per esercizio sulla calcolatrice

C’è un errore. Guarda nella prima foto… Tutto il tuo codice viene eseguito alla pressione dei tasti numerici.
Invece devi mettere quello che ti postato stamattina in digit pressed… Come lo è già…
Poi però il codice da if numero == 0 ecc , lo devi mettere quando vengono premuti i tasti ±*/=, cioè devi creare un ibaction button operation pressed…

Quello che ti ho postato stamattina dovevi aggiungerlo e in alcuni casi sostituirlo al tuo che mi avevi inviato in pm dove la calcolatrice funzionava, ma senza virgola

Sent from my iPhone using Tapatalk

è che nel tuo codice non riesco a capire dove devo cambiare i tasto ad esempio + con il -

allora questo è il file .h
Schermata 2013-07-13 alle 20.51.57.png
questo è il file .m
Schermata 2013-07-13 alle 20.51.36.jpg

mi raccomando sistema bene anche i tag e collegamenti nel .xib

ps. io non ho messo sia il cancella che l’ac… ho messo solo un cancella, che cancella tutto…

va bene grazie mille :slight_smile: mi ci metto subito dietro appena avrò finito ti dirò com’è andata :wink: grazie ancora :slight_smile:

perfetto funziona tutto :slight_smile: una cosa sola per chi dovesse leggere questo post:
Nel file .m c’è un piccolo errore i tasti “/” e “*” sono invertiti quindi se uno volesse fare 12 / 6 dovrebbe schiacciare i tasti 12 * 6 in modo da avere il risultato =2 basta semplicemente invertirli :wink:

aiuto codice per esercizio sulla calcolatrice

Fesso io che ho speso 1,79 euro per avere la calcolatrice sull’ipad… Se lo sapevo me la facevo io stesso l’app con Xcode :frowning:

Inviato dal mio iPad con Tapatalk HD

E poi spendevi 99$ all’anno per avere la tua calcolatrice sull’ipad? Forse è meglio aver speso 1,79€ xD

Fesso per avere speso 1,79 :blink:

OMG

aiuto codice per esercizio sulla calcolatrice

Beh io son sviluppatore ma non pagante… Posso quindi usare Xcode però per diventare uno sviluppatore a tutti gli effetti devo pagare…
Non é niente di illegale o anomalo o losco, ti registri nella sezione sviluppatori e poi per avere pieni “poteri” devi pagare :slight_smile:

Inviato dal mio iPad con Tapatalk HD

i tasti non sono invertiti nel codice…
semplicemente io e te nel file .xib abbiamo invertito i tag nei pulsanti… :wink: