******Programming Language Pascal******
■ このスレッドは過去ログ倉庫に格納されています
0001Hanzer
NGNGBegin
Writeln('Let's make a simulation game with Pascal!!');
End.
0002デフォルトの名無しさん
NGNG/ ヽ / ヽ
______ / ヽ__/ ヽ
| ____ / :::::::::::::::\
| | // \ :::::::::::::::| >>1
| | | ● ● ::::::::::::::| 何このスレ・・・
| | .| :::::::::::::|
| | | (__人__丿 .....:::::::::::::::::::/
| |____ ヽ .....:::::::::::::::::::::::<
└___/ ̄ ̄ :::::::::::::::::::::::::|
|\ | :::::::::::::::::::::::|
\ \ \___ ::::::::::::::::::::::::|
0003デフォルトの名無しさん
NGNGPascal の初心者用の質問・相談所
http://pc2.2ch.net/test/read.cgi/tech/1009903617/
0004デフォルトの名無しさん
NGNG0005デフォルトの名無しさん
NGNG消費具合から独断で判断してみた。
「Pascal の初心者用の質問・相談所」スレが埋まってからこのスレの状況を見て
どうするか判断してもいいと思う。
0006デフォルトの名無しさん
NGNG>>1 がこれじゃなぁ
0007デフォルトの名無しさん
NGNG0008デフォルトの名無しさん
NGNGDelスレは乱立してるのに。
0009デフォルトの名無しさん
NGNG0010デフォルトの名無しさん
NGNG0011デフォルトの名無しさん
NGNGOpenGLもやる奴はドイツ語も読めるかもしれんう
0012デフォルトの名無しさん
NGNG英語を読めない
0013デフォルトの名無しさん
NGNG文字コードの変換しないといけないのが面倒だな
0014デフォルトの名無しさん
NGNG0015デフォルトの名無しさん
NGNG30代中盤以上だな。
映画板に逝ってこい。
0016デフォルトの名無しさん
NGNG0017Hanzer
NGNGスイスの連邦工科大学のNiclaus Wirthが、教育用に向いた言語として,
70年代初頭に設計したコンピュータ用のプログラミング言語。
名前は数学者Pascalに由来する。現在ではISO規格にもなっている。
Algol系言語の流れを汲んで、厳密な型付け規則を持つ手続型言語であるが、
簡潔な文法ながら高度なアルゴリズム記述能力を持ち、
処理系も比較的簡単に作成できるので、計算機科学の入門を始めとして広く普及している。
ただし、当初は大型コンピュータでバッチ的に利用するように設計されていたため、
標準規格のPascal言語仕様では、インタラクティブな用途や、
ユーザーインターフェイス面でのサポート、ファイル入出力関連などのシステムインターフェイスの機能はかなり不足している。
また、ライブラリ機能(プログラムをモジュール化しておいて、後からその中の一部分だけを使う機能)
などのサポートもないため、大規模なソフトウェア開発には適していない。
実際の処理系では、これらの欠点を改良した各種のインプリメントがあるが(パソコン用ではBorlandのTurbo Pascalシリーズが有名)
拡張仕様に互換性がないため、処理系間でのソースプログラムの移植性は低い。
0018Hanzer
NGNGPascalはまだクラスを取ってるだけで全く初心者と変わらんかも。。。
ちなみに元々C/C++やってました。
シミュレーションではなく、パスカル発(初)の新感覚ボードゲーム(将棋なども含む)
を作りたいと思うが。どうかな?
まず簡易なAIが作れないとできそうになさそうだ。
ま、AIといってもまず専門家の知識と解決手段をプログラム化して
ある問題に対する問題解決や意思決定を行わせるわけだが。。。
これを一人でやるのはどうやらできなさそうなので何とか手分けしてできたらと思う。
諸君の意見を聞きたい。
0019デフォルトの名無しさん
NGNG0020デフォルトの名無しさん
NGNG0021デフォルトの名無しさん
NGNG20年前に1T
0022デフォルトの名無しさん
NGNG0023Hanzer
NGNGまぁその気持ちは分からんでもない。
だがそもそもできそうにないことを可能にするのが俺たちじゃ無かったか?
ちなみに俺は自慢だが初期のCにしてAIの元祖、
言語解析ツールの基礎を作り上げたものだったが。
0024枢軸 ◆vAxbbUflh2
NGNG腰抜けな自分が言うのもなんだが2chでやるなら先に少しでもいいから作っておいて、それから始めたほうが良いと思うよ。。。
でもまぁ頑張れ!
0025デフォルトの名無しさん
NGNG学んでみようと思ったのならそれは間違い。
今はJavaとSchemeが教育用言語の主流です。
0026デフォルトの名無しさん
NGNG0027デフォルトの名無しさん
NGNGMITは採用してますが何か?
とかほざくのかなww
0028デフォルトの名無しさん
NGNG0029デフォルトの名無しさん
NGNG古賀さんですか ?
0030デフォルトの名無しさん
NGNGいや、重複スレと呼んでも過言ではないスレがあるんだな、他板に。
しかも、そちらではちゃんと物ができてる
すべては>>1次第
0031Hanzer
NGNG>>30
確かに何にでも言えることだが、ことプログラムに関して初期設計を
はっきりさせておかないと何を言っても説得力が無い。
ということでとりあえず構想を練る時間を数日欲しい。
C/C++で考えて、Pascalに置き換えてみるよ。
0032デフォルトの名無しさん
NGNG0033デフォルトの名無しさん
NGNGじゃあ初期設計できるまで上げないでくれ。
0034デフォルトの名無しさん
NGNGbegin
endで締めてんだから
.は不要だろ。
.がキモイんだよ
0035デフォルトの名無しさん
NGNG0036デフォルトの名無しさん
NGNG0037デフォルトの名無しさん
NGNG0038デフォルトの名無しさん
NGNGFree Pascal 日本語(SJIS)対応 win32 crt unit
ttp://www.asahi-net.or.jp/~kh4s-smz/roguelike/develop/fpcrt.htm
0039デフォルトの名無しさん
NGNGどういうつもりですか?
0040マイク ◆yrBrqfF1Ew
NGNG0041デフォルトの名無しさん
NGNG0042デフォルトの名無しさん
NGNG0043デフォルトの名無しさん
NGNG0044デフォルトの名無しさん
NGNGhttp://hotwired.goo.ne.jp/news/technology/story/20041021306.html
| 世界初の表計算ソフト『VisiCalc』を世に送り出したダン・ブリックリン氏とボブ・フランクストン氏や、
| プログラミング言語『Pascal』の作者、ニクラウス・ヴィルト氏ら
004542
NGNG1 2 3 4 ~
2 4 6 8
3 6 9 12
~
ってな感じの
004642
NGNG004743
NGNGおお、よしよし可愛そうに。
今教えてあげるから待っておいで。。
004843
NGNG久しぶりに Delphi さわった。
program Test66;
var
i: Integer;
j: Integer;
begin
for i := 1 to 9 do
begin
for j := 1 to 9 do
begin
Write((i*j) : 3);
end;
WriteLn('');
end;
end.
004942
NGNG005042
NGNG教えてくださってありがとうございました!
0051デフォルトの名無しさん
NGNGオープン配列っちゅうのつかうのか?
0052デフォルトの名無しさん
NGNGここじゃなくて Delphi スレで聞いたほうが
答えてくれる人多いかもね。
0053デフォルトの名無しさん
NGNGというか >>51 が整合配列についてきいているのかどうなんだかわからん。
0054デフォルトの名無しさん
NGNGvar
unko : array of array of array of integer;
0055デフォルトの名無しさん
NGNG出来るよ。
次元数は言語上特に規定していなかったような気がする。
メモリとかコンパイラとかでの制限はあると思うけど。
0056デフォルトの名無しさん
NGNG0057デフォルトの名無しさん
NGNG0058デフォルトの名無しさん
NGNGすなおに動的配列を使うか、
ポインタを使って自前でメモリ確保して配列もどきを作るか
とかすると可能。
まあ、そういう質問するぐらい何だから、簡単な動的配列使いなよ。
0059デフォルトの名無しさん
NGNG0060デフォルトの名無しさん
NGNG#define begin {
#define end }
0061助けて☆
NGNG(課題)
入力されたn個の数を大きい順に並び替えるプログラムを作れ。
誰か解いてください(>_<)
0062>>61
NGNG0063デフォルトの名無しさん
NGNG脳内でどれだけ動作をシミュレートできるかが大切だよ
0064デフォルトの名無しさん
NGNG006561
NGNG普通の大学生です♀
0066デフォルトの名無しさん
NGNGBEGIN
BEGIN
END
BEGIN
BEGIN
END
BEGIN
BEGIN
BEGIN /\___/ヽ ヽ
END / ::::::::::::::::\ つ
BEGIN . | ,,-‐‐ ‐‐-、 .:::| わ
BEGIN | 、_(o)_,: _(o)_, :::|ぁぁ
END . | ::< .::|あぁ
END \ /( [三] )ヽ ::/ああ
END /`ー‐--‐‐―´\ぁあ
BEGIN
END
END
BEGIN
BEGIN
END
END
END
BEGIN
END
END
END
0067デフォルトの名無しさん
NGNG0068デフォルトの名無しさん
NGNG参照型は機能としては別に罪はないだろ。
ただfoo(a)が値渡しなのか参照渡しなのかがわからないという問題はあるね。
Cならポインタ渡しでfoo(&a)とはっきりわかる。
C#では参照渡しにfoo(ref a)とrefを明示するようになってる。
0069デフォルトの名無しさん
NGNGメインフレームにALGOLマシンを目指したスタックコンピュータが
作られた時代に、あえて教育用言語にポインターを導入したことの
総括を聞きたい、ということです。宿題ではありませんが。
0070デフォルトの名無しさん
NGNGAlgol W とほとんどおなじです(構文はちがいますが)。ビットシー
ケンスを集合型にとりかえたくらい。
ガーベジコレクションのない言語で複雑なデータ構造をあつかおう
とすればポインタをつかうことになるのは自然だとおもいます。
Pascalの型システムの欠陥としてよくあげられるのは、ポインタでは
なくてCASE タグつきのレコード型ですね。
0071デフォルトの名無しさん
05/02/04 23:49:30program sort(input,output);
var
n : array[1..10] of integer;
i,r,sort1 : integer;
begin
{ Input data }
write('Please enter (MAX10) : ');
readln(i);
for r:=1 to i do
begin
write('Please enter the number : ');
readln(n[r])
end;
{ Processing }
for r:=1 to i do
begin
if n[r]<n[r+1] then
0072デフォルトの名無しさん
05/02/04 23:50:03begin
sort1:=n[r];
n[r]:=n[r+1];
n[r+1]:=sort1;
end;
end;
for r:=1 to i do
begin
writeln(n[r]);
end;
{ Ending }
writeln;
writeln('End of Job.');
end.
0073デフォルトの名無しさん
2005/05/02(月) 23:48:250074デフォルトの名無しさん
2005/05/17(火) 17:07:070075デフォルトの名無しさん
2005/05/19(木) 11:03:14ヽ( ´ー`)ノ おめ〜
Delphi死すともPascal死なず。
0076デフォルトの名無しさん
2005/05/20(金) 00:41:530077デフォルトの名無しさん
2005/05/20(金) 03:33:40ISO 10206 拡張Pascalではパラメタつきの型が使えるので
type T(Max:Integr) = array [0..Max] of Integer;
var P : ^T;
として「New(P, 100)」で 100個の要素をもつ配列を作ることができる。
またこの型を引数として渡して、下のように書くことができる。
function Sum(A:T):Integer;
var R, I: Integer;
begin R := 0;
for I := 0 to A.Max do R := R + A[I];
Sum := R
end;
いっぽう Delphi では上限を決めずに下のように書ける。
var X : array of Integer;
この場合、下限は 0 に決めうちになるが、上限は「SetLength(X,100)」
のようにして設定できる。上の Sum は Delphi では下のようになる。
function Sum(A:array of Integer):Integer;
var R, I: Integer;
begin R := 0;
for I := Low(A) to High(A) do R := R + A[I];
Sum := R
end;
>>74 の Free Pascal 2.0 も Delphi とおなじ方式が使える。
0078デフォルトの名無しさん
2005/06/07(火) 23:19:56オブジェクト指向で組むと、上司からソース追えないと言われる不思議な言語だ。
Delphiは、楽して適当にやってりゃいい。
0079デフォルトの名無しさん
2005/06/13(月) 18:44:52read(i); // iは整数型
とかして、実数をキーボードから入力するとRuntimeErrorで止まっちゃうのが嫌なんです。
入力が数字なら実数型でreadしてroundでいいけど、文字とか入れられた時は、文字列でreadして…。
そうすると、入力できる桁数の制限が…とか、考えることが増えまくるじゃないですか。
それで、例外処理したいなぁと。
ネットで調べたら
try
except
って書いてあるの見たけど、これはDelphiじゃないとだめぽってコンパイルエラーになるので、FreePascalではやり方が分からなくて…。
だれか教えてください。おねがいします。m(_ _)m
0080デフォルトの名無しさん
2005/06/14(火) 03:55:08Free Pascal 2.0 では Delphi 互換(-Sd)オプションをつけることで try が
使えるようになります。
uses SysUtils;
...
try Readln(f,s); ...
except
on ex: Exception do begin
Writeln(ex.Message); ...
end;
end;
伝統的な方法は、{$I-} を使うことでファイル関係のエラーで止まらなくなります。
このときエラーがおきたかどうかを調べるには IOResult を使います。
008179
2005/06/15(水) 15:19:092.0のでやったらできました。
どうもありがとうございました。
伝統的な方法も、いまから調べてみます。
008379
2005/06/15(水) 20:24:40リロードしても表示されなかったんです…
キャッシュしてないのに…
しかも2回目書き間違えてるよぉ…orz
0084alfalfa
2005/07/24(日) 02:28:37(~)
ノ,,
∋oノハヽo∈
( ´D`)(夏 ) <Pascalファンのみなしゃん暑中お見舞いれす
─ (^*フ鹵y'*_O
\\ (*ノ =メ=ヽ \
 ̄|| ̄ソ *ソ *ノ ̄ ̄||
0085デフォルトの名無しさん
2005/07/25(月) 10:17:32小数第一位まで求めるようにしたいです。
0086デフォルトの名無しさん
2005/07/26(火) 00:02:34newton method
0087デフォルトの名無しさん
2005/10/27(木) 01:02:41while not ((x = 0) and empty) do
if x = 0 then
begin x := pop; y := y+1 end
else
if y = 0 then
begin x := x-1; y := 1 end
else
begin push(x-1); y := y-1 end;
z := y+1
このアルゴリズムは整数型の変数x,y,zと共にスタックを1つ使用していて、
pushを「実引数として与えられたデータをスタックにプッシュする手続き」、
popを「スタックからデータをポップして返す関数」、emptyを「スタックが
空のときにTRUEそうでない時にFALSEを返す関数」と仮定して使用している。
また、非負整数m,nに対して、スタックを空の状態にしてx,yにそれぞれm,n
を与えて上のアルゴリズムを実行した時の最終的なzの値をA(m,n)として部分
関数Aを定義する。(特に、計算が停止しなければzの値は未定義なのでA(m,n)
の値も未定義となる。)これについて以下の問に答えよ。
0088デフォルトの名無しさん
2005/10/27(木) 01:11:04リズムを実行した時に、各変数の値とスタック状態がどのように
推移するか説明して最終的なzの値を答よ。
(2)スタックに非負整数l(小文字のエル)が1つ保存されている状態
で、x,yにそれぞれ非負整数m,nを与えて上のアルゴリズムを実行し
たときの最終的なzの値をAを用いて表せ。
(3)Aの再帰的な定義を与えよ。またAは全ての非負整数に対して値が定
義されていることを証明せよ。
(4)A(3,n)=2^(n+3)-3であることを証明せよ。
Pascalは学部時代に少しやっていたのですが、もう忘れてしまいました。orz
今度、とある試験を受けることになったのですが、そこで出題されていた
過去問なんですけど、さっぱり判りません。
どなたか教えてください。よろしくお願いいたします。
0089デフォルトの名無しさん
2005/10/27(木) 01:32:05以下のプログラムはいわゆる「エラトステネスのふるい」というアルゴ
リズムによって整数2からN(今は10000に設定)までの素数の判
定を行うプログラムの核心部をPascalで書き出したものである。このア
ルゴリズムについてはプログラムを読むことによってどういうものか理
解してほしい。Boolean型配列aの添字に対応する数字が素数であればTR
UEを、そうでなければFALSEを設定することで判定結果を保存する。
1. var a:array[1..1000000] ;
2. var i,j,N : integer ;
3. N := 10000 ;
4.
5. a[1] :=false ;
6. for i:=2 to N do a[i] :=true ;
7. for i :=2 to N div 2 do
8. for j :=2 to N div i do
9. a[i*j] := false ;
0090デフォルトの名無しさん
2005/10/27(木) 01:40:15×10^3単位、Nが1000000で1000×10^3単位の時間が
費やされた。ではNが500000だとどのくらいの単位の時間が消費
されるだろうか。上記程度の精度の数字で示し、その根拠を示せ。
(2)上記のプログラムは冗長な部分がある。これを正し最適化せよ。最適化
した部分はオリジナルの行番号を参照してどのような改変を加えたか具
体的に示せ。
(3)この変更によって250×10^3単位程度の時間でNがどの程度までの
範囲で素数判定ができるか答え、根拠を示せ。
以上です。よろしくお願いいたします。
0091デフォルトの名無しさん
2005/10/27(木) 14:25:24x y スタック
2 1 [ ]
2 0 [1]
1 1 [1]
1 0 [0 1]
0 1 [0 1]
0 2 [1]
1 3 [ ]
1 2 [0]
1 1 [0 0]
1 0 [0 0 0]
0 1 [0 0 0]
0 2 [0 0]
0 3 [0]
0 4 [ ]
z=5
0092デフォルトの名無しさん
2005/10/27(木) 14:46:07z = A(l,A(m,n))
0093PASCAL
2005/11/06(日) 14:00:302.車種、数量、新車ー中古車の区分、の組からなる売り上げデータを多数
入力し、新車、中古車をそれぞれの数量合計を求めて出力する。入力のストッパ
は、車種が"END"であるとする。
(入力例) (出力例)
civic 1 2 古 新車 7
sunny 8 古 中古車 20
splinter 7 新
END 0 0
0094PASCAL
2005/11/06(日) 14:15:591.学生番号と身長(cm)の組を多数入力し、入力したデータをそのまま出力する。
ただし、身長が180以上の場合だけ。”tail"という文字を横につけ加える。
入力データのストッパは、学生番号=身長=0とする。
(入力例) (出力例)
1001 168 1001 168
1002 176 1002 176
1004 182 1004 182 tail
0 0
0095デフォルトの名無しさん
2005/11/07(月) 00:55:41マルチ
0096デフォルトの名無しさん
2005/11/07(月) 01:26:280097デフォルトの名無しさん
2006/03/19(日) 20:19:07本体自体はボーランドで落とせるけどさ。
0098デフォルトの名無しさん
2006/03/19(日) 20:42:09gpcかFree Pascal辺りで我慢しれ。
0099デフォルトの名無しさん
2006/04/14(金) 03:52:14時、分、秒で表した時間の和を計算するプログラムを作成したい。 但し、以下の条件を
満たすように作成しなさい。
データは日、時間、分、秒を表す整数型のフィールド名 day, hour, minute, second のレコード型で定義し、
レコード名を time とせよ。秒と分の計算課程は同一であるため、 その個所は手続きを使って表現せよ。
入力として、時、分、秒の 3個のデータを 2セット入力し、その和を出力せよ。
もし、 hour の値が 24 以上であれば day に1の値を、 24未満であれば零にせよ。
0100デフォルトの名無しさん
2006/04/14(金) 04:50:460101デフォルトの名無しさん
2006/04/14(金) 22:35:13http://pc8.2ch.net/test/read.cgi/tech/1136994325/187
■ このスレッドは過去ログ倉庫に格納されています