Pascal の初心者用の質問・相談所

このエントリーをはてなブックマークに追加
929げんげんげんげん:04/02/08 04:49
分布関数 F(x)=x^n(0<x<1)
をもつ乱数を発生させるプログラム誰か教えてください!!
お願いいたします。
nは定数?
Exp(x * Ln(n));
//n>0のときのみ
それじゃあx^nにならない?
↑は「それじゃあn^xにならない?」の間違い
そうなると思うならxとnを逆にしたらいいんじゃないかとか考えないのか
934930.931:04/02/08 17:59
>>933
いや、俺は>>929じゃないから。
俺が>>933のように考えたとしても、何の意味もないじゃんか。
名前からしても別人である可能性が高いのに。釣りか?
>>934
なんか番号間違えまくってないか?
>>935
1つも間違ってない
937930:04/02/09 17:38
930≠931ですが何か?
>>918 の回答じゃだめなのかなぁ?
http://pc2.2ch.net/test/read.cgi/tech/1078885169/
なんか、次スレたってるぞ
Pascal の言語仕様書(のようなもの)はどこかのサイトで閲覧できますか?

Pascal の言語が一通りわかれば良いのですが。
>>940
Pascalって言っても方言から拡張まで何でもありだから、対象の開発環境によってまるっきり違いそうな気がする。
それに言語仕様といっても厳密に書き出すと膨大な量になるから、あまりやっているところはないんじゃないかな。

一通りということなら、入門サイトでも見たらどうかな?
私は本(WirthのPascal本)から入ったのでサイトを紹介することはできないけど。
http://www.jisc.go.jp/app/pager
ここで検索すればJIS標準Pascalの仕様書がPDFで閲覧できるはず。
適当に弄ればPDFのDLもできる。
943942:04/04/28 01:30
上のURLだと見れんみたい
トップページから「JIS検索」たどってくれ
とりあえずはANS/JISの標準化された古い仕様だけだよね。
その後のオブジェクト指向方面の拡張はAppleのとBorlandので違うもんねぇ。
gpcはBorlandに近いんだっけ?
>>941-944
どうもです。
いま直接関係しているのが Pascal の方言なので、サイトとかを見て回ってみます。

946デフォルトの名無しさん:04/05/15 21:02
perlのハッシュのようにキーと要素を扱わせることは出来ないでしょうか?
iniファイルのようにキーがたびたび変更される場合を扱いたいのです
947946:04/05/15 21:07
すいません・・・思いっきり上の方で連想配列の話題がありましたね
忘れてください
>>946
「キーがたびたび変更されるのでそれに対応する」んじゃなくて「キーがたびたび変更されないように(もしくは変更されても簡単に対応できるように)プログラミングする」のが良いと思う。

キーを作るプログラムが他のだと手の出しようもないけど、自分で作るのならデータ構成、プログラミングで対応できそうな気がする。
949デフォルトの名無しさん:04/06/25 01:20
レベルの低い質問で申し訳ないんですけど
大学の授業で先週からpascalやってるんですけどわけがわからなくなってるんで
家でpascalの勉強をしたいんですけどどうすれば自宅のパソコンで使えるようになるんですか?
OSはウインドウズXPなんですけど。
CDとかで売ってたりするんですか?
>>1のサイトでダウンロードしてもインストールすることができないし
何をどうすれば自宅のパソコンでpascalが使えるようになるんですか?




>>949
大学の授業ってんならgnu-pascal(gpc)当たりが正当かと思うが、
borlandのサイトからdelphiの無償版が落とせる。
またFreePascal(fpc)というのも割りとメジャーだ。
ttp://www.freepascal.org/
ttp://www.jp.freepascal.org/mirror/fpc/download.html
>>949
>>950が言う通りだと思うけど、その教授に自習したいから処理系教えれ!って聞くのがいいんじゃなかろうか?
学校のマシンが何かのUnix系の端末でgpcってオチが一番ありそうな気はするけども。
Cygwinあたりを突っ込んで(SFUとかU-WinとかMinGWとかでも構わんかもしれんけど)自力でgpcを入れるとかなのかな?

 後、大学生なら
