サイトトップへ
OSASK.NET
  サイトトップへ       新掲示板(閉鎖済)   Wiki(凍結済)   旧掲示板(廃止済)   ニュース(廃止済)  
Page Top

(1) rei0004.c anchor.png

int a;
a = 1 + 2;
printf("%d", a);
  • 今回はここから話をはじめたいと思います。1行目は、aというのは変数だよ、これは整数を覚えるのに使うよ、とコンピュータに教えるためのものです。命令のintは整数のintergerに由来します。こうやって前もって断っておかないと、いきなりaとか書いてもコンピュータは驚いてしまって、「なんかいきなりaとか出てきたんだけど、ちゃんと宣言してから使ってよね」というエラーが出てしまいます。
  • 2行目は、1+2を計算してその結果がaに代入されます。1+2という数式を覚えるのではなくて、答えである3を覚えます。
  • そして3行目。printfでは%dを使うと変数の中身を表示することができます。なんかよくわからない書き方だなあと感じると思いますが、とりあえずこう書けば変数の値を表示することができる、と今は思ってください。
  • ということでこれを実行すると画面に3が表示されます。まあ面白くはないです。ごめんなさい。
Page Top

(2) rei0005.c anchor.png

int a;
a = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10;
printf("こたえは %d", a);
  • これを実行すると、画面には「こたえは 55」と表示されます。これくらいになると、ただの計算機よりはかしこいかなという気になります。また、%dの意味も少し分かってきます。つまり%dの部分に変数の値が置き換わって表示されるというわけです。
  • ここまではいいでしょうか?
Page Top

(3) rei0006.c anchor.png

int a, b, c;
a = inptInt("たて? ");
b = inptInt("よこ? ");
c = a * b;
printf("めんせき = %d", c);
  • これを実行すると、縦や横の数字を聞かれるようになります。入力した数字は変数aとbに入ります。そしてそれを掛け算した結果がcに入って、面積として表示されます。
  • このように inptInt を使うと、数字を入力できるようになります。またC言語では掛け算の記号に*を使います。
  • 面積の計算は簡単すぎて面白くないですが、もっと難しい公式を覚えさせれば、それなりに役に立ちます。
Page Top

(4) rei0007.c anchor.png

float a, b, c, d;
a = inptFlot("しんちょう[cm]? ");
b = inptFlot("たいじゅう[kg]? ");
c = a / 100.0;
d = b / (c * c);
printf("BMI = %f", d);
  • これは身長と体重からBMIを計算するプログラムです。今回は整数の計算では不足なので、小数を扱っています。小数を覚えられる変数を作るには int の代わりに float を使います。そして printf では %d の代わりに %f を使うようにします。100ではなく100.0にしているのは、これは小数を使った割り算なんだよと強調するためです(このプログラムの場合は前後の文脈から判断して小数の割り算だとコンピュータに気づいてもらえるので、別に100でも問題はないですが)。
  • おっといい忘れていました。 / は割り算の記号です。
  • ちなみにBMIは20~24くらいの範囲であればいいらしいです。あなたはどうですか?
Page Top

(5) まとめ anchor.png

  • 今回は最後の例題に float が出てきましたが、今後 float はあまり出てこないのでそれほど重要ではないです。整数の計算だけでは困るなあということがもしあったら思い出してあげてください。
  • 変数は重要です。超重要です。
Page Top

指導者用の註釈 (普通の人は読まなくていいです) anchor.png

  • inptInt()の実装例は次のとおり
    int inptInt(const char *s, ...)
    {
        int r;
        if (s != NULL) { sを表示(printf風に); }
        scanf("%d", &r);
        return r;
    }
  • このような関数を使うことで、scanfでポインタの利用を避けられる。初学者は&を付け忘れる場合が少なくなく、その場合ポインタ的におかしいために、アプリは不正なアクセスをしかねない。そういう危険を回避するためにこの段階でのメジャーなscanfの利用をしていない。

トップ   凍結解除 差分 バックアップ 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ
新着

目次
メンバー一覧


最新の20件
2016-10-01 2016-09-08
  • @MenuBar.
2016-09-07 2016-09-04 2016-08-15 2015-09-23 2014-07-30 2014-07-04 2014-02-04 2013-10-26 2013-06-21 2013-06-17 2013-06-15 2013-04-02 2013-02-09 2013-02-04 2012-12-25 2012-12-01 2012-05-28 2012-03-31

トピック一覧
一般用コメント最新
新掲示板lina
2016/9/5 20:58
SandBoxゲスト
2016/9/4 12:01
RecentDeletedlina
2015/6/2 19:29
Old-OSASK-MLlina
2014/6/29 9:14
hideyosi/メールhideyosi
2014/1/6 20:17
hideyosi/募集中lina
2013/11/8 19:56

このサイトは川合秀実から委託を受けて、OSASKコミュニティによって管理・運営されています。