[目次] [次回] [重要語索引]

第1週:プログラムとは

1. 1 プログラミング言語
1. 2 Java 言語
1. 3 プログラムを実行する手順
1. 4 プログラムを書いてみる
1. 5 練習問題
1. 6 変数
1. 7 数値の入力
1. 8 練習問題
1. 9 プログラムを書くときの約束
1.10 エラー
1.11 練習問題
1.12 宿題

1.1 プログラミング言語

ソフトは買ってくればよいから、プログラミング を勉強する必要はないと思う人もいますが、既製のプログラムを使っている限 り、その枠を越えることはできません。創造的な仕事をするということは、自 分の発想を具現化するということです。実際のプログラミングは他人に任せる としても、コンピュータを自分の仕事にどう生かすかという発想の時点で、プ ログラミングの経験が有るのと無いのとでは大きな差が生じます。

1.2 Java 言語

JDK にはいくつかのバージョンがありますが、授業では 1.2.1 を基準にします。 どのバージョンを使っているかは、
      % java -version
を実行すれば分かります。
  • 現在、CNS では 1.1.5 と 1.2.1が使用可能です。標準では 1.1.5 を使うよう になっているので、~/.cshrc の最後に次の行を追加して(行末に改 行がないと正しく処理されないので注意)から、ログインし直してください。
          set path=(/usr/local/lib/jdk1.2.1/bin $path)
    
  • ラップトップでは、「講習会資料」に従って JDK 1.2.2 をダウンロードして ください。詳しくはこちらのページを参照し てください。

1.3 プログラムを実行する手順

Java 言語でプログラムを書いて実行する手順は次のようになります。なお、 この手順はアプレットという種類のプログラムを実行するときのもので、アプ リケーションという種類のプログラムでは違う手順になります。詳しくは第10 回で勉強します。

  1. ソースプログラムのファイルを作ります。ファイル名の最後には必ず .java を付けます。
  2. javac コマンドでソースプログラムをコンパイルします。する と、ファイル名の最後が .class になったファイルが新しくできま す。この中にオブジェクトプログラムが書き込まれています。
  3. applet 要素を含んだ HTML ファイルを作ります。これにより、 実行時のウィンドウの大きさやパラメータを指定します。
  4. appletviewer コマンドで HTML ファイルを表示すると、その 中で指定されたオブジェクトプログラムを実行します。
how to compile and execute

これからファイルをたくさん作りますから、ホー ムディレクトリに適当な名前のサブディレクトリを作り、その中で作業しましょ う。

いきなり何もないところからプログラムを書き始めるのは大変なので、練習用 の土台になるプログラムが用意してあります。とりあえず、これをコンパイル して実行してみましょう。

1.4 プログラムを書いてみる

プログラムを書くのにはテキストエディタを使います。CNS では mule または emacs、ラップトップでは meadow が使えます。ここではまとめて emacs と表 記します。

