calcolatrice/Calcolatrice/Scientifica.m

128 lines
2.8 KiB
Mathematica
Raw Permalink Normal View History

2013-07-22 17:02:52 +02:00
#import "Scientifica.h"
#import <math.h>
@implementation Scientifica
@synthesize casella;
- (IBAction) operazioneScientifica: (id) sender
{
NSNumber *numero, *risultato;
NSString *risultatoInStringa;
numero = @([[casella stringValue] doubleValue]);
switch([sender tag]){
case 0:{
risultato = @(pow([numero doubleValue],2));
break;
}
case 1:{
risultato = @(pow([numero doubleValue],3));
break;
}
case 2:{
risultato = @(cos([numero doubleValue]));
break;
}
case 3:{
risultato = @(sin([numero doubleValue]));
break;
}
case 4:{
risultato = @(tan([numero doubleValue]));
break;
}
case 5:{
risultato = @(1/[numero doubleValue]);
break;
}
case 6:{
risultato = @(sqrt([numero doubleValue]));
break;
}
case 7:{
risultato = @(cbrt([numero doubleValue]));
break;
}
case 8:{
risultato = @(exp([numero doubleValue]));
break;
}
case 9:{
risultato = @(log2([numero doubleValue]));
break;
}
case 10:{
risultato = @(log10([numero doubleValue]));
break;
}
case 11:{
risultato = @(log([numero doubleValue]));
break;
}
case 12:{
risultato = @([self fattoriale: [numero doubleValue]]);
break;
}
}
if(fmod([risultato doubleValue],1) == 0)
risultatoInStringa = [NSString stringWithFormat:@"%d", [risultato intValue]];
else
risultatoInStringa = [NSString stringWithFormat:@"%f", [risultato doubleValue]];
[casella setStringValue: risultatoInStringa];
}
- (IBAction) calcolaRisultato:(id)sender
{
NSNumber *risultato;
NSString *risultatoInStringa;
numero2 = @([[casella stringValue] doubleValue]);
[self cancellaCasella:0];
switch (operazioneCorrente) {
case 1:{
risultato = @([numero1 doubleValue] / [numero2 doubleValue]);
break;
}
case 2:{
risultato = @([numero1 doubleValue] * [numero2 doubleValue]);
break;
}
case 3:{
risultato = @([numero1 doubleValue] - [numero2 doubleValue]);
break;
}
case 4:{
risultato = @([numero1 doubleValue] + [numero2 doubleValue]);
break;
}
case 5:{
risultato = @(pow([numero1 doubleValue], [numero2 doubleValue]));
break;
}
}
if(fmod([risultato doubleValue],1) == 0)
risultatoInStringa = [NSString stringWithFormat:@"%d", [risultato intValue]];
else
risultatoInStringa = [NSString stringWithFormat:@"%f", [risultato doubleValue]];
[casella setStringValue: risultatoInStringa];
}
- (IBAction) inviaCostante: (id) sender
{
if([sender tag] == 0)
[casella setStringValue: [NSString stringWithFormat:@"%lf", M_PI]];
else
[casella setStringValue: [NSString stringWithFormat:@"%lf", M_E]];
}
- (long) fattoriale: (int) n
{
if (n <= 1)
return 1;
else
return n * [self fattoriale: n-1];
}
@end