"Complex Numbers"はObjective-Cですでに定義されていますか?
- Objective-Cは、複素数に "i"を追加する方法を知っていますか? Complex.mファイルに "real"と "imaginary"をdouble値として定義したとき、私はXcodeが "real"と "imaginary"がdouble値であることを知っているだけだと考えました。
- たとえば、 "myComplex.imaginary = 7;"にすると、main.mファイルの複素数の末尾に "i"を追加すると、 "myComplex.imaginary = 7i;"にするその行の出力は0.00000iになります。他の文字を追加すると、プログラムは単に実行されません。どうしてですか?
"本物の"と "想像的"の意味は、Xcodeにはすでに知られていますが、私が従う本はこれを指定していないので少し混乱しています。
また、次のコードを作成していないことに注意してください。自分の問題を把握できなかったため、このコードは書籍フォーラムのメンバーからコピーされました。
// Complex.h
#include <Foundation/Foundation.h>
@interface Complex : NSObject
@property double real, imaginary;
-(void) print;
-(Complex *) add: (Complex *) complexNum;
-(Complex *) subtract: (Complex *) complexNum;
-(Complex *) multiply: (Complex *) complexNum;
-(Complex *) divide: (Complex *) complexNum;
@end
// Complex.m
#import "Complex.h"
@implementation Complex
@synthesize real, imaginary;
-(void) print
{
NSLog(@"%f + %fi", real, imaginary);
}
-(Complex *) add: (Complex *) complexNum
{
Complex *result = [[Complex alloc]init];
result.real = real + complexNum.real;
result.imaginary = imaginary + complexNum.imaginary;
return result;
}
-(Complex *) subtract: (Complex *) complexNum
{
Complex *result = [[Complex alloc]init];
result.real = real - complexNum.real;
result.imaginary = imaginary - complexNum.imaginary;
return result;
}
-(Complex *) multiply: (Complex *) complexNum
{
Complex *result = [[Complex alloc]init];
result.real = real * complexNum.real;
result.imaginary = imaginary * complexNum.imaginary;
return result;
}
-(Complex *) divide: (Complex *) complexNum
{
Complex *result = [[Complex alloc]init];
result.real = real/complexNum.real;
result.imaginary = imaginary/complexNum.imaginary;
return result;
}
@end
//
// main.m
// Complex
#include <Foundation/Foundation.h>
#import "Complex.h"
int main(int argc, const char *argv[]) {
@autoreleasepool {
Complex *myComplex = [[Complex alloc]init];
Complex *totalComplex = [[Complex alloc]init];
Complex *yourComplex = [[Complex alloc]init];
myComplex.real = 5.3;
myComplex.imaginary = 7;
[myComplex print];
NSLog(@"+");
yourComplex.real = 2.7;
yourComplex.imaginary = 4;
[yourComplex print];
NSLog(@"=");
totalComplex = [myComplex add: yourComplex];
[totalComplex print];
}
return 0;
}
ああ!理解できない英語でのn00b以外の質問!何がSOに起こったのですか? (+1) –