Pascal の初心者用の ..
[2ch|▼Menu]
378:デフォルトの名無しさん
02/10/26 17:54
コマンドラインで指定するコンパイルオプションと同じ。

しかし、コマンドラインでオプションを指定するとそのソース全部に一括してそのオプションが適用されてしまう。
コンパイラ指令としてソース中に記述すれば部分的な適用もできるし、IFなどの制御構造を使った複雑な指定もできる。

例えば、コマンドラインで「 -$O+ 」と指定すると、それはそのプログラム全体が最適化オプションが適用されてしまうが、
ソース中に「 {$O+} 」と書いて指定すれば手続き一つだけについて最適化オプションを適用することもできる。


379:375
02/10/26 21:21
>376-378
コンパイラ疑似命令かぁ。
どうりでPASCAL入門の何所にも書かれていないわけだ。

380:デフォルトの名無しさん
02/10/27 02:14
古本屋いけ。

381:デフォルトの名無しさん
02/11/03 17:27
四個の変数 a,b,c,dの最小値を求める
IF文だけを用いたプログラムと
中間状態を用いたプログラムを書いてくれませんか?



382:デフォルトの名無しさん
02/11/03 17:42
FUNCTION GetMinimum(a, b, c, d: Integer): Integer;
BEGIN
IF a < b THEN IF a < c THEN IF a < d THEN GetMinimum := a
ELSE GetMinimum := d ELSE IF c < d THEN GetMinimum := c
ELSE GetMinimum := d ELSE IF b < c THEN IF b < d THEN GetMinimum := b
ELSE GetMinimum := d ELSE IF c < d THEN GetMinimum := c
ELSE GetMinimum := d
END;

383:デフォルトの名無しさん
02/11/03 17:46
FUNCTION GetMinimum2(a, b, c, d: Integer): Integer;
BEGIN
IF a < b THEN b := a;
IF c < d THEN d := c;
IF a < d THEN GetMinimum := a
ELSE GetMinimum := d
END;

384:381
02/11/03 18:12
>>382>>383
Pascalを習い始めたばかりなのです。
助かりました。有難うございました。

385:デフォルトの名無しさん
02/11/12 17:45
保守

386:デフォルトの名無しさん
02/11/13 17:38
age

387:デフォルトの名無しさん
02/11/24 21:46

 function intersection(S1,S2:list):list;
var s,p:list;
begin
interlist(S);p:=S1↑.next;
while p≠nil do begin
if search(p↑.item,S2)≠nil then insert(S,p↑.item);
p:=p↑.next;
end
intersection:=S
end

と言うプログラムが本に載ってたんだけど、これってどういう手順で共通集合を出してるかわかんないです。
分かる人いたら、解説キボンヌ


388:デフォルトの名無しさん
02/11/24 21:53
>>387
こりは Pascal 言語の形を借りたアルゴリズムの説明コードだから、説明してくれと
言われても、このコードを読んで。としかいえないような。

集合 (a,c,d,f) と (b,c,f,g) の共通部分を取得するときに、人間ならどうやるか。
ってことをそのまま実装しているだけだぞ。

389:387
02/11/24 22:31
>>388
begin以下がどのような手順によってS1,S2の共通部分を取得してるかわからないんス。
p:=S1↑.nextってとこはpにS1のどの値を代入?


390:デフォルトの名無しさん
02/11/24 22:35
まずS1の先頭の要素をpに入れる。
pが指す値(item)と同じ値のがリストS2に在るかどうか調べる(search)
もしなければ最後まで行ってしまうのでnilになる。
あったら、その値をSにくっつける。
以下、S1の末尾に行くまで繰り返す。

こんなところかな。

391:387
02/11/24 22:52
>>390
解説サンクスベリーマッチョです

S1の先頭の要素をpに入れてから、ループになりますよね?
ループの条件はpが空集合でないときで、ってやっていって、S1はいつ先頭の要素から、先頭の次の要素に変わってるのかが分からないです。


392:デフォルトの名無しさん
02/11/24 23:07
データは線型リスト構造だよ。

393:392
02/11/24 23:30
線型リストの1個の要素はこんな形式
【[データ本体][次の要素へのポインタ]】


これが一次元に繋がってるのが線型リスト。

[先頭をさすポインタ]

→【[データ1][要素2へのポインタ]】
            ↓
←←←←←←←←←←←←←

→【[データ2][要素3へのポインタ]】
            ↓
←←←←....←←←←←

→【[データn][nil〔終端〕]】

知ってたらスマソ。

394:デフォルトの名無しさん
02/11/24 23:32
その教科書のどこかにある list 型構造体の定義を見直してみてくれ。

395:デフォルトの名無しさん
02/11/24 23:33
>>391
>ループの条件はpが空集合でないときで

じゃなくて、pが指す先が存在するかどうかってこと。
392さんの図で指すものがなくなったらend

396:392
02/11/24 23:45
Pascalの集合型と混同してるのかな。このプログラムは集合型は関係ないよ。

397:392
02/11/25 00:17
ポインタ型の変数は>>393

【[データ本体][次の要素へのポインタ]】

みたいな構造体を指し示すタイプの変数だ。
もっと詳しくいえば、その構造体の存在するメモリ上のアドレスを保持している。
このタイプの変数は、その変数の後ろに「↑」をつけることによって
そのレコードの内容にアクセスできる。
※コーディング時には「↑」は「^」を使う。

ポインタ p が例えば2番目のレコードのアドレスを保持しているなら
p^.item と書くことによって
2番目のレコードの item フィールドを参照しているのと同じ結果になる。
(整数が入っているなら writeln(p^.item); などと書ける。)

