プログラミング演習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 不正な入力です.
© Copyright 2024 ExpyDoc