• 検索結果がありません。

入力処理,条件判断処理

N/A
N/A
Protected

Academic year: 2021

シェア "入力処理,条件判断処理"

Copied!
4
0
0

読み込み中.... (全文を見る)

全文

(1)

- 1 -

入力処理,条件判断処理

前回は printf による標準出力と変数の宣言と利用方法に触れた。詳しくはもう少し後で習う。今回も C 言語のプログラミングがどういったものかを知るため、入力処理と条件判断処理を習っていく。

入力処理

C

言語の標準入力はキーボードが割り当てられている。ここではキーボードから整数の値を入力する方法 を示す。キーボードから値を入力するには

scanf

文を用いる。まずはプログラム例を示していく。

プログラム例1

#include <stdio.h>

int main(void) {

int x, y;

printf("x と y で演算を行います\n");

printf("x の値:");

scanf("%d", &x);

printf("y の値:");

scanf("%d", &y);

printf("x + y = %d

\n

", x + y );

printf("x - y = %d

\n

", x - y );

printf("x * y = %d

\n

", x * y );

printf("x / y = %d

\n

", x / y );

printf("x %% y = %d

\n

", x % y );

return 0;

}

出力例(斜体はキーボードから入力した値)

x と y で演算を行います x の値:

9

y の値:

4

x + y = 13 x - y = 5 x * y = 36 x / y = 2 x % y = 1

値を入力するには、変数を使う必要がある。変数を宣言しておき、以下の書式で

scanf

文を利用する。こ

れは

printf

文で整数を出力する場合と似ている。大事な点は変数名の前に「&」を書くことである。

書式

int 変数名;

scanf("%d", &変数名);

(2)

- 2 -

条件判断処理

問題を解決するための処理手順をアルゴリズムという。コンピュータに仕事をさせるためにはまず、アル ゴリズムを考え、プログラミングを行い、コンパイラを用いて機械語に翻訳してコンピュータに実行させる 必要がある。アルゴリズムには大きく分けて 3 つの処理の流れがある。それらは「順次処理」 、 「条件判断処 理」 、 「ループ処理」という。

ここまでの処理は上から順に実行される「順次処理」であった。今回は「条件判断処理」のプログラムを 習う。プログラム例1では変数を用いて割り算を行っている。数学の割り算では分母が 0 の場合、結果は無 限大になる。コンピュータではある程度大きな数を利用することができるが、限界があり、無限大を表すこ とはできない。このプログラムの場合、y の値に 0 を入力してしまうと正しく動作しなくなる。これは剰余 を求める時も同様である。

この問題を回避するには割り算と剰余の計算を行う際に y の値をチェックし、0 だった場合には「計算で きません」と表示するように変更する。

条件判断処理では if-else 文を用いる。プログラムは図1のような形になる。if 文の条件式と呼ばれる部 分で条件の判定を行い、正しければ処理 A を実行し、正しくなければ、処理 B を実行する。

int main(void) {

if(条件式) {

syoriA( ); /*処理A*/

} else {

syoriB( ); /*処理B*/

}

return 0;

}

開始

処理B 処理A

終了 条件式

yes no

図1 条件判断処理

条件式では、=(等しい) 、

(等しくない) 、

(以上)

(以下) 、>(大なり) 、<(小なり)などの関 係を比較することができる。C 言語ではそれぞれ「==」 「!=」 「>=」 「<=」 「>」 「<」と書く。これらを総称して

「関係演算子」という。関係演算子の一覧を表1に示す。これに対して計算に用いた「+」 「-」 「*」 「/」 「%」

は「算術演算子」と呼ばれている。

表1 関係演算子一覧表

関係演算子 数学的表現 意味 プログラムでの表現 その意味

== = 等号 a == b a と b は等しい

!=

不等号 a != b a と b は等しくない

>=

以上 a >= b a は b 以上である

<=

以下 a <= b a は b 以下である

> > 大なり a > b a は b よりも大きい

< < 小なり a < b a は b よりも小さい

それでは条件判断処理を用いて、プログラム例1を書き直したものを以下に示す。

(3)

- 3 -

プログラム例2

#include <stdio.h>

int main(void) {

int x, y;

printf("x と y で演算を行います\n");

printf("x の値:");

scanf("%d", &x);

printf("y の値:");

scanf("%d", &y);

printf("x + y = %d

\n

", x + y );

printf("x - y = %d

\n

", x - y );

printf("x * y = %d

\n

", x * y );

if(y == 0) {

printf("割り算と剰余は計算できません\n");

} else {

printf("x / y = %d

\n

", x / y );

printf("x %% y = %d

\n

", x % y );

}

return 0;

}

出力例(斜体はキーボードから入力した値)

x と y で演算を行います x の値:

9

y の値:

0

x + y = 9 x - y = 9 x * y = 0

割り算と剰余は計算できません

if 文の分岐の判定は「y == 0」で行っており、変数 y の値が 0 と一致するかどうかを判定している。注意 点は「=」を二つ連続して書くことである。 「=」が一つの場合には代入が行われてしまい、行いたい処理が行 われない。

練習として、もう一つの例を示す。以下のプログラム例は入力された値の絶対値を表示するプログラムで ある。

プログラム例3

#include <stdio.h>

int main(void)

{

(4)

- 4 -

int x;

printf("整数を入力してください:");

scanf("%d", &x);

if(x < 0) {

printf("絶対値は%d です\n", -x);

} else {

printf("絶対値は%d です\n", x);

}

return 0;

}

出力例(斜体はキーボードから入力した値)

整数を入力してください:

-9

絶対値は 9 です

演習

・テキストで示したプログラム例1~3を作成すること。

・次のプログラムに取り組むこと。

(1)以下のような出力を行うプログラムを作成しなさい。

(注意)計算結果を出力させる部分については変数を用いて計算し、出力させること。

□部分はスペースである。

C 言 語 □ 練 習

3 + 2 = 5 9 - 7 = 2

※前回のテキストで示した演習です。作成済みの人は(2)の演習に進みます。

(2)プログラム例1を参考に電流と抵抗の値を入力し、オームの法則から電圧を求めて表示するプログラ ムを作成しなさい。入力する値、出力する値は整数値とする。プログラムを利用する人が迷わないように、

どういった計算を行うのか、どういった値を入力するのか、処理の結果がどうなったかを出力すること。

(3)プログラム例2の条件式を「y != 0」に変更する。同様の動作を行う用に他の部分を修正しなさい。

(4)プログラム例3の条件式を「x >= 0」に変更する。同様の動作を行う用に他の部分を修正しなさい。

(5)余裕がある人はここまでに習ったことを使ってオリジナルのプログラムを作成すること。

参照

関連したドキュメント

多核種除去設備等の サンプルタンク ALPS処理⽔等貯留タンク または ALPS

 実施にあたっては、損傷したHIC排気フィルタと類似する環境 ( ミスト+エアブロー ) ※1 にある 排気フィルタ

据付確認 ※1 装置の据付位置を確認する。 実施計画のとおりである こと。. 性能 性能校正

「JSME S NC-1 発電用原子力設備規格 設計・建設規格」 (以下, 「設計・建設規格」とい う。

原子炉建屋から採取された試料は、解体廃棄物の汚染状態の把握、発生量(体 積、質量)や放射能量の推定、インベントリの評価を行う上で重要である。 今回、 1

竣工予定 2020 年度 処理方法 焼却処理 炉型 キルンストーカ式 処理容量 95t/日(24 時間運転).

処理処分の流れ図(図 1-1 及び図 1-2)の各項目の処理量は、産業廃棄物・特別管理産業廃 棄物処理計画実施状況報告書(平成

過水タンク並びに Sr 処理水貯槽のうち Sr 処理水貯槽(K2 エリア)及び Sr 処理水貯槽(K1 南エリア)の放射能濃度は,水分析結果を基に線源条件を設定する。RO