Pascal の初心者用の ..
[2ch|▼Menu]
970:デフォルトの名無しさん
04/08/22 03:50
>>969
あ、Pascalの方の2行目recordと4行目treeの後ろにセミコロン;はありませんでした。
すみません。

971:デフォルトの名無しさん
04/08/22 03:51
あってるよ

972:デフォルトの名無しさん
04/08/22 03:57
ありがとうございます。ここでtree型の変数pのelementの部分にアクセスするためには
Pascalではどう書けばいいのでしょうか?

973:デフォルトの名無しさん
04/08/22 04:09
あ、あと問題の一部に(pはtree、xはintegerです)
if p=nil then begin
   new(p);
   with p do begin
   (穴埋問題) :=x;
   left :=nil;right :=nil;
   end
end
ってのがあったんですが、with p って何ですか?

974:デフォルトの名無しさん
04/08/22 08:42
>>972-973
pがtree型ならそいつの指すnode型のブツをゲットする必要があるから例えば
p^.element
だな。Cの
(*p).element
に相当する書き方。

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

ところで、そこの「with p」は「with p^」 が正しいと思うがどうか。

975:969=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であれば…


977:デフォルトの名無しさん
04/08/22 17:08
>>976
ありがとうございました。
@については、ここ数年分見ましたが、同様の問題では全て@node;のような書き方をしていました。
別な方言なんでしょうね。

978:デフォルトの名無しさん
04/08/25 10:56
>>976

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

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





979:デフォルトの名無しさん
04/08/31 03:47
スレさようなら

980:デフォルトの名無しさん
04/08/31 03:51
980!

981:デフォルトの名無しさん
04/08/31 14:51
落ち

982:デフォルトの名無しさん
04/08/31 22:42
夏とともに、さよなら・・・。


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

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