わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

情報処理の授業で話したこと(2015.10)

プログラムとは


コンピュータと離れたところ,いろいろな形で,「プログラム」はその姿を見せます.
テレビやラジオの「番組表」であったり,出かける際の「行程表」だったり,そうそう「行」の字をシス工の「工」の字に置き換えてできる「工程表」も,製品の生産をするのに先立って書かれる,プログラムと言っていいでしょう.(略)
プログラムをあらかじめきちんと作っておけば,あとはその内容の通りに,進行・行動させればいいのです.それは,テレビやラジオの「放送」,行程表に基づく「旅行」,(略)に反映していきます.

制御構造を意識しながら文章を書く

制御構造の「順次」「選択」「反復」を意識しながら,Wordで,日本語の文章を書いてみましょう.
3つの中で,もっとも単純で分かりやすいのは「順次」です.話を進める順に,書いていけばいいからです.番号を振り,適切なタイトルを添えると,さらに読みやすくなります.
「選択」「反復」については,それを表す,ちょっとした表現を知っておきましょう.
たとえば,「nの値が正ならば」だとか「nの値が正のとき」と書いたら,それが選択の表現となります.
英語で"if"や"when"になるようなときは,選択です.ちなみにC言語や多くのプログラミング言語に「if文」というのがあります.
反復の表現はというと,「在庫がなくなるまで,商品を売る」なんてのが挙げられます.1個,商品を売って,まだ在庫があるなら,まだまだございますよとアナウンスする.また1個売って,まだあるなら,まだまだ売る.そうして,最後の1個が売れて,在庫がなくなったら,その「商品を売る」作業がおしまいとなります.*1
英語では"while"ですね.これもC言語で使われます.関連語に"until"があります.
あともう一つ,プログラミングでは反復になる表現を,知っておいてください.
日本語だと「x=1,3,…,99に対してf(x)を求める」と書くような場合です.数学ですね.「99までの正の奇数それぞれに対して」でもいいのですが.
このように,変数の範囲が定まっており,そのそれぞれに対して1回ずつ,決まったことをするというのも,反復です.
これに対応する英語は,"for"や"for each"です.
Cや,いろいろなプログラミング言語に接してから,「日本語で表すと…」「英語で表すと…」「プログラミング言語だと…」なんてことを,思い出してくれればと思います.

AliceとBob

これから,2人で行うゲームを紹介します.
この2人に名前をつけておきます.「Alice」と「Bob」です.
別に「Aさん」と「Bさん」でもいいのですが,情報通信の分野では,AliceとBobがよく使われます.
人物名にすることで親しみやすくなるほか,英語でsheやherと書いたらAliceのこと,heやhisだったらBobのことを意味し,短い字数で誰が何をするのかを表現できるわけです.

ゲームの前提を書く

このゲーム*2のルールを,Wordで書くとなったとき…
はじめに,2人で行うゲームであることを,明記しましょう.ルール上は何人でもできるのですが,2人よりも多くなると,2人のときの必勝法が使えなくなるのです.
それから,1回で取る個数についても,ちょっとした配慮が必要です.
「3個まで取ることができる」と書いたのなら,これは「0個取る」すなわち,「1個も取らない」---パスのことですね---が可能となることを意味します.
「1個から3個まで」「1個,2個,3個のいずれか」「1〜3個」などと書きましょう.

フルパスは,URLではない

「C:\Users\takehikom\Desktop\quiz.docx」や「/usr/bin/ruby」などは,URLではありません.フルパスまたは絶対パスと呼ばれます.
URLの表記は,「http://」や「https://」なんてのから始まります.
ただ,Webのアクセスをしない場合にも,URLを書くことができて,例えば「file:///usr/bin/ruby」となります.

(最終更新:2015-10-22 晩)

*1:授業ではうまく伝えられませんでしたが,この行動の流れは,フローチャートにおいて「反復」が,「順次」と「選択」の組み合わせで表現できることを意味します.

*2:http://www.asahi.com/articles/SDI201403042174.htmlをもとに,授業では2つのゲーム(1回目はAliceの勝ち,2回目はBobの勝ち)を図示して,授業時間内に,ルールと必勝法をWordで取りまとめてもらいました.