p にはポインタ型の価を代入できる。
p := (3番目の要素のアドレス)
みたいに代入すれば、今度は
p^.item で3番目の要素の item フィールドを参照できる。

【[データ本体][次の要素へのポインタ]】
この構造体の[次の要素へのポインタ]というフィールドも、またポインタ型だ。
この値で p の値を更新すれば
 p := p^.next;
p を使って次のレコードを参照できる。
こんなふうに使っていくのが線型リスト。(本読んだ方がいいと思うけど)

398:デフォルトの名無しさん
02/11/25 18:53
どうしてPascalのポインタは↑なのにTurbo Pascalのポインタは^なんですか?

399:デフォルトの名無しさん
02/11/25 19:56
単に、キーボードと印刷の都合と思ふ

400:398
02/11/25 19:59
Turbo Pascalの^と標準Pascalの↑はどちらが一般的なんですか?


401:399
02/11/25 20:03
同じ文字なんだけど、キーボード上に↑は無いので^を使ってるし、
印刷して^は見にくいので↑になっていると思ふ
Pascalが生まれた頃は2バイト文字なんて一般的じゃ無かった筈だし

402:398
02/11/25 20:24
普通のPascalの↑は、かな変換でのを使用していいってことですよね?

403:デフォルトの名無しさん
02/11/25 21:22
アフ?

404:デフォルトの名無しさん
02/11/25 21:23
 

405:387
02/11/25 23:08
皆さん解説蟻が鯛です。
とても分かりやすくて感謝してます。

function intersection(S1,S2:list):list;
var s,p:list;
begin
interlist(S);p:=S1↑.next;
while p≠nil do begin
if search(p↑.item,S2)≠nil then insert(S,p↑.item);
p:=p↑.next;
end
intersection:=S
end

において、pの必要性がわかりません。
p:=S1↑.next;の部分を消して、以下pをS1としても駄目なんでしょうか?



406:デフォルトの名無しさん
02/11/26 00:01
>>405
言ってることよく分からんよ。


407:デフォルトの名無しさん
02/11/26 00:09
S1, S2は引数にvarが指定されていないので、変更不能だと思いますが、それはさておき、

線形リストはリスト全体を保持しておくために先頭のレコードを指すポインタが必ず必要です。
この値を変更して途中のレコードを指すようにしてしまうと
それ以前のレコードを参照する手段が完全に失われてしまいます。

S1   これなら全て参照可能

【データ|next】→【データ|next】→【データ|next】→【データ|nil=終端】


S1を変更した場合   S1
            ↓
【データ|next】→【データ|next】→【データ|next】→【データ|nil=終端】
 ↑
このレコードが参照不能になる

disposeしない限りレコードはメモリ上に残っていますから
参照不能なメモリブロックがメモリ上に残るという
まずい事態になります。(メモリリーク?)

線形リストの処理は
先頭を示すポインタはそのままに、
別なポインタ変数を用意して
その値を変更して順次リストをたどっていきます。

で、405のような処理を書いた場合は
一度きりなら動くかも知れないが
以降、このリストを参照することができなくなる、というのが結論かな。

408:補足
02/11/26 00:11
線形リストはレコードの追加、削除ができますが
その場合でも常に全体を参照できる様、
例えば先頭にレコードを追加する場合は
変更後の先頭のレコードをさすようにポインタを変更します。
先頭のレコードを削除する場合は
次のレコードをさすようにポインタの値を変更します。

ところでプログラム中の4行目のp:=S1↑.next; は
もしかしたら p := S1 ではないのかと。
S1の一番はじめのレコードが無視されているような気がします。

409:デフォルトの名無しさん
02/11/26 00:38
>>408
つまり、pはS1の値を保持するためにあると言うことかな?

>もしかしたら p := S1 ではないのかと。
確かにそんな気がします。
S1の先頭にダミーセルがあることにしてるのかなあ?


410:407 & 408
02/11/26 00:59
Pの役割はイメージ的には配列の要素を参照する時のインデックスみたいなものかと。

for i:=1 to 10 do
 if a[i] <= then xxxx;

のiがP、aがS1とか。(かなり違うが)

価を自在に変えながらリスト中のレコードを次々と指し示していく役割をするポインタ(P)と
全体を保持しておくために常に先頭を指すポインタ(S1)は
役割が違うと考えた方がいいかも。(追加、削除を伴わない処理の場合)

411:ああ
02/11/26 07:32
恐らくばりばり既出ネタで恐縮なんですが、
今私は数学系の学部に在籍しておりまして、研究上アルゴリズムや素因数分解
等をコンピュータ上で行わなければならない必要性が出てきました。
時間の関係上、手っ取り早くそのような計算が自在にできるようになりたいのですが、
当方、残念ながらコンピュータはネットする程度でプログラムやC言語、UNIX等の知識は
限りなく0に近いです。。何からはじめればよろしいでしょうか。御指導願います。


412:ああ
02/11/26 07:33
スンマソ、スレ違いでした。。。

413:デフォルトの名無しさん
02/11/26 08:09
>>410さんが言っているように、
pはいわゆるイテレータというやつで、
S1はリストの先頭を保持するという役割があるので
たとえS1でpを代用できてもするべきじゃないです。

414:デフォルトの名無しさん
02/11/27 21:52
Error: Incompatible type for arg no.
2: Got SHORTSTRING, expected LONGINT
どなたかこのエラーメッセージのわかる方いらっしゃいますか?


415:デフォルトの名無しさん
02/11/27 22:59
引数の2個目はLONGINTが来るはずなのにSHORTSTRINGだよボケが

416:デフォルトの名無しさん
02/12/03 23:46
落ち阻止。

