ゼロから始める資格学習
全23章・シラバス6.5保存した教材
← 第14章「アルゴリズムとプログラミング」の目次へ
14-05 · アルゴリズムとプログラミング5節・復習・4問

関数と境界を確かめる

このパートで確かめること
  • 各関数呼出しの戻り値を別々に求める
  • 最小の素数と反復条件の境界を検査する
  • 初期値から反復回数を数え、外角を使う
  • 条件を含む二つの呼出しを個別に計算する
表示・保存
説明 1 / 5
このページの目次 5節・復習と4問
  1. 1説明を読む
  2. 2復習する
  3. 3問題を解く
  4. 4次へ進む

1関数へ引数を渡し戻り値を受け取る

手続は一まとまりの処理です。関数は名前を付けた処理を呼び出し、計算結果を戻り値として返すものとして読みます。引数は呼び出し時に渡す値です。

関数double(x)が2×xを返すならdouble(4)は8です。double(3)+double(5)は6+10=16。別々の呼出しを計算して最後に足します。入れ子のifがある関数でも、渡した値に合う枝だけを進みます。

double(4)
引数

4を渡す

関数内部

2×4

戻り値

8を受け取る

数値は学習用の例。

ハルとビットで、使い方を確かめよう

ハル

関数に渡した値はどこへ行くの?

ビット

引数として処理に入り、結果が戻り値として返るよ。

2式と増分を別々に検算する

まず架空の一例を最後まで追います。初期値num=0、iは2、4、6の順、式はnum←num+2×iです。掛け算を先に計算し、numは0→4→12→24になります。下の表も、この同じ初期値・増分・式です。

式だけをnum←2×num+iに変え、ほかの条件を同じにすると0→2→8→22です。numに2×iを足す処理と、numを2倍してiを足す処理を区別します。繰返しでは初期値、iの値の並び、更新する式を先に書き出して検算します。

num←num+2×i、初期0
i計算num
20+2×24
44+2×412
612+2×624

初期値は0、iは2→4→6、更新式はnum+2×i。この表の途中で条件を変えません。

32未満と2以下を取り違えない

素数は2以上の整数で、正の約数が1と自分自身だけの数です。1は素数ではなく2は素数です。単純な判定ではnum<2なら偽、除数divを2からnum未満まで変え、余り0が見つかれば偽、最後までなければ真を返します。

num=2なら除数を試すループは0回で真です。num≤2で除外すると2を誤って除外します。div=numのときだけ反復する条件でも必要な除数を試せません。

下の行番号付き擬似コードでは、字下げした行がifやwhileの内側です。modは割った余り、returnは結果を返して関数を終える命令です。num=2なら02行の条件は偽、05行でdivを2にし、06行も偽なので、07〜11行の反復を一度も実行せず12行で真を返します。

素数判定:入力2の通り道

色の付いた行で条件確認・代入・結果の返却を行います。字下げは処理のまとまりです。

01 関数 isPrime(num)02   if num < 203     return 偽04   endif05   div ← 206   while div < num07     if num mod div = 008       return 偽09     endif10     div ← div + 111   endwhile12   return 真

入力2では 02 → 05 → 06 → 12。繰返しは0回で「真」を返します。入力1と4は偽、入力5は真です。

ハルとビットで、使い方を確かめよう

ハル

2は小さすぎて素数ではない?

ビット

1と2だけで割り切れるから2は素数だよ。境界を必ず試そう。

4図形の繰返しは外角を使う

正六角形を描くには、同じ長さを進んで60度向きを変える処理を6回繰り返します。一周の方向変化360度÷6=60度が外角で、内角120度とは違います。

カウンタを0で始め「6未満の間、描いて1増やす」なら0~5の6回。1で始めて6未満なら1~5の5回で不足します。回数と曲がる角度を別々に検算します。

正六角形を描く
回数

0,1,2,3,4,5で6回

進む

毎回同じ長さ

曲がる

360÷6=60度

数値は学習用の例。

5二つの呼出しを個別に計算する

買い物で付けるポイントを返す関数「ポイント(金額, 会員)」を例に、入れ子の条件を追います。会員なら、金額が2000円以上のとき200、それ未満のとき100を返します。会員でなければ、金額が2000円以上のとき100、それ未満のとき50を返すという架空のルールです。

ポイント(2500, 真)では、外側で会員の枝、内側で2000円以上の枝へ進み、200を返します。ポイント(1500, 偽)では、会員でない枝の中で2000円未満を選び、50を返します。二つの戻り値の合計は200+50=250です。

呼出しごとに引数を当てはめ、外側の条件から順に選びます。先に二つの金額を合算して一回だけ呼び出すと、別の処理になります。「以上」は境目も含むので、金額がちょうど2000円なら、会員かどうかを決めた後で2000円以上の枝へ進みます。

二つの呼出しで、別々の枝を選ぶ
呼出し会員か金額の条件戻り値
ポイント(2500, 真)会員2000円以上200
ポイント(1500, 偽)会員でない2000円未満50
戻り値を足す呼出し後200+50250

架空のポイント制度です。金額を合計してから一度だけ判定する処理ではありません。

2

復習

このレッスンを振り返ろう

f(3)+f(5)は、先に引数を足してよい?

答え方と、確認するポイント

別々に呼び出して、それぞれの戻り値を足します。

2を素数として残すには、最初に何を除外する?

答え方と、確認するポイント

2より小さい値を除外します。2以下ではありません。

正六角形の方向転換と進む回数は?

答え方と、確認するポイント

外角360÷6=60度で、6回進みます。カウンタの初期値と終了条件も確認します。

利用時間の違う料金計算を合算するとき、何を先にする?

答え方と、確認するポイント

各利用の引数で枝を選び、戻り値を求めてから合計します。

3

問題で確かめる

実際の問題に挑戦しよう

IPA(独立行政法人 情報処理推進機構)公開過去問2問、過去問を参考にした独自問題1問、入門の確認問題1問で、この範囲の考え方を使います。答えを選んだら、正解の理由とほかの選択肢の違いも確かめましょう。

当サイト作成・入門問題1 / 4問
関数f(x)はx+2を返す。f(3)+f(5)の値はどれか。
ヒントを見る

まずf(3)とf(5)を別々に計算してから、二つの結果を足しましょう。

オリジナル入門問題 · シラバス 6.5

公開問題・原図の著作権はIPAにあります。表記・表の配置を整えています。解説は当サイト独自のものです。

4問中0問の答えと解説を確認しました。選んだ答えの理由も確かめてから、次へ進みましょう。

自作解説 · 2026.09.15 確認
出典・参考資料を確認する

学習範囲:IPA シラバス Ver.6.5 ↗ 項目37。身近な例・会話・図解・確認問題は当サイトのオリジナルです。

学習範囲と参考資料

シラバスは学習範囲の根拠です。説明・図の数値・身近な事例は学習用に作成しています。2026年9月14日確認。

3問 / 操作体験

模試の操作を試す

解答から結果の確認までを、3問で体験できます。100問・120分の第1模試も無料で利用できます。