ttp://www.pascal-central.com/
あたりとりあえず眺めてみるのもお勉強になるかもね。
って、情報系でもなんでもなくてマジわけわかんね〜〜〜〜〜!!!とかだとこういう情報過多なサイトは遠慮しとくベキ?


>>949
Bloodshed Software - Dev-Pascal
http://www.bloodshed.net/devpascal.html
953949:04/06/27 00:50
>>950-952
レスありがとうございます。
とりあえずFreePascal(fpc)というのを試してみます。
954大学生:04/07/20 22:04
√cの近似値をニュートン法で求めるプログラムと、
二分法でfor文を使って求めるプログラム、
さらに二分法で求めたものを再帰的手続きにより求めるプログラムを
テストで出されるそうなのですが、まったくわかりません・・。
なんとか助けていただけないでしょうか??
よろしくお願いします!!!
車の運転ができない人に免許をとらせても世の中のためになりません。
以上
筆記試験か。すごいね。穴埋めになるのかな。
再帰的二分法。のアイデア。

function 再帰で開平を求める関数(c: real);

function 実際の再帰で開平を求める関数(範囲の最低値, 範囲の最高値: real);
var 二分点: real;
begin
二分点 := (範囲の最低地 + 範囲の最高値)/2;
if (二分点 * 二分点) < c then result := 実際の再帰で開平を求める関数(二分点, 範囲の最高値)
else (二分点 * 二分点) > c result := 実際の再帰で開平を求める関数(範囲の最低値, 二分点)
else result := 二分点;
end;

begin
 実際の再帰開平を求める関数(0, c)// 初期値は 0 から c までとする。
end;
958デフォルトの名無しさん:04/07/26 01:12
レポートが出たのですが、全く分かりません↓
 LD A−Aをレジスターに格納する
 ST A−レジスターの中身をAに格納
 AD A−レジスターの中身とAを足して、レジスターに格納
 SB A−レジスターの中身とAを足して、レジスターに格納
 ML A−レジスターの中身とAを掛けて、レジスターに格納
 DV A−レジスターの中身をAで割って、レジスターに格納
接尾辞表現で ABC*+DE-/(普通に書いたら(A+B*C)/(D-E))と入力して
上の指示表現を使って答えを解いていくための別のプログラムを書くとしたら
 LD B
 ML C
 ST TEMP1
 LD A
 AD TEMP1
 ST TEMP2
 LD D
 SB E
 ST TEMP3
 LD TEMP2
 DV TEMP3
 ST TEMP4
と表示できるようなプログラムをpascalで作りなさい。という内容です。
ヒント 式を順にスタックに入れていって、
    最初のBC*はop2:=c;op1:=b;として、取り出していくそうです
人助けだと思ってお願いします(ToT)/~~~
オレニマカセロ!

とはいうものの、処理系手に入れるまで待ってね。
ずれてたらごめん

1→2→3→4→5→6→7→8→9→α→β→γ→δ
      *   +       −   / 
A B C C X X Y D E E Z Z W
  A B B A A   Y D D Y Y
    A A         Y Y


4: (B * C -> X) => (LD B / ML C / ST TEMP1)
6: (A + X -> Y) => (LD A / AD TEMP1 / ST TEMP2)
α: (D - E -> Z) => (LD D / SB E / ST TEMP3)
γ: (Y / Z -> W) => (LD TEMP2 / DV TEMP3 / ST TEMP4)

961デフォルトの名無しさん:04/07/27 14:16
どうもありがとうございました(*^_^*)頑張ってやってみます♪
962デフォルトの名無しさん:04/08/09 10:05

現在、Pascalによるプログラムが実用されている所ってあるんですかね。