417:デフォルトの名無しさん
02/12/07 17:08
リスト構造をもつ、ポインタ(pointer)型の変数を使用してデータ入力後絶対値に関して昇順に並べ替えたいのですがどうしてもうまくいきません。どうプログラムを書いたらいいでしょうか?

418:デフォルトの名無しさん
02/12/07 17:13
>>417
よくわかりません。

419:デフォルトの名無しさん
02/12/07 17:18
簡単に言うとポインタを使って昇順の連結リストをつくりたいのですが。

420:デフォルトの名無しさん
02/12/07 17:51
>419
中身を比較したのちポインタを書き換える。それだけ……
基本情報処理の本のリストに関する部分を読めば直に分かる。



421:デフォルトの名無しさん
02/12/08 01:09
>>419
対象をポインタで持っているのなら、ヒープソートなんかで木構造を一時作って、
それを再度リスト構造に戻すのが良いかも。

汎用的に作るのなら、ソート関数は作り込まず、外部のソート関数を呼び出すよ
うにすればよいし。

422:
02/12/08 20:48
コンソールアプリケーションである値を入力したら窓を閉じるにはどうしたらいいですか?

423:デフォルトの名無しさん
02/12/08 20:56
コンソールアプリケーションに窓なぞない。

424:
02/12/08 21:04
>>423
窓って言うか…何て言ったらいいんだろう?
Delphiでコンソールアプリケーションを作って実行したらコマンドプロンプトが起動するじゃないですか。
それを閉じたいのですが無理なんでしょうか?

425:デフォルトの名無しさん
02/12/08 21:12
exit(return)

426:422
02/12/08 21:21
>>425
exit(return)だったら実行できませんでしたがちょっと削ってexitにしたら閉じることができました。
ありがとうございました。

427:デフォルトの名無しさん
02/12/08 22:29
>>462
ごめん、(return) はなんとなくノリで。
DOS 窓の終了と同じ雰囲気で。

428:デフォルトの名無しさん
02/12/09 00:28
>424
DelphiはDelphi板で聞くのが良いよ。

429:デフォルトの名無しさん
02/12/09 03:00
>>425-426
Exitは関数や手続きを抜けるだけじゃない?
もちろんprogram .. begin .. end のレベルで実行すればプログラム自体を
抜けるけど。
どこでも即座に終了させたかったらHaltを使うべし。

430:425
02/12/09 18:03
>>429
ご指摘ありがとう。しばらくDelphi使ってないのでかなり忘れてました。

431:デフォルトの名無しさん
02/12/31 17:01
逆ポーランド記法をスタックをよういて実現したいのですが、プログラムがうまくかけません。
どなたか教えていただけないでしょうか?

432:デフォルトの名無しさん
02/12/31 18:15
よういて?

433:431
02/12/31 18:23
もちいてだっての バカ

434:デフォルトの名無しさん
02/12/31 18:45
用いる。
餅炒る。
モチ要る。

435:デフォルトの名無しさん
02/12/31 18:46
>>431
if (数字) {
 スタックにpush;
} eles if(演算子) {
 スタックから二つpopして演算;
 結果をスタックにpush;
} else {
 error;
}


436:IP記録実験
03/01/08 22:23
IP記録実験
スレリンク(accuse板)

1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。

27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?

38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27
鋭いです。

73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。

437:デフォルトの名無しさん
03/01/09 00:41
>>1
全板IP記録に追い込まれた今の気持ちをどうぞ。

438:デフォルトの名無しさん
03/01/09 01:01
記念カキコ

439:デフォルトの名無しさん
03/01/09 01:21
ひろゆきは架空の人物ですよ。

