今回の演習は、C言語によるプログラミングの初歩を、教科書の例を入力したり、それを修正したりして学習します。
C言語でのプログラミング作業の方法を忘れたものは、C言語の手始め&LaTeX の手始めを参考にせよ。
以下では、ソースファイルの名前は各自が適当につけること。ただし、C言語ソースファイルは、「.c」で終わるファイル名にすることを忘れないように。
教科書(プログラミング言語C)P11、華氏と摂氏の対応表を出力するプログラムのソースコードを入力、コンパイル&実行せよ。
プログラムの実行の結果、P10と同じ表が出力されることを各自確かめること。
#include <stdio.h> /* fahr=0,20,...,300に対して、華氏−摂氏対応表を印字する */ main() { int fahr, celsius; int lower, upper, step; lower = 0; /* 温度表の下限 */ upper = 300; /* 上限 */ step = 20; /* きざみ */ fahr = lower; while ( fahr <= upper) { celsius = 5 * (fahr-32) / 9; printf("%d\t%d\n", fahr, celsius); fahr = fahr + step; } }
演習課題1のプログラムを、変数fahr, celsius を float で宣言する事で、華氏・摂氏対応表の実数値表示
版のソースコードを作成し、コンパイル&実行せよ(教科書 P15 も参考にすること)。
また、プログラムの出力結果が以下の様になることを確認すること。
0 -17.8 20 -6.7 40 4.4 60 15.6 80 26.7 100 37.8 120 48.9 140 60.0 160 71.1 180 82.2 200 93.3 220 104.4 240 115.6 260 126.7 280 137.8 300 148.9
演習課題2を修正することで、以下の様な出力が得られるようなプログラムを作成せよ
Fahr. | Cels. 0 | -17.8 10 | -12.2 20 | -6.7 30 | -1.1 40 | 4.4 50 | 10.0 60 | 15.6 70 | 21.1 80 | 26.7 90 | 32.2 100 | 37.8 110 | 43.3 120 | 48.9 130 | 54.4 140 | 60.0 150 | 65.6
以下のソースコードは、1から100までの整数を加えその結果を出力するプログラムを記述するものである。 これを入力し、コンパイル&実行せよ。
#include <stdio.h> main(){ int k; int sum; sum = 0; for(k=0; k<=100; k++) sum = sum+k; printf("%d\n",sum); }
for 構文は、繰り返し制御を行うもので、while 文の一般化となっている。上記のソースコードは、 以下の様に while を用いて、完全に書き換えることが可能である。
#include <stdio.h> main(){ int k; int sum; sum = 0; k = 1; while( k<=100 ){ sum += k; k++; } printf("%d\n",sum); }
C言語では、変数aの値を 計算によって新しい値にしたい場合に、
a = a + 2;
とします。 これにより「(新しい a) = (前の a) + 2 」が実現されます。 計算機が a = a + 2 を処理するときに、 単純な演算に分解して処理すると理解してください。 つまり、最初に a+2 を計算しその値 p = (a+2) を保持します。 次に、a=p という代入演算を行ないます。 つまり、計算機は二つの演算子「+」と「=」の どちらを最初に処理するかという優先順位のルールをもっていて、 変数はその演算に応じて書き換えられていきます。 (注意) a = a + b や a = a - b といったタイプの計算は頻繁に行われるので、a += b や a -= bといった 省略表現がC言語の代入演算子のバリエーションとして用意されています。
i++ や i-- は i = i + 1 (またはi += 1) i = i - 1 (またはi -= 1) という意味で、インクリメント(デクリメント)演算子と 呼ばれます。 前置き++iと後置きi++があり、 i にとっては違いがありませんが、 (++i) の値は i+1 であり、 (i++) の値は i という違いがあります。
演習課題4を修正して、1 から 50 までの奇数の和を計算し、出力するプログラムを作りなさい。