正しいプログラミングの例題

プログラミングの本で、万人に薦められる演習本みたいなのが無いのはなぜなんだろう。
というわけで考えてみる。


プログラミングの本にある例題とかは、こんな感じなんだろう

二つの整数をキーボードから受け取り、その和を表示するプログラムを書け。

こんな問題出されても独学でやる気はしないんじゃないかと。


そもそも初心者はいきなりmanとかできないし、ライブラリ関数も覚えてないだろうし、
数値の入力の方法を知らないかもしれない。
リファレンス引く能力はまた別に鍛えればいいんじゃないかと思う。


プログラムの本質は、個人的には

の二つだと思う。決してmanを暗証できる能力ではないはず。
そもそも、アルゴリズム設計をするプログラマは2割8割の法則の2割のほうだと思う。


だから、まず学ぶべきは既存の機能(ライブラリ関数)の組み合わせで何か作ることじゃないのか。
変数が何たるかはすでに分かってるとして*1
俺的に正しい例題はこんな感じ。

printf("%d",100); を実行すると、100と表示される。

int i;
scanf("%d",&i); を実行すると、iにキーボードから入力された数字が代入される。

上記を踏まえ、二つの整数をキーボードから受け取り、その和を表示するプログラムを書け。

答え:

main(){
  int i;
  int j;
  scanf("%d",&i);
  scanf("%d",&j);
  printf("%d",i+j);
}

解説:
  int i;
  scanf("%d",&i);
  scanf("%d",&i);
としてしまうと、一つ目の入力が消えてしまう。変数の基本を思い出そう。
変数は一つの値しか…(略

ただ、全ての問題に前提条件を書くのも面倒だから、1セットの前提条件に対して、(1)〜(5)ぐらいまで問題があっても
いいかもしれない。
ご意見どうぞ。

*1:きっと第1章は「変数で遊ぼう」