情報教育論 第9回 仮定文の仕組み 政策・メディア研究科 岡田 健 新しい言霊環境を ダウンロードしてください http://www.crew.sfc.keio.ac.jp/~turkey/ Kotodama_Install20041213.exe Mac環境の方は http://www.crew.sfc.keio.ac.jp/~turkey/dama.jar 前回の環境をアンインストールした後に、今回 の環境をインストールしてください 本日の学習目標 仮定文を見て,処理の流れを説明すること が出来る 真偽値が取りうる値を説明できる 比較式や論理式を見て,それを真偽値に 変換することが出来る 目的に応じて仮定条件を記述できる ある目的が与えられたときに,適切に仮定 文を用いてプログラムが書ける 仮定文はどんな時に使う? 入力 処理 出力 入力により 処理を変えた い 仮定文はどんな時に使う? ※-------------------※挨拶するプログラム ※-------------------変数を定義して、名前を入力とする。 ※時間を尋ねる 「現在の時間を入力してください。」を出力する。 「1:朝 2:昼 3:夜」を出力する。 入力を整数で受け取り、入力に書き込む。 ※挨拶する もし入力が1ならば{ 「おはよう」を出力する。 }をして、入力が2ならば{ 「こんにちは。」を出力する。 }をして、入力が3ならば{ 「こんばんは。」を出力する。 }をする。 ユーザの入力 により、処理 内容を変えた い場合 ユーザ入力を受け付けるには? 以下のように書く 入力を整数として受け取り、入力に書き込む。 入力を文字列として受け取り、名前に書き込む。 記法は以下の通り。 入力を型として受け取り、変数に書き込む。 型 は「整数」か「文字列」が入ります。 処理の分岐を書くには 以下のように書く もし入力が1ならば{ ・・・ }をする。 記法は以下の通り もし条件 ならば{ 処理 }をする。 「もし」の部分は「もしも」と書いても良いし、省略してもいい。 「ならば」の部分は「なら」と書いても良い。 処理の分岐の流れ 条件が成立したら、 処理を実行する 条件 成 立 処理 不 成 立 不成立の時の処理を書くには 以下のように書く もし入力が1ならば{ ・・・ }をして、そうでないならば{ ・・・ }をする。 記法は以下の通り もし条件 ならば{ 処理 }をして、そうでないならば{ 処理 }をする。 処理の分岐の流れ 条件が成立したら、 処理を実行する 条件 成 立 処理 不 成 立 処理 さらに複雑な分岐を書くには 以下のように書く もし入力が1ならば{ ・・・ }をして、もし入力が2ならば{ ・・・ }をして、そうでないならば{ ・・・ }をする。 処理の分岐の流れ 条件 成 立 処理 条件が成立したら、 処理を実行する 不 成 立 条件 成 立 処理 不 成 立 処理 条件をどうやって表現する? 条件は真偽値として記述する 以下は全て真偽値を表している 真 偽 A=0 A≠B A<C A<D A≧E A≦F A>0かつA>B A>0あるいはA>B 真偽値をどうやって記述する? 真偽値は以下の3通りで記述できる 真偽値定数 比較式 論理式 条件を比較式として書くには? 以下のように書く 時間=1 距離>10 角度≦90 記法は以下の通り 記法 大なり 小なり 大なり等号 小なり等号 等号 不等号 値>値 値<値 値≧値 値≦値 値=値 値≠値 使用できる記号 >(全角) >(半角) <(全角) <(半角) ≧(全角) >=(半角)>=(全角) ≦(全角) <=(半角)<=(全角) =(全角) ==(全角)=(半角)==(半角) ≠(全角) !=(半角)!=(全角) 条件を文として書くには? 以下のように書く 時間=1でない 距離>10である 角度≦90でない ※時間≠1である、と同じ意味 ※角度>90である、と同じ意味 記法は以下の通り 記法 肯定 否定 比較式である 比較式でない 条件式を使ったプログラム (西暦和暦変換) 変数を定義して、名前を「西暦」とする。 ※西暦を入力する 「和暦を求めます。」を出力する。 「西暦を入力してください。」を出力する。 入力を整数で受け取り、西暦に書き込む。 変数名 西暦 値 2004 西暦>1988である ※和暦を求める ↓ 西暦>1988であるならば{ 「今年は平成」を改行無しで出力する。 2004>1988である ↓ 西暦-1988を改行無しで出力する。 真 「年です。」を出力する。 }をする。 試しに条件式を出力してみよう 1>0を出力する。 3=1を出力する。 1≠3を出力する。 4≦4を出力する。 4<4を出力する。 変数を定義して、名前を「西暦」とする。 西暦に2000を書き込む。 西暦>1988を出力する。 論理式を書くには? 以下のように書く x>0、かつx<100 x>0である、あるいはy>100 記法は以下の通り 記法 論理積 論理和 比較式かつ比較式 比較式あるいは比較式 比較式を文として書く場合、活用し ても良い x>0であり、かつ・・・ x>0で、かつ・・・ 論理式を使ったプログラム例 (金と銀の斧) 変数を定義して、名前を選択肢Aとする。 変数を定義して、名前を選択肢Bとする。 「金のオノと銀のオノがあります。」を出力する。 「この金のオノは,あなたのものですか? はい→1 入力を整数で受け取り、選択肢Aに書き込む。 いいえ→2」を出力する。 「この銀のオノは,あなたのものですか? はい→1 入力を整数で受け取り、選択肢Bに書き込む。 いいえ→2」を出力する。 選択肢Aが1でかつ選択肢Bが1ならば{ 「あなたはウソツキですね」を出力する。 }をする。 課題1 和暦西暦変換のプログラムを、明治・大 正・昭和にも対応させてください 課題2 金の斧銀の斧のプログラムを、正直者に 対する処理も追加して完成させてください 課題3 相性判断のプログラム(前回HCPで設計 してもらいました)を、プログラムで書いてく ださい 発展課題 肉屋のレシートのプログラム(前回HCPで 設計してもらいました)を、プログラムで書 いてください 課題提出について 課題1~3及び発展課題を、出来るところま でやってみてください。 宛先は [email protected] サブジェクトは半角で「report09」です。 〆切は12月17日(金)23時59分まで。 課題をやってみてどんなことを考えたかを考 察して、メール本文に付けてください。
© Copyright 2024 ExpyDoc