基本情報過去問 平成31年春期 午後問8 設問2
にゅさん
(No.1)
設問2:プログラム1(副プログラムHuffman)序盤行について質問です。
〇整数型node[]の下にある・SortNode(size,parent,freq,nsize,node)はどういう意味でしょうか?
副プログラムSortNodeは下にあるので、まずは副プログラムHuffmanの処理を全て終えてから下の副プログラムSortNodeに移るイメージですが違うのですか?
これは余談ですが、基本情報技術者過去問題 平成22年春期 午後問8についても同じ疑問があります。
プログラムsortでも*プログラムsortの終わり*の手前にMerge(slist1,num1,slist2,num2,list)といった1つのプログラムの行内に別プログラムMergeが書かれているのは何を意味しているのですか?
長文で申し訳ないのですが、よろしくお願いいたします。
〇整数型node[]の下にある・SortNode(size,parent,freq,nsize,node)はどういう意味でしょうか?
副プログラムSortNodeは下にあるので、まずは副プログラムHuffmanの処理を全て終えてから下の副プログラムSortNodeに移るイメージですが違うのですか?
これは余談ですが、基本情報技術者過去問題 平成22年春期 午後問8についても同じ疑問があります。
プログラムsortでも*プログラムsortの終わり*の手前にMerge(slist1,num1,slist2,num2,list)といった1つのプログラムの行内に別プログラムMergeが書かれているのは何を意味しているのですか?
長文で申し訳ないのですが、よろしくお願いいたします。
2022.04.27 21:37
y4 kさん
★FE ブロンズマイスター
(No.2)
プログラミングの経験が余り無いとお見受けします。
それぞれの副プログラムを定義しているのです。
そして、Huffmanの中で、SortNodeを呼び出している記述です。
別にHuffman→SortNodeの順に実行する訳ではないですよ。
多くのプログラミング言語では、こうした副プログラム(関数と呼ぶことが多い)を複数用意して、機能を実現します。
そして、ある関数の中で、他の関数や自分自身を呼び出す事は普通にあります。
試験が終わった後でよいので、プログラミング言語のテキストなども軽く眺めてみれば、そういうものだと御理解して頂けると思います。
それぞれの副プログラムを定義しているのです。
そして、Huffmanの中で、SortNodeを呼び出している記述です。
別にHuffman→SortNodeの順に実行する訳ではないですよ。
多くのプログラミング言語では、こうした副プログラム(関数と呼ぶことが多い)を複数用意して、機能を実現します。
そして、ある関数の中で、他の関数や自分自身を呼び出す事は普通にあります。
試験が終わった後でよいので、プログラミング言語のテキストなども軽く眺めてみれば、そういうものだと御理解して頂けると思います。
2022.04.27 22:29
chihiroさん
★FE プラチナマイスター
(No.3)
>〇整数型node[]の下にある・SortNode(size,parent,freq,nsize,node)はどういう意味でしょうか?
意味は2つあります。
1つ目は要素組の整列です。Huffman開始時点では要素組は節の値の昇順に整列されていないので、SortNode(の中のSort)で整列させる必要があります。
2つ目はnsizeの値の確定です。ループ処理前にSortNodeを実行してnsizeの値を確定させておかないとループ処理に入れなくなります(nsize≧2という判定があるため)。
>プログラムsortでも*プログラムsortの終わり*の手前にMerge(slist1,num1,slist2,num2,list)といった1つのプログラムの行内に別プログラムMergeが書かれているのは何を意味しているのですか?
これは単に分割したデータを併合するためです。どういう動きをするかは実際にトレースして確かめてください。
2022.04.27 22:36
y4 kさん
★FE ブロンズマイスター
(No.4)
この投稿は投稿者により削除されました。(2022.04.27 22:46)
2022.04.27 22:46
にゅさん
(No.5)
別プログラムを途中で呼び出していたんですね!少し気持ちがラクになりました。トレース頑張ります!ありがとうございます!
2022.04.28 08:06
広告
返信投稿用フォーム
スパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。
広告