現在技術評論社から出版されている「チューリングの考えるキカイ」を読んでいます。

チューリングの考えるキカイ ~人工知能の父に学ぶコンピュータ・サイエンスの基礎
- 作者: 阿部彩芽,笠井琢美
- 出版社/メーカー: 技術評論社
- 発売日: 2018/04/28
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
この本のChapter6の末尾に「if-then文」をwhileプログラムで展開しよう、という問題が出されていたので考えてみました。
whileプログラムとは
whileプログラムは次にあげる厳密なルールがある。このルール(文法)に則って書かれたものがwhileプログラムとして認められている。
変数
使用できる変数はx0,x1,x2,x3,...に限られる。
基本実行文
- xi++
- xiの値を1増加させる(iは変数のインデックス)
- xi--
- xiの値を1減少させる(iは変数のインデックス)
- xiの値が0の場合は、0のまま
文
whileプログラムの<文>は上記の<基本実行文>と、下記の<while文>と<複合文>のこと。
while文は次の形をした文のことをいう。
while xi ≠ 0 do s
※ 「s」は基本実行文、while文、複合文が入る
while文の例
次のwhile文はx2に0を代入することを表している。
while x2 ≠ 0 do x2--
if-then-else文のwhileプログラム
本にはif-then-else文のwhileプログラムが例示されています。
begin temp1 ← e; temp2 ← 1; while temp1 ≠ 0 do begin s1; temp1 ← 0; temp2 ← 0 end; while temp2 ≠ 0 do begin s2; temp2 ← 0 end; end
if-then文のwhileプログラム
本を参考にif-then文のwhileプログラムを作成しました。
begin temp ← e; while temp ≠ 0 do begin s; end; end