プログラミング基礎 II

第十回: 配列と標準ライブラリ関数

Martin J. Dürst

duerst@it.aoyama.ac.jp

O 棟 529号室

テュールスト マーティン ヤコブ

http://www.sw.it.aoyama.ac.jp/2005/Programming%20Basics%20II/lecture10.html

AGU

© 2005 Martin J. Dürst 青山学院大学

ミニテスト関連の質問

質問: while (i < 6) の代わりに while (i != 6) でもいいか。

答え: ミニテストの例の場合には結果的には同じが、次の点を考えると代えない方がいい:

先週の宿題: 最大公約数

gcd (int a, int b)
{
    if (a == b) {
        return a;
    }
    else if (a > b) {
        return gcd (a-b, b);
    }
    else {
        return gcd (b, a);
    }
}

関数が (直接もしくは間接に) 自分を呼ぶことを「再帰」という。

「自分を呼ぶ」より「他人で同じ仕事をしている者を呼ぶ」の方が分かりやすい。

配列の定義

配列を定義する場合には次のことを指定しないといけない:

例:

配列と関数

二次元の配列

定義も使い方も簡単:

関数に渡すことは簡単にはできない。

今週の演習題

  1. 一行の文字列 (最大 80文字) を入力し (fgets 使用)、その文字列の大文字を全部小文字にするプログラムを作って下さい(ヒント: 教科書 p. 156 参照)。大文字から小文字への変換を関数にして下さい。
  2. 複数の数 (例えば 10個) を入力し、その最大、最少、そして平均を計算するプログラムを作って下さい。
  3. 複数 (例えば 10個) の整数を入力し、その数二つ同士の足算、掛算、余り、最大公約数、最小公倍数等の表を出力するプログラムを作って下さい。(ヒント: ab の最小公倍数 lcm(a, b) は a × b / gcd(a, b))
  4. 複数の数を入力し、その数を小さい順に出力するプログラムを作って下さい。
  5. 十個ほどの商品の名前と値段の分かる店があって、選択に応じて商品リスト、ある商品の注文、今までの注文のリスト、そして注文のまとめ (合計と消費税の計算など) ができるプログラムを作って下さい。

第 3 問のプログラムを来週 (12月19日月曜日) の授業前に提出して下さい。出力は提出しなくて結構。プログラムの印刷は等幅の書体 (Courrier 等) を使って下さい。字下げ、コメントなどを忘れないように。

次回のための準備