• 締切済み

基本情報平成4年春の問題

基本情報平成4年春の問題で問題集の答えが、納得いきません。どなたかよったら 教えてください。 問題 リストヘの登録 次の流れ図中の(a)~(C)に適切な字句を補い,流れ図を完成せよ。 〔流れ図の説明〕 流れ図は,ファイルから数値データを読み込み,配列に格納するとともに,昇順にポイ ンタでつなぐ処理を表す。 (1)配列の要素は,データ領域(DATA)とポインタ領域(POlNTER)からなる。データ領域に は,数値データを読み込んだ順に格納する。ポインタ領域には,各数値データを昇順に 並べた場合,その数値データの直後にくるデータが格納されている配列要素番号を格納 する。1件の数値データをデータ領域に格納するたびに,対応するボインタ領域に値を 格納する。このとき,必要があればそれまでにセットしたポインタ領域の値を修正する。 (2)一番大きい値のデータが格納されている配 列要素のポインタ領域の値は,0にする。 一番小さい値のデータが格納されている配 列要素の要素番号を,変数MlNに格納する。 配列にデータが1件も格納されてし/ない場 合,変数MlNの値は0である。 (3)同じ値のデータが配列中に存在する場合、 先に格納されたデータほど小さい値とみなして処理を行う

みんなの回答

回答No.1

管理者より: 続きの質問があるのでそちらをご参照下さい

参考URL:
http://www.okweb.ne.jp/kotaeru.php3?q=340221

