エクスプローラ等で拡張子が表示されない場合, 以下の手順に従って,ファイルのアイコンを表示したときに, ファイル名とともに拡張子も表示するようにしておく. (参考:ファイルと拡張子の表現 (by 出口先生), ファイルの拡張子 (Sc182(2)資料))
「WZ Editor」のショートカット(Sc182(2) の授業で作成)がデスクトップにない場合,
それを作成する.
(参考:
WZ Editorのショートカットをデスクトップに置く (by 出口先生))
作成したプログラムのファイルなどをまとめておくために, 「マイ ドキュメント」の中に専用のフォルダ「sc283」 (全て半角文字) を作成する. (参考: 新しいフォルダの作成)
| プログラミングとは,プログラムを作ること |
「仕事」の手順を厳密かつ詳細に記述したもの. 一般的には,プログラム記述のための特別な人工言語(プログラミング言語と呼ばれる)を用いて記述される.
プログラミング言語で記述されたプログラムは, そのままではコンピュータ上で実行できない. それを実行するためのしかけが言語処理系である.
プログラミング言語で記述されたプログラムを, コンピュータが直接実行できる機械語に翻訳するプログラムを コンパイラ と呼ぶ. コンパイラを用いた場合, プログラムは最終的には実行ファイル ( .exe ファイルなど) に変換される.
プログラミング言語を直接に解釈しながら実行するプログラムは インタプリタ と呼ばれる. 翻訳を経ないでその都度解釈することから, 通訳系 と呼ばれることもある.
また,これらを組み合わせて, プログラミング言語からコンピュータの機種に依存しない中間的な言語に一旦翻訳し, それをインタプリタで実行する方式もある.(後述の Java など)
プログラミング言語にはさまざまなものがある.そのいくつかを以下に簡単に紹介する.
| 言語 | 説明 |
|---|---|
| C, C++ | Unix という OS を記述するために開発され,広くつかわれるようになった. 後にオブジェクト指向という考え方を取り入れて拡張したものが C++ である. |
| Java | Sun Microsystems が, ネットワーク環境で使うことを前提に開発したオブジェクト指向言語. WWW の機能拡張 (アプレット) に多く用いられていたが, 普通のアプリケーションプログラムの開発など,さまざまな用途に用いられるようになってきた. 仮想マシン(インタプリタの一種)上で動くため,コンピュータの機種には依存しない. |
| JavaScript | Netscape 社が開発したインタプリタ方式のオブジェクト指向言語. この演習ではこれを主に用いる. 詳細は後述. |
| Perl | 文字列やテキストの加工に適したインタプリタ方式の言語. 覚えるのは難しいが,かなり便利に使える. |
| Visual Basic | 厳密には言語というより,言語処理系.Microsoft が開発・提供している. コンパイラ方式の言語だが,即時の実行も出来るのでインタプリタのようにも使える. Windows 上ではかなり手軽に使え,以前はこの演習でも用いていた (2002年度資料). 将来は廃止の方向と言われていたが,かなりの変更を施されつつ,新版が作られ続けている. |
| Lisp | 記号処理に適し,人工知能分野でよく用いられている. さまざまな方言があり,その方言である Scheme や Common Lisp は, 以前,Sc289(2) 認知情報処理の授業で使用していた. (Sc289(2)の 2005年度資料, 2001年度資料) |
これら以外にも非常に多くのプログラミング言語がある.
プログラムの記述には,テキストエディタを用いる. 授業では,Sc182(2) 情報科学演習 でホームページの作成に用いた WZ エディタを用いる.
Firefox を JavaScript のインタプリタとして利用する. また,アドオンとして Firebug を追加すると,以下のような機能が使用できる.
(参考: Firebug - Web Development Evolved )
Firefox のウィンドウに Hello world. と表示するプログラムを作成する.
WZ エディタを使用して,以下の内容のファイルを作成し, 「マイドキュメント」の sc283 の下に js01-1.html という名前で保存する.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<title>JavaScript Sample 1-1</title>
<script type="text/javascript">
<!--
document.writeln("<p>Hello world.</p>");
// -->
</script>
上で保存したファイル js01-1.html を Firefox で開く.ファイルのアイコンをデスクトップの Firefox のアイコンにドラッグ&ドロップすればよい.
<script type="text/javascript"> と
</script> の間,
document.writeln("<p>Hello world.</p>");
が JavaScript のプログラムである.<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>JavaScript Sample 1-1</title> </head> <body> <script type="text/javascript"> <!-- document.writeln("<p>Hello world.</p>"); // --> </script> </body> </html>
document.writeln("<p>Hello world.</p>"); から成っている.
一般に,命令(ステートメント)はセミコロン(;)で終わるものが多い.document.writeln("<p>Hello world.</p>"); は,文字列
<p>Hello world.</p> を出力して改行する命令(ステートメント)である(→ ドキュメント出力).
したがって,このプログラムの実行結果は,下のような HTML 文書のページを開くのと(ほぼ)同じである.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>JavaScript Sample 1-1</title> </head> <body> <p>Hello world.</p> </body> </html>
alert("Hello world."); という命令(ステートメント)も使ってみよう.
(→ 参考「ダイアログ入出力」)Hello world. の部分)も変えてみよう.(参考:とほほのJavaScriptリファレンス の 基本文法 のページ, タグに関する基礎知識)
一般的には,JavaScript プログラムは HTML 形式のファイル中で script タグを使用して記述される. JavaScript に対応していないブラウザでも表示に影響を与えないように, 一般的には以下のようにコメントを組み合わせた形で書かれる.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <title></title> <script type="text/javascript"> <!-- // --> </script>
この,プログラムを含んだ
<script …> 〜 </script> は,
ヘッダ (<head> 〜 </head>) の中に書いてもボディ
(<body> 〜 </body>) の中に書いてもよい.
(→ JavaScript の書き方 by とほほ)
※ 授業では,煩雑さを避けるため,一部のタグ等を省略することがある.
JavaScript のプログラム中にコードの説明やメモのためのコメント (注釈; 実行に直接影響しない任意の文字列) を入れたい場合,2種類の方法がある.
ひとつは2個の斜線 (//) を用いるもので,
この文字の組合せから行末までがコメントとなる.
行頭に // がある場合は,
その行の行末までの全体がコメントとなるが,
行の途中に // がある場合は,
そこから行末までがコメントとなる.
コメントを入れるもうひとつの方法は,コメントを /*
と */ ではさむ方法である.
この場合はこの /* と */
の間がコメントとなる.この方法によるコメントは複数行にまたがってもよい.
(→ コメント
in とほほのJavaScriptリファレンス)
<!-- と --> の間がコメントとなる.
(→ コメント
in (とほほの) HTMLリファレンス)<script …> 〜 </script>中に現れる
<!-- と // --> も,JavaScript に関してはコメントとして扱われる.<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <title>Various Comments</title><!-- HTML の部分ではコメントはこの形 --> <!-- このように 複数行に またがってもよい. --><pre><script type="text/javascript"> <!-- この行も JavaScript としてはコメントと考えてよい. // HTMLとしては12行ほど下の // で始まる行までコメントとなる. // ここは JavaScript の部分なので, // コメントはこのような形 document.writeln("<p>Hello world.</p>"); // 行の途中からでも OK document.writeln("<p>Hello world.</p>"); /* こんな形式もあり */ /* 複数行に またがるときは こちらの形の方が 扱いやすい? */ // この行も,// で始まるので (JavaScript の) コメント --> </script></pre><!-- ここは HTML の部分 -->
単語 (変数の名前やキーワードなど) や演算子や数値や文字列などを途中で分断しない限り, プログラム中の任意の場所に空白を入れてもよい.また,何個入れてもよい. プログラムの構造を明示して見やすくするために, 行の先頭に適当な個数の空白を入れることも多い. これをインデンテーション (字下げ・段つけ) と呼ぶ.
改行は空白と同じ扱いなので, 空白を入れても構わない場所ならどこで改行してもよい. また,改行しなくてもよい.
| 課題番号: | 1-1 |
| 課題名: | 手順の記述 |
| 締切: |
「料理の手順」や「筆算の仕方」など,アルゴリズムとみなせるようなものの手順を 「小学生にも分かるように」事細かに箇条書きで記述する. (「する」ことを順を追って記述する. 料理のレシピの記述とは異なる)
Moodle の課題ページから直接入力すること.
締切は次回の演習の前日の演習日の直前の日曜日,18:00までとする.