No.4 - 東海大学 情報理工学部情報メディア学科

Download Report

Transcript No.4 - 東海大学 情報理工学部情報メディア学科

プログラミング入門の入門④
情報通信学部 情報メディア学科
濱本和彦
ログイン名とパスワード,URL

ログイン名
TPC13022

パスワード
J9ppznhv
http://www.dm.u-tokai.ac.jp/~hama
if文を使ったプログラム(復習)





「数値nが数値mと同じならば
「大当たり!」,そうでないとき
は「残念!」と表示する。
これが,条件処理の基本形に
なります。
これは,右の図のように図式
化すると分かり易くなります。
これをフローチャートと言いま
す。
プログラムは,このように図式
化して,これを組みあわせて
作ると作りやすくなります。
条件
真
処理1
大当たり!
nとmが
等しい
偽
処理2
残念!
if文を使ったプログラム(復習)
条件
真
処理1
大当たり!
nとmが
等しい
if(
偽
処理2
条件
処理1
}
else{
処理2
残念!
}
){
関係演算子と等価演算子(復習)

二つの値の大小関係を判定する演算子です。
関係演算子
演算子
>
>=
<
<=
説明
記述例
記述の意味
より大きい
if(a>100)
より大きいか等しい
if(a>=100) aが100以上なら
より小さい
if(a<100)
より小さいか等しい
if(a<=100) aが100以下なら
aが100より大きいなら
aが100未満なら
等価演算子
演算子
説明
記述例
記述の意味
==
等しい
if(a==100) aが100なら
!=
等しくない
if(a!=100)
aが100でないなら
if文の組み合わせ
真
処理1
偽
条件1
真
処理2
条件2
偽
処理3
If文の組み合わせ
一見難しく見えますが。。。。
条件1
偽
真
このように考えれば,
既に学んだif文ですね
処理4
処理1
そして,処理4も
通常のif文なわけ
です。
条件2
真
処理2
偽
処理3
つまり,2つのif
文を組みあわせ
ればいいんです
If文の組み合わせ
まず,このように考えてみましょう。
if(
条件1
条件1
処理1
}
else{
処理1
処理4
処理4
}
){
If文の組み合わせ
次に,このように考えてみましょう。
if(
条件1
条件1
処理1
処理4
}
else{
処理1
処理4
}
){
If文の組み合わせ
要するに,処理4の所にもう一つif-elseが入ればいいんです。
if(
条件1
){
条件1
処理1
}
else{
条件2
if(
処理1
処理2
条件2
処理2
処理3
}
else{
処理3
}
}
){
入力した得点に応じて成績を
判定するプログラム


右のフローチ
ャートは,入力
された点数の
成績判定をす
るものです。こ
のチャートに
従ってプログ
ラムを作成し
て下さい。
program6.cを
完成させて下
さい。
80以上
A
60以上
B
E
if文の条件の書き方

前述のような問題の場合,「このように書
けたら便利なんじゃないか?」と思いませ
んか?
If(80 > tokuten >= 60){
printf(“成績はBです。\n”);
}

program7.cは,この考え方で書いたプログ
ラムです。コンパイル,実行してみましょう。
If文の条件の書き方


80以上,または60未満の点数を入力すると,きちんと
結果が出力されますが,それ以外の入力では正しい成
績は出力されません。
つまり,このような書き方はできない,と言う事です。
If(80 > tokuten >= 60){
printf(“成績はBです。\n”);
}

それでは,この表現をするためには,どのような書き方
をすればよいのでしょうか?
If文の条件 : 論理演算子


(80>tokuten>=60)というのは,「tokutenは,80
点未満であり,かつ,60点以上」という意味です
ね。
この,「~かつ~」のような表現を表す演算子を論
理演算子といいます。
演算子
説明
&&
論理積(かつ,and)
a==3 && b==4
aが3かつbが4
||
論理和(または,or)
a==3 || b==4
aが3またはbが4
!
否定(でない,not)
!(a==3&&b==4) Aが3かつbが4,でない

記述例
記述の意味
program7.cをこれを用いて書き直してみましょう
if文を使ったプログラム


西暦から,うるう年を判定するプログラム
uruu.c を作りましょう。
うるう年の定義は,次のようになります。
– 4で割り切れ,かつ,100で割り切れない年
– または
– 400で割り切れる年

初回に最初に実行したプログラム,今なら分
かりますね。
– 「割り切れる」は「余りが0」で,”%”で計算します
もう一つの条件付き分岐。

program8.cを見てみましょう。
switch文を使ったプログラム


式の値(整数値)によって処理を分けるこ
とができます。
if文のような2分岐ではなく,多分岐のプ
ログラムを書く事が出来ます。
– if文:「真ならば処理1,偽ならば処理2」
– switch文:「式の値が,1ならば処理1,2なら
ば処理2,3ならば処理3,・・・」

if文で表す事も出来ます。
switch文を使ったプログラム

フローチャートは次のようになります。
switch(n){
case 1:
printf("n=1\n");
break;
case 2:
printf("n=2\n");
break;
case 3:
printf("n=3\n");
break;
default:
printf("その他\n");
}
nが1
真
“n=1”
偽
nが2
真
“n=2”
偽
nが3
偽
“その他”
真
“n=3”
switch文を使ったプログラム

break文が無い場合はこうなります。
真
nが1
switch(n){
case 1:
printf("n=1\n");
case 2:
printf("n=2\n");
case 3:
printf("n=3\n");
default:
printf("その他\n");
}
“n=1”
偽
真
nが2
“n=2”
偽
真
nが3
“n=3”
偽
“その他”
もしnが1だったら,すべて
のprintfが実行されます!
switch文を使ったプログラム


program8.cを実行して,switch文の働き
を確認しましょう。
break文が無い場合のプログラムの動き
について確認しましょう。