1 名前:デフォルトの名無しさん [02/01/02 01:46] Pascal の初心者用の質問・相談所 コンソールのみ。GUI は扱いません。 「Cをやったけど難しいので、やっぱりPascalからぼちぼちやるぅ」という人向け。 コンパイラダウンロード www.vector.co.jp/vpack/filearea/win95/prog/pascal/index.html ちなみにDelphiは 「モナーの *やさしい* Delphi質問スレ」 pc.2ch.net/test/read.cgi/tech/1003113413/
477 名前:デフォルトの名無しさん mailto:sage [03/01/19 02:08] constって何なんですか?
478 名前:デフォルトの名無しさん mailto:sage [03/01/19 19:22] たしかサリエヌの友人だったと思います
479 名前:デフォルトの名無しさん mailto:sage [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 名前:山崎渉 mailto:(^^)sage [03/01/23 21:53] (^^)
481 名前:477 mailto:sage [03/01/26 02:18] >>479 すいません なかなか書き込むひまがありませんでした レスありがとうございました
482 名前:デフォルトの名無しさん mailto:sage [03/01/28 10:04] www.makie.com/ja/makitips/pascalfun.html Mac用だがここで紹介されているThinkPascalってどうよ? 少しやってみたが、英版なのでエディタで日本語が表示できん・・・
483 名前:デフォルトの名無しさん [03/01/29 00:31] CarbonLibは使えるんだろうか
484 名前:デフォルトの名無しさん mailto:sage [03/01/30 12:01] 上のリンク見る限りでは無理そうだね。 別途コード戦士が必要みたい。 でもそれだったら最初からコード戦士でやった方が良い罠。
485 名前:デフォルトの名無しさん [03/02/02 04:46] >>484 これでいけるのではないでしょうか。 Carbonized Port of THINK Pascal TCL pascal-central.com/carbon-tcl.html
486 名前:デフォルトの名無しさん mailto:sage [03/02/02 05:03] test
487 名前:デフォルトの名無しさん mailto:sage [03/02/04 11:45] >>298 が全然わかんねぇ…(´д`;)
488 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [03/02/06 10:33] おお、神!(´д`;)アリガd
490 名前:デフォルトの名無しさん [03/02/10 20:53] Pascalって実用性無いのに勉強しても平気でしょうか?
491 名前:デフォルトの名無しさん mailto:sage [03/02/11 03:47] えーと…、まあ、これからやるならやめときなさい。 Eiffelをお薦めしよう。
492 名前:レイホウ@6歳 mailto:sage [03/02/13 04:49] >>490 C++を勉強しなさい C#はだめだぞ Gnu CppならLinuxでも使用可能だ えいめ〜ん
493 名前:デフォルトの名無しさん [03/03/08 12:55] はげしくホッシュ
494 名前:デフォルトの名無しさん mailto:sage [03/03/08 13:23] >>490 Pascalを勉強する価値がないとしたらそれは 実用的では無いからではなく時代遅れだから。 昔は教育用言語として教えられてはいたけど 今ではJavaとSchemeに取って代わられたよ。
495 名前:デフォルトの名無しさん mailto:sage [03/03/08 13:23] と、一ヶ月前のレスに混じれ酢してみました。
496 名前:デフォルトの名無しさん [03/03/29 11:11] 10年程前にPC-DOS+Turbo Pascal 7で作ったプログラムを動かしたいのですが、困ったことに最近のパソコンはEMSメモリが使えないものが多いのです。 新型パソコンでEMSメモリ使用可能なものがあったら教えてください。
497 名前:デフォルトの名無しさん mailto:sage [03/03/29 11:14] DOS 上で動かすか、エミュレータ上で動かせば。
498 名前:デフォルトの名無しさん mailto:sage [03/03/29 11:21] >>496 DOS5.0の時とかXMSをEMM386でEMSに化けさせてたと記憶してるけど。
499 名前:デフォルトの名無しさん [03/04/01 21:59] 496です。 497さん498さんレスありがとうございます。 >DOS 上で動かすか、エミュレータ上で動かせば。 ハードの問題なのでどちらの方法でも動かないのでは? システムコマンダーでWinとDosのデュアルブートにするつもりなのですが
500 名前:デフォルトの名無しさん mailto:sage [03/04/01 22:08] >>499 間を取ってWindows3.1とかどうだ? って言うかVMWareでも使った方が楽ちんな予感。
501 名前:デフォルトの名無しさん mailto:sage [03/04/01 22:21] EMS だけの話なら EMS をエミュればOK! 昔やった記憶があるが具体的には忘れた。 ただ楽するなら、500(おめ!)さんの 言うようにVMWareでも使った方がいい。
502 名前:デフォルトの名無しさん mailto:sage [03/04/02 09:02] 現在Pascal勉強中の初心者です。 Pascalって実用性が無いんですか? CGIをやるのに適してるって聞いたんだけど・・・
503 名前:デフォルトの名無しさん mailto:sage [03/04/02 12:48] 趣味でやるぶんにはかまわないでしょ。
504 名前:デフォルトの名無しさん mailto:sage [03/04/02 14:04] 実用性はあるが、CGIってのは多分Perlと混同してる(w Pure Pascalじゃなくて有償版Delphi/Kylixなら高機能なCGIも作れないでもない
505 名前:デフォルトの名無しさん mailto:sage [03/04/02 23:07] >Pure Pascalじゃなくて有償版Delphi/Kylixなら高機能なCGIも作れないでもない アホがいます。
506 名前:デフォルトの名無しさん mailto:sage [03/04/02 23:14] WebSnapとかIntraWebとか、まあ知らないなら知らないでいいけどさ
507 名前:デフォルトの名無しさん mailto:sage [03/04/03 06:10] >>506 何でもかんでもライブラリがないと何もできないかわいそうな人がいます。
508 名前:ななしへたぐらま ◆XcB18Bks.Y mailto:sage [03/04/12 16:13] こういう書き込みの後でなんですが, Cのscanfに相当する機能を実現する関するのライブラリって どこかにありませんでしょうか. 以前自作したのですが作りが下手なのか処理が重すぎて…. テキスト解析はちゃんと本を読んで勉強しないとダメかな.
509 名前:デフォルトの名無しさん mailto:sage [03/04/12 20:05] >>508 > Cのscanfに相当する機能を実現する関するのライブラリって > どこかにありませんでしょうか. scanf のソース見てポーティングすればいいとおもうけど。 可変引数の扱いをどうするかが問題かと思うが。
510 名前:デフォルトの名無しさん mailto:sage [03/04/12 20:58] >>509 オープン配列とかで何とかならない?
511 名前:山崎渉 mailto:(^^) [03/04/17 15:47] (^^)
512 名前:ななしへたぐらま ◆XcB18Bks.Y mailto:sage [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] homepage.mac.com/ayaya16/
515 名前:デフォルトの名無しさん mailto:sage [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] www.gnu.org/brave-gnu-world/issue-12.ja.html より: 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 名前:デフォルトの名無しさん mailto:sage [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とその応用 www.saiensu.co.jp/books-htm/ISBN4-7819-0507-2.htm
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] homepage.mac.com/hitomi18/
525 名前:デフォルトの名無しさん mailto:sage [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 マニュアルでつ。 www.gnu-pascal.de/gpc/index.html
530 名前:513. [03/04/25 06:58] >>527 多分それは各要素に不定値を表すビットが含まれているんじゃないかと。
531 名前:デフォルトの名無しさん [03/04/25 07:04] GNU Pascal で c : set of -10..65535; とおりました。
532 名前:デフォルトの名無しさん mailto:sage [03/04/25 07:05] >>530 単に2byte単位でしか割り当て出来ないだけのような
533 名前:513. [03/04/25 07:14] >>530 そういわれればそうだな。はやとちりでした。 実行環境に適切な境界迄余分なバイトが詰められるのは構わないです。
534 名前:デフォルトの名無しさん [03/04/25 07:26] www.k-514.com/
535 名前:デフォルトの名無しさん [03/04/25 08:09] GNU Pascal で set -65535..65535 は gpc --standard-pascal --setlimit=131071 でとおりました。
536 名前:521 mailto:sage [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 名前:別人 mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [03/04/29 18:56] We Love Pascal.
548 名前:山崎渉 mailto:(^^) [03/05/22 05:01] ━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―
549 名前:山崎渉 mailto:(^^) [03/05/28 12:52] ∧_∧ ピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。 =〔~∪ ̄ ̄〕 = ◎――◎ 山崎渉
550 名前:デフォルトの名無しさん mailto:sage [03/05/28 21:24] community.borland.com/museum/ のTP5.5のとこからTurboPascalのOOP入門が落とせる。 AppleのObject Pascalレポートの名前が書いてあるので、 やっぱObjectPascal="object"型のあるPascal、でいいらしい。 だからどうした、と言われると困るが
551 名前:デフォルトの名無しさん mailto:age [03/06/13 17:06] 良スレの予感
552 名前:デフォルトの名無しさん mailto:age [03/06/26 22:36] その教科書のどこかにある list 型構造体の定義を見直してみてくれ。
553 名前:デフォルトの名無しさん mailto:sage [03/07/03 18:50] Lazarusの落とし方がわからん...
554 名前:デフォルトの名無しさん [03/07/03 20:20] 初心者から質問です 10人分の学生の成績データを打ち込み、 次に10点区切りでヒストグラムを出力するプログラムを書こうとしています。 現在ヒストグラムの作り方がちとわかりません。どんな形のヒストグラムでもいいのでプログラムソースを教えてもらえないでしょうか?
555 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [03/07/03 20:48] スマソ>556
560 名前:デフォルトの名無しさん mailto:sage [03/07/03 22:42] 集合型はフラグくらいにしか使ったことなかったけど なかなかエレガントな使い方があるものだね 感心しますた
561 名前:デフォルトの名無しさん [03/07/11 15:43] 学校の課題で『ブラックジャック』作ることになったんですが どなたか、教えていただけませんか。
562 名前:デフォルトの名無しさん mailto:sage [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 取りあえずじゃねーんだよ!! おまいはタンスとかあってなっとらんぞ!!! jbbs.shitaraba.com/computer/7294/
566 名前:デフォルトの名無しさん mailto:sage [03/07/13 00:11] A U T H O R D A T A 本田 守さん -------------------------------------------------------------------------------- 名前 本田 守/ほんだ まもる ハンドル Mr.あねさん ホームページ www2.neweb.ne.jp/wd/wonder/ hp.vector.co.jp/authors/VA015412/ MESSAGE プログラムの勉強をはじめて1年とちょっとになります。まだまだ高度なものを作るには程遠いですが、先だっては某社のプログラミングコンテストに入賞させていただきました。 -------------------------------------------------------------------------------- S O F T W A R E -------------------------------------------------------------------------------- Windows95/98/Me/アミューズメント ●KIKU おど〜る 音楽CDをかけるとキャラクターが踊ります
567 名前:デフォルトの名無しさん [03/07/13 03:20] 集合型にシフト演算子があったらなぁ
568 名前:デフォルトの名無しさん mailto:sage [03/07/13 05:41] それは集合なのか?
569 名前:デフォルトの名無しさん [03/07/13 12:46] ビットの集合です
570 名前:ななしへたぐらま ◆XcB18Bks.Y mailto:sage [03/07/13 14:37] >>562 あの漫画の題名はトランプのそれとは無関係だそうです. …じゃなくて,どうしてプログラミングを教えている学校の先生は 生徒の理解度を無視してこういう課題を出すのか理解に苦しみます. とりあえず>561はじゃんけんゲームは作れますか?
571 名前:561 mailto:sage [03/07/14 00:38] >570 もちろん作れません 何かヒントでもいいんでおねがいします。
572 名前:デフォルトの名無しさん [03/07/14 08:12] >>571 ゲームのルールをよく吟味して場にある有形、無形のものを列挙してみんさい
573 名前:デフォルトの名無しさん mailto:sage [03/07/14 09:00] カードをとってくる関数と 勝敗を判定する関数と 手に持ったカードを表示する関数と 入力を受け付けてカードをとるか終了するか決める関数を書けばいい。
574 名前:デフォルトの名無しさん [03/07/14 11:30] データ構造決めなきゃ片手落ち
575 名前:デフォルトの名無しさん [03/07/14 13:50] 綺麗なお姉さんのパイパンおま○こ生写真を発見! plaza16.mbn.or.jp/~satchel/omanko_marumie/ これはタマラン…(´Д`;)ハァハァ
576 名前:561 mailto:sage [03/07/14 14:05] >>573 関数が使っている教科書にあまり載ってないんで 何かいいサイトあったら教えてください
577 名前:ななしへたぐらま ◆XcB18Bks.Y mailto:sage [03/07/14 14:46] >>571 簡単なゲームプログラムを解説したサイトか入門書を見つけてみて. やりたい処理をプログラムというカタチにするというのは一番基本的な能力であり, 一つや二つのヒントで解決する問題ではありません. でもこれさえクリアすればプログラミングは半分マスターしたようなものです.