SfcTemplate.java はテキストフィールドやボタンを表示するだけの プログラムです。これではつまらないので、Process ボタンをクリッ クすると、Outputのところに Hello, world! というメッセー ジを表示するように作り替えてみましょう。

  1. まず、これから作るプログラムの名前(クラス名と呼びます)を決めます。 普通は、英単語を空白無しでつなげて、各単語の先頭を大文字にします。ここ ではHelloWorld という名前にしましょう。
  2. SfcTemplate.javaSfcTemplate.html は、これか ら作る他のプログラムにも土台として使いますから、別のファイルにコピーし たものを編集します。さっき決めた名前に .java.html を付けた HelloWorld.javaHelloWorld.html というファイルにコピーしてください。
    % cd 自分の作業ディレクトリ
    % cp SfcTemplate1.java HelloWorld.java
    % cp SfcTemplate1.html HelloWorld.html
    %
    
  3. HelloWorld.java を emacs に読み込みます([Files]→ [Open File...] C-x C-f)。ファイルの内容 はまだ理解できなくても、2個所変更するだけで自分のプログラムを作れます。
  4. 上から9行目に(モードラインに行番号が「L9」という具合いに表示され ます)
    public class SfcTemplate1 extends Applet implements ActionListener {
    
    という行があります。この中の SfcTemplate1 を、最初に決めたプ ログラム名である HelloWorld に変更します。
    public class HelloWorld extends Applet implements ActionListener {
    
  5. 最後の方に
        void sfcProcess () {
    	//ここに自分のプログラムを書く
    
        }
    
    という部分があります。この「{」と「}」の間に、自分で 考えたプログラムを書き込みます。
        void sfcProcess () {
    	//ここに自分のプログラムを書く
    	sfcOutput("Hello World!");
        }
    
    sfcOutput() は、括弧の中の文字列を出力用テキストフィールドに 表示する命令です。このように、ある仕事を実行する単位をメソッド (method)と呼びます。
    sfc が前に付いているメソッドは、練習 のプログラムを簡単に書くために用意したもので、本来の Java 言語の機能で はありません。
  6. バッファの内容をファイルに保存 ([Files]→[Save Buffer] C-x C-s) します。
  7. ファイルをコンパイルします。
    % javac HelloWorld.java
    %
    
  8. 次に、HelloWorld.html を emacs に読み込みます([Files] →[Open File...] C-x C-f)。
  9. 8行目に
    <applet code="SfcTemplate1.class" width=300 height=110>
    
    という行があります。この SfcTemplate1.class を、先ほどコンパ イルして出来たオブジェクトプログラムである HelloWorld.class に変更します。
    <applet code="HelloWorld.class" width=300 height=110>
    
  10. これを実行します。
    % appletviewer HelloWorld.html
    
  11. ウィンドウの Process ボタンをクリックしてみてください。

1.5 練習問題

1.6 変数

上のプログラムをさらに改造し、名前を入力すると、その人に挨拶するように しましょう。そのためには次の二つのことが必要です。

入力用のテキストフィールドは、マウスでクリックすると、キーボードから文 字を入力することができます。入力された文字を読み取るために、 sfcInput というメソッドを用意してあります。

その次の処理に移るために、読み取った名前を記憶しておくことが必要です。 データを記憶しておくには変数(variable)を使います。「数」と ついていますが、数値だけでなく文字などのデータを記憶することもできます。

プログラムは次のようになります。(青字の部分は説明なので打ち込む必要は ありません)
    void sfcProcess () {
	//ここに自分のプログラムを書く
	String s; // 変数 s の宣言
	s = sfcInput(); // 次の処理に使うために s に記憶しておく
	sfcOutput("Hello, " + s + "!"); //"Hello, " と s の値と "!" を結合して出力
    }

プログラムは上の行から順に実行されます。各行の意味は次の通りです。

HelloWorld.java を上のように変更し、コンパイルし直して、実行 しましょう。ウィンドウの Input のところに自分の名前を入力して、 Process をクリックしてみましょう。
変数を宣言するときに、同時に初期値(最初の値)を代入できるので、 上のプログラムは次のように書くこともできます。
    void sfcProcess () {
	//ここに自分のプログラムを書く
	String s = sfcInput();
	sfcOutput("Hello, " + s + "!");
    }

1.7 数値の入力

今度は数値を入力して計算するプログラムを考えましょう。アメリカドルの金 額を入力し、それを日本円に直すプログラムを作ります。 SfcTemplate1.javaForeignExchange.java というファ イルにコピーして、以下の内容を書き込みましょう。
public class ForeignExchange extends Applet implements ActionListener {
    void sfcProcess () {
	//ここに自分のプログラムを書く
	int dollar, yen; // 整数型変数の宣言
	dollar = Integer.parseInt(sfcInput()); // 入力した文字列を整数に変換して dollar に代入
	yen = dollar * 106; // dollar の内容を円に変換して yen に代入
	sfcOutput(String.valueOf(yen)); // yen の内容を文字列に変換して出力
    }

1.8 練習問題

1.9 プログラムを書くときの約束

空白・改行・注釈
名前のつけ方

1.10 エラー

1.11 練習問題

わざと間違いをして、どのようなエラーが出るか見てみましょう。
  1. コンパイルするときに指定するファイル名を間違える。
        % javac SfcTemplate.java
    
  2. 実行するときに指定するファイル名を間違える。
        % appletviewer SfcTemplate1.java
    
  3. ファイル名とクラス名(プログラムの名前)が一致しない。 HelloWorld.java の9行目を次のようにして、コンパイル、 実行。
        public class HalloWorld extends Applet implements ActionListener {
    
  4. メソッド名を間違える。HelloWorld.java の中の sfcOutputsfcoutput にして、コンパイル、実行。

1.12 宿題

  1. ForeignExchange.java を変更し、日本円を入力し、アメリカドルを 出力するようにしなさい。割り算は / で表します。1ドル未満の端 数はどうなるでしょうか?
  2. 誤りをたくさん含んだファイル /pub/sfc/ipl/1bc/Erroneous.java を自分の作業ディ レクトリにコピーし、コンパイルしてみなさい。出てきたエラーを見て、正し くコンパイルできるように修正しなさい。一つのエラーを修正すると、隠れて いた他のエラーが現れることがあります。

[目次] [次回] [重要語索引]

慶應義塾大学の授業以外での無断利用、複製はご遠慮下さい。
Copyright (c) 2000 慶應義塾大学