どっかの工場のPCで動いてるとか。
>>962
君の知らない「あそこ」で動いている。
秘主義務があるので具体的な内容は話せない。
http://matrixengine.jp/product/d_loca/dloca_html/dloca_taiken.html

これもPascalみたい。
体験版あるみたいなのでPascal詳しい人試してみて意見聞かせてほしいです。

> 当時は Borland(現 Inprise)の Turbo Pascal が人気のコンパイラでした。私も一時はそればかり使っていま
> した。しかし,世の中は ANSI C に移ろうとしていた頃です。私はまむしさんより一歩先に Turbo Pascal を捨
> てて Turbo C に移行しました。

ttp://oku.edu.mie-u.ac.jp/~okumura/compression/1988.html
>>962
私はngraphを現役で使っています。
>>966

研究室のMS-DOS機ですか?
968966:04/08/21 22:50
一応Win95が動いているマシンです。
あとアドインプログラム書くのでコンパイラも時々動かしてます。
969デフォルトの名無しさん:04/08/22 03:48
大学院入試のアルゴリズムとデータ構造でPascalで書かれた問題があるのですが、
Pascalは詳しくやってないのでよくわかりません。二分探索木の問題で
type tree = @node;
   node = record;
      element:integer;
      left,right:tree;
end;
で2分木のデータ型treeを定義しているのですが、これはC言語で書くと
struct node{
   int element;
   struct node *right,*left;
};
struct node *tree;
といった感じのイメージでいいのでしょうか(Cの方の文法も間違ってるかも…)。
>>969
あ、Pascalの方の2行目recordと4行目treeの後ろにセミコロン;はありませんでした。
すみません。
あってるよ
ありがとうございます。ここでtree型の変数pのelementの部分にアクセスするためには
Pascalではどう書けばいいのでしょうか?
あ、あと問題の一部に(pはtree、xはintegerです)
if p=nil then begin
   new(p);
   with p do begin
   (穴埋問題) :=x;
   left :=nil;right :=nil;
   end
end
ってのがあったんですが、with p って何ですか?
>>972-973
pがtree型ならそいつの指すnode型のブツをゲットする必要があるから例えば
p^.element
だな。Cの
(*p).element
に相当する書き方。

withの意味は自分で調べれよ。それで分からないところだけ質問しる。

ところで、そこの「with p」は「with p^」 が正しいと思うがどうか。
975969=970=972=973:04/08/22 15:44
>>974
ありがとうございます。問題文を見直した所、with p と書かれています。問題の間違いですかね?
with文についてググったのですが
「Pascalでレコードのメンバーを扱うには「レコード名.メンバー名」という書式を使うが、
レコード名をある程度省略する方法がある。それにwithを使う。
withの内部では「メンバー名」を書くだけで、そのレコードのメンバーが参照できる。」とありました。
例えば穴埋問題の部分には(p^)のelementメンバにxを代入したいわけですが、
ここは「(p^).」を付けずに element := x; と書ける、ということですか?
書けるとしたら、p^.elementと書くのは間違いとなるのでしょうか?
976上とは別人:04/08/22 16:42
>>969 のtype tree = @node;は、type tree = ^node; じゃないのかなあ…まあ、Pascalも方言多いから何とも言えんけど
with p or with p^も、Delphiなんかじゃrecordへのポインタに直接"."を続けられるから間違いとも言い切れ無さげ…
あと、withは、名前を探す順番を変えるだけなので、p^.elementももちろん書ける…私の知ってるPascalであれば…
>>976
ありがとうございました。
@については、ここ数年分見ましたが、同様の問題では全て@node;のような書き方をしていました。
別な方言なんでしょうね。
>>976

PASCALのJIS規格では「@」は「^」の代替表現なので、とりあえず
どっちで書いても同じです。Delphiでは意味が違いますが。

「with p」は規格としては「with p^」でないとまずいでしょう。
もちろん「with p」と書ける処理系は存在するかもしれませんが,
すくなくとも GNU Pascal ではだめでした。