« Cocoaはじめの一歩+α 練習問題2 | メイン | Display dialogをループさせてランチャーを作ってみる »

Cocoaはじめの一歩+α 練習問題3

Cocoaはじめの一歩というサイトの歩き方です。
Cocoaはじめの一歩にある練習問題を通じでXcodeとobjective-Cになじもうとする企画です。

では練習問題3をやって見ましょう。

この問題はアプリケーションの細やかな仕様を実現するためのもの。
パブリッシュするアプリを作ったことのあるヒトなら当然配慮する事柄です。
割り勘の計算ということで、割り算の際の余りを考慮する問題です。

でも、あなたが割り勘の計算をするときって、1円単位まで割りますか?そのへんも考えてみてください。
あと、アップリケーションのウィンドウにもタイトルをつけてあげましょう。

解答です。




@implementation MAWarikan

- (IBAction)keisan:(id)sender
{
    int gokei = [gokeiField intValue];
    int ninzu = [ninzuField intValue];
    if (ninzu > 0 ) {        
        int hitoriatari = gokei / ninzu / 100 * 100;
        int hasu = gokei - hitoriatari * ninzu;
        [hitoriatariField setIntValue:hitoriatari];
        [hasuField setIntValue:hasu];
    } else {
        [ninzuField setStringValue:@"error"];
    }    
}

@end

まず人数は正の数しか許しません。.......と書きましたが、小数が入ってしまいますね(ただしプログラムでは無視されます)。
普通のアプリはユーザーの入力をチェックするフェーズがあって、想定外の入力はエラーとします。
このコードの場合は、人数がゼロ以下の場合、入力したフィールドにerrorとの表示をします。

割り算の答えを100で割って100をかけます。受け側の項目hitoriatariがint型なので、この計算で100円単位の切り捨てができます。
余りはこのhitoriatariから逆算しています。
ビューはこんな感じです。

練習問題3の答えを見てみたら、100円単位の記述がありますね。
データの名前付けにも言及しています。xillionはC言語のネーミングルール自体知らないのですが、データの名前は小文字から始める習慣があるようです。複数の単語を結合させてデータの名前とするときは2単語目以降の頭文字を大文字にします。
例えば、goodMorningMrFoobarという感じです。


Exercise3.zip




ひとつ前の投稿は「Cocoaはじめの一歩+α 練習問題2」です。
次の投稿は「Display dialogをループさせてランチャーを作ってみる」です。

トラックバック

このエントリーのトラックバックURL:
http://www.xillion.net/mova/mt-tb.cgi/286

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2008年02月24日 08:44に投稿されたエントリーのページです。

メインページアーカイブページも見てください。

Powered by
Movable Type 3.34