02/01/02 01:46
Pascal の初心者用の質問・相談所
コンソールのみ。GUI は扱いません。
「Cをやったけど難しいので、やっぱりPascalからぼちぼちやるぅ」という人向け。
コンパイラダウンロード
URLリンク(www.vector.co.jp)
ちなみにDelphiは
「モナーの *やさしい* Delphi質問スレ」
スレリンク(tech板)
2:デフォルトの名無しさん
02/01/02 01:49
参考
URLリンク(www.illy2.f2s.com)
3:デフォルトの名無しさん
02/01/02 01:55
「Cをやったけど難しいので、やっぱりPascalからぼちぼちやるぅ」というのが
いまいちわかりません。
Pascalは厨房用の言語なんですか?
4:デフォルトの名無しさん
02/01/02 01:57
sage
URLリンク(www.illy2.f2s.com)
5:デフォルトの名無しさん
02/01/02 02:04
>>3
C は高級言語と言いながら、実際はかなりハードウエアに近い中級言語です。
メモリー管理とか、ポインターとか、ややこしいことがいろいろあります。
Pascal はもともと教育用として設計されているので、変なことはコンパイラーがエラーとして検出します。
Cは、プログラマーが全知全能であるという仮定で設計されているので、よく知らない人が変なコードを書くとすぐに暴走します。
6:デフォルトの名無しさん
02/01/02 02:12
Pascalが教育用でかんたんって認識は現在だと当てはまらないでしょ。
ANSI Cは型チェック厳しいし。
7:デフォルトの名無しさん
02/01/02 02:16
>Cは、プログラマーが全知全能であるという仮定で設計されているので、
>よく知らない人が変なコードを書くとすぐに暴走します。
とか言っている人はPascalでもヤヴァイと思いますが?
8:デフォルトの名無しさん
02/01/02 02:19
例えばCでは、配列の境界を越えて、値を代入したりすることが平気でできます。
コンパイラーも、なんも文句も言いません。
Pascal では、決してこのようなことはさせません。
9:デフォルトの名無しさん
02/01/02 02:21
ねがったり
最近Delphi触り始めたんすけど、ObjectPascal? なるものが
さっぱりでカナーリ気持ちわるひ
何か初心者本とか読むと
「文法を覚えなくてもアプリを作れるのがdelのいい所」
とか書いてるし。。。。。
もうね、
10:デフォルトの名無しさん
02/01/02 02:24
ちゅかbrcc32じゃダメなん?
パスカールたん、、、(´д`;)
11:デフォルトの名無しさん
02/01/02 02:25
>>8
>例えばCでは、配列の境界を越えて、値を代入したりすることが平気でできます。
>コンパイラーも、なんも文句も言いません。
purifyくらい買えよ
12:デフォルトの名無しさん
02/01/02 02:26
Delphi は、Object Pascal を使っています。
カンタンに GUI を作れます。
Delphi の質問は、>>1 にも書いてありますが、
「モナーの *やさしい* Delphi質問スレ」
スレリンク(tech板)
こちらでしたほうが、迅速に回答が得られます。
ここは GUI を扱わない、コンソールのみの Pascal スレッドとします。
13:デフォルトの名無しさん
02/01/02 02:28
それでは、最初の授業です。
program hello(output); (←セミコロン)
begin
writeln('Hello world !!'); (←セミコロン)
end. (←ピリオド)
これで、画面に、「Hello world !!」と出力することができます。
14:デフォルトの名無しさん
02/01/02 02:28
>>8
そういう機能ってTurboPascalでもあったけど、あれってPascal標準の
機能だったのかなぁ?
Cは「中級言語」ってよく言われるけど、C++とPascalだったら、
各種データ構造を扱えるC++の方が「高級」だよな。
15:デフォルトの名無しさん
02/01/02 02:29
Cは低水準言語です。
16:デフォルトの名無しさん
02/01/02 02:36
↑ こう言うツールの話しだす馬鹿が絶対現れるんだよね (^^;;
17:デフォルトの名無しさん
02/01/02 02:44
>>16
なんのこと言ってるの?
18:デフォルトの名無しさん
02/01/02 02:46
>>14
標準。
19:デフォルトの名無しさん
02/01/02 02:52
>>16
たぶん>11
20:デフォルトの名無しさん
02/01/02 05:27
>>10
brcc32.exe はリソースコンパイラだけど・・・。
21:デフォルトの名無しさん
02/01/02 08:42
pascalがcに比べて教育用(入門用)に良い理由は
1、配列とポインタと文字列がしっかり区別されている
2、begin / end により比較やループネストをしすぎると行が長くなり
結果、自然に構造化するクセが身につく・・・場合がある
3、制御文が不親切=少なく、機能が貧弱 である為 表記方法に
自由度が少なくなり、結果、同じアルゴリズムなら似たコードと
なり他人(教師が)読みやすい・・・・場合がある
4、宣言について厳格(関数の引数も同じでなければならない等)であり、
他の特性とあわせて、自由度が少ない = コーデングは自然に統一さ
れる = 他人のコードでも読みやすく、Cのように コーデング規則の
ようなのを別に作る必要がない
反面、Modura2/TurboPascal/Delphiでない素のpascalには分割コンパイル
出来ないという玩具レベルと言われる欠点がある。
22:デフォルトの名無しさん
02/01/02 14:52
とりあえず、円周率を求めるプログラムを書いてくれ
23:デフォルトの名無しさん
02/01/02 15:37
pascalは処理系を作る教育に良い、とされている、らしい。
24:デフォルトの名無しさん
02/01/02 15:50
>22
begin
writeln(PI);
end.
25:アライグマPasacal
02/01/02 20:54
ここでDev-Pascalをダウンロードすべし。
URLリンク(www.bloodshed.net)
FreePascal(知っているよね)を内蔵した高度なIDEがFreeで手に入る。
ただしWin32環境専用。エディタはそのままでは日本語が文字化けするが
オプションでフォントを設定すれば問題ない(Terminalの14Pointがおすすめ)
Win2000あたりを使っているなら本家FreePascalをダウンロードするより。こちら
のほうがインストールが簡単で使えるエディタがあるのでいいかも。
ただしマニュアルが貧弱、FreePasalはTurboPasca完全互換&DelphiPascal一部互換
なので本家よりマニュアルをダウンロードして研究すべし。
英語が苦手な人はこちらのサイトで日本語訳が進行中。サイトを丸ごとコピーする
ツールなどを利用してダウンロードすべし。
URLリンク(home.interlink.or.jp)
26:アライグマPascal
02/01/02 21:00
現在、標準Pascalを使用して実用的なツールを開発している人は
すくなく、また標準PascalひいてはTurboPascalを解説する書籍は
ほとんど入手困難になりつつあるので、上記サイトの日本語訳は
ありがたい。
非常にコンパクトなコンソールアプリが作れます。ぜひ試してみて
ください。
27:デフォルトの名無しさん
02/01/02 21:44
>>21
賛成できるのは1だけのような…
28:デフォルトの名無しさん
02/01/02 22:06
Pascalといえば、Unitの循環参照エラーが未だによくわからない。
UnitAとUnitBがともに両者を参照する場合、
Uses節は、両者ともにimplemenntationのUses節を利用するとエラーを回避できると
あるけど何故そうなるのか詳しい参照のルールを知りたいものです。
29:デフォルトの名無しさん
02/01/02 22:31
・相手にusesされていたらusesし返すことはできない。
・interface部でusesしたらusesしたことになる。
・implementation部でusesしてもusesしたことにならない。
と考えると分からない?
30:デフォルトの名無しさん
02/01/02 22:33
>>25
これもコンポーネントぽとりぺたりはサポートしてないのね(T_T)。残念。
それこそがdelphiの(唯一の(ぉ))アドバンテージなのにぃ。
難しいとは思うけど、del自体のコンポの仕掛は
体系だてて作られているわけだから、その体系をなぞれば
互換または類似のフリーソフトも作成可能と思われ。
最適化とかのマジックが必要な個所じゃないし。
…それとも 2way 特許のせいで、作れないの?
31:デフォルトの名無しさん
02/01/02 22:44
>>30 コンポーネントぽとりぺたりは”コードジェネレーター”でもいいはず
つまりもっといいものはできるはず
大体コンポーネントぽとりぺたりと言ってもそのあとはコードは
せこせこ書くわけだし
delphiの肝はDCC32のみ
delphiはコンパイル速度が速いしWWWのライブラリーは最強では?
あとWINAPIで組めば20kbyteで相当できる。
ところでdev-pascalダウンロードしてみたんだけど
サンプルがビルドできん....
なんかリソースエラーとかが出る。ぎょえっ。
ちなみにdelphiとかCとか入れてないマシンなんだけど
cygwinがいるのかなぁ?
32:アライグマPascal
02/01/02 22:46
>30
確かにマウスでGUIをつくれないけど、単純なWindow形式ソフトの
ひな形は作ってくれる。すごくシンプルだからコードガリガリ主義者
にはもってこいのはず。Pascal学習(構造化からOOPまで)に
もってこいと思うけどね。
>URLリンク(www.vpascal.com)
かつて有償だったOS/2で有望視されていたDelphiPacal一部互換の
Pascalコンパイラ(フリーでゲット!!)
OS/2、Win32用があります。エディタが使えなかったので、
「1」のリンク先のCpadシリーズで、FreePascal用の利用してみるとよい。
33:アライグマPascal
02/01/02 22:52
>31
cygwinはいりません。必要なものはすべて圧縮ファイルに入っています。
34:デフォルトの名無しさん
02/01/02 22:53
delphi?っていうかPASCALってさ
変数の宣言文が分離してるよね、
コンパイラ側から見たらやっぱりどこでも宣言よりはいいんじゃないかなぁ。
あとこのことはインラインアセンブラとリンクさせやすいよね、
つまりアセンブリ言語にはCよりもPASCALのほうが近い
begin endは{}でもいいと思うけれどもね、
レコード型とかクラス型がCだと->なのが.というのがよいと思う
35:デフォルトの名無しさん
02/01/02 23:04
Delphi/Kylixのフリーが出た以上
FreePascalやTP互換言語の役目は終わってる。
コンソールアプリ限定であってもDelphiやるのが良いと思う。
# なるべく人的リソースをBorlandに集めたいってのが本音なんだけどね。
36:アライグマPascal
02/01/02 23:13
>35
DelphiはVCLのもつ力を利用する処理系です。
VCLを利用しないならばDelphiを使う意味がほとんどありません。
言語学習が目的であったりとか、使用するマシンが非力であるとか。
コンソールアプリで十分な業務が遂行できるのなら、これらFreeコンパイラ
は大変価値があると思います。
手になじむツールは人それぞれで、どれがベストなのかいろいろ試して
みるのも良い勉強になるとおもっています。
37:デフォルトの名無しさん
02/01/02 23:14
{}よりもPythonちっくなほうが好きだなあ。
よく擬似コードでPascalちっくで、ブロックはインデントのみって
あるじゃん。ああいう感じ。
38:アライグマPascal
02/01/02 23:47
ポトペタの処理系はあることはあります。
URLリンク(www.lazarus.freepascal.org)
FreePacal内蔵のDelphiライクなIDEを搭載しています。GUIはGTK+を
利用しています。
しかし、画面の書き換えが見えるほど動作が遅く、まだまだです。
39:デフォルトの名無しさん
02/01/02 23:59
{}はコメントだって。
40:デフォルトの名無しさん
02/01/03 00:01
>>34
>あとこのことはインラインアセンブラとリンクさせやすいよね、
>つまりアセンブリ言語にはCよりもPASCALのほうが近い
これはないだろ(^^
41:デフォルトの名無しさん
02/01/03 10:34
TPのinline を思い出して言ってるんじゃないか?
42:デフォルトの名無しさん
02/01/03 13:04
インラインアセンブラは「リンク」とは言わないだろ。
Cだってインラインアセンブラはあるだろ。
インラインアセンブラがあってもアセンブリ言語に近いとは言わないだろ。
と、3つほど突っ込みドコロを挙げてみる也
43:デフォルトの名無しさん
02/01/03 13:09
Win32APIのPASCAL呼び出し規約の話だったり
44:デフォルトの名無しさん
02/01/03 22:15
言語の学習にもってこいなのは、人にもよるが、ゲームのショートプログラム
だとおもう。昔のベーマガやI/Oに載っていたBASICプログラムの移植を試みたいと
思っている。
45:デフォルトの名無しさん
02/01/04 12:44
今年からDelphiをはじめようと思い、やはり言語からと考えて
FreePascalを頂戴したんですけど、Pascalの解説サイトや本って少ないですね (T-T
丁度SDKをはじめた頃に一緒にC++を勉強したので、同じようになると思ったんだけどなぁ・・・
今はここを読んで統合環境からこちょちょしてます
URLリンク(homepage2.nifty.com)
大学の生協とかに行けばいい本有るかな ^^
46:デフォルトの名無しさん
02/01/04 12:50
PASCALなんて今更やりたいと思わない。
Cが難しいって言うけど、一体何と比べて難しいの?
ANSI Cの基礎の基礎で挫折するような奴は
どんな言語やっても結局中途半端で終わると思うが・・・
47:デフォルトの名無しさん
02/01/04 12:52
c->pascalで引っかかりやすいのは、型を一度typedefしてからじゃないと
使えない場合があること、例えば
int** i;
は
type pint = ^Integer;
var i: ^pint;
としなくてはいけない。
48:45
02/01/04 12:55
>>46
でもDelphiしたいなら必要じゃ無いですか?
僕の場合Cも++も理解したとは言い難いですけど ^^;;;
49:>45
02/01/04 12:57
なんか36がmisleadしてるようだけど
Delphiはコンソールアプリの開発をフルサポートしてるよ。
デバッガや文法の日本語のオンラインヘルプもあるし。
# 但しPascalとObject Pascalとの切り分けは一切ないけど。
>大学の生協とかに行けばいい本有るかな ^^
大学の図書館に腐るほどあるでしょ。
いまどきあまり借りる人もいないだろうから入手は楽かも。
お勧めの良書は知らないけど、経験的にはずれも少なかったような。
50:デフォルトの名無しさん
02/01/04 12:59
>>48
まあ、Dephiが使いたいからって人はわかるんだけどね。
1は、
>「Cをやったけど難しいので、やっぱりPascalからぼちぼちやるぅ」という人向け。
って言ってるだろ。
それがちょっと理解できない。
Cが難しいからPASCALをやってみても、PASCALにもCとは違った意味で難しい点があるんだから
まずは我慢してCを続けるのが本筋。
51:45
02/01/04 13:10
なるほど、皆さん有難う。
>>50は>>1に対する突っ込みだったんですね
それは同感です、どんな言語でも何処かで引っ掛かるのは同じですよね
良く分からないけど、今の学生さんって初めがJavaだったりするんだろうか ^^;
>>49
有難う。
近所の大学に潜入してみます ^^;;
52:デフォルトの名無しさん
02/01/04 13:17
#include <stdio.h>
int main(void)
{
FILE *fp;
fp = fopen("mona.txt","w");
if(fp == NULL){
printf("ファイルを開けねーぞ、ゴルア!\n");
return 1;
}else{
printf("思いの丈をブチマいちゃる!\n");
}
fputs(">>1\n",fp);
fputs("Pascalなんて糞言語。",fp);
fputs("逝ってよし!\n",fp);
fclose(fp);
return 0;
}
53:デフォルトの名無しさん
02/01/04 13:18
>45 いや、あの、Delphi6パーソナル素直にやればいいと思うよ
インストールしてDemosのサンプルアプリ順に触ればいいじゃない
54:デフォルトの名無しさん
02/01/04 13:22
>>47
Turboなら i : ^type;で直接指定できたような記憶があるんですが。
55:デフォルトの名無しさん
02/01/04 13:25
>54 いや i:^^type; の事を言ってるんだと思うよ
56:デフォルトの名無しさん
02/01/04 15:00
delphi ならproがいいよ
ソースがついてるから 追いかけたいユニットプロジェクトに追加しておけば
トレースでどこまででも追いかけていける。
STL標準になったC++よりずっと理解し易いよ
57:デフォルトの名無しさん
02/01/04 15:16
岩波講座 ソフトウェア科学
アルゴリズムとデータ構造 石畑 清
に、
type list = ↑cell;
cell = record
element : datatype;
next : list;
end;
の↑ってどーいう意味?
58:デフォルトの名無しさん
02/01/04 15:17
delphi pro personalなんてのがあればだけどね
pascalコンパイラごときに何万も払えないよ。
59:デフォルトの名無しさん
02/01/04 15:23
>>57
ポインタ。
TurboPascalではこう書いてた。
type list = ^cell;
60:デフォルトの名無しさん
02/01/04 15:42
PC-8001用のパスカルコンパイラは、よいものだた。
160x100のモノクロの画像2枚を切りかえるだけなのに、当時厨房だたおれは、家に帰ってから(以下略)
61:アライグマPascal
02/01/04 21:32
>49
>>なんか36がmisleadしてるようだけど
>>Delphiはコンソールアプリの開発をフルサポートしてるよ。
>>デバッガや文法の日本語のオンラインヘルプもあるし。
misleadの意味がわからないけど、スレッドの流れをおかしな方向へ
持っていっているという意味でしょうか?
自覚していないけど、もしそうならごめんなさい。
Delphiではコンソールアプリが開発できないと言ったということでしょうか?
もしそれなら、私はそんなことは言っていません。
36で言いたかったことは、高度なGUIが必要としないなら、なにもDelphiを
使わなくても別のコンパイラで目的が達成することもできるということです。
486マシンであるとかRAMが8メガしかないといった化石パソコンでも、
言語学習マシンとして再利用することができるということです。
62:アライグマPascal
02/01/04 21:51
気分を害したらごめんなさい。
>50
>>>「Cをやったけど難しいので、やっぱりPascalからぼちぼちやるぅ」という人向け。
>って言ってるだろ。
>それがちょっと理解できない。
>Cが難しいからPASCALをやってみても、PASCALにもCとは違った意味で難しい点があるんだから
>まずは我慢してCを続けるのが本筋。
「1」は、書いてある通りの思惑でスレッドを立てたのだから、それを
そのまま受け止めてスレッドを展開すべきだと思う。
スレッド設定の理由そのものから批評すると、後のスレッドはどう展開
していくのか分からなくなると思います。
<この後、Cの学習についてスレッドを伸ばすわけにはいかないでしょうし>
<学習する姿勢や心構えを論じるスレッドではなさそうですし・・・>
Delphi云々を書かれている人が多数おられますが、「1」は
>ちなみにDelphiは
>「モナーの *やさしい* Delphi質問スレ」
というように別スレッドを参照して誘導しているので、それに
従うべきだと思います。
63:デフォルトの名無しさん
02/01/04 22:18
>>61
>>35はコンソールアプリしか書かないとしても、Delphi/Kylixがいいよ
って言ってるのに
>>36でコンソールアプリで十分ならFreeコンパイラは価値がある
(つまりコンソールアプリにはDelphiは向かないと読める)って言ってるのがmisleadなんでないの?
64:もう1つ
02/01/04 22:22
俺に言わせると、昔の文法を覚えて、簡単な例題をやってみるくらいじゃ、「言語学習」としてはサミシイ。
65:アライグマPascal
02/01/04 22:41
>>>36でコンソールアプリで十分ならFreeコンパイラは価値がある
>> (つまりコンソールアプリにはDelphiは向かないと読める)って言ってるのがmisleadなんでないの?
う~ん。コンソールアプリにはDelphiは向かないというのなら、そのように書きますけど。
BBSではどうしても舌足らずな表現になりやすいので「裏読み」されやすい
表現は避けるようにしていたつもりですが・・・。
(仮に裏読みしてもそんな解釈になるのかしら???)
>俺に言わせると、昔の文法を覚えて、簡単な例題をやってみるくらいじゃ、「言語学習」としてはサミシイ。
最初は簡単な例題かもしれないけど、いずれCで蓄積されたアルゴリズム集の
Pascal移植に手を出すかもしれないじゃないですか(爆
66:デフォルトの名無しさん
02/01/04 22:53
63じゃないが、>>36はそう読んでも不思議はないと思う。
つーか、実際そういう印象を受けた。
67:デフォルトの名無しさん
02/01/04 23:25
Win95環境でもDCC32単独で使えば楽勝でしょう>>61
68:67
02/01/04 23:26
さらに言えば、Dcc32のコンパイル速度は爆速
コンパイルはFreePascalの半分以下で終わり
出来上がるサイズもずっと小さかったと思うよ
69:デフォルトの名無しさん
02/01/05 01:09
コンソールアプリとDOSアプリを混同しているに1Byte.
70:デフォルトの名無しさん
02/01/05 07:45
FreePascalはマルチプラットフォームであることを忘れているに、1Penis
71:デフォルトの名無しさん
02/01/05 09:28
Pascal入門程度ならどのコンパイラ使ったって
portableなコードしか書けないような...
72:アライグマPascal
02/01/05 09:48
Dev-Pascalの独自仕様かもしれないけど、ディレクトリ(フォルダ)名が
全角文字だとコンパイルエラーがでるみたい。みなさん気をつけて。
73:デフォルトの名無しさん
02/01/06 22:23
これなんとなくよさそう。
Bloodshed Dev-Pascal 1.9
URLリンク(download.cnet.com)
74:デフォルトの名無しさん
02/01/07 02:55
アマゾンでPASCALの良本一生懸命探したけど、あんまりないね。
Turbo PASCALとDelphiはいっぱいあるのだけど。
基本文法を解説してある入門書がほしいんだよな。
75:デフォルトの名無しさん
02/01/07 06:51
漏れも探してます。
標準関数(手続き)が載ったリファレンスが欲しい
Delphi買ったので一通り変数型とかプリミティブなアルゴリズムなんかを
コンソールでやろうと思うんだけど、関数が分からんからどうにも勝手が悪いです
近所の本屋さんには超初歩本しか無かったし
全部ShowMessageとInputBoxでやるのは悲しすぎる
Del使いさんはどんな風にステップアプしましたか
いきなりイベントごりごり書いたんだろうか
76:デフォルトの名無しさん
02/01/07 07:02
>>75
>Del使いさんはどんな風にステップアプしましたか
77:デフォルトの名無しさん
02/01/07 07:05
>>76
途中で送信してしまった。
で、漏れはTurbo Pascal 3.0当時に標準Pascal的なconsole baseの書き方を覚えた。
file型変数をAssignしてReset/Rewriteして云々、
表示はwriteln、入力はreadln...てな感じだよな。
今のDelphiでもconsole applicationにすれば使えるよね。
78:デフォルトの名無しさん
02/01/07 07:19
おお~ 考えてるのはそんな感じです >>77
何かDCC32でIntToStrとかすると「ハァ??」って言われて鬱なんです
Turbo時代の本を探して買えば良いんですね
しかしネットはPascal本の情報少なすぎるです
リファレンスみたいなの買えば当たり外れ無いのかなー
79:デフォルトの名無しさん
02/01/07 08:14
>78 Delphi6ならヘルプ->ObjectPascal言語ガイド->標準ルーチンと入出力 を読めばよろしい
IntToStrはSysUtilsユニットの関数であり、これらはVCLリファレンスにあります
uses SysUtils; してる?
80:デフォルトの名無しさん
02/01/07 11:23
ObjectPascalってKeyword多いなー OOダカラカ・・
Cの方がシンプルじゃん (ー_ー
81:デフォルトの名無しさん
02/01/07 12:40
>80 そりゃそうでしょう。
pascalとcならpascalがシンプル
DelphiとCならCがシンプル
DelphiとC++ならDelphiがシンプル
82:デフォルトの名無しさん
02/01/07 13:01
>>81
>pascalとcならpascalがシンプル
どっちもどっちなんじゃ?
この二つじゃ。
83:デフォルトの名無しさん
02/01/07 13:33
>82 制御文や演算子の数ではpascalがシンプルだし
文字列や配列の扱いは マシンから見たらcがシンプルだけど人から見たらpascalがシンプル
84:デフォルトの名無しさん
02/01/07 13:52
>>83
制御構造だと
Pascal場合
if
case
for
while
repeat..until
Cの場合
if
for
switch
while
do..while
同じようなもんでしょ。
演算子はCの場合、配列とかポインタ関連もすべて演算子の
カテゴリに入ってるから仕様書をみると数が多いように見えるけど
実際に使用すると、Pascalに比べてとくに複雑と感じないし。
85:83
02/01/07 14:05
シンプルが簡素な意味だとしたら
Cのfor文は簡素じゃないでしょ?
while文にしてもpascalは論理型しか書けないけど cは数じゃない?
コンパイラ側から見たら 全部が数ってのはシンプルかもしれないけど
型が区別されてる方が人間から見たらシンプルだと思うんだけどなあ
それと cのreturn は文だけど pascalのexitは手続きで予約語じゃないとか
まあ似たようなもんだけどさ
86:デフォルトの名無しさん
02/01/07 14:27
>>85
たとえばPascalのforだったら、私は使いはじめのころはどうして
順序型しかつかえないのか、どうしてグローバル変数は使えないのか、
疑問に思いましたし、
ずいぶん慣れてからも to と downto の使い分けで、ケアレスミスを
してました。
PascalとCがどちらがシンプルかってのは、まあ主観の問題ですね。
実際に問題、大差ないと思います。
87:デフォルトの名無しさん
02/01/07 23:01
だれか簡潔に説明してください。
FreePascalのマニュアルみていたら「Graphユニット」があって線を引いたり
円を描いたりできるみたいです。これってTurboPascalから引き継がれたユニット
だと思う。
問題は「Graphユニットの初期化」ってやつ。
基礎的なことが分かりません。なぜ、このユニットだけは初期化という作業が
必要なのですか?またサンプルコードをみても「何でこんな常套句が必要なのか
わからない」といったコードがあります。そもそも初期化って何????
それから「グラフポートをOpenしたらCloseせよ」って何?
文字色を変えたりするのは「Crtユニット」を使うわけで、そちらはサンプルを
見てもだいたい意味が分かるのですが・・・。
88:デフォルトの名無しさん
02/01/08 04:46
1. そういうものだ。気にするな。
2. 昔はハードウェア毎に異なる(デバイス)ドライバを,アプリケーション毎に読み込んでいたから。
DOS はグラフィックボードの管理はしないのだ。
3. 古いアーキテクチャで作られた物が,現代の人にとって易しいとは限らない。
古けりゃ簡単,ってことなら古文/漢文で苦しむ人はいないよな。
89:デフォルトの名無しさん
02/01/09 15:51
ハード屋さんとかマシン語の得意な人にはCの方がやさしいし
BASICから入った人には文字列でつまずかないだけでもPascalの方がやさしい
・・・と思う
90:87
02/01/09 21:57
Graphユニットのサンプルをコピペしてdev-Pascalにてコンパイルしました。
エラーがでます。integerで宣言されるinitGraphで使用する変数を、shortintで
宣言するとエラーが消えてサンプルアプリができました。あとは少しずつ
手続きや関数を書き足して調べてみます。
91:デフォルトの名無しさん
02/01/10 01:00
FreePascalってのは起動時コンソールプログラムしか作れないのですか?
>>83 TurboPascal系はレジスタ渡しで関数呼べるのでPascalのほうがマシンよりでは?
92:デフォルトの名無しさん
02/01/10 01:32
>>87
なんでファイルをいちいちOpenしたりCloseしたりしなくてはならないのですか?
なんでFindFirstしたらFindCloseしないといけないのとか。
なんでAllocしたらFreeしないといけないのとか。
と似たようなものですな(w
93:アライグマPascal
02/01/10 08:02
>91
Windowプログラムもつくれますよ。
94:デフォルトの名無しさん
02/01/10 09:13
おい!>>2と>>4!!
貴様ら!!!!逝ってよしです。
ていうか、ム板にそんなもの貼ってうれしいんですか。
95:デフォルトの名無しさん
02/01/19 03:15
URLリンク(community.borland.com)
ここから Turbo Pascal 5.5 がダウンロードできます。
割れではないです。
96:デフォルトの名無しさん
02/01/19 03:26
ところで今のDelphiのObjectPascalと、
Turbo Pascal 5.5 との互換性がどれぐらいあるのか、
誰か説明できる人いないかな?
97:デフォルトの名無しさん
02/01/19 03:27
ダウンロードしたけど、インストールの途中で先に進めません(死
98:デフォルトの名無しさん
02/01/19 03:28
>>96
Object PascalはTPのほぼスーパーセット。
ライブラリは除く。
99:デフォルトの名無しさん
02/01/19 03:30
>94
何これ?
100:デフォルトの名無しさん
02/01/19 17:06
インストールの途中で先に進めなくなるけど、シカトして、TPフォルダの中のEXEを実行したら、ちゃんとインストールされてました!
コンパイル&実行までできました!
あとはTurbo Pascalの本買ってこよ。
Pascal そのものの本はあんまりないけど、Turbo Pascal の本はいっぱいあるし。
101:91
02/01/19 18:17
>>93 そうなんですか。実行ファイルにcigwinがいるとかいわなそうだし
テンプレートそろえてエディターがRADのものがあれば
FreePascalのほうがdelphiよりよさそうですね、
要は一般的なサンプルが少なくて古典的なものばかりだということなんでしょうか
GUIアプリでGLUTあたりをかますものであれば大体なんでもできそう
102:デフォルトの名無しさん
02/01/19 18:25
エディターがRAD ってのがなんか無理めな話しのような・・・
Delphiは 実行時型情報と
DLL にコンパイルして設計時にも動作するコンポーネントという概念
それをサポートするツールが組み合わさってRADになってるんだから
103:デフォルトの名無しさん
02/01/19 20:01
いったい何をどう評価すればFreePascal>>>Delphiになるんだ??
104:アライグマPascal
02/01/19 23:13
>101
くどいけど、Win32環境でのプログラミングならDev-Pascalを使った方が、
素のFreePascalを使うよりFreePascal&統合開発環境である関係上多少使いやすい
とおもいます。
GUIのためにGTKをつかうひな形が用意されているのですが、GTKをまったく
知らないので私は使いこなせない状況です。
105:デフォルトの名無しさん
02/01/19 23:17
FreePascalってなんて読んでる?俺はフリッパー
106:デフォルトの名無しさん
02/01/22 00:52
Turbo Pascal の本はなんでめちゃめちゃ高いのが多いんだ。
107:デフォルトの名無しさん
02/01/31 15:13
>>105
俺はフリパ。
同じく、FreeBSDはフリビ、
でもFreeDOSはそのままフリードス。
108:デフォルトの名無しさん
02/01/31 20:00
アマゾンでTurbo Pascal の本を探した。
みんな7か6対応の本ばっかりで、5対応の本があんまりない。
漏れがダウンロードしたのは5だから、できれば5の本がいい。
それとも、7と5であんまり変わってないなら、7の本を買おうと思うが、そのへんどうなんでしょう。
109:デフォルトの名無しさん
02/01/31 21:02
オーム社「TURBO Pascal プログラミング」間野浩太郎監修、内田智史著 \3,600
は4までが対象だけど、これでは古すぎるかな
110:デフォルトの名無しさん
02/01/31 21:05
5.5からオブジェクト指向を搭載、って書いてあるので、たぶん、4と5.5はだいぶ違うと予想されるのですよ。
5.5と7の違いがよくわからん。
111:デフォルトの名無しさん
02/01/31 21:15
今調べたら、
「TURBO PASCAL 5.5 OOP GUIDE」BORLAND刊」
というのを見つけた。そうだ。ボーランドの本を使えばいいのだ。
まだ売ってるのかわからんが。
112:デフォルトの名無しさん
02/01/31 21:47
>>108
オブジェクト指向を使わないのなら、TP4-7は大して変わらないと思われ。
113:デフォルトの名無しさん
02/01/31 21:57
>>112
ありがとう。そんなら、7の本を買う。
114:デフォルトの名無しさん
02/01/31 22:15
古本屋いけ。
115:デフォルトの名無しさん
02/01/31 23:45
パスカルの本買いたいけど、なんであんないバカ高いんだろ。
言語がフリーでも意味ないじゃん。
『Oh! Pascal!/Book and Pc/DOS Disk』
Doug Cooper (著); ペーパーバック
通常4~14日以内に発送
価格: ¥9,093
『Turbo Pascal』
Elliot B. Koffman (著); ペーパーバック
通常4~14日以内に発送
価格: ¥9,600
手数料: +¥960
『Using Turbo Pascal 6.0 - 7.0』
Julien Hennefeld (著); ペーパーバック
通常4~14日以内に発送
価格: ¥10,260
手数料: +¥1,026
『Turbo Pascal』
Samuel L. Marateck (著); ペーパーバック
通常4~14日以内に発送
価格: ¥14,467
『Turbo Pascal, an Introduction to the Art and Science of Programming (The Benjamin/Cummings Series in Structured Programming)』
Walter J. Savitch (著); ペーパーバック
通常4~14日以内に発送
価格: ¥8,933
手数料: +¥894
116:デフォルトの名無しさん
02/01/31 23:49
>パスカルの本買いたいけど、なんであんないバカ高いんだろ。
これだけ読んで、
高いといっても5000から6000円程度だろ
とレスを付けようとして続きをみてびっくり。
それぞれ1000ページくらいの大作なのだろう。
117:デフォルトの名無しさん
02/02/01 01:18
>>115
無理にメリケンの本を買おうとするから高いのであって
ニポーンの本で我慢(?)すればそこまで高くはないよ
118:デフォルトの名無しさん
02/02/01 04:17
じゃなくて、洋古書は売れないと高くなるの。
どの本も大昔の書籍だってこと、わかっているのかな?
なぜ Delphi ではなく TurboPascal を求める?
119:デフォルトの名無しさん
02/02/02 00:00
だってDelphiなんて、GUIだとか余計なことがイパーイついてて本質が見えないじゃないか。
120:デフォルトの名無しさん
02/02/02 01:29
>>119
自分で制限可能だよ。
まあやろうとしてることはコイツらと変わらんが
Delphiで小さな実行ファイルを作ろう
スレリンク(tech板)
121:デフォルトの名無しさん
02/02/02 03:38
だからといって古いソフトを持ち出さなくても...
弘法筆を選ばず。本質が見える人は GUI がついていても道を見失うことはない。
初心者であれば手軽に手に入る,最新の道具で入門をしなされ。
122:デフォルトの名無しさん
02/02/02 08:22
TurboPascalの入門というかPascalをテーマにしたHPを作りたいのですがいいですか?
123:デフォルトの名無しさん
02/02/02 15:20
ようするに Delphiでも新規作成で その他->コンソールアプリケーションを選べば
VCLによらない素のpascalで遊べます
コンソールが不要な SDK方式でのGUI を作りたければ、
コンソールアプリを選んだ後 {$APPTYPE CONSOLE} を自分で削除すればいいのです
124:デフォルトの名無しさん
02/02/02 23:30
TP5.5は、統合環境がWin9xのDOSプロンプトでは動かないよね。
つまりデバッガを使いたければDOSモードへ行かねばならない。
これからPascalを始めようとする人には、あまり向いていないと思うよ。
125:デフォルトの名無しさん
02/02/03 00:25
>>122
作るのは貴方の勝手です。ご自由に・・・
126:デフォルトの名無しさん
02/02/04 08:00
>87
ふむふむ、確かにFreePascalでもGraphユニットやCtrユニットが用意されているね。
Turboとの互換を考慮してとおもうけど。
GraphDeviceあたりの型を、エラーを参考にShortInt型に書き換えるだけで、きちんと
グラフィックが描ける。英語版のTP5.5をゲットしてDosプロンプトで動かすより、
こちらの方が簡単みたい。
>122
私もTPやFPをネタにコツコツとHPを作ってみようと思っています。
127:デフォルトの名無しさん
02/02/04 10:19
>>124
ガセ。正しく環境を作れば動く。
DPMI 関連の資料をよく読んで。
128:デフォルトの名無しさん
02/02/04 12:21
C:>US
C:>TP
:
:
C:>JP
C:>EXIT
129:デフォルトの名無しさん
02/02/04 12:56
>128
USモードじゃ日本語つかえんぞゴラァ!
130:デフォルトの名無しさん
02/02/04 13:13
え?TP5.5 って、US のミュージアムから落とした物のこと?
じゃしょうがない。US モードにするしかないだろ。
131:ふむふむ(納得)
02/02/04 13:48
英語版のTP5.5でも日本語はつかえるけど、GraphやCrtユニットは日本語対応じゃ
ないので、日本語文字列はWriteLnなどの手続きでコンソール上に出力することしかできない。
132:124
02/02/04 21:18
>>127
今まで知らなかった。ご指摘ありがとう。
DOSプロンプトのプロパティで「必要に応じてMS-DOSモードを実行」を外したら動いた。
>>131
DirectVideo := False;
とすれば、Crtユニットによるテキスト出力がBIOS経由になるから、
DOS/V BIOSのおかげで、Writelnで日本語文字が出力できるようになるよ。
GraphユニットのOutTextでの日本語出力は、無理そうだね。
133:デフォルトの名無しさん
02/02/04 21:21
昔のPascalなんてコンパイル速度が速いだけしか取り柄が無いよ
134:デフォルトの名無しさん
02/02/04 21:49
Delphi6パーソナルを使った pascalのスタート教室
1) FILE-> 新規作成->その他->コンソールアプリケーションを選びます
すると
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
begin
{ TODO -oUser -cConsole Main : この下にコードを記述してください }
end.
とソースが表示されます
program Project1; uses SysUtils; はボーランドによる拡張ですから取り去ってかまいません
{$APPTYPE CONSOLE} も取り去ってかまいませんが、代わりにコンパイルオプションでコンソール
アプリである事を指示する必要があります
結局、最初に書くアプリは これでいいでしょう
{$APPTYPE CONSOLE}
begin
writeln('こんにちは');
readln;
end.
この2行を入力した後、F9 を押せば実行出来ます
135:ふむふむ(納得)
02/02/04 21:49
>132
ふむふむ、自分はまだGraphユニットとCrtユニットを完全に理解していなかった
ようです。サンプルコードを希望します。
自分はPC-9800シリーズ用のTP6プロフェッショナル版をもっていますが、
引っ越しのどさくさでソフトはあれど、マニュアルをすべて無くしてしまったのです。
TP6のマニュアルに書かれていたクラスの概念はとても分かりやすかっただけに、
すご~~~~く、残念です。
だれかGraphユニットとCrtユニットの詳しい解説をサンプルを使って説明して
くれませんか!!
136:デフォルトの名無しさん
02/02/04 21:52
さて、>>134の方法で作成した場合、ソースは dprの拡張子となっています。
Delphi IDEを使わない方法を説明します。
まず メモ帳でも好きなエディタでも、 ファイル名.pas としてファイルを作成し
begin
writeln('こんにちは');
end.
と3行入力し、保存して下さい。
コマンドラインから
DCC32 -CC ファイル名.pas として改行すれば
ファイル名.exeが作成されます
137:デフォルトの名無しさん
02/02/04 22:04
uses を使わない場合に使えるのは system unit の関数だけです
uses SysUtils ;が 追加された状態では、abort; Ansi/Unicode文字列処理や時間などの関数が追加されます
138:デフォルトの名無しさん
02/02/04 22:10
コンソールアプリであっても、グラフィック画面を扱いたくなります
Windowsの場合、コンソールにグラフィックを表示する事は出来ません。
そこで、別窓を出してグラフィックを出すか
あるいは、BMPファイルを作成して後でビュアーで見るという方法が簡単です
Delphiのフォーム機能をグラフィック画面としてコンソールアプリから使う方法を説明します
139:デフォルトの名無しさん
02/02/04 22:20
まずは、IDEからコンソールアプリを作成した直後
新規作成でフォームを作成して下さい
そして以下のように入力して実行してみて下さい
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils,
Forms,//<----この行を追加
Unit1 in 'Unit1.pas' {Form1};
begin
Form1:= TForm1.Create(nil); //<<--この行以下を追加
Form1.Show;
Form1.Canvas.Ellipse(20,20,100,100);//円の描画
Form1.Caption:= 'こんにちは';
readln;
end.
実行すると、コンソールと同時にタイトルがこんにちは となった フォームが表示された筈です
このフォームはクリックに応答しませんし、他の窓に隠れると再表示もされません
が、とりあえずこれで遊ぶには十分に便利な筈です
140:124
02/02/04 22:42
>>135
>TP6のマニュアルに書かれていたクラスの概念はとても分かりやすかっただけに、
おお、同意。なんか執筆者のすごい熱意が感じられる文章だった。
Crtユニットを使って日本語を出力する例。
TP5.5、Win95のDOSプロンプトにて確認しました。JPモードで実行して下さい。
program test;
uses Crt;
begin
DirectVideo := False;
GotoXY(30,10);
TextColor(Red);
Write('こんにちは');
end.
2バイト目が'のコード番号と一致するような日本語文字を文字列中に入れる場合には注意。
コンパイラがその'を文字列の終わりと認識するのを防ぐため、'を一つ追加してやる必要がある。
141:デフォルトの名無しさん
02/02/04 22:43
ターボパスカルって、いまC#作ってる人と同じ人が作ったの?
142:動物アイゴー協会
02/02/04 22:47
あらいぐまパスカルとかパトラッシュ思い出すんだけど。
143:デフォルトの名無しさん
02/02/04 22:49
さて、>>139の方法はあまりにも無理やりで作法としてよくありません。
そこで、コンソールアプリからBMPファイルを作成して表示させる方法を説明します
まず、新規作成でコンソールアプリを新しく作った後
uses
windows, //WindowsのAPIを使います
ShellApi, //ShellExecuteを使う為に
Graphics, //TBitMapを使う為に
SysUtils;
var bmp:TBitmap;
begin
bmp:=TBitmap.Create;
with bmp do try
Width :=100;
Height:=100;
PixelFormat:= pf1bit;
Canvas.Ellipse(1,1,100,100);//円を描く
Canvas.TextOut(5,5,'こんにちは');
SaveToFile('temp.bmp');
finally free;end;
ShellExecute(0,'Open','temp.bmp',nil,nil,SW_SHOW);
end.
として実行してみて下さい
このコードはコンソールを使用していませんから、コンソールアプリである必要もありませんから
{$APPTYPE CONSOLE} も取り去って大丈夫です
144:デフォルトの名無しさん
02/02/04 23:16
>>139 の方法がなぜ良くないかをまず説明します
Windowsでは複数の窓があるように見せていますが、実際の表示デバイスはせいぜい1つです
他の窓に隠された部分が また表示されるのは、アプリケーションが努力しなければなりません
その為の仕掛けをメッセージループと呼びます
窓はメッセージを受信する仕掛けをもち、再描画しろというメッセージにしたがって画面を自分で
描くわけです。
また、キーボードが押された、マウスが押されたもメッセージにより処理されます。
Delphiでは application.ProcessMessages; で明示的にそのメッセージループを呼び出す事も
出来ます。コンソールアプリでapplication.ProcessMessages;を定期的に呼び出せば、作成した
フォームはマウスを受け付ける事が出来るようになります。が、それをしても >>139のように描画
処理をベタに書いたのでは 他の窓に隠れると2度と表示出来ない事にかわりはありません。
この部分をイベント駆動にしなければならないのです。
それがフォームにある OnPaintイベントです。
145:デフォルトの名無しさん
02/02/04 23:35
>>143 のコードを説明しょうと思いましたが、
Delphi6のIDE上で F1を押せば知りたい情報は殆ど出て来る筈です
bmp.PixelFormat:= pf1bit; はモノクロビットマップを作るという意味になります
その他の多色形式はヘルプを見て下さい
ShellExecuteは 作成した temp.bmpをそのパソコンに設定された方法で
開くためのAPIです
円以外のグラフィック描画命令は TCanvas でヘルプを見て下さい
線の色の設定や線の太さは Canvas.Pen で設定します
面の ~ は Canvas.Brush で行います
文字の~は Canvas.Fontで行います
146:デフォルトの名無しさん
02/02/05 00:40
なんかものすごく丁寧に説明されてる方がおられるようですが、
ひょっとして穂積○平さん?
147:ふむふむ(納得)
02/02/05 07:56
>140
サンキュー
今、FreePascalでGraphユニットを使って日本語をなんとかグラフィックと
混在表示できないか検証中です。やっぱ、outTextでは文字化けしますね。
(Win2000のコンソール画面で検証)
148:デフォルトの名無しさん
02/02/05 08:50
人のやる事にああだこうだは言いたくないけど、今更DOSアプリの研究してどうすんの?
それはもうコンソールアプリじゃないよ
そこらへんやりこむにはインラインアセンブラ使うしかなくなるしさあ
pascalの勉強ならDelphi6パーソナルで始めたらいいじゃない
149:デフォルトの名無しさん
02/02/05 11:52
>>148
禿同。
コンソールアプリでもない機種依存アプリでしかない。Windows が動かないほど
古いマシンでの話ならともかく Win の DOS-BOX で動かそうとしているようだから
意図がわからない。
本質的なプログラムをしたいなら、Graph がどうこうとか言ってる場合じゃないとおもうが。
150:ふむふむ(納得)
02/02/05 12:15
>148
>149
私も含めてTPやFPを使っている人は、これで飯を食っているわけじゃないとおもいますけどね。
ただ、知的好奇心を満たすため、また昔を懐かしみたいがために、前記のツールでコツコツとコードを書いて
遊んでいるとおもいます。
>148
私はアセンブリ言語はサパーリわかりませんので、インラインアセンブラは未体験ですけど、
使いこなせたらおもしろそうですね。
>148
我が家には486・33MHzマシンもペン150MHzマシンもあります。再利用を考え中です。
FPですが、LinuxやDOS、OS/2、旧バージョンはアミーガでも稼働できるそうなので、
ツールになれたらそれらのOSでも楽しめそうです。(私はOS/2も持っています)
個人的にはBeOS(瀕死状態ですが)、今後発表される予定のFreeBeOSにFPが移植されたら
有り難いのですが・・・・。
151:デフォルトの名無しさん
02/02/05 12:20
昔の書籍のリストを実行させたいのなら、意味がある。
152:148
02/02/05 12:44
棘の道だなと思うけど、それが好きなんだと言われたらしょうがない話しだからもう言わない
ワンダーウイッチ開発をTPで出来るように環境を整えるとかの方向なら面白いとは思うんだけど・・・
153:デフォルトの名無しさん
02/02/05 13:08
>>150
486の33Mを生かしたいなら kylixやればいいのに
486では開発出来ないだろうけど、作った実行ファイルは実行出来るだろうに
154:ネタsage
02/02/05 13:25
>>142
♪神サマありがと~お、ボクにともだちをくれ~て~~~。
♪パスカルに~あわせてくれて、パスカルに~あわせてくれて
♪パスカルに~あわせてくれて、パスカ~ルにあわせてく~れ~~て~~
155:デフォルトの名無しさん
02/02/05 13:39
2ch だしぃ... どれが誰だかわからないけど
>119 :デフォルトの名無しさん :02/02/02 00:00
>だってDelphiなんて、GUIだとか余計なことがイパーイついてて本質が見えないじゃないか。
ってのがあるから、「Graph/CRT でごそごそやるくらいなら Delphi つかったら?」
といっているの。いまどき SVGA どまりのグラフィクスでもないでしょ?
156:ふむふむ(納得)
02/02/05 13:49
>154
♪ごめんね素直じゃなくって。夢の中なら言える。
♪思考回路はショート寸前。あなたに会いたいよ。
「美少女戦士セーラー・パスカル」
ヘジに替わってデバッグよ!
>153
kylixはFreeBSDでは動かないのではないかと思います。
私はlinuxよりFreeBSD派です。(ごめんなさい)
それより486でlinuxやFreeBSDを使うということはXはあきらめろ
ということになりそうです。
157:デフォルトの名無しさん
02/02/05 14:06
で、結局、何をしたいのか?
158:デフォルトの名無しさん
02/02/05 18:46
>>157
Delphi以外でPascalの勉強だろ?
159:ふむふむ(納得)
02/02/05 21:19
ちがうってば
DelphiでもTPでもFPでも、とにかく手持ちの処理系を使った
Pascalの学習さ。
160:デフォルトの名無しさん
02/02/06 00:22
Graph ユニットや CRT ユニットの使い方を学ぶのが Pascal の学習か?と聞いているんだよ。
161:デフォルトの名無しさん
02/02/06 01:18
それは一つの手段でしょ.
なんでそんなに突っかかるのか小一時間(略
162:デフォルトの名無しさん
02/02/06 07:58
Pascalは、処理系を作るのが学習です。
163:デフォルトの名無しさん
02/02/06 08:06
>140
win2000のコンソール画面(JPモード)では文字化けします。
対策はやっぱり、旧Winと文字コードの取り扱いがちがうから無理でしょうか?
164:ヒロシ
02/02/06 18:57
⊂(□ー□⊂⌒`つ≡≡≡≡≡≡<ヒロシ(164)ゲト!!!
165:アライグマPascal
02/02/15 12:00
今、PascalプログラミングのHPを作っています。
昔のTurboPascalを思い出す懐かしいやつです。
今年の8月頃Openの予定です。
166:424
02/02/15 12:17
なんかフリーのSRPG作成ツール無い?
(SRC以外で)
ガチャポン戦士3作りたくなった
167:424
02/02/15 12:18
pascal板かここ・・・
すいません、逝ってきます。
168:デフォルトの名無しさん
02/02/15 15:07
「PASCAL でガチャポン戦士をつくるうっっ!!」
この壮大な計画を遂行するため、424は立ち上がった、、、
歴史は動き始めた、、、
169:424
02/02/15 15:21
ツールが見つかりません。
逝ってきます。
170:アライグマPascal
02/02/18 10:01
今ちょこちょこっとHPをつくっています。実はOpenしたのですが、まだ
コンテンツが激貧なのでURLは秘密です。古いPascalの簡単なサンプルを
公開・保存する場にしたいと思っています。
171:デフォルトの名無しさん
02/02/18 13:58
確か、フランスのボーランドサイトから、仏語版のTP7がダウンできるはず(FREE)
NECRT.TPU という、CRT互換unitをダウンすれば、日本語だって出力可能
おいらは統合環境は使わないから、これで問題なし
172:デフォルトの名無しさん
02/02/18 23:37
>>170
楽しみにしているぞゴルァ。
>>171
フランスのBorlandからわけのわからないメールが届くようになるという
諸刃の剣。
173:アライグマPascal
02/02/19 08:18
たいへん。Dev-PascalのURLが使えなくなりました。移動したのか?
それともなくなったのか?
174:アライグマPascal
02/02/23 01:09
復活したもようですね。
175:デフォルトの名無しさん
02/02/23 01:47
>>145
「ヘルプを見て下さい」ばかりだと、このスレ意味なしだと思いません?
コンソールアプリにこだわりながら、なおかつ、TCanvas を論じている
こと自体に無理があるのでは?
176:アライグマPascal
02/02/23 23:38
本家からFreePascalをダウンロードして、エディタはCPadあたりを
利用して以下のソースをコンパイル。
program test;
uses Graph;
var
GraphDriver:smallint;
begin
GraphDriver := Detect;
InitGraph(GraphDriver,30012,'');
SetColor(4);
circle(300,200,100);
readln();
CloseGraph;
end.
画面に赤い円が表示されたら成功。(懐かしいでしょ)
177:デフォルトの名無しさん
02/02/23 23:57
赤い玉が出てくるの?
178:デフォルトの名無しさん
02/02/23 23:58
>>5
いまさらなつっこみで悪いんだが・・・
absolute変数があったり、
「Mem[****] := ****」とか「Port[**] := **」なんてことができたり
inline手続きがあったりするので
PascalはCよりもっと危険なのでは?
Cじゃメモリの番地を直接指定して書き込みするなんてことはできない
ポインタを介して間接的なやりかたでやらねばならないぶん、
Pascalよりも安全性はほんの少し高いとも言えないか?
Delphiはともかく、DOS時代のTurbo Pascalなんて、
ハードウェアを直接いじるような目的で使われることが多かったし、
実際、procedureの中身はアセンブラソースをasmとendで括っただけなんていう
ほとんど高級アセンブラ的なPascalの使い方をしてるソフトが
数多くまかり通ってたものだが
179:デフォルトの名無しさん
02/02/24 00:20
>178
>PascalはCよりもっと危険なのでは?
なんでやねん。
危険なのは(言語を問わず)ハードを直接操作することでしょ。
高級なことやりたいんなら危険専用の命令である
inline/absolute/asm使わなければそれで十分安全性を確保できる。
それに対してCは高級・低級ともにポインタ使わざるを得ないから
高級な目的で書かれたコードですら安全とはいいかねる。
180:デフォルトの名無しさん
02/02/24 03:12
178 の理屈だと
XXX 言語はインラインアセンブラがあるから、特権命令も記述できるので
一行でハングアップするコードがかける。危険!
ということもできそうだが、さすがにこれには同意しまい?
181:アライグマPascal
02/02/24 06:25
したらばBBSでもおねがいしましたが、みなさん、昔のBASICゲームプログラムの
ソースをもっていませんか?ベーマガに載っていた、1画面プログラムみたいなものです。
音やスプライト機能はできないと思いますが、なんとかPascalで書き直してみたいと
思っています。ここにソースをアップしてみんなで考えたら、勉強のネタとして
おもしろいと思います。
182:デフォルトの名無しさん
02/02/25 10:24
1 COLOR15,1,1:SCREEN5,1,0:R=RND(-14):FOR
I=0TO212:P=PEEK(I+800):PSET(P,I),IMOD3+2
:NEXT:FORI=0TO7:VPOKE30721+I,255:VPOKE30
736+I,24:NEXT:OPEN"GRP:"AS1:SOUND6,18
2 DEFFNS=RND(1)*175+25:DEFFNR=(INT(RND(1
)*10)-5)/10:C=FNR:D=FNR:G=FNS:H=FNS:Y=99
3 LINE(E,200)-(E+20,212),1,BF:FORI=2TO4:
COLOR=(I,0,I*2-2,I*2-1):CIRCLE(G-I,H-I),
(6-I)*2,I:PAINT(G-I,H-I),I:NEXT:LINE(G,2
00)-(G+20,212),5,BF:SOUND7,183:X=120:E=G
4 S=STICK(0):A=(S>5ANDV>-8)-(S>1ANDS<5AN
DV<8):B=((S=8ORS=1ORS=2)ANDW>-8)-(S>3AND
S<7ANDW<8):V=V+A+C:W=W+B+D:X=X-V:Y=Y-W
5 VDP(24)=(Y+149)MOD255:PUTSPRITE0,(X,Y)
,10,0:PUTSPRITE2,(X,Y+B*9),ABS(B)*9,2
6 PUTSPRITE1,(X+A*14,Y+8),ABS(A)*9,1:IFP
OINT(X+8,Y+18)=5THENN=N+1:BEEP:GOTO2
7 SOUND8,-(S>0)*13-(S/2=S\2)*2:IFX>4ANDX
<238ANDY>-10ANDY<194THEN4ELSEFORI=0TO50
8 D=RND(1)*31:SOUND6,D:SOUND8,15:VDP(24)
=ABS((Y+D\3+144)MOD256):NEXT:Y=Y+(Y<0)*Y
9 PSET(80,99):PRINT#1,"GAME OVER";N+1
10 SOUND8,0:FORI=0TO255STEP.5:Y=Y+I:Y=Y+
(Y>255)*Y:VDP(24)=Y:NEXT:POKE-869,1:RUN
183:アライグマPascal
02/02/26 21:55
どうもありがとうございます、しかし・・・。
peek、poke、sound、vdpなど、移植が難しいコマンドが目白押しですね。
参考にさせていただきます。
184:デフォルトの名無しさん
02/02/26 23:08
peek pokeは全然難しくない
むしろBASICより簡単だ。メモリ配列に代入するだけで済む
Mem[$****] := hoge hoge := Mem[$****]
スプライトは無理だけど重ね合わせ処理で代用できるでしょ
185:デフォルトの名無しさん
02/02/26 23:14
>むしろBASICより簡単だ。メモリ配列に代入するだけで済む
その副作用は一切無視?
186:デフォルトの名無しさん
02/02/26 23:50
>>185
BASICのプログラムをPascalで書き直すって言ってるんだから
元と同等のことをやればよいだけだろ
BASICと同様の単純なシステム上の話じゃないのか?
WindowsだのUNIXだのの上ではもちろんそんな乱暴なことは許されないけど、
単純なシステム上ならそういう乱暴な方法でしかゲームは書けないよ
187:デフォルトの名無しさん
02/02/27 00:03
>182のBASICが動くパソコン用のPascalコンパイラなんてまずないだろ。
ハードが変わったらpeek,poke(Mem)の移植性なんて皆無。
大体MemってTP専用じゃなかったか?
188:デフォルトの名無しさん
02/02/27 00:22
そうかbasicで組むときpeek使うと移植性が低くなるのか
でもBASICなんてもともと移植性なんか関係無いし。
189:デフォルトの名無しさん
02/02/27 00:34
>>182
MSX-BASICか・・・どこから引っ張り出してきたのやら。
って優花、ベーマガのサイトに行けばダウソ出来るじゃん。
190:デフォルトの名無しさん
02/02/27 00:36
BASICが主流だった当時はそういう乱暴な方法でしかゲームは作れなかったんだから仕方ない
TPだってMS-DOSがグラフィックやサウンドの機能をサポートしてなかったから
やっぱりMem配列とかの乱暴な手段は必須だった
191:がうがう ◆gu5gIE4w
02/02/28 20:46
初めまして。このたび、HP200LXを手に入れたんですが、これと
同時にBorland C++ Suite を何故か、購入しちゃって、これにBP7が
入ってまして、pascalをやりたくなったんですが
1.HP200LXぐらいのスペックだとPASCALって厳しいですか?
2.CGAですが、付属のCGA.BGIでは、遅いと思われます?
3.Cと比べてどれくらいの実行速度なんでしょうか?
今から始めるので、何も分からなくて恥ずかしいのですがよかったら
上記のことを教えてくださいまし
勉強をかねて、上から線が降りてきてそれをよけるような簡単なものと
三角関数を使ったRPN電卓を作りたいなと思います。
このスレッドが消えませんように……
192:デフォルトの名無しさん
02/02/28 20:51
>>191
1. 2. は知らんけど
>3.Cと比べてどれくらいの実行速度なんでしょうか?
一般論としては引数を全部スタックに積むCより
3つまで(だったかな)ならCPUのレジスタを直接使うPASCALの方が
より高速になりうる・・・と聞いたけど
193:デフォルトの名無しさん
02/02/28 21:16
2 CGA ってのは、アクセラレータも何もない時代だから、CPU パワーが
そのまま描画性能につながる。はず
BGI とかも、速度向上のがんばりようが無いので、速いか遅いかという議論には
ならないな。描画空間の抽象化、という利点はあるけど。
実際には、ハードウェアのウェイトがいっぱいかかっているので、ある程度から
先は頭打ち。(HP200LX だと改造/改良されているかもしれないが)
194:アライグマPascal
02/02/28 21:25
>191
HP200LX!!!!!!!!!!!!!!!!!
のどから足が、鼻からちんちんが(失礼)飛び出すぐらい
欲しかった・・・。あいにくお金がなくて血が出るくらい
下唇をかみしめて泣きながら家に走って帰ったのを昨日の
ように思い出します。<とても40歳が書く文章ではありませんな。
LSI-C試食版が動いているのをみたことがあります。それと
TP6(PC98版、もちろん専用ライブラリは使わない)が動いているの
もみたことがありますが、実行速度は変わらなかった気がします。
195:がうがう ◆AGuK1Awo
02/02/28 22:20
>>192
質問にお答えしていただきありがとうございます!!感謝です
3つまでCPUのレジスタを直接扱うというようなPASCALプログラミングって
どういう感じなのでしょうか?
(#^_^#)話分からなくて…… 逆に言えば、この手法でくむように工夫すれば
いいってことですよね?
196:がうがう ◆AGuK1Awo
02/02/28 22:21
>>193
質問に答えていただきましてどうもです(^-^) 感謝いたします
ふむ…… すべてはCPU次第なので、遅いから遅いのだということですね?
これは、Cに限らないと言うことでしょうか?
pascalそのものが早いのか、遅いのか知らないのでこういった質問になったんです
あるファイルを名前を変えてコピーするという程度なら早いとは思うんですが。
186マシンではきついのかなあ?
HP200LXだとライトスリープというのがありまして、コンパイルするのが遅い
MSCだと途中でシャットオフになってしまうこともあるそうです。
もちろんライトスリープですから電源を入れれば何事もなく続きを始めるんですが。
そのライトスリープをさせないアプリもちゃんと存在します。
描画空間の抽象化とは何でしょうか? お教えくださると幸いです。
無学ですいません
197:がうがう ◆AGuK1Awo
02/02/28 22:22
>>194
あははは(^-^) 今じゃヤフオクで3万程度で手に入りますよ。倍速8M程度を。
自分も少しずつ、ボーナスの度に買ってます。
最終的には15個欲しい……
自分の場合はRPN電卓の部分も大きいというのがあるんですけどね(^-^)
質問答えてくださいましてどうもです。LSI-Cとそんなに実行速度は変わらない
ですか! うれしいお話ですね。がんばろうと思えます!
198:デフォルトの名無しさん
02/03/01 00:30
>>195
PASCALコンパイラが勝手にやってくれるから気にする必要はないよ
引数が3つ(?)までの関数や手続きではそのようにコンパイルされるということ
199:がうがう ◆AGuK1Awo
02/03/02 12:21
>>198
そうですか(笑) だとしたらPASCALコンパイラ(Borlandのやつですね)
は、優れているということですね。
PASCALで作られた有名な作品ってご存じですか?
自分は、「WTERM」ぐらいでしょうか?
皆さんも教えてくださると幸いです
200:アライグマPascal
02/03/02 12:36
ゲームだったら,三大古典RPGの一つ「ウィザードリィ」ですね。
201:デフォルトの名無しさん
02/03/02 13:23
>>200
そういうこと言うと、厨房どもがわらわら集まってくるので禁止
202:がうがう ◆AGuK1Awo
02/03/02 17:42
>>200
あ、そうか…… APPLEでPASCALでしたね
しかも独自IP(最初に起動するときに読む奴 IPじゃなかったでしょうか
それともSIP?)で動くんですよね
IBM/PC版は、そのエミュで動くと聞きます。
エミュの上にIPがあってその上でAPPLEのPASCALで書かれたWIZ
が動くとか。
203:がうがう ◆AGuK1Awo
02/03/02 17:42
>>201
?? そうなんですか?
204:デフォルトの名無しさん
02/03/02 18:02
パソコン版D&D(RPG)はTurboPascalだったらしい。
ファミコンに移植した人から聞いた。
205:アライグマPascal
02/03/02 23:28
MS-DOSの最初のバージョンあたりはPascalだったはず。
すぐに全面的にCで書き直されたけど・・。
206:デフォルトの名無しさん
02/03/02 23:31
Pascal最初にやるとCの構文が汚く見えるね。
207:がうがう ◆AGuK1Awo
02/03/03 01:05
昔BASICマガジンというのがあって、たくさんのソースが載っていて
大変勉強にもなったそうですね。
あるいは、MSXFANとかの投稿雑誌があって、MSXBASICでも
勉強になったとか……
ネットでPASCALのソースを探しているんですがなかなか(-.-;)
ゲームに参考になる画像描写(CGA)で参考になるのがないですかね?
とりあえず 植木屋 さんのウェブサイトにて CGAの参考を
URLリンク(plaza10.mbn.or.jp)
人のソースが一番勉強になるんだけれどもなあ 初心者には(^O^;;
208:がうがう ◆AGuK1Awo
02/03/03 01:06
>>204
お!あの D&Dもですか やったことはないんですが
名前だけは伺っています
そのソース見てみたいなあ
209:がうがう ◆AGuK1Awo
02/03/03 01:08
>>205
え! うっそぉでしょ?
本当にぃ! それしか言葉が出てこないぐらいびっくりしました
う
すげぇなあ。 1.0位の頃でしょうかね?
210:がうがう ◆AGuK1Awo
02/03/03 01:12
先ほどの植木屋さんところのCソースをプリントアウトして
眺めているんですが、何をどうしてどうするのかが(^O^;;
あるテクニックが何のために必要か、それをどう有効に使うか
以前のCで何が書かれているのかさえも読めない(^O^;;
Cの入門書を買ってきて一行ずつ解析していけば読めるかなあ?
どこかにCGAでPASCALゲームソース公開されてませんか?
探しているんですが見つからない(^O^;;
211:デフォルトの名無しさん
02/03/03 06:41
>210
CGAは対応しているかわかりませんがGrafx2というのがあります。
URLリンク(www-msi.ensil.unilim.fr)
それと URLリンク(www.pascal-central.com) はPascal使いであれば知らないと
似非パスカラーとして認定されてしまいます。:-)
212:デフォルトの名無しさん
02/03/03 06:49
>211
すまぬ。自爆。画面モードと間違えた。(^^;
213:デフォルトの名無しさん
02/03/03 21:04
>>199
まぐローダ
214:デフォルトの名無しさん
02/03/03 23:29
>>199
Ngraph
215:デフォルトの名無しさん
02/03/04 21:50
>211
あと、SWAGもな >Pascalerの心得
216:デフォルトの名無しさん
02/03/05 11:17
>215
アドレスはここだ>SWAG
URLリンク(www.gdsoft.com)
217:がうがう ◆AGuK1Awo
02/03/05 15:14
>>211
知りませんでした(^O^;; 似非パスカラー決定?(-.-;)
教えてくださって有り難うございます
翻訳にかけると妙な日本語で(笑)
218:がうがう ◆AGuK1Awo
02/03/05 15:16
おっと 変なところで書きこんじまった(-.-;)
少しずつ読んでいこうと思います
219:がうがう ◆AGuK1Awo
02/03/05 17:58
SWAGのサイトに行ってみようとしたんですが
めちゃくちゃ重くないですか? ここ
220:デフォルトの名無しさん
02/03/05 18:14
>>199
似非キース まぐぺ、まるぺ
221:超初心者
02/03/08 01:30
正に今日pascal始めたばかりなのですが、いきなり詰まってます。
procedure A()
…
A();B();C();
…
procedure B()
…
A();B();C();
…
procedure C()
…
A();B();C();
…
てな再帰を作りたかったんですけど、free pascalでコンパイルしたら
Error: Identifier not found B~
などと怒られてしまいました。
pascalではCの様なプロトタイプ宣言は出来ないんですか?
それと、var a,b integerと宣言して
a:=b/2としたら
Hint: use DIV instead to get an integer result
Error: Incompatible types: got "S80REAL" expected "LONGINT"
と怒られてしまいました。
型変換はどうするのでしょう?
222:デフォルトの名無しさん
02/03/08 01:32
forward
223:デフォルトの名無しさん
02/03/08 05:01
>221
FreePascalにも型変換の概念はあるけど、それ以前の問題として
Pascalでは整数型除算では「/」ではなく「div」を使わないと
文句を言われます。
224:デフォルトの名無しさん
02/03/08 12:44
>>221
Hint: use DIV instead to get an integer result
↑これをちゃんと読みましょう
225:デフォルトの名無しさん
02/03/09 02:40
>>221
実数は整数型変数に代入できない。
Round関数またはTrunc関数を使って整数に変換する。
だけど今のケースは>>223の言う通りdivを使うべきだ。
226:デフォルトの名無しさん
02/03/09 18:54
221は222が
>pascalではCの様なプロトタイプ宣言は出来ないんですか?
にちゃんと答えてくれていることに気が付いているのだろうか?
227:アライグマPascal
02/03/09 21:24
>226
さりげない一言「forward」に私は愛を感じました。
たぶん受け止めていただけたと思います。
228:デフォルトの名無しさん
02/03/09 21:55
気づいてなさそうだからヤボな説明をしておこう
Pascalには「プロトタイプ宣言」は無い
しかし、「プロトタイプ宣言」とは言わないがそれと同じものはある
それがforward宣言だ
229:アライグマPascal
02/03/10 17:50
パスカルの文献が少ないので「サウンド・プレス」さんのところで
翻訳中のFreePascalの関連部分を読むことをおすすめします。URLはずっと
上のほうに書き込んでおります。(以下はその文章の抜粋です)
8.5 フォーワード宣言関数
forward手続きを使うことで実装のない関数を定義できます。関数の実際の
実装はモジュール内であとに続けなければなりません。関数はforward宣言後、
すでに実装されているかのように使われます。次はフォーワード宣言の例です。
program testforward;
procedure First (n:longint); forward;
profedure Second;
begin
WriteLn('In second.Calling first...');
First(1);
end;
procedure First(n:longint);
begin
WriteLn('Frist received:',n);
end;
begin
Second;
end.
230:アライグマPascal
02/03/10 17:53
ぐは、
profedure×
procedure○
231:アライグマPascal
02/03/16 18:03
どなたか教えてください。
あるPascalの書籍に
(1) round(2.5*(5.5-8.9))
(2) (16.4 -10.8)/2.0 >= 1.3+6E-1
という演算の問題があったのですが、書籍の解答は
(1) -8
(2) true でした。
FreePascalでは書籍の解答道理の値を返しますが、スレの上の方にあった
HelloPascalという処理系では -9とFalse を返します。
どちらの処理系の演算が正しいのでしょうか?またどんなルールで演算を
しているのでしょうか?
232:デフォルトの名無しさん
02/03/16 18:28
>>231
そんな、処理系依存の重箱の隅をつつく問題を出す書籍など、捨てろ。
233:アライグマPascal
02/03/16 21:13
ISO-PASCALを解説した本ですが、今まで演習問題は気にもとめなかったのです。
(1)はround(-8.5)と書き直すことができますよね。roundは小数点下を四捨五入
するから答えは-9になるのが当たり前と思っているのですが、違うのでしょうか。
こんな簡単な演算でも処理系依存で値が変わるのは大問題だと思うのですが、
処理系依存とはどういうことでしょうか?
234:デフォルトの名無しさん
02/03/16 21:16
-9.5 は
-10 + 0.5
-9 + (-0.5)
のどちらを正解にしたい? 銀行家丸め以前の問題。
235:アライグマPascal
02/03/16 21:26
>234
上はそれぞれを丸めると-10+1=-9
下はそれぞれを丸めると-9+(-1)=-10になるということでしょうか?
でもround(2.5*(5.5-8.9))の場合、括弧内から計算していくと
round(2.5*(-3.4))になり、別々に丸めても
round(3*(-3))=-9にはなりませんか?
どんなルールが働いているのでしょうか????????
236:デフォルトの名無しさん
02/03/16 21:26
大体、C や PASCAL が定義されたころって、ライブラリの重要性が
今ほど高くなかったのだよ。というかライブラリは処理系の外に
存在するものだった。
ISO 7185 / JIS X3008 のどこにも Round 関数の仕様の話はない。
よって、処理系依存問題。
237:デフォルトの名無しさん
02/03/16 21:28
>>235
そんな難しい話ではなく、
-9.5 を -10 にする根拠は? -9 にする根拠は?って話。
どちらも誤差は 0.5
238:デフォルトの名無しさん
02/03/16 21:31
あ゛ お題は -8.5 か。
ウツダシノウ
239:アライグマPascal
02/03/16 21:39
う~ん
round(X)
実数式Xの小数点以下を四捨五入した整数値を返す。
とあるなら、その値は唯一一つしかあり得ないはずですよね。
別の解釈が入り込む余地は無いと思うのですが、
こんな単純明快な話なのにどうして処理系依存なんてことが
あるのだろう。
240:アライグマPascal
02/03/16 21:44
(2)の問題は
1.3+6E-1 の部分の(-1)の解釈が、単に整数値の-1と解釈するのか
前のEとの絡みで、10のマイナス1乗と解釈するのかの違いだと思うの
ですが、どうでしょうか?
241:デフォルトの名無しさん
02/03/16 21:46
1. そもそも Round 関数は Pascal 言語の仕様の範囲外。個々の処理系のライブラリが
規定するもの。
2. 正の数の丸めは Banker's Round / 銀行家の丸め問題以外には大きな問題はない。
URLリンク(homepage1.nifty.com)
242:デフォルトの名無しさん
02/03/16 21:55
3. 負の数の丸めを明確に規定する物はない。
-8.5 に話を戻すと、-1 * 8.5 に置き換えてから 8.5 を「四捨五入」。最近偶数値である8に丸められた後
-1 * 8 と評価されるとすると、答えは「-8」
-8.5 を字面で「四捨五入」すると、「五入」扱いになる。
これを0方向に丸めると、答えは「-8」
これを無限大方向に丸めると、答えは「-9」
さて。.5 は境目の数なので、少し前後も出してみよう。
-8.0 -> -8.0 // これは異論あるまい。
-8.4 -> -8 の方が近いんだから -8 だろう。
-8.5 -> さぁ。どうする?
-8.6 -> -9 だよな。
-9.0 -> -9.0 // これも簡単。
243:アライグマPascal
02/03/16 21:59
>241
お恥ずかしい話ですが初めてこの話を知りました。
ということはHelloPascalは「JIS丸め」を採用していない、
演算によっては誤差が大きくなりやすいということですね。
関連のURLを含めて作者に連絡してみようと思います。
244:デフォルトの名無しさん
02/03/16 22:11
実数型か少し多めの桁を使用して表示の際に四捨五入すれば
実用上は問題ないんだけどね
厳密にしようとすると気になるかも
245:デフォルトの名無しさん
02/03/16 23:13
なお、div / mod 「演算子」の負数に対する振る舞いは規格書に明記されています。
まぁ普通はそこまで気にしない/気にしてもしょうがないので「処理系依存」の振る舞い
とひとくくりにしてしまいますが。
246:デフォルトの名無しさん
02/03/17 00:04
その前の問題として 数値の持ち方の問題があるんじゃない?
2進で表現すると
5.5 101.1と 誤差無くもてるけど、8.9=1000.1110011001100110011 と誤差無く持てない
247:デフォルトの名無しさん
02/03/17 02:33
>>246
銀行家丸めはコンピューターが無い頃からの技法だよ。
248:デフォルトの名無しさん
02/03/22 21:52
最近までBASICで遊んでましたが、今日アマゾンからUsing turbo pascal 6.0-7.0 third edition
が届いたのでまたPascalで遊んでみたいと思います。
249:デフォルトの名無しさん
02/03/22 22:03
何でわざわざ古い物を選ぶんだろう。
昔の物だからといって、機能が少ないからといって、優しいとは限らないんだよ?
250:デフォルトの名無しさん
02/03/22 22:24
>>249
じゃーキミも三平方の定理使うのやめなよ。
251:デフォルトの名無しさん
02/03/22 22:26
まあまあ。他人が何しようといいじゃないの。
遊ぶんだったら、趣向は人それぞれ。
おれも宿題スレみて生DOSアプリを作ってみたくなったよ。
252:アライグマPascal
02/03/22 22:59
例の「答えが書籍と違う」という話ですが、作者にメールで
報告したところバグらしいとのことでバグフィックスをする
とのことでした。
253:デフォルトの名無しさん
02/03/28 22:22
なぜend.の直前の行には;が不要なのか。
254:デフォルトの名無しさん
02/03/28 22:27
>>253
;は文と文を分離するためのものだからです。
255:デフォルトの名無しさん
02/03/28 22:59
>>254
よく理解できました。ありがとうございました。
256:丁稚Pascal
02/03/29 05:58
現在情報学科の一年(四月から二年)で、まだ言語はPascalしか知りません。
今はまずPascalをある程度できるようになりたいので、
このスレでいろいろ課題を出してもらえるとうれしいのですが・・・。
257:デフォルトの名無しさん
02/03/29 07:22
アメリカの大学だと Java から入るんだけどね...
258:丁稚Pascal
02/03/29 07:48
そうなんですか。
何の言語から入るかは意見のあるところとは思いますが
色々と手を出すよりもまずは一つのものを―
と考えているので、よろしくお願いします。
259:アライグマPascal
02/03/29 07:59
手持ちの書籍からの抜粋でよろしければ・・・・・
「正の整数aとb(a>=b)の最大公約数(GCM)を求めるプログラムを書け。
aまたはbがゼロ以下の場合は適当にエラーメッセージを出力せよ。」
解法のヒント(ユークリッドの互除法をつかう)
まず大(a)を小(b)で割った余りrを求める。
次にaをbに、bを余りrに置き換える。
これをr=0となるまで繰り返す。最後の被除数がGCMとなる。
260:アライグマPascal
02/03/29 08:03
「明解PASCAL・国際規格(ISO)準拠」 伊東正安/金谷範一=共著
サイエンス社 定価(本体2111円+税)
上の本からの出題です。この本は個人的におすすめです。
261:丁稚Pascal
02/03/29 08:04
さっそくチャレンジしてみます。
262:丁稚Pascal
02/03/29 09:01
program GCM(input,output);
var a,b,c,r:integer;
begin
writeln('自然数を二つ入力しる!');
readln(a,b);
while (a<0) or (b<0) do begin
writeln('自然数っつただろうが(゚Д゚)ゴルァ!!');
readln(a,b);
end;
if a<b then begin
c:=b;
b:=a;
a:=c;
end;
repeat
r:=a mod b;
a:=b;
b:=r;
until r=0;
writeln('最小公約数=',a);
end.
263:丁稚Pascal
02/03/29 09:05
こんな感じになりました。
これくらいで一時間か・・・ちと情けない。
直したほうが良い箇所とかありますか?
264:デフォルトの名無しさん
02/03/29 09:27
>>263 折角だから GCMを求める関数を作って
メインではそれを呼ぶように変更してはどう?
それから最小公約数は1だよ
最大公約数・最小公倍数でWeb検索してみたら
265:丁稚Pascal
02/03/29 09:37
>>264
>それから最小公約数は1だよ
そうでした、恥ずかしい・・・。
関数つかってやってみますね。
266:丁稚Pascal
02/03/29 09:57
program GCM(input,output);
var a,b,c:integer;
function a_gcm(x,y:integer):integer;
var r:integer;
begin
repeat
r:=x mod y;
x:=y;
y:=r;
until r=0;
a_gcm:=x;
end;
begin
writeln('自然数を二つ入力しる!');
readln(a,b);
while (a<0) or (b<0) do begin
writeln('自然数っつただろうが(゚Д゚)ゴルァ!!');
readln(a,b);
end;
if a<b then begin
c:=b;
b:=a;
a:=c;
end;
writeln('最大公約数=',a_gcm(a,b));
end.
267:丁稚Pascal
02/03/29 10:02
訂正してみました。いちいちソース貼ってると長くなるなぁ。
268:デフォルトの名無しさん
02/03/29 10:25
>>266 大小の比較交換も a_gcmに入れないと使う時に不便だよ
269:丁稚Pascal
02/03/29 10:35
program GCM(input,output);
var a,b:integer;
function a_gcm(x,y:integer):integer; //一組の自然数の最大公約数を求める
var r,z:integer;
begin
if a<b then begin
z:=y;
y:=x;
x:=z;
end;
repeat
r:=x mod y;
x:=y;
y:=r;
until r=0;
a_gcm:=x;
end;
begin
writeln('自然数を二つ入力しる!');
readln(a,b);
while (a<0) or (b<0) do begin
writeln('自然数っつただろうが(゚Д゚)ゴルァ!!やりなおし!!');
readln(a,b);
end;
writeln('最大公約数=',a_gcm(a,b));
end.
270:丁稚Pascal
02/03/29 10:38
>>268
なるほど。再度訂正してみました。
大学だと課題として提出して終わりなんで、その場限りのコードになりがち。
気をつけねば。
271:デフォルトの名無しさん
02/03/29 10:58
× if a<b then begin
z:=y;
y:=x;
x:=z;
end;
272:デフォルトの名無しさん
02/03/29 11:02
テストコードを書く習慣をつけないといけないよ
最初に予め計算した結果と何個か比較させるようにするといい
if a_gcm(555,9875)!=5 then writeln('NG');
273:デフォルトの名無しさん
02/03/29 11:16
除算を使わない GCD
function gcd_1(m,n:Integer):Integer;
begin
gcd_1:=0;
if m=0 then exit;
if n=0 then exit;
while m<>n do begin
while m>n do m:=m-n ;
while n>m do n:=n-m ;
end;
gcd_1:=m;
end;
274:アライグマPascal
02/03/29 11:38
書籍に載っていた模範解答です。
program gcm(input,output);
var
a,b,r : integer;
begin
writeln('Enter a:'); readln(a);
writeln('Enter b:'); readln(b);
if (a>0) and (b>0)
then begin
repeat
r:=a mod b ; a:=b ; b:=r ;
until r=0;
writeln('gcm = ',a)
end
else writeln('ERROR: a and b must be positive.')
end.
275:丁稚Pascal
02/03/29 13:20
>>271
やってしまった・・・。
>>272
なるほど、次からはテストコード入れるようにします。
>>273
参考になります。
>>274
自分の
r:=x mod y;
x:=y;
y:=r;
よりも、
r:=a mod b ; a:=b ; b:=r ;
のように一行に書いてしまった方がいいんですかね?
これは好み?
276:アライグマPascal
02/03/29 16:46
まったくの好みです。
私は全て一行一文主義です。
277:デフォルトの名無しさん
02/03/29 20:49
Pascal の歴史はここが詳しい。
URLリンク(web.mit.edu)
278:デフォルトの名無しさん
02/03/29 21:11
>>277 サンクス
平易な英文だから
「英語はちょっと・・・」という人もトライしてみるといいね
この辺の経緯を知らなかったDelphiユーザーなら
ますます好きになること請け合いだよ
279:丁稚Pascal
02/03/31 03:31
>>276
ありがとうございます。
今まで一行一文だったし、読み易い(自分としては)ので
これからも一行一文でいきます
280:デフォルトの名無しさん
02/03/31 22:22
Pascal って String 型あるんだ。
Cよりラクチンでいいな。
281:デフォルトの名無しさん
02/03/31 23:11
ord ってなんの略なんだろう?
ord('R') で82 になるやつ。
282:デフォルトの名無しさん
02/04/01 00:30
order, ordinalなどの「序数」の事でしょう。
283:デフォルトの名無しさん
02/04/01 00:38
確かにCやBASICしか知らなかった人がPASCAL(Delphi)
のテキスト読んだときに集合とか順序型、部分範囲型
とか書かれていると「ハァ?」なんだろうなあって思う。(w
284:デフォルトの名無しさん
02/04/01 00:46
>>280
文字列に関してはCが馬鹿すぎるよね
よくあんな言語で業務用アプリを作るもんだと思ってたもの
C++は文字列用のクラスがあるからまだましだけど・・・
285:デフォルトの名無しさん
02/04/01 09:44
>>283
(゚Д゚)ハァ?
って思ったよ、最初は。でも便利だね。
286:デフォルトの名無しさん
02/04/01 11:08
集合型、列挙型、部分範囲型、この3つの関係を
理解できたら本当に便利だよね。
287:丁稚Pascal
02/04/01 20:53
Cでは文字列を扱いた場合どうしてるんですか?
配列で定義してるの?レベルが低くてすいません(^-^;
やっぱ他の言語も少しは勉強していかないとだめかな・・・
288:デフォルトの名無しさん
02/04/01 21:47
Cの場合、ポインタと配列の区別がpascalに比べるとはるかに曖昧です
char *p が文字列ポインタ(var p:PChar;)相当 (type PChar=Char^;)なんだけど
p="ABCD"; と文字列を代入してるかのように表現出来ます。
というかします
そして文字列"ABCD"は5文字の文字配列と等価です。
文字の最後は必ず #0 です。 これは Cでは'\x00' と書きますが
こういう表現方法をAsciiZとか呼びます
DelphiではこのAsciiZ方式と親和性が高くなるよういろいろな工夫がされています
289:デフォルトの名無しさん
02/04/02 22:51
for letter := 'A' to 'Z' do
290:デフォルトの名無しさん
02/04/02 22:52
>>289 は無視してくだされい。
for letter := 'A' to 'Z' do
write (letter)
こういう書き方がOKと聞いてはじめはびっくりした。
しかし、よく考えてみると、文字コードが入っているだけなので、納得した。
291:デフォルトの名無しさん
02/04/02 23:20
>>288
何か変。
>p="ABCD"; と文字列を代入してるかのように表現出来ます。
> というかします
これは初期化のときだけ。
初期化のときに「char* p = "abcd"」とすると、文字列の長さの分(此処では5)だけの領域を「確保」し、この場合なら"abcd\0"で初期化をします。
代入のときには出来ません。
代入をしたいときは、標準ライブラリその他の関数を使うとか、一文字ずつ操作するとか(配列と同じです)。
(C++ならstd::strungという文字列クラスが標準で存在します)
> 文字の最後は必ず #0 です。 これは Cでは'\x00' と書きます
'\0'とかくのが普通。
'\x00'はコードが0になる文字で、'\0'は文字列の終わりにくる特殊な文字。
「結果的には」同じだけど(ASCIIの場合?)。
292:デフォルトの名無しさん
02/04/03 00:23
>>291補足。
「初期化」というのは、宣言のときの代入です(違うけど)。
Cでは変数を「型名 変数;」として宣言しますが、
「型名 変数 = 初期値;」とすることで、変数の定義と同時にその値を設定することも出来ます。
'\x__'は、xのあとに16進数の値を入れて、コードを直接指定します。
293:まあ一応
02/04/03 06:23
>>291-292
char* p = "abcd"
はポインタだから配列とは違うぞ。と。
確保されるのはcharへのポインタとabcd\0だぞ。と。
char p[] = "abcd"
とは違うぞ。と。
(下はp="efgh"とかはできないが上はできる)
294:デフォルトの名無しさん
02/04/03 06:50
>>287
ところで課題出してほしいの?
295:デフォルトの名無しさん
02/04/03 12:24
じゃあ、データ構造の問題。
文字列を格納する片方向リスト構造を構築し、
任意の個数のデータを入力させ、最後に、その一覧を
通常ソート(頭文字がA→Zとなるように)及び
逆ソート(終端文字がA→Zとなるように)で出力せよ。
296:291
02/04/03 12:36
>>293
謝謝!
297:丁稚Pascal
02/04/03 18:59
>>294
はい、おねがいします。
>>295
今からやってみます。かなり苦労しそうですが・・・
298:デフォルトの名無しさん
02/04/04 20:58
もうすこし単純な問題なら… そうさねえ
どの程度の問題を要求しているのか分からないけど、
「指定したファイルを、バイナリ形式で(
16バイト分を1行として、16進数で)表示せよ」 とか。
バイナリエディタみたいに。
00000 00 32 FF 55 23 56 F3 4F 93 F2 00 34 1A B3 34 CD
00001 ...
00002 ...
...
と言う風に表示。
でもって、それをテキストファイルに出力。
299:デフォルトの名無しさん
02/04/06 00:37
なんか、本読めば読むほど、Cとそっくりということがわかってきて、だんだん新鮮味がなくなってきた。
そろそろJavaに移るか。
300:デフォルトの名無しさん
02/04/06 00:56
>>299
CとPascalはいとこ同士みたいなもんだからね~
思想的には正反対の部分もあるけど
おっと、300ゲトー、ズサ
301:デフォルトの名無しさん
02/04/06 01:00
ただ、ソースがキレイなのは気にいった。
Cだとぐじゃぐじゃして何がなんだか、書いた本人しかわからんことも多い。
Perlよりはましだが。
Pascalはどうかいてもキレイになるようなしくみがあるんだろうな。
なんでCに負けたんだ?
302:デフォルトの名無しさん
02/04/06 01:11
>>301
URLリンク(web.mit.edu)
↑これを参照のこと
少なくともWindowsアプリを作る道具として見れば、C(≠C++)には勝ってるね
303:デフォルトの名無しさん
02/04/07 17:06
>>299
みためなら、Javaも大して変わらんと思うがナー
本当に違った世界を味わいたいなら、LISPなどお勧めしておきたい。
つーか、一度はやっておくといいよ。
304:デフォルトの名無しさん
02/04/08 22:22
Schemeは一応やったんですけど、exeが作れないので飽きました。
305:Delフサギコ ◆zE1iiRdQ
02/04/08 22:38
∧,,∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ミ,,゚Д゚彡 < 何がやれるのか自体がわからなかったので
U つ \飽きました。
@ミ ミ  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∪''∪
言語とは難しいですね。
306:デフォルトの名無しさん
02/04/08 22:50
でもPascalの本、またちまちま読んでる。
アマゾンでJavaの本、注文したけど、届くまで1ヶ月かかるから。
それまでの間、Pascal の勉強するつもり。
もし時間がそれでも余ったら、VBとDelphiの勉強する。
本は買ってあるから。
307:デフォルトの名無しさん
02/04/18 22:57
おい、お前ら。
pascalの中で、UNIXコマンド使う方法教えてください。
308:307
02/04/18 23:45
UNIX版で聞いてきます。
309:デフォルトの名無しさん
02/04/19 12:11
スレリンク(tech板)
310:デフォルトの名無しさん
02/04/21 21:33
test
311:デフォルトの名無しさん
02/05/10 04:00
保守sage
312:デフォルトの名無しさん
02/05/22 12:13
age
313:デフォルトの名無しさん
02/05/30 14:02
age
314:デフォルトの名無しさん
02/06/01 05:47
age
315:デフォルトの名無しさん
02/06/01 05:59
寒いスレだな
316:デフォルトの名無しさん
02/06/01 06:49
例題が豊富な解説書のお勧めはないでしょうか?
delphiは扱ったことがないので純粋なpascalの本を探しています。
317:デフォルトの名無しさん
02/06/02 06:19
Pascalに限らないけど純粋なPascalの本となると昔の物が多いので
とりあえず図書館で探してみてはいかがでしょう。
答えになってないですけど。
318:困ったさん
02/06/18 21:39
Pascalで多項式を2次式で割るプログラムを書けといわれたんですけど、
どうもうまくかけません。誰か教えてください。
319:困ったさん
02/06/18 23:38
age
320:デフォルトの名無しさん
02/06/18 23:47
>>318
数学の問題
321:デフォルトの名無しさん
02/06/19 01:03
const
Jisu = 5; // 次数(これは5次の場合)
var
tako: array[0..Jisu]of Real; // 多項式
niji: array[0..2]of Real; // 二次式
ans: array[0..Jisu-2]of Real; // 答え
for i := Jisu-2 downto 0 do begin
ans[i] := tako[i+2] / niji[2];
for j := 2 downto 0 do
tako[i+j] := tako[i+j] - ans[i]*niji[j];
end;
これで、ans に商となる多項式、 tako に剰余となる1次式が入るかな。
ゼロ除算とかのエラーは考えてないので、その辺よろしく。
322:困ったさん
02/06/19 04:09
とても参考になりました。ありがとうございます。
323:デフォルトの名無しさん
02/06/23 11:29
Double を Integer に入れたいんですけど、どうすればいいですか?
324:デフォルトの名無しさん
02/06/23 11:32
>>323
kyasuto
325:デフォルトの名無しさん
02/06/23 11:34
どのようにキャストすればいいんですか?
326:デフォルトの名無しさん
02/06/23 11:37
windowsで使えるpascal→C言語コンバータはないですか?
327:デフォルトの名無しさん
02/06/23 11:48
>>323
Round関数
328:デフォルトの名無しさん
02/06/24 18:33
何だここの"PASCAL"って?
URLリンク(biz.ascii24.com)
329:323
02/06/24 22:27
>>327
ありがとうございました!
330:デフォルトの名無しさん
02/06/28 18:02
Code worrierでpascalコンパイルする必要がでてきました。
使ってるひと居ませんか?
Code worrierは既にpascalの対応が終了していて、
本家(あめりか?)で最終pluginがでてるみたいなんですけど、
これって日本語版の最新Code worrierで動くのでしょうか?
OSはMac9です。
よろしくおねがいします。
331:デフォルトの名無しさん
02/06/28 20:25
>330
使えたよ。
ただしVer.7までだけどね。
それとCarbonは駄目っぽ。
332:デフォルトの名無しさん
02/06/28 20:28
図書館でPASCALの本を探したら開架は全滅だった。
仕方ないから書庫から持ってきてもらった。
もう需要が無いんだね。
まだ出てから10年も経っていない本だって……
333:デフォルトの名無しさん
02/06/28 20:52
Code worrierといえば、PocketStudioとか言う、DelphiライクなPalmの
開発環境があるみたいだね。
開発環境じゃなくて、Palmで動くPascalの処理系があるとうれしいかも。
Pascalの勉強用に。
でも、グラフィティでソースコード入力するのもちょっと面倒か。(w
334:330
02/06/30 04:12
>331
日本語版は最新が7みたいだからこれで逝けるわけですね。
Carbonはとりあえず必要ないです。
ありがとー
335:デフォルトの名無しさん
02/07/01 11:46
>334
ビルドする時にBuild Allを選択すればCARBONも使えるようになります。(人に指摘されるまで気付かなかった)
336:330
02/07/02 02:47
フォローさんくすです。
で、CW7日本語版アカデミックをゲトして
Pascal Pluginつっこんだら、とりあえず処理はできてる模様。
だけど、目的のコードはbuild出来ない罠。
実はNIH-ImageをソースからMakeしてるんだけど、
type mismach
SFPutFile(~)
とか、いろいろとおこられるよヽ(`Д´)ノウワァァン!!
337:デフォルトの名無しさん
02/07/02 03:10
>>330
1.62ならCWP2でMakeしたのを持ってる。たしかあれからファイルマネージャあたりは
激変したから、大変じゃない?
でも褌EDITがウプデートされるくらいだからな...
338:330
02/07/02 03:31
でも真の目的はNIHimage(改)のbuildなのですよ。
とりあえず手始めにそのままのをやってみようかと。
そのまま使うだけなら配布されてますしね。
(´-`).。oO(古いCWをとりよせたほうが早いのかなぁ)
339:337
02/07/02 03:41
>>338
古いヘッダならADCのサイトにあるような。あ、けど合うのをさがすのがたいへんだね。
340:330
02/07/05 03:28
入ってる(新しい)ヘッダをみながら、エラーが出る個所を無理矢理それっぽく直したら、
なんとかNIH-image(1.62)がmakeできたよ。一見ちゃんと動いてるみたいだけど、どうだろう。
PascalもCWもはじめてなんだけど、それ以前にMacの初心者なのが辛いトコロ。
AppleEventを効かすと刺さるんだけど、これって切っちゃっていいものなんだろうか…
ところで、>>1にGUI不可って書いてあることに今気づいたよ。
スレ違いスマソ。
親切な方、誘導きぼんぬ。
341:デフォルトの名無しさん
02/07/13 08:17
age。
DAT落ちは阻止じゃ。
342:デフォルトの名無しさん
02/07/16 22:46
>>341
んだ
343:デフォルトの名無しさん
02/07/17 06:14
このスレでFreePascalの話題出てますか?
え? ここ何処の板? 過去ログ読め?
ショボーン
344:デフォルトの名無しさん
02/07/20 00:29
生きろ!
345:デフォルトの名無しさん
02/07/30 20:46
PASCAL CENTRALにはFREEのPASCALコンパイラも置いてあるぞ!
346:デフォルトの名無しさん
02/08/17 20:54
AGE
347:デフォルトの名無しさん
02/08/18 03:00
何気なくパスカルのソースコードを検索してたらこんなのあったぞ。
URLリンク(home.planet.nl)
TurboPascal5.5・6.0・7.0でスーパーマリオを作ってる。
まだソース見てないけど、ちょっと面白そうだ。
348:デフォルトの名無しさん
02/08/18 05:01
Pascalが
Philips’ Automatical Sequence Calcurator
の略だったなんて初めて知ったよ
349:デフォルトの名無しさん
02/08/18 05:11
>>347
ジャンプしながらファイアボールを撃つと、
フルスクリーンに関らずシステムメニューが出てしまう…
このキー配列どうにかならないものか…
350:デフォルトの名無しさん
02/08/18 05:16
>>349
ソースファイルあるんだから、変更できそうだけどな。
生憎TPがないや。本家に行ってDLしてこようかな。
351:デフォルトの名無しさん
02/08/24 16:14
ObjectPascalの日本語で読める本って何か良いのある?
このスレでリンクしてある「Object Pascal/Delphi(Kylix) プログラミング入門」
はDelphiでの使用に限定しているようなので汎用的なものを……
352:デフォルトの名無しさん
02/08/25 19:22
>>351
Object Pasca lは Turbo Pascal/Delphi でしか使っていないのだから、汎用的と言っても意味ないと思う。
標準 Pascal ならあるけど、文字列型も分割コンパイルもない「教育言語」だから、今更覚える必要も無いとも思われ。
353:デフォルトの名無しさん
02/09/04 18:40
CodeWarriorでもObjectPascalは使えます。
ボーランドがLinux用に出してるもう一つの製品でも使えるよ。
354:デフォルトの名無しさん
02/09/04 19:21
それだけじゃない
URLリンク(www.freepascal.org)
compatible with TP 7 as well as most versions of Delphi
355:352
02/09/06 20:51
>>353-354
あ、Kylix はそうでしたね。失念しておりました。
CodeWarrior と Freepascal は知りませんでした。私は最近の動向をよく分かっていない
ようです(というか、Delphi で事足りているから、追いかける気がしないだけ)。
あと、標準化の中には「ISO Pascal」ってのもあったと言うことを思い出しました。Borland
はこの規格の裁定に入っていないから、気にもしていないけど。
それはそうと、「Object Pascal というのは紛らわしいから?Delphi Language に変える」
という話もあるようだけど、Kylix もあるとしたら、なおさら紛らわしいような気もするんだけ
ど...
356:デフォルトの名無しさん
02/09/07 19:05
誰かMetrowerksの
Pascal Language Reference
Pascal Library Reference
Error Reference
を持っている人居ない?
ObjectPascalを使ってみようと思ってCodeWarriorCDを探してみたのですが見つからないのです。
Pascal Compilers Ref.pdfによるとCodeWarriorPro5のDocumentationフォルダの中にあるはずなんだけど、
いくら探してみ見つからないんです。
Sherlock2で検索かけてもPascal Compilers Ref.pdf以外は見つからなくて……。
Pro7にはPascalのDocumentなんて元から入っていないし……
357:デフォルトの名無しさん
02/09/10 21:26
Metrowerksに問い合わせたらメール添付で送ってくれました。
原文の方しかないらしく、送って来たのは英語……。
しかも200頁超や300頁超でした。
はぁ、頑張って訳すか。
358:アライグマPascal
02/09/19 08:16
仕事が忙しくてネタがないのですが、(HPまだ作れていません)
すみませんageます。
359:デフォルトの名無しさん
02/09/20 21:49
レコード型の可変部がイマイチ良く分からん。
Var r : record
case byte of
0 : ( i : Longint );
1,9: ( a : extended);
(1) : ( b :array[0..9] of byte );
end;
とかくとき、
iやa,bなどは変数ということは分かるのだけれどその前に書く0や1,9がなんなのか良く分からない。
360:デフォルトの名無しさん
02/09/20 22:08
Pascalは知らんが、Cでいう共用体(union)ってやつだな。
番号はどの構造をとるかっていう構造識別番号みたいな奴で、byte型なわけだ。
無名だから使ってないみたいだけど、定義の時は必ず適当に決めなきゃならんのかも?