440:デフォルトの名無しさん
03/01/09 01:33
(´皿`;)邪穂でごめん


441:IP記録実験
03/01/09 02:08
IP記録実験
スレリンク(accuse板)

1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。

27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?

38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27
鋭いです。

73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。

442:デフォルトの名無しさん
03/01/09 02:08
>>540
逝き遅れの妹発見

443:デフォルトの名無しさん
03/01/09 02:45
>>50
タイプミス
スマソ

444:デフォルトの名無しさん
03/01/09 18:27
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 138720人 発行日:2003/1/9

年末年始ボケがそろそろ収まり始めた今日このごろのひろゆきです。

そんなわけで、年末に予告したIP記録ですが実験を開始しています。

「2ちゃんねる20030107」
こんな感じで各掲示板の最下部に日付が入ってるんですが、
20030107以降になってるところはログ記録実験中ですー。

んじゃ!

────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
──────────────
Keep your thread alive !
スレリンク(software板)l50
──────────────

445:デフォルトの名無しさん
03/01/10 00:16
qbだけじゃなかったのか

446:デフォルトの名無しさん
03/01/10 09:04
モルモットにされたのか

447:デフォルトの名無しさん
03/01/10 11:02
もうちょっと電波度下げよう。意味不明になりすぎてる

448:デフォルトの名無しさん
03/01/10 11:32
厨房板の荒らしは削除されたようだ
いつか全板で強制表示になるのだろうか?
スクリプトくめばどこの板だって荒らせるだろうし

449:デフォルトの名無しさん
03/01/10 12:18
実験のためにトオルに依頼されてコピペやってるって可能性もあるのか・・。

450:デフォルトの名無しさん
03/01/10 12:47
>>936
それは当然考えてはいますが、小ネタやちょっとした意見を書き込むときにもそれを
意識しなくてはならないというのはしんどい

451:デフォルトの名無しさん
03/01/10 13:01
FreePascalはマルチプラットフォームであることを忘れているに、1Penis

452:デフォルトの名無しさん
03/01/10 13:45
つーかちょっと北朝鮮や朝鮮総連を批判しただけでログから身元割れたりしないか心配。
奴ら何しでかすかわからない凶悪な連中だからな。

ログってひろゆきしかみれないのか?
削除人が見れたら問題・・・以前削除に絡んで強請をした奴もいるらしいし

453:デフォルトの名無しさん
03/01/10 14:57
ふむ。

454:デフォルトの名無しさん
03/01/10 16:24
言いたいことも言えないこんな世の中じゃ


        ウェー ハッハッハ

455:デフォルトの名無しさん
03/01/10 22:48
2chのIDてIPを変換してるんだっけ?
だったら、全板強制IDにして暗号キーだけ保存しておけばいいんじゃないの?

456:デフォルトの名無しさん
03/01/10 22:55
>>735
書き方がネタっぽすぎw

457:デフォルトの名無しさん
03/01/11 00:12
スレリンク(korea板)

在日のアサピーが自ら2CHにブラクラ貼ったと自白www

調子に乗ってアタック開始、しっかりログ取られて通報すました。

祭り中です。

458:デフォルトの名無しさん
03/01/11 00:20
夜勤 ★さんはなんでふだんはBG ★とかキャップを使い分けてるんですか?

459:デフォルトの名無しさん
03/01/11 09:42
削除板に書き込む時いちいち設定し直すのが面倒臭いから

460:デフォルトの名無しさん
03/01/11 09:45
元々パク(ry

461:デフォルトの名無しさん
03/01/11 10:16
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 139038人 発行日:2003/1/10

なにやら、連日メルマガだしてるひろゆきです。

そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが面倒なので、
全部のサーバに入れてみました。

重くなって落ちたりしてもご愛嬌ってことで。。。

んじゃ!

────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
──────────────
Keep your thread alive !
スレリンク(software板)l50
──────────────

462:デフォルトの名無しさん
03/01/11 11:13
フェミホモ荒らしが来なくなるなら
まあいいか。。。

悪いことをする気はなかったど、なんだか
夢がなくなるな。
なんつーか、手口のきれいな銀行破りが
捕まっちゃったみたいな気分。

463:デフォルトの名無しさん
03/01/11 13:15
まあ、匿名じゃなきゃできんような自由な言論なんてたかが知れてるしな。
今までの2ちゃんみてりゃ一目瞭然。
匿名のかさをきて暴言はいてる奴らが減っていいかも。

464:デフォルトの名無しさん
03/01/11 16:02
じゃ、おまえが2ch来なければ良い。それだけのこと。

465:デフォルトの名無しさん
03/01/11 16:07
ウェー ハッハッハ  PART 2
スレリンク(news板)

466:デフォルトの名無しさん
03/01/12 00:09
ネオむぎを超えるわけない
犯人が17歳以下なら話は別だが

467:デフォルトの名無しさん
03/01/12 00:18
中国の漬け物ですか?(^_^;)

468:デフォルトの名無しさん
03/01/12 10:32
231 >判決文にISP責任法への配慮とかいうちゃんちゃらおかしい文面が書いてなけりゃ

253 >>どうも昔から、下級審の裁判官は余計なことを書きたがる。

お前ら判決文を読んだのか? 被告がISP責任法を根拠に削除義務違反はないと主張したから書いてるんだよ。

URLリンク(courtdomino2.courts.go.jp)


469:デフォルトの名無しさん
03/01/12 21:08
IP取るようになったら些細なことでも訴えられるかもな。
ここまで話題性の在るサイトだし。
IP取ってるんだから今までは『訴えても意味無い』って諦めてた
人たちも訴えるようになるかもね。
基本的に訴えられるのは書き込みした人だろうけど、
その様な場所を提供したって事実に変わりは無いから
今まで以上に2chも訴えられるかも…。

推論スマソ

470:デフォルトの名無しさん
03/01/12 21:11
削除前の手続きの話なんで、発信者の責任の話とはまぜないで欲しいが。

471:デフォルトの名無しさん
03/01/12 21:23
辞書登録してみた⇒夜勤さん!! ヘ(^^ヘ)(ノ^^)ノ

472:デフォルトの名無しさん
03/01/13 01:22
3 6 1 4 2 5 をクイックソートで整列させるにはどうしたらいいですか?

473:山崎渉
03/01/13 18:26
(^^)

474:デフォルトの名無しさん
03/01/13 19:20
今GNUパスカルを使って勉強しているんですが
freeパスカルとの違いは何かあるんですか?
使える文法が違う、みたいな

475:デフォルトの名無しさん
03/01/13 22:14
405 名前:心得をよく読みましょう 投稿日:02/12/31 11:04 ID:ADTGAx9x
はぁぁぁ。あと、1週間以内で生理・・・。

何事にもむかついてたまらないっ!
生理前って、ブルーになったり、いらいらしたり。。。
ほんと勘弁してって感じ。

476:山崎渉
03/01/15 17:52
(^^)

477:デフォルトの名無しさん
03/01/19 02:08
constって何なんですか?


478:デフォルトの名無しさん
03/01/19 19:22
たしかサリエヌの友人だったと思います

479:デフォルトの名無しさん
03/01/20 12:53
>>477

const {定数}
BUF_SIZE = 32768;{ Buffer Size = 32768 (8000h) }

Ver: string[3] = '1.0';

定数の事かと…

var {変数}
argc: integer;
argv: string;
i,k,l: integer;


480:山崎渉
03/01/23 21:53
(^^)

481:477
03/01/26 02:18
>>479
すいません
なかなか書き込むひまがありませんでした
レスありがとうございました

482:デフォルトの名無しさん
03/01/28 10:04
URLリンク(www.makie.com)
Mac用だがここで紹介されているThinkPascalってどうよ?
少しやってみたが、英版なのでエディタで日本語が表示できん・・・

483:デフォルトの名無しさん
03/01/29 00:31
CarbonLibは使えるんだろうか

484:デフォルトの名無しさん
03/01/30 12:01
上のリンク見る限りでは無理そうだね。
別途コード戦士が必要みたい。
でもそれだったら最初からコード戦士でやった方が良い罠。

485:デフォルトの名無しさん
03/02/02 04:46
>>484
これでいけるのではないでしょうか。

Carbonized Port of THINK Pascal TCL
URLリンク(pascal-central.com)


486:デフォルトの名無しさん
03/02/02 05:03
test

487:デフォルトの名無しさん
03/02/04 11:45
>>298が全然わかんねぇ…(´д`;)

