第4回 プログラミング入門 演習

【演習の注意事項】を良く読んで解答してください

また、文字コードに関して分かっていない人は 【漢字コードの話】も良く読んで下さい

プログラムと制御構造(1)

【主な内容】

  • フローチャートの基本概念
  • if文の使い方

演習課題

以下の例題と、3つのレベル (初級レベル, 中級レベル, 上級レベル) の全ての課題に解答しなさい。各々の課題毎にファイルを作成しなさい。

今回の課題はテキスト(文書)ファイルで提出するものとC言語のプログラムファイルで提出するものがあります。 前者は".txt"、後者は".c" という拡張子をつけて下さい。 各課題にはファイル名が指定してあるので、その指示にしたがって下さい。

なお、実行例やコマンドなどで赤色の字はキーボードから入力を示しています。 また、%はプロンプト(皆さんの環境ではstd1dc1{s1160000}1:等に相当する)を示しており、皆さんが入力するのはその次の文字からになります。

例題

講義資料(ハンドアウト)の例題 lec04-1.c, lec04-2.c, lec04-3.c, lec04-4.c のソースプログラムをコピーし、そのプログラムの動作を予測した上で、コンパイル・実行を試してみなさい。

コピーの方法:
% cd ~/Prog0/Ex04
% cp /home/course/prog0/public_html/2008/lec/source/lec04-1.c .
% cp /home/course/prog0/public_html/2008/lec/source/lec04-2.c .
% cp /home/course/prog0/public_html/2008/lec/source/lec04-3.c .
% cp /home/course/prog0/public_html/2008/lec/source/lec04-4.c .

初級レベル

(A-1)
下記のフローチャートの通りに動作するプログラムを書きなさい。

ファイル名: ex04a1.c





(A-2)
下記のフローチャートの通りに動作するプログラムを書きなさい。

ファイル名: ex04a2.c





(A-3)
下記の下線部を埋めて、if-else文を完成させなさい。

ファイル名: ex04a3.c





中級レベル

(B-1)
所得税率は収入により異なります。
今仮に所得税率を、年収500万円以下(500万円を含む)に対しては10%、 500万円より上は20%とします。
下記のプログラムの下線部を埋めて完成させなさい。

ファイル名: ex04b1.c





(B-2)
下記のフローチャートの通りに動作するプログラムを書きなさい

ファイル名: ex04b2.c


閏年の例:2000年、2004年、1600年など
閏年ではない年の例:2002年、2003年、2005年、1900年など





(B-3)
下記はプログラムの一部である。これに変数k、tの宣言やscanf入力などを追加して、 「kとtの値を入れると、それに応じた出力を行う」プログラムを作成しなさい。

ファイル名: ex04b3.c



また、kとtの値による全ての表示の場合を考え、下例のような表にまとめなさい。 (下例はあくまで例なので、項目や表示は異なる)

ファイル名: ex04b3.txt

+------------+----------------+------------------+
|      |xは3である  |xは3でない    |
+------------+----------------+------------------+
|yは1以下 |x=3、y<=1|x!=3、y<=1|
+------------+----------------+------------------+
|yは1より大|x=3、y>1 |x!=3、y>1 |
+------------+----------------+------------------+





上級レベル

(C-1)
下記のプログラムの下線部を埋めて完成させなさい。

ファイル名: ex04c1.c





(C-2)
下記は円、三角形と正方形の面積を計算するプログラムの出力の様子です。 πは3.1416として、このプログラムを作りなさい。

ファイル名: ex04c2.c

[実行例]

%./a.out
どんな図形を計算しますか(円 = 1、三角形 = 2、正方形 = 3)-> 1

円の面積を計算します。
円の半径を入力して下さい -> 1.5
円の面積は7.068600です。

%./a.out
どんな図形を計算しますか(円 = 1、三角形 = 2、正方形 = 3)-> 2

三角形の面積を計算します。
三角形の高さと底辺の長さを入力して下さい -> 2.4 8.2
三角形の面積は9.840000です。

%./a.out
どんな図形を計算しますか(円 = 1、三角形 = 2、正方形 = 3)-> 3

正方形の面積を計算します。
正方形の辺の長さを入力して下さい -> 20.4
正方形の面積は416.160000です。




(C-3)
if-else文を用いて点数(100点満点)を 成績(A,B,C,D,F)に変換するプログラムを書きなさい。 ただし、点数はキーボードより入力すること。
また、変換関係は下記の通りである。

ファイル名: ex04c3.c

80以上
65以上80未満
50以上65未満
35以上50未満
0以上35未満
0未満又は100より大入力された値が異常






何か疑問や間違いがあれば以下に連絡して下さい。
プログラミング入門演習問題担当(prog0)