PowerPoint版

プログラミング演習I
2004年6月2日(第7回)
理学部数学科・木村巌
前回の復習
 演算子の詳細について学んだ
 同じ型、異なる型の値同士の演算について学
んだ
 型のキャストについて学んだ
今日学ぶこと
 場合に応じた処理(教科書5章)
 If文とそのバリエーション
 Switch文
 論理演算子
 bit単位の論理演算子と2進表記の整数の演
算
関係演算子と式の真偽値
 関係演算子(教科書p.116,
表5-1):==,!=, <,>,<=,
>=
 オペランドと関係演算子とを組み合わせた式
について、真偽値が定まる:真の場合1, 偽の
場合0.
 代入演算子=と関係演算子==の違いに注意
 a < b < cは、思ったような結果にならない
 (a
< b) < cと解釈される
if文
 プログラミングの三大発明の一つ
 使い方
if (条件)
文;
 条件が真の時、文が評価される
 Sample1.cを打ち込んで、コンパイル&実行し
てみよう
if文(続き)
複数の文(ブロック)を処理する
if (条件)
{
文1;
文2;
}
 二つに限らない.{}に囲まれた部分を、ブロックとい
う
 Sample2.cを打ち込んで、コンパイル&実行してみよ
う

if ~ else 文
 条件が偽の場合の処理も指定できる:
if (条件)
文1;
Else
文2;
 文の部分をブロックにすることも出来る.
 Sample3.cを打ち込んで、コンパイル&実行し
てみよう
if ~ else if ~ else
 if文を更に組み合わせて使うことで、複雑な場
合分けが可能になる
 教科書p.129の構文を参照
 Sample4.cを打ち込んで、コンパイル&実行し
てみよう
switch文
switch (式)
{
case 定数1:
文1;
…
break;
case 定数2:
文2;
…
break;
default:
文D;
…
break;
}
式の値が定数1, 定数2,…
に等しい場合、それぞれの
caseが実行される.
 breakがない場合、そのまま
下に進むので要注意!
 Sample5.cを打ち込んで、コ
ンパイル&実行してみよう

論理演算子
 論理積 &&, 論理和 ||,
否定 !
 表5-2, p.139参照
 論理演算子と関係演算子との優先順位:論
理演算子の方が優先順位は低い
a
> b && b > c で a > b > c となる
 if文等と組み合わせると、より複雑な条件判
断が出来る
 Sample6.cを打ち込んで、コンパイル&実行してみ
よう
bit単位の論理演算子
 2進表記の各桁(各bit)についての演算を行う
のが「bit単位の論理演算子」.
 教科書p.145, 表を参照
 2つの状態しかとらない量がいくつかあるとき、
それらを1つのinteger型の変数で表す時に
使ったりする(flag)
 2進表記の整数の加減算との関係
レポート課題
 問1
教科書p.147, 練習の1.を解け
 問2
 (1)
100以下の自然数が、2, 3, 5, 7のいずれでも割
れなければ、素数であることを示せ
 (2) 上の結果を用いて、100以下の自然数を入力
させ、それが素数であるか否かを判定するプログ
ラムを作成せよ(次のページの実行例参照)
 締め切り:2004年6月8日一杯(日本時間で)
 提出先:メールで木村([email protected]
u.ac.jp)まで.
問2(2)のプログラムの実行例
$ ./report040602
100以下の整数を入力してください.
73
73は素数です.
$ ./report040602
100以下の整数を入力してください.
72
72は合成数です.
$ ./report040602
100以下の整数を入力してください.
-10
不正な入力です.
$ ./report040602
100以下の整数を入力してください.
1111
不正な入力です.