関連するQ&A

  • 変数

    ポインタ変数なんですが、 int *p;と宣言した時 自分自身のアドレスを持ってますか?(プログラムが終わるまで?) ポインタ変数は、他の変数アドレスを格納しますよね。 また数値の値も格納しますよね。 これは、ポインタ変数宣言 時の自分のアドレスに、 他の変数のアドレス、数値の値、 と二つを格納しているのですか? ポインタ自身のアドレス出力は(int *pの時) printf("%p",&p); 他の変数のアドレス出力は(p=&の時) printf("%p",p); であってますか? 普通の変数は、自身のアドレス、数値の値、だけ、 ポインタ変数はさらに、他の変数の値を格納していますか? 教えてください。

  • 配列を用いたリストでは使用されない領域が発生する?

    応用情報技術者試験に絡んだ質問です。 まずは問題をご覧ください: 問題 リストには,配列で実現する場合とポインタで実現する場合とがある。リストを配列で実現した場合の特徴として,適切なものはどれか。ここで,配列を用いたリストは配列に要素を連続して格納することによってリストを構成し,ポインタを用いたリストは要素と次の要素へのポインタを用いることによってリストを構成するものとする。 正解の選択肢はこれ↓: リストにある実際の要素数にかかわらず,リストに入れられる要素の最大個数に対応した領域を確保し,実際には使用されない領域が発生する可能性がある。 解説: 配列で実現するリストの特徴です。配列を用いる場合は最大の要素数を格納できるだけのメモリ領域をあらかじめ確保する必要があります。1,000要素分確保しても実際の格納数が10要素程度だとすると、残りの990要素分のメモリ領域が無駄になってしまいます。 ・・・これって正しいですか? mallocで動的にメモリを確保して配列を作り、後にreallocで要素数を増やすことで無駄のない運用ができるはずです。自分はそれを知っていたので、この選択肢を選びませんでした。「可能性がある」で逃げてますが、それを言うなら、無駄なく使える可能性もあるわけで…。この問題、納得いかないです。 まずはmallocとreallocで動的に確保できることへの回答をお願いします。それから、この問題の妥当性についてお願いします。

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

    こんにちは、2010年10月の基本情報技術者試験を受験して 午後試験で 50.50点だったものです。 趣味でプログラミングをしていて、 JavaScriptでポーカーを再現し、 同じくJavaScriptで音声は出ませんが、 http://sdin.jp/browser/casino/blackjack/ と同様の動作をするブラックジャックを作るくらいです。 ( CGI, サーバーのことはよくわかりません。) 現在 暇な時間をみて、4月の同試験の受験に向けて勉強しているのですが、 わからないことが出てきましたので、質問させていただきます。 以下のサイトをみていただきたいのですが・・・ http://www.rs.kagu.tus.ac.jp/~infoserv/j-siken/H12b2/pm03.html 問3について質問させていただきたいのですが、 正直申しまして、問題の意味がよくわからないでいます。 いくつか教えていただきたいのですが… (1)   「局所変数をスタック領域に割り当て」、   「スタックは上位アドレス(番地の大きいほう)から   下位に向かって使用される」とありますが、   スタックポインタが図で見て、下位アドレスの位置にある、   ということは、スタックの下位(小さい番地)から   データが取り出される、ということでしょうか? (2)   原子プログラム1の先頭で s が宣言されていますが、   大域変数であり、データ領域に割り当てられるので、   スタックには格納されない、ということで   よろしいでしょうか? (3)   問題文中の「コード領域」、「スタック領域」、   「データ領域」というのは、コンピュータ上の   どこにあるものなのでしょうか? (4)   問題文中の「原子プログラム1」は主たる関数   ともいうべきもので、「原子プログラム2」は   その補助的な関数ということでしょうか? お手数ですが、どなたか教えていただけないでしょうか? よろしくお願いします。

  • 基本情報 H17春午後問1 リストの次のポインタの値はどうやってわかるのでしょうか

    今春基本情報を受ける者です。 解説を読んでもわかりません。root →0091・→0093・→0095・→  ... (間が抜けている) →00B0 0000 0091の後ろの・は次のポインタの値が入ってます 問題文中に要素の値とポインタの表がありますが、(間が抜けている) 部分は要素の数もポインタの値も書いてないのにどうして、 次にどこに進むのかが分かるのでしょう 教えてください

  • 平成16年度の春の問題なんですが

    平成16年度の春の問題なんですが A,B,C,Dの順に到着するデータに対して1つのスタックだけを用いて出力可能なデータ列はどれか 回答を見てもどういうことかさっぱりわかりません。 スタックは最後に格納したものから先にとりだせるので DCBAの順で取り出せると思ったんですが・・CBDAの順のようです。 教えて下さい

  • アルゴリズムに関する問題

    こんばんわ、いくつかの問題につまってしまったので解答と簡単な解説をお願いします; 【問1】 4桁の数字( a1a2a3a4 )をハッシュ法を用いて配列に格納したい。 ハッシュ関数をmod( a1 +a2 +a3 +a4 ,5 )とし、求めたハッシュ関数値に対応する位置の配列要素に格納する場合、9576は(ア)~(オ)のどこに入るか。 ここでmod(x,5)の値は、xを5で割った余りとする。 位置  配列 0  (ア) 1  (イ) 2  (ウ) 3  (エ) 4  (オ) 【問2】 相違なるn個のデータが昇順に整列された表がある。この表を1ブロックm個に分割し、各ブロックの最後尾のデータだけ線形検索することによって、目的のデータを探し出す。 次に当該ブロック内を線形検索して目的のデータを探し出す。 このときの平均探索(比較)回数は(ア)~(エ)のうちどれか。 ここでm<nとし、目的のデータは必ず表の中に存在するものとする。 (ア)  (イ)  (ウ)  (エ)  n    n          n    m n  ─    ─    m + ─   ─+─  m    2m         m    2 2m 【問3】 次の手順はシェルソートによる整列を示している。 データ列”7,2,8,3,1,9,4,5,6”を手順(1)~(4)に従って整列すると手順(3)を何回繰り返して完了するか。 ここで、〔〕は小数点以下を切り捨てる。 <手順> (1)〔データ数÷3〕→Hとする。 (2)データ列を互いにH要素分だけ離れた要素の集まりからなる部分列とし、それぞれの部分列を挿入方を用いて整列する。 (3)〔H÷3〕→Hとする (4)Hが0であればデータ列の整列は完了し、0でなければ(2)に戻る。 以上になります。

  • IntArrayクラスのプログラムを組んでいるのですが・・・

    javaプログラミングで以下の内容を満たす、IntArrayクラスを作成しています。 ・インスタンス変数  int型の配列data ・コンストラクタ  (1)int型の配列を受け取り、そのコピーを内部的に保持する  (2)第1引数で指定された要素数を持つ配列を確保し、全ての要素に初期値として第2引数で指定された値をセットする  (3)第1引数で指定された要素数を持つ配列を確保し、全ての要素に初期値としてゼロをセットする ・メソッド  (1)sort   内部的に保持している配列を、引数の値がtrueであれば昇順、falseであれば降順にソートする  (2)length   IntArrayが保持している配列の要素数を取得する  (3)getElement   引数に指定された要素番号の値を取得する  (4)setElement   第1引数に指定された要素番号に第2引数で指定された値を格納する   (5)getArray   IntArrayが保持している配列のコピーを取得する 実際にプログラムを組んでみたのですが、※の部分が冗長だと指摘を受けました。 しかしどのように修正したらよいかわかりません。 どうかアドバイスなどをよろしくお願いいたします。 package java_Lesson; import java.util.Arrays; /** * int型の配列dataの要素を取得、あるいは操作するクラス */ class IntArray { private int[] data; /** * int型の配列を受け取り、そのコピーを内部的に保持する * * @param args コピー元となる配列 */ IntArray(int[] args) { data = (int[])args.clone(); } /** * 第1引数で指定された要素数を持つ配列を確保し、 * 全ての要素に初期値として第2引数で指定された値をセットする * * @param arg1 配列の要素数 * @param arg2 配列の初期値 */ IntArray(int arg1, int arg2) { this(arg1); /* ※ */ for (int index = 0; arg1 > index; index ++) { data[index] = arg2; } } /** * 第1引数で指定された要素数を持つ配列を確保し、 * 全ての要素に初期値としてゼロをセットする * * @param arg 配列の要素数 */ IntArray(int arg) { data = new int[arg]; } /** * 内部的に保持している配列を昇順、あるいは降順にソートする * * @param arg trueであれば昇順、falseであれば降順にソート */ void sort(boolean arg) { Arrays.sort(data); if (arg) { return; } int array = data.length - 1; for (int index = 0; array > index; index ++, array --) { int temp = data[index]; data[index] = data[array]; data[array] = temp; } } /** * IntArrayが保持している配列の要素数を取得する * * @return 配列の要素数 */ int length() { return data.length; } /** * 引数に指定された要素番号の値を取得する * * @param arg 返す要素の要素番号 * * @return 配列dataの要素番号argの値 */ int getElement(int arg) { return data[arg]; } /** * 第1引数に指定された要素番号に第2引数で指定された値を格納する * * @param arg1 値を格納する要素番号 * @param arg2 配列に格納する値 */ void setElement(int arg1, int arg2) { data[arg1] = arg2; } /** * IntArrayが保持している配列のコピーを取得する * * @return 配列dataのコピー */ int[] getArray() { return data.clone(); } }

    • ベストアンサー
    • Java
  • プログラミング分かりませんJAVA

    キーボードから数値をにゅうりょくし配列変数のじを指定することで、配列要素の値を標示するプログラムを作成する問題です 配列は次のように初期化 int data[]={1,2,3,4,16,32,64,128,256,512} 実行結果 字>0 0番目の値は1 字>9 9番目の値は512 字>5 5番目の値は32

  • 配列について

    こんにちは。 int p[1000]という整数型の配列を作成しました。 例えば、 p[0] = 1; p[1] = 2; p[2] = 3; ・ ・ ・ p[99] = 100; を格納し、配列の長さ?を調べる際、 unsigned int len = 0; while(p[len]!='\0') len++; とすることで調べることが可能でしょうか?p[100]番以降に0が格納されている場合それがナル文字となるのでしょうか? また、char c[1000]と文字列型の配列を作成し、文字列の数値を格納していく場合、一桁であれば要素1個(1Byte?)で格納できますが、二桁以上であれば要素2個以上(2Byte以上←あっていますでしょうか)必要です。 c[0]='1' c[1]='2' c[2]='3' c[3]='4' ・ ・ ・ c[9]='1' c[10]='0' c[11]='1' c[12]='1' ・ ・ ・ ここで問題なのですが、文字列10と文字列11の判別はできないのでしょうか? 110111が連続している場合も値110と値111と判別できないのでしょうか? 値を格納する場合は、整数型のint c[1000]を用意するという事でしょうか? よろしくお願いします。

  • 一致する要素が格納されている添え字番号を返す

    例えばある配列内に @moji = (ak, df, gc); などという値でも文字でもが格納されていたとして、 $x = "ak"; といったある変数に格納されている値・文字(この場合はak)と一致する要素が配列@mojiに格納されていた場合に、その格納されている要素の添え字番号(配列の添え字番号)を返すような関数はないでしょうか? イメージとして $res = mch($x); とすると、0が返されて$resに格納されるというものです。 ちなみにRという言語では > a <- c("ljj", "B0", "op199") # 変数aに3つの文字列要素を代入する > res <- which(a == "op199") # which()は引数に指定された論理に一致する要素番号を返す > res # aについて,a == "op199"がTRUEとなるのは要素番号3であるから,3を返す [1] 3 というものがあるのですが、これと同じような関数が欲しいのです(泣)

    • ベストアンサー
    • Perl

専門家に質問してみよう