基本情報技術者試験の過去問と解説
[TOP] [午前分野別] [午後分野別] [キーワード索引] [令和元年秋午前] [令和元年秋午後]

平成15年 春期 基本情報技術者 午後 問04
問04   逆ポーランド表記法

 次のプログラムの説明,擬似言語の記述形式の説明及びプログラムを読んで,設問に答えよ。

〔プログラムの説明〕 逆ポーランド表記法で表された数式を,スタックを用いて計算する副プログラム Calc である。

(1) 逆ポーランド表記法で表された数式は, 文字型の1次元配列 Ex の各要素 Ex[0],…,Ex[Lp](Lp ≧ 3)に1文字ずつ格納されている。

(2) 数式は,正負の整数及び一つ以上の四則演算記号からなる。 ただし,正の整数の場合はプラス記号を付けない。

(3) 先頭の整数を除き,整数の前には一つの空白文字を置く。

(4) 計算は実数で行う。 計算の途中で次の状態になった場合は,副プログラムAbort() を呼び出してプログラムを終了する。

@ ゼロ除算が行われた。

A スタックの範囲外を参照した。

(5) Calc は,実数をスタックに積む副プログラム Push と, スタックから実数を取り出す副プログラム Pop を使用する。 各副プログラムの引数の仕様を表1〜3に示す。 また,数字1文字を実数に変換する関数 ToReal も使用する。

(6) 実数型の1次元配列 Stack,Stack の最大要素番号を示す定数 MAX, スタックの操作位置を示す変数 Sp が,大域変数として定義されている。 Sp の初期値は0である。

(7) 逆ポーランド表記法で表された数式は,正しいものとする。

     表1 Calc の引数の仕様

変数名 入力/出力 意  味
Ex[ ] 入力 逆ポーランド表記法の数式が格納された文字型の1次元配列
Lp 入力 文字型の1次元配列 Ex の最後の要素番号(Lp ≧ 3)
Ret 出力 計算結果

    表2 Push の引数の仕様

変数名 入力/出力 意 味
T 入力 スタックに積む実数

   表3 Pop の引数の仕様

変数名 入力/出力 意 味
T 出力 スタックから取り出す実数

〔擬似言語の記述形式の説明〕

〔プログラム〕

基本情報技術者試験


設問  プログラム中の に入れる正しい答えを, 解答群の中から選べ。

a に関する解答群

ア Ex[Cp] = " "    イ NumF = false    ウ NumF = true

エ T = 0        オ T ≠ 0

b,c に関する解答群

ア NegF ← false    イ NegF ← true    ウ NumF ← false

エ NumF ← true     オ T ← 0 

d,e に関する解答群

ア ・Sp ← Sp + 1
・Stack[Sp] ← T
イ ・Sp ← Sp + 1
・T ← Stack[Sp]
ウ ・Sp ← Sp − 1
・Stack[Sp] ← T
エ ・Sp ← Sp − 1
・T ← Stack[Sp]
オ ・Stack[Sp] ← T
・Sp ← Sp + 1
カ ・Stack[Sp] ← T
・Sp ← Sp − 1
キ ・T ← Stack[Sp]
・Sp ← Sp + 1
ク ・T ← Stack[Sp]
・Sp ← Sp − 1
解答 a ←クリックすると正解が表示されます

解答 b ←クリックすると正解が表示されます

解答 c ←クリックすると正解が表示されます

解答 d ←クリックすると正解が表示されます

解答 e ←クリックすると正解が表示されます


[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]