488:デフォルトの名無しさん
03/02/05 18:31
const
hexcode: array[0..15] of char = ('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');
function HexStrB(num:byte):string;
begin
hexstrB:=hexcode[lo(num) shr 4 ]+hexcode[lo(num) and $f] ;
end;

ten := ' ';
num := 0;
repeat
writeln(HexStrB(buf[num]) + ten + HexStrB(buf[num+1]) + ten + HexStrB(buf[num+2]) + ten + HexStrB(buf[num+3]) +
ten + HexStrB(buf[num+4]) + ten + HexStrB(buf[num+5]) + ten + HexStrB(buf[num+6]) + ten + HexStrB(buf[num+7]) +
ten + HexStrB(buf[num+8]) + ten + HexStrB(buf[num+9]) + ten + HexStrB(buf[num+10]) + ten + HexStrB(buf[num+11]) +
ten + HexStrB(buf[num+12]) + ten + HexStrB(buf[num+13]) +
ten + HexStrB(buf[num+14]) + ten + HexStrB(buf[num+15])));
inc(num,$10)
until (num = $200);


489:デフォルトの名無しさん
03/02/06 10:33
おお、神!(´д`;)アリガd

490:デフォルトの名無しさん
03/02/10 20:53
Pascalって実用性無いのに勉強しても平気でしょうか?

491:デフォルトの名無しさん
03/02/11 03:47
えーと…、まあ、これからやるならやめときなさい。
Eiffelをお薦めしよう。

492:レイホウ@6歳
03/02/13 04:49
>>490
C++を勉強しなさい
C#はだめだぞ

Gnu CppならLinuxでも使用可能だ

えいめ〜ん


493:デフォルトの名無しさん
03/03/08 12:55
はげしくホッシュ

494:デフォルトの名無しさん
03/03/08 13:23
>>490
Pascalを勉強する価値がないとしたらそれは
実用的では無いからではなく時代遅れだから。
昔は教育用言語として教えられてはいたけど
今ではJavaとSchemeに取って代わられたよ。

495:デフォルトの名無しさん
03/03/08 13:23
と、一ヶ月前のレスに混じれ酢してみました。

496:デフォルトの名無しさん
03/03/29 11:11
10年程前にPC-DOS+Turbo Pascal 7で作ったプログラムを動かしたいのですが、困ったことに最近のパソコンはEMSメモリが使えないものが多いのです。
新型パソコンでEMSメモリ使用可能なものがあったら教えてください。


497:デフォルトの名無しさん
03/03/29 11:14
DOS 上で動かすか、エミュレータ上で動かせば。

498:デフォルトの名無しさん
03/03/29 11:21
>>496
DOS5.0の時とかXMSをEMM386でEMSに化けさせてたと記憶してるけど。

499:デフォルトの名無しさん
03/04/01 21:59
496です。
497さん498さんレスありがとうございます。

>DOS 上で動かすか、エミュレータ上で動かせば。

ハードの問題なのでどちらの方法でも動かないのでは?
システムコマンダーでWinとDosのデュアルブートにするつもりなのですが





500:デフォルトの名無しさん
03/04/01 22:08
>>499
間を取ってWindows3.1とかどうだ?

って言うかVMWareでも使った方が楽ちんな予感。

501:デフォルトの名無しさん
03/04/01 22:21
EMS だけの話なら EMS をエミュればOK!
昔やった記憶があるが具体的には忘れた。
ただ楽するなら、500(おめ!)さんの
言うようにVMWareでも使った方がいい。

502:デフォルトの名無しさん
03/04/02 09:02
現在Pascal勉強中の初心者です。

Pascalって実用性が無いんですか?
CGIをやるのに適してるって聞いたんだけど・・・

503:デフォルトの名無しさん
03/04/02 12:48
趣味でやるぶんにはかまわないでしょ。

504:デフォルトの名無しさん
03/04/02 14:04
実用性はあるが、CGIってのは多分Perlと混同してる(w

Pure Pascalじゃなくて有償版Delphi/Kylixなら高機能なCGIも作れないでもない

505:デフォルトの名無しさん
03/04/02 23:07
>Pure Pascalじゃなくて有償版Delphi/Kylixなら高機能なCGIも作れないでもない

アホがいます。


506:デフォルトの名無しさん
03/04/02 23:14
WebSnapとかIntraWebとか、まあ知らないなら知らないでいいけどさ

507:デフォルトの名無しさん
03/04/03 06:10
>>506
何でもかんでもライブラリがないと何もできないかわいそうな人がいます。


508:ななしへたぐらま ◆XcB18Bks.Y
03/04/12 16:13
こういう書き込みの後でなんですが,
Cのscanfに相当する機能を実現する関するのライブラリって
どこかにありませんでしょうか.
以前自作したのですが作りが下手なのか処理が重すぎて….
テキスト解析はちゃんと本を読んで勉強しないとダメかな.


509:デフォルトの名無しさん
03/04/12 20:05
>>508
> Cのscanfに相当する機能を実現する関するのライブラリって
> どこかにありませんでしょうか.

scanf のソース見てポーティングすればいいとおもうけど。
可変引数の扱いをどうするかが問題かと思うが。

510:デフォルトの名無しさん
03/04/12 20:58
>>509
オープン配列とかで何とかならない?

511:山崎渉
03/04/17 15:47
(^^)

512:ななしへたぐらま ◆XcB18Bks.Y
03/04/22 22:42
>>509-510
レスが遅くなってごめんなさい….

scanfのソースは探してみます.ありがとうございます.
ちなみに可変引数は前に作ったときは配列型で対応していました.
var指定が出来なかったのでポインタを渡す仕様にしていました.


513:デフォルトの名無しさん
03/04/25 04:18
JIS PASCAL水準1準拠の処理系ってありませんか。
またpacked array[0..7] of booleanを1バイトに詰め込んでくれたり、set of 0..256が書けたりするのも…。
どれも実装が面倒なんだろうか…

514:bloom
03/04/25 04:26
URLリンク(homepage.mac.com)

515:デフォルトの名無しさん
03/04/25 04:40
そういえば規格では set of Charが集合の最大サイズでしたっけ。
ってことはCharがWideCharになるDelphi.NETではset of 0..65535が可能に!?

516:513
03/04/25 05:05
そうかset of charが集合の最大サイズなのか…
JIS規格書が会社なんで確認できないな。
基底型は任意の順序型だと思っていた。

517:デフォルトの名無しさん
03/04/25 05:17
>>502
実用性がないとかまことしやかに言われていますが、そんなことはないです。
CGI は、言語が標準入力と標準出力をサポートしていれば、どんな言語でも可能です。


518:デフォルトの名無しさん
03/04/25 05:44
URLリンク(www.gnu.org) より:

GNU Pascal は Borland Pascal 7.0 という「標準のようなもの
(quasi-standard)」だけでなく、ISO 7185 Pascal Standard を完全に
サポートしている唯一のコンパイラです。


519:デフォルトの名無しさん
03/04/25 05:46
>>517
適用範囲を限定すればJIS PASCALでも実用性が見いだせるということですね
逆に何らかの拡張を施さないと適用範囲は広がらないと。

520:513.
03/04/25 06:05
>>518
ありがとう。
危うく自前でコンパイラ作りそうだったよ。
GNU PASCAL検討してみます。

521:デフォルトの名無しさん
03/04/25 06:11
CodeWarrior Pascal
packed array[0..7] of booleanを1バイトに → 出来る。
set of 0..256が書けたり → set of 0..2047までOK。 (256byte)

THINK Pascal
packed array[0..7] of booleanを1バイトに → 不可
set of 0..256が書けたり → set of -32768..32767までOK。

522:デフォルトの名無しさん
03/04/25 06:14
>>519
JIS Pascal と厳密にやると、分割コンパイルができないなど不便はありますが、
JIS/ISO 互換でやりたいなら、Turbo Pascal や Delphi のようなものを使って、
分割コンパイルは拡張機能を利用し、コード自体は、できる限り JIS/ISO 標準で
書くということなら、ISO C 言語程度の実用性は出てきます。
Turbo Pascal や Delphi が完全に ISO/JIS に準拠しているわけではありませんが、
かなり標準 Pascal の文法をサポートしています。
この本は、Turbo Pascal や JIS/ISO 標準 Pascal その他の文法に差異があるところに
注釈が入っていてよい本です。

演習PASCALとその応用
URLリンク(www.saiensu.co.jp)

523:デフォルトの名無しさん
03/04/25 06:25
>>513
手元の Linux に入っていた GNU Pascal 2.95.4 でやってみましたらできるようです。
サンプル・ソース:

program iso(input, output);

var
a : packed array[0..7] of boolean;
b : set of 0..65535;

begin
writeln('hello');
end.

gpc -o iso iso.p

とやったら、

iso.p:5: warning: integer set size limited to 65535 elements from low bound
iso.p:5: warning: use `--setlimit=NUMBER' to change the limit at compile time

と出たので、

gpc --setlimit=65536 -o iso iso.p

としたら、エラーも警告もなくコンパイルできました。
動作は未確認ですが (^^
ちなみに、GNU Pascal は cygwin を使えば Windows でも動きます。

524:動画直リン
03/04/25 06:26
URLリンク(homepage.mac.com)

525:デフォルトの名無しさん
03/04/25 06:30
こうしてみるとDelphiって基礎部分が貧弱ですねぇ。
確か標準ってオープン配列で

procedure A(const B: array[L..H] of Integer);

なんて構文も使えませんでしたっけ?

526:513.
03/04/25 06:44
>>521
ありがとう
最近の処理系は制限が少しずつ取れてきてるのですね
packed set of -maxint..maxintはどうだろう。
コンパイル出来ても実行は出来なくて当然だとは思うが…
CのビットフィールドとPASCALの詰めあり構造型の性質がそっくりなのは偶然?

527:デフォルトの名無しさん
03/04/25 06:45
あ、でも packed array[0..7] of boolean は 2 バイトになりました。0..15 まで
2 バイトで、0..31 は 4 バイト。これじゃだめですかね。
オプション指定もあるのかもしれませんが。


528:デフォルトの名無しさん
03/04/25 06:46
>>527
GNU Pascal でのことです。


529:デフォルトの名無しさん
03/04/25 06:55
GNU Pascal マニュアルでつ。
URLリンク(www.gnu-pascal.de)


530:513.
03/04/25 06:58
>>527
多分それは各要素に不定値を表すビットが含まれているんじゃないかと。

531:デフォルトの名無しさん
03/04/25 07:04
GNU Pascal で c : set of -10..65535; とおりました。


532:デフォルトの名無しさん
03/04/25 07:05
>>530
単に2byte単位でしか割り当て出来ないだけのような

533:513.
03/04/25 07:14
>>530
そういわれればそうだな。はやとちりでした。
実行環境に適切な境界迄余分なバイトが詰められるのは構わないです。

534:デフォルトの名無しさん
03/04/25 07:26
URLリンク(www.k-514.com)


535:デフォルトの名無しさん
03/04/25 08:09
GNU Pascal で set -65535..65535 は gpc --standard-pascal --setlimit=131071 でとおりました。


536:521
03/04/25 08:28
訂正;THINK Pascalでもpacked array[0..7] of booleanは1byteでした。

>>526
>packed set of -maxint..maxintはどうだろう。
>コンパイル出来ても実行は出来なくて当然だとは思うが…
maxintが32767なのでTHINK Pascalでコンパイル&実行できます。
集合はもともと1bit扱いなのでpackedがついてもつかなくても
変数のサイズは同じです。

エラトステネスのふるいで素数を求めるプログラム、
set of 0..maxint (32767)でコンパイル&実行できました。
最後の3つの素数 = 32717 32719 32749

537:デフォルトの名無しさん
03/04/25 08:52
>>536
エラトステネスのふるいって、集合型でどうやるんですか?
0 から n までの配列を用意して、素数なら true、合成数なら false にしていく、
というものだと思うんですが。


538:別人
03/04/25 08:59
set of Xもarray[X] of Booleanも、言語仕様上はともかく役割としては変わらないよ。
配列で A[i] → 集合で i in A
A[i] := True → Include(A, i)
A[i] := False → Exclude(A, i)

Adaなんか開き直ってBoolean配列に集合演算の能力持たせてるし。

539:デフォルトの名無しさん
03/04/25 09:07
やってることは配列を使うのと大差ない。
はじめに[2,3,4,5,6..maxint]という集合を用意しておいて
nの倍数を集合から除去していくだけ。

540:デフォルトの名無しさん
03/04/25 11:12
エラトステネスのふるい、集合型バージョン。こんなんでできました。

コンパイル・コマンド: gpc --standard-pascal --setlimit=65536 -o primenumber primenumber.p

program primenumber(input, output);
const
n = 65535;
var
prime : set of 0..n;
i : integer;
j : integer;
begin
prime := [0..n];
for i := 2 to n do
if prime >= [i] then
begin
j := i + i;
while j <= n do
begin
prime := prime - [j];
j := j + i;
end
end;
for i := 2 to n do
begin
if prime >= [i] then
writeln(i);
end
end.

541:デフォルトの名無しさん
03/04/25 11:16
空白が崩れた。スマソ。
program primenumber(input, output);
const
   n = 65535;
var
   prime : set of 0..n;
   i     : integer;
   j     : integer;
begin
   prime := [0..n];
   for i := 2 to n do
      if prime >= [i] then
      begin
         j := i + i;
         while j <= n do
         begin
            prime := prime - [j];
            j := j + i;
         end
      end;
   for i := 2 to n do
   begin
      if prime >= [i] then
         writeln(i);
   end
end.


542:デフォルトの名無しさん
03/04/25 11:32
>>541
&ensp;の嵐で何が書かれているのかさっぱりわからん。

543:デフォルトの名無しさん
03/04/25 12:02
>>542
あれ、そうですか。私 Opera なんですけど、大丈夫です。
ブラウザ依存なんでしょうか。すみません。


544:デフォルトの名無しさん
03/04/25 12:03
>>543
IE 6 では大丈夫です。


545:デフォルトの名無しさん
03/04/25 12:44
そうそう、>>541 の結果ですけれど、最後の 3 つは、65497、65519、65521 でした。


546:513
03/04/26 02:07
型T=set of 0..maxintの各元表記全体からmaxint+1ビットの符号無し整数への1対1写像は定義できるよな?
もし定義できるのならinteger型の範囲は遙かに越えてしまうな
で、更に(有限)整数上の加法と一致するように型T上の加法をうまく定義して…(略)
普通はintegerの配列で実現する多倍長整数とは一風変わった整数(環)が出来そう
これをリストに持たせてもっと大きな数に対する〜のふるいが…
工夫しないとメモリ不足になりそうだな
或いはset of -maxint..maxintを基数2の固定小数点表現とみなすのも面白そうだ
体調が回復したらやってみよう

547:デフォルトの名無しさん
03/04/29 18:56
We Love Pascal.

548:山崎渉
03/05/22 05:01
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―

549:山崎渉
03/05/28 12:52
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎―◎                      山崎渉

550:デフォルトの名無しさん
03/05/28 21:24
URLリンク(community.borland.com) のTP5.5のとこからTurboPascalのOOP入門が落とせる。
AppleのObject Pascalレポートの名前が書いてあるので、
やっぱObjectPascal="object"型のあるPascal、でいいらしい。

だからどうした、と言われると困るが

551:デフォルトの名無しさん
03/06/13 17:06
良スレの予感

552:デフォルトの名無しさん
03/06/26 22:36
その教科書のどこかにある list 型構造体の定義を見直してみてくれ。

553:デフォルトの名無しさん
03/07/03 18:50
Lazarusの落とし方がわからん...

554:デフォルトの名無しさん
03/07/03 20:20
初心者から質問です

10人分の学生の成績データを打ち込み、
次に10点区切りでヒストグラムを出力するプログラムを書こうとしています。
現在ヒストグラムの作り方がちとわかりません。どんな形のヒストグラムでもいいのでプログラムソースを教えてもらえないでしょうか?

555:デフォルトの名無しさん
03/07/03 20:34
if (点数 => 0) and (点数 < 10) then ヒストグラム[1] := ヒストグラム[1] + 1;
if (点数 => 10) and (点数 < 20) then ヒストグラム[2] := ヒストグラム[2] + 1;
...

と並べて書くとか。

556:デフォルトの名無しさん
03/07/03 20:39
>>554
学校の課題だろうと思うんで、ここでいきなり答えを書くのはちょっとね。
自分でどこまでやったん?

557:デフォルトの名無しさん
03/07/03 20:43
PROGRAM Histogram;
VAR
 data: ARRAY[1..5] OF INTEGER;
 i, j: INTEGER;
BEGIN
 data[1] := 0; data[2] := 1; data[3] := 4; data[4] := 2; data[5] := 1;
 FOR i := 1 TO 5 DO
  BEGIN
   Write('Fraction ' + IntToStr(i) + ':');
   FOR j := 1 TO data[i] DO
    Write('*');
   WriteLn;
  END;
END.

558:デフォルトの名無しさん
03/07/03 20:43
まず、「ヒストグラム」とは何か、わかっているか。
プログラムの流れとしては
(1)データの入力
(2)集計
(3)ヒストグラムの出力
に分かれるわけだが。

559:デフォルトの名無しさん
03/07/03 20:48
スマソ>556

560:デフォルトの名無しさん
03/07/03 22:42
集合型はフラグくらいにしか使ったことなかったけど
なかなかエレガントな使い方があるものだね
感心しますた

561:デフォルトの名無しさん
03/07/11 15:43
学校の課題で『ブラックジャック』作ることになったんですが
どなたか、教えていただけませんか。

562:デフォルトの名無しさん
03/07/11 21:34
>561
取り敢えず「手塚治虫」で検索しとけ。

563:デフォルトの名無しさん
03/07/12 23:44
>>561
カードゲームなら実際のカードを使って一人遊びすれば必要な構造が見えてくるぞ。

564:デフォルトの名無しさん
03/07/13 00:06
一人遊び? ハァハァ

565:名無し@沢村
03/07/13 00:08
>>562

取りあえずじゃねーんだよ!!
おまいはタンスとかあってなっとらんぞ!!!

URLリンク(jbbs.shitaraba.com)

566:デフォルトの名無しさん
03/07/13 00:11
A  U  T  H  O  R   D  A  T  A

本田 守さん

--------------------------------------------------------------------------------

名前
本田 守/ほんだ まもる

ハンドル
Mr.あねさん

ホームページ
URLリンク(www2.neweb.ne.jp)
URLリンク(hp.vector.co.jp)

MESSAGE
プログラムの勉強をはじめて1年とちょっとになります。まだまだ高度なものを作るには程遠いですが、先だっては某社のプログラミングコンテストに入賞させていただきました。

--------------------------------------------------------------------------------

S  O  F  T  W  A  R  E

--------------------------------------------------------------------------------

Windows95/98/Me/アミューズメント
●KIKU おど〜る
 音楽CDをかけるとキャラクターが踊ります

567:デフォルトの名無しさん
03/07/13 03:20
集合型にシフト演算子があったらなぁ

568:デフォルトの名無しさん
03/07/13 05:41
それは集合なのか?

569:デフォルトの名無しさん
03/07/13 12:46
ビットの集合です

570:ななしへたぐらま ◆XcB18Bks.Y
03/07/13 14:37
>>562
あの漫画の題名はトランプのそれとは無関係だそうです.

…じゃなくて,どうしてプログラミングを教えている学校の先生は
生徒の理解度を無視してこういう課題を出すのか理解に苦しみます.
とりあえず>561はじゃんけんゲームは作れますか?


571:561
03/07/14 00:38
>570
もちろん作れません
何かヒントでもいいんでおねがいします。

572:デフォルトの名無しさん
03/07/14 08:12
>>571
ゲームのルールをよく吟味して場にある有形、無形のものを列挙してみんさい

573:デフォルトの名無しさん
03/07/14 09:00
カードをとってくる関数と
勝敗を判定する関数と
手に持ったカードを表示する関数と
入力を受け付けてカードをとるか終了するか決める関数を書けばいい。

574:デフォルトの名無しさん
03/07/14 11:30
データ構造決めなきゃ片手落ち

575:デフォルトの名無しさん
03/07/14 13:50
綺麗なお姉さんのパイパンおま○こ生写真を発見!
URLリンク(plaza16.mbn.or.jp)

これはタマラン…(´Д`;)ハァハァ


576:561
03/07/14 14:05
>>573
関数が使っている教科書にあまり載ってないんで
何かいいサイトあったら教えてください

577:ななしへたぐらま ◆XcB18Bks.Y
03/07/14 14:46
>>571
簡単なゲームプログラムを解説したサイトか入門書を見つけてみて.

やりたい処理をプログラムというカタチにするというのは一番基本的な能力であり,
一つや二つのヒントで解決する問題ではありません.
でもこれさえクリアすればプログラミングは半分マスターしたようなものです.


578:デフォルトの名無しさん
03/07/14 16:06
ルール見たけど結構複雑。ま、そこまで要求してないのかもしれんが。
「無限デック使ってます」って言えばカードの残り考えなくてもすむかも。
(ハートのAが10枚出てきても知らんふり。)

579:山崎 渉
03/07/15 09:45

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄

580:デフォルトの名無しさん
03/07/23 20:52
良スレ保守

581:デフォルトの名無しさん
03/07/24 18:19
Pascalの集合型と混同してるのかな。このプログラムは集合型は関係ないよ。


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5388日前に更新/272 KB
担当:undef