● 前回までは、例題を基本としてプログラムを作成してきた。
これまでの知識を使って簡単なプログラムを考え作ってみよう。
※プログラムは自分で考え工夫して作成するjことが重要である。
変数名やファイル名を独自につけるクセを身に着けよう。
[問題01] 任意の円の半径(実数)と角度(実数、deg、°単位)を読み込み、それによって構成される扇形の周囲長さと
面積を計算、表示するプログラムを作りなさい。
ただし、円周率は、3.141593
とする。
[問題02] 5つの数(実数)を読み込み、その合計、平均値、総乗(全部のかけ算)を求めて表示するプログラムを
作りなさい。
[問題03] x、y、z(ともに実数)を読み込み、次の a を計算し表示するプログラムを作りなさい。
a = x4 / y + ( z2 /x + y )2
[問題04] 円錐の半径と高さ(ともに実数)を読み込んで、その体積を計算、表示するプログラムを作りなさい。
ただし、円周率は、3.141593
とする。
[ 表面積の計算は現在の知識では困難である。その理由を考えてみよう。 ]
[問題05] 4桁の整数(1000〜9999)の全位の足し算を行い結果を表示するプログラムを作りなさい。
ただし、入力は4桁の整数を1回のみとします。
[算数的にどのように行うのか考える必要がある。]
1000 => 1
4321 => 10
9999 => 36
abcd => a + b + c + d
※ 整数の割り算の性質を利用するとよい。
なお、C言語では a,b,c が整数の場合
c=a/b によって c
には a/b の商(整数)が得られ、
c=a%b によって c
には a/b の余り(整数)が得られる。
剰余演算子
”%”の優先順位は”*”、” /”と同じである。
! 剰余演算子
”%”を使わなくとも余りを計算することはできる。
その方法を考えてみよう。
|
● 最も簡単な数値(実数)のキーボード入力・画面出力のプログラム例
以下は、1入力・1出力(入力値を2.5倍して1.5を加えた結果の表示)の例であるが、
複数の数値の入出力は、その分だけ行を増やしてもよい。
変数aに対する入力[scanf("%lf",&a)]の際には、変数名の前に&がつくことに注意する。
また、変数bを出力[printf("%f\n",b)]する際に記述してある”¥n”という文字は
その位置で改行することを示している。
/* ex. simple IO */
#include <stdio.h>
int main(void)
{
double a,b;
scanf("%lf",&a);
b=a*2.5+1.5;
printf("%f\n",b);
return 0;
}
● 自分で考えたプログラムにコメントを入れてみよう!!(とその例)
例題や模範解答を参考としすぎるとなかなか独自の変数名をつけることや
処理の内容を理解しないまま済ませてしまう可能性がある。
そこでプログラムのメイン部の各処理(プログラム行)にコメントをいれてみよう。
特にコメントは一字一句、他の人と同じになることはないはずである。
以下は、一定速度と経過時間から移動距離を求めるコメント付きプログラムの例である。
※ 日本語(漢字)のコメントはファイル転送などにより文字化けの不都合を生じることがある。注意されたい。
/* 移動距離を求めるプログラム */
#include <stdio.h>
int main(void)
{
/* 実数変数を3個(一定速度、経過時間、移動距離)用意する。 */
/*
一定速度をsokudo, 経過時間をjikan, 移動距離をkyoriという変数名とする
*/ double
sokudo, jikan, kyori;
/* キーボードから一定速度、経過時間を実数変数に入力する
*/
scanf("%lf %lf",&sokudo,
&jikan);
/* 一定速度と経過時間から移動距離を計算する */
kyori = sokudo * jikan;
/* 計算した移動距離を画面に表示する */
printf("%f\n",kyori);
return 0;
}
|