• ベストアンサー

基本情報処理試験・午後・疑似言語について

平成17年春 問4 http://情報処理試験.jp/FE17a-pm/t04.html 上記URLの問題に、HerpSort関数があり、その関数内に以下のループがあります。 ■Idx: Num, Idx > 1,-1 | ・Swap(1, Idx) | ・MarkHeap(1, Idx-1) ■ ループ条件式に「Idx: Num」とありますが、どういう意味でしょうか? 変数Idxの値が、何らかの条件でNumになるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • YEND77
  • ベストアンサー率56% (21/37)
回答No.1

変数: 初期化, 継続条件, 計算 c言語的に書くと for ( Idx = Num; Idx > 1; Idx --) みたいな感じ。。。

androp
質問者

お礼

助かりました。for文でしたか。 ありがとうございます!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 基本情報処理試験(午後)疑似言語について

    平成17年春 問4 http://情報処理試験.jp/FE17a-pm/t04.html 上記URLの問題に、HerpSort関数があり、その関数内に以下のループがあります。 ■Idx: Num, Idx > 1,-1 | ・Swap(1, Idx) | ・MarkHeap(1, Idx-1) ■ ループ条件式に「Idx: Num」とありますが、どういう意味でしょうか? 変数Idxの値が、何らかの条件でNumになるのでしょうか?

  • 基本情報処理試験H22年秋期午後について

    基本情報処理試験の過去問について質問です。 H22年度秋期の午後試験〔問8〕のプログラムが読めずに困っています。 問題には二つの値の積を求めるとあるのですが、 プログラム2については何をしているのか理解できません。 数値を代入して追っていくと、積は求める事ができるのですが、内容を理解したいと考えています。 このプログラムを解読できる方、アドバイスお願いします。 過去問URL http://情報処理試験.jp/FE22b-pm/t08.html

  • 22年春 基本情報処理試験 問8 マージソート

    22年春の基本情報処理試験 、問8のマージソートが解らないでいます。 設問2で与えられている、3、8、2、7、5、1という値を関数Sortに渡し、 これを実行すると、 一番最初に関数Mergeが実行される時に、関数Mergeに渡される引数は、 slist1 = 8、num1 = 1、slist2 = 2、num2 = 1になりますよね? それで、関数Mergeを実行して、list[] = {2,8} が返却されるところまでは、 理解できるのですが、その後の動きがわかりません。 僕はいくら考えても、ここで終わっちゃうんです。 どの関数に、どの引数を渡してあげればよいのでしょうか… どなたか教えて下さい。 よろしくお願いします。

  • 基本情報試験の過去問が解けません

    基本情報試験の平成17年度春期の午後問題の問4の設問3について 質問があります。 なぜ回答がこのようになるのか理解ができません。。 力不足ですが、何かヒントをお願いします。 http://xn--n9q36mh1hnxuksz7wt.jp/FE17a-pm/index.html

  • 基本情報 14年秋期午後問(2)について

    こんにちは、2010年10月の基本情報技術者試験を受験して 午後試験で 50.50点だったものです。 趣味でプログラミングをしていて、 JavaScriptでポーカーを再現し、 同じくJavaScriptで音声は出ませんが、 http://sdin.jp/browser/casino/blackjack/ と同様の動作をするブラックジャックを作るくらいです。 ( CGI, サーバーのことはよくわかりません。) 現在 暇な時間をみて、4月の同試験の受験に向けて勉強しているのですが、 わからないことが出てきましたので、質問させていただきます。 以下のサイトをコピペして、みていただきたいのですが・・・ http://情報処理試験.jp/FE14b-pm/t02.html (1)「問2の設問2は、リストの要素のポインタの値を変えるだけなので、   そのオーダは、テキストの文章の行数に関係なく[定数]である。」 (2)「設問1は、二重ループである挿入ソートの値をずらしていく部分と   同様な処理なので、一重のループであり、オーダは [n] である。   よって、行数やCPの値でオーダは変化する。」 (1)、(2)のような解釈でよいのでしょうか。 もし間違っていたら、どなたか、教えていただけないでしょうか。 よろしくお願いします。

  • 基本情報処理試験H22年秋期午後について

    基本情報処理試験の過去問について質問です。 H22年度秋期の午後試験〔問8〕の設問2の空欄gが 今日一日やったのですが、理解できません。 〔問8〕の空欄g N=7は2進数で0111です。 Rの下位5ビット 01110 1回目 ビット:10 なので 減算 2回目 ビット:11 なので 何もせず 3回目 ビット:11 なので 何もせず 4回目 ビット:01 なので 加算 ここまでは、プログラム2をトレースしてわかります。 解説書によると、以下ですが、何が「つまり」なのか? 計算式がどうして導き出せるのかがわかりませんでした。 ----------------------------------------  つまり次のように計算しています。 M×7=M×(-1+8)=M×(-2^0+2^3)  以上のことから、正解はアです。 -------------------------------------- 過去問URL http://情報処理試験.jp/FE22b-pm/t08.html よろしくお願い致します。

  • Cのポインタについて(関数への値渡し)

    C言語のポインタに関する質問です。関数に引数を渡す方法として以下の誤ったswap関数でなぜだめなのかいまいち得心できません。わかりやすくかみくだいて説明していただけると有り難いです。 できましたら、トレースともうしますか、変数の値の動きを詳細に段階的にプログラムの流れに沿って追っていって、だからこうなんだよ、みたいな解説がいただけたら有り難いです。わがままいってすみません。 /* 誤ったswap関数の宣言 */ void swap(int x, int y); int main(void) { int num1 = 5; int num2 = 10; printf("変数num1の値は%dです。¥n", num1); printf("変数num2の値は%dです。¥n", num2); printf("変数num1とnum2の値を交換します。¥n", num1); swap(num1, num2); printf("変数num1の値は%dです。¥n", num1); printf("変数num2の値は%dです。¥n", num2); return 0; } /* 誤ったswap関数の定義 */ void swap(int x, int y) { int tmp; tmp = x; x = y; y = tmp; } ---------- /* swap関数の宣言 */ void swap(int *pX, int *pY); int main(void) { int num1 = 5; int num2 = 10; printf("変数num1の値は%dです。¥n", num1); printf("変数num2の値は%dです。¥n", num2); printf("変数num1とnum2の値を交換します。¥n", num1); swap(&num1, &num2); printf("変数num1の値は%dです。¥n", num1); printf("変数num2の値は%dです。¥n", num2); return 0; } /* swap関数の定義 */ void swap(int *pX, int *pY) { int tmp; tmp = *pX; *pX = *pY; *pY = tmp; }

  • 誤った関数に関する値渡しについて

    こんにちは、まずはソースを記述します。 #include<iostream> using namespace std; //誤ったswap関数の宣言 void swap(int x, int y); int main() { int num1 = 5; int num2 = 10; cout << "変数num1の値は" << num1 << "です。\n"; cout << "変数num2の値は" << num2 << "です。\n"; cout << "変数num1とnum2の値を交換します。\n"; swap(num1, num2); cout << "変数num1の値は" << num1 << "です。\n"; cout << "変数num2の値は" << num2 << "です。\n"; return 0; } //誤ったswap関数の定義 void swap(int x, int y) { int tmp; tmp = x; x = y; y = tmp; } >>関数内で仮引数xとyの値を交換する処理を行っていても、これは変数num1とnum2の値を「コピー」した5と10を交換しているにすぎません。 swap関数内で値を交換しても、呼び出し元の変数であるnum1とnum2に影響を与えることができません。 ・・の文章の中から質問ですが値渡しとはどういうことでしょうか? 参照渡しとはどう違うのでしょうか? ご教示お願いします。

  • 基本情報午後問題で解けない問題があります。

    こんにちは。平成15年度 基本情報処理技術者試験 午後問題 問2 通信ネットワークに関する問題が解けずに困っています。 問題文が長いのでここに載せることができません。 下記URLから問題文を見ることができます。 http://www.rs.kagu.tus.ac.jp/infoserv/j-siken/H15b2/pm02.html googleで調べたのですが、午後問題に関しては回答はありますが解説まで載っているページはなかなか無く、どなたかご指導いただけたら、と思っています。 よろしくお願いします。

  • 基本情報 過去問16年 問4について

    基本情報資格の勉強をしているのですが、平成16年度の問4の問題でわからない点があるので教えてください。 問題は下記を参考にしていただきたいのですが、 http://情報処理試験.jp/FE16b-pm/t04.html 自分が持っている解説によると、 ”関数MToIntは後述するように、Frdx(関数MToIntではRdx)を基数とする数字列Fnum(関数MToIntではNum)を十進数に変換する。” つまり M進数→10進数→N進数 となり、これを前提に問題を解いていくようなのです。 しかし、私には”後述”の部分がどこかわかりません。 おそらくどこか問題の記述から10進数であることが、把握できるはずだと思うのですが、 どの個所から考えればよいのでしょうか?? あと他のサイトなどの解説を読んで見ると、変換する基数が10進数であることの説明が特に書いていない気がするのですが、変換する基数を10進数だとしなくても解ける問題なのでしょうか?? よろしくおねがいします。