- ベストアンサー
擬似言語 素朴な疑問
こんばんは。 来春の試験に向けてアルゴリズムを勉強中ですが、初歩的なところでつまづいています。 ○のついた宣言文の表記規則について 1.変数、配列 ○プログラム名 に続いて()の中に記述されてあるもの と○に後続して記述されてあるものは、何が違うのでしょうか。 プログラムの中での役割なのか、、適当にわかりにくくするためなのか。。 2.配列の要素数 配列名のあとに続く[]には、要素数を入れるよう説明していましたが、 擬似言語の問題文を見ると、大半が[]の中は空白です。これは 「要素数は[]に表記します」という意味で、表記するしないは任意なのでしょうか?それとも、要素数表記は必須だけども[]のあとにnなどという変数が表記されている場合、[]の中は空白でよろしいということなのでしょうか? うまく整理できませんが、ご質問に返答できる方いらしゃいましたらお助けください。。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
その前に、言語は何で受験の予定ですか? すでに勉強され始めていますか? なんというか、プログラミングを一切経験したことがない方に感じます。 少し経験すれば、擬似言語もすんなり理解できると思います。 実際に動かすことができない擬似言語だけとにらめっこしていてもなかなか理解も進まないと思いますよ。 CでもJavaでもいいので、実際に動かせる言語で少し勉強されることをお勧めします。 1つ目の質問はすでに解決していると思うので、2つ目に付いて。 わかりにくくするために、ということはありえません。 何か理由があるはずです。 おそらく[]の中に数字がないものは型の宣言だと思います。 ようは箱です。その箱には配列を格納できることを意味します。 配列の数が何個かということは、箱には関係ありません。 で、次に、その箱に入れる配列の実態の宣言があるのだと思います。 それは実態であるので、何個かということが重要になります。 わかりますかね…。 この辺は大体どの言語でも共通していることです。JavaでもVBでも。 もしわからない場合には、やっぱり実言語の勉強を先にされることをお勧めします。
その他の回答 (3)
- kashira
- ベストアンサー率33% (3/9)
まず、これは基本情報の擬似言語の質問ですよね。 そうであれば、質問のところに基本情報の擬似言語について教えてください と書かないと、基本情報を受けたことのない人は何を質問しているかわかりませんよ。 (情報処理技術者全般の掲示板なので、基本情報を受けていない人も結構います) 1.についてはNo.2の方の説明でわかっているかもしれませんが、念のため説明します。 ○プログラム名:insert(実数型:n)、○実数型:k と書くとこのinsertという 副プログラムがよそから渡される引数がnで、中で使う変数がkという定義になります。 プログラム名:insert(実数型:n、実数型:k)と書くと、insertがよそから渡される 引数がnとkの2つという定義になり、まったく意味が変わってしまいます。 引数と変数の違いを理解されていないようなので、一般的なプログラムの本を読まれる ことをお勧めします。 2.についても、「擬似言語の問題文を見ると、大半が[]の中は空白です。」と書かれて いるのは、引数のことではないですか。引数には要素数を書きません。 ちゃんとした回答が欲しければ、XX年午後1の問4のXX行目に ~と書いてありますが 括弧の中が空白なのはなぜですかというように具体的に質問をしないとあなたが何を 知りたいのか理解してもらえませんよ。
お礼
ありがとうございます。 また、質問の内容、文面に不備があった旨、反省しています。 引数と変数の違いが不確定だったことが理解を妨げていたようです。 プログラミングの基礎の本を精読したいと思います。
- ymmasayan
- ベストアンサー率30% (2593/8599)
参考URLの5.副プログラムを見てください。 ○副プログラム(HAI[],SumA,SumB) ○整数型:I となっています。 引数が3つでHAIは配列を受け取ることのみ宣言しています。 次のIは引数ではなく、副プログラムの中に変数エリアを確保します。 引数の場合は副プログラムでなく、呼び出し元が変数や配列のエリアを準備しています。
お礼
回答ありがとうございます。 副プログラムかメインプログラムかにもよるのでしょうか。 この辺はもう少し勉強を進めたいと思います。 勉強不足を実感する今日この頃です。
- majesticbaby
- ベストアンサー率24% (45/182)
プログラムを確認できないのではっきりとはいえませんが…。 1、 ○プログラム名:keisan(a,b,c) といった具合に記述されているものを考えればよいのでしょうか? だとしたら「プログラム『keisan』において引数としてa,b,cを用いる」という解釈でよいかと思われます。 a,b,cの内容については、通常は問題文中で定義されていると思います。 2、 プログラム中に配列の要素が書かれていない場合も、問題文の中で定義がなされているかと思います。 要素が複雑な場合は擬似言語で表すのが難しいためでしょう。 なにぶん僕も勉強中の身ですのでわかりづらい点・説明不足などあるかと思われますが、参考になれば幸いです。
補足
回答ありがとうございます。 書き方が不適切でしたので、1を訂正します。 1.変数、配列の表記について a)○プログラム名 に続いて()の中に記述されてあるもの ex)○プログラム名:insert(実数型:n) b)○のあとに直接表記されてあるもの ex)○実数型:k aとbの違いはなんでしょうか?という内容でした。 私だったら、わざわざ表記を分けずに ○プログラム名:insert(実数型:n、実数型:k) としてもよさそうに思うのですが、分けて表記する理由がいまひとつわからないのです。。
お礼
回答ありがとうございます。選択言語は、プログラミング経験が一切ありませんので、CASLをと安直に考えています。 しかし、ご回答により、私の疑問は解決しました。 >[]の中に数字がないものは型の宣言だと思います。 >ようは箱です。その箱には配列を格納できることを意味します。 >配列の数が何個かということは、箱には関係ありません。 >で、次に、その箱に入れる配列の実態の宣言があるのだと思います。 >それは実態であるので、何個かということが重要になります 大変助かりました、。ありがとうございます。