プログラミングA/B Q&A



Q.

Windowsマシン上でPASCALプログラムを実行したいのですが?

A.

処理系一式を用意しましたので,ここからダウン ロード(4.5MB)してインストールしてください.また,CD-Rの空メディア を持って来てもらえれば,こちらで焼いて手渡しすることもできます.

なお,日本語を入力する場合は「Alt+半角/全角」を押して入力モードを切替 えてください.

あるいは,Windowsと同居させるかたちで,サイバーメディアセンターで使用 しているOS(Vine Linux)をインストールし,その上でPASCAL処理系を使う手 もあります.


Q.

Windowsマシン上でPASCALプログラム内の日本語が文字化けするのですが?

A.

nkfやqkcなどの文字コード変換ツールを使ってプログラムの文字コードを変換 してください.

Windowsマシン上では,文字コードがSJISで,改行コードがCR+LFです.サイバー メディアセンターでは,文字コードがEUCで,改行コードがLFです.ここから ダウンロードした処理系であれば,下記のコマンドで変換できます.

% qkc -sm hoge.pas        (SJISへ変換する場合)
% qkc -eu hoge.pas        (EUCへ変換する場合)

Q.

PASCAL コンパイラの使い方がわかりません.

A.

PASCAL コンパイラの使い方について簡単にまとめておきます.
1. ソースコードの作成

   gEdit または xemacs で書く.
   XXX.p または XXX.pas という名前で保存する.
   gpc では .p または .pas で終わる名前で保存しないとコンパイルできません.

2. コンパイル

   gpc コマンドを使う.

   % gpc XXX.p

   とすると,a.out という名前のファイルが生成される.
   a.out は XXX.p に書いたプログラムを実行するコマンドである.

   つまり,gpc コマンドは,PASCALソースコードをコンピュータ上で実行
   できるコマンドに変換する.

3. コンパイルで生成したコマンドの実行

   % ./a.out

   とする.

4. gpc が生成するコマンドのファイル名の指定

   % gpc -o YYY XXX.p

   とすると,a.out ではなく, YYY という名前で XXX.p に相当するコマンドが生成される.
   -o の後にはスペースが必要であることに注意!

   YYY を実行するには,

   % ./YYY

   とする.

Q.

プログラムがいつまで経っても終わらないのですが?

A.

無限ループに陥っている可能性があります.Ctrl-Cを入力してプログラムを終了 させましょう.

Q.

サイバーメディアセンターのPASCALは,write文で(' ')の中に日本語の文を入 れることは可能なのでしょうか?

A.

可能です.また,配布する処理系でも可能です.

Q.

3の3乗などはどうやって入力するのですか?

A.

ワープロソフトなどでは,普段我々が紙に書くように3の右上に3を入力すること ができます.しかし,gEditやemacsなどのエディタでは,ワープロのように右上 に3を入力することはできません. みなさんは,これらのエディタを使ってPASCALプログラムを編集しますが,一般 的にはx**3であるとかx^3とかの記号を用いて,階乗を表すことを約束している 言語が多いです.

ですので,これらの記号を用いるか,もしくは数値関数を使うという手もありま す.

なお,もうすぐLatex(ラテックと読む)という文書整形ツールを習うと思いま すが,紙のうえで書くような数式を綺麗に印刷することができます.そのために は上で書いたようなx^3などの記号を使うのですが,詳細は楽しみにして下さい.


Q.

以下のようなエラーメッセージがでましたが,意味がわかりません.
  nondigits in number whose radix <= 10
これは,どういう意味なのでしょうか,教えてください.

A.

英語の意味自体は「基数が10以下の数値(要するに10進法, 9進法, 8進法, ..., のいずれかで記述された数値)中に'0' から '9' 以外の文字が含まれている」 ということです. たとえば,2000と書くべきところを200a0などのように英字が混ざってしまって いる場合などが考えられます.

Q.

ストップウォッチ(swatch.pas)の測定精度はどれくらいでしょうか?

A.

10ミリ秒です.これより短い時間は測定できません. 例えば 100 回の足し算をする時間をストップウォッチで測定すると, 測定結果は 0 秒になります.

Q.

サイバーセンターのPCでは,演習で作成した PASCAL プログラム以外にも 複数のプログラムが動作しています. ストップウォッチ(swatch.pas)が測定する時間には,これら他のプログラムの 実行時間も含まれるのでしょうか?

A.

含みません. ストップウォッチは,他のプログラムが動いていても,PASCALプログラムの実行時間だけを 測定します.複数のPASCALプログラムを同時に動かした場合,個々のPASCALプログラムの 実行時間を個別に測定します.