【ITパスポート】試験でのアルゴリズム問題について

当ページのリンクには広告が含まれています。
目次

友人が躓いていたアルゴリズム関係

IT企業や専門学校生以外だとプログラムは普段余り見慣れないので最初躓いてしまったようです。

友人に説明する時に一応頑張って私なりに考えたので、こちらでもアウトプットします。

詳細な解き方とかはググると親切で分かりやすいサイト様があるのでそちらを参考にお願いします!

最低限基本的な部分(単語)とか問題に書いてあることの意味を解説しておきます。

私は説明が下手なので分かりにくいかもしれませんがそこは許してください

「変数」「関数」等について

ITパスポートのアルゴリズムで「整数型:a」とか「文字列型:star」とか書いてある変数についてです。

「変数」は箱のようなものと思ってください。

種類としては「整数型」「文字列型」「〇〇型の配列」「実数型」かなと思います(実際はもっとあります)

変数には「値」が入ります。

整数型:a

整数型は整数が入っている箱です。

右側の「a」はこの変数の名前です。

整数型の変数に入れられる値は「整数」のみになります。

この場合は整数以外の「文字列」や「小数を含む数値」等は入れられません。

整数は1、2、3、4…等の自然数と、自然数の負の数と0を含めたものです。

a ← 1

(変数)aに(値)1を代入するという意味です。

代入は中の値を置き換えることです。

この処理のあとに変数aを出力すると代入された(値)1が出力されます。

整数型の配列:TestArray

配列も変数同様に値を格納するものです。

変数との違いは、格納できる値の数の違いです。

変数は一つの変数に付き1つづつしか格納できませんが、配列は1つの配列の中に複数の値を「要素」として格納できます。

変数と違ってこれらの要素の値を取得する際は「配列の何番目の要素」というように指定します。

TestArray[2]

上記の場合は「TestArray配列の2番目」にある値を指しています。

例えば「3,6,5,7」という要素が入った配列の場合は上記のTestArray[2]が指すのは「6」という値になります。

開始する値も一応確認

要素の番号が0から始まるか、1から始まるかも問題文に書いてあると思います。それによって示している要素が変わるので注意です(0からの場合は0、1、2と数えます)

要素数

要素数とは配列にある要素の個数の事です。

例えば上記の「3,6,5,7」が入った配列の要素数は「4」となります。

要素数と要素の中の値(特に数値の場合)がごっちゃにならないように注意してください

〇整数型:TestDigit

問題文に「関数TestDigitは~」と出てきたらこの関数の名前です。

アルゴリズムでは最初に「〇」が付くというルールがあるみたいです。

今回の場合は頭に「整数型」と付いているので、関数TestDigitは「整数型の値」を結果として返します。

プログラムの最後にある「return d」は「変数dの値を関数TestDigitに返します(格納します)」という意味で、この関数を呼び出すとdの値が渡されます

整数型:TestDigit(整数型の配列:TestArray)

この関数の名前の横にある「(整数型の配列:TestArray)」は、この関数を実行する時に渡される値です。

上記は配列ですが、変数や値の場合もあります。

このように書かれている場合はTestDigitを実行する時には「TestArray」という配列を指定しないと実行できません。

何も指定しないで実行しようとするとエラーで終わっちゃいます

例えばTestArrayの値を[1,5,3,7]と指定した場合は、TestDigit関数内で使う配列TestArrayの値は[1,5,3,7]となります。

「TestArray」に入る値については問題文に「どんな値が入るか」書いてあるはずなので、問題文をよく読んでくださいね。

問題文の書き方も、値そのものが書いてあることもありますし、要素の条件(「例:10進9桁の数字」など)が書いてあることもあります。

10進9桁は「10進数の数が9桁入っているよ」という意味です。

ループ文

ある条件の間処理を繰り返し行うものです。

条件の判定方法や、判定タイミングが違ったりするところがポイントかなと思います。

for(iを1からTestArrayの要素数まで1づつ増やす)

for文は「for() ~ endfor」までの間の処理を繰り返す命令です。

例えばTestArrayが整数型の配列で「2,5,3,1」と値が入っていると仮定すると「iは1から4(要素数)まで1づつ増える」ということになります。

この場合はiの値は1、2、3、4と増えていきます。

なので4回繰り返し処理をするということになります。

補足として「まで」の場合は要素数の数を含むよ

while(a < 9まで)

while文は「while() ~ endwhile」までを繰り返す処理です。

特徴としては「前判定」といわれてこのwhileで囲まれた処理の前に判定をします。

なのでもし判定結果が「false」だった場合は、中の処理をしないで「endwhile」以降の処理に進みます。

判定結果が「true(条件が合う間)」は処理を繰り返します。

do

while文の問題で一緒に選択肢に出てくるのが「後判定」の「do ~ while()」です。

こちらはdo処理の後に判定をします。

なので一回目は必ず処理をします。

処理の最後の「~ while()」で判定を行います。もし条件が合う場合は処理を繰り返します。

繰り返した場合も判定は処理の最後に行います(二回目の処理が終わった時の値で確認することになる)

条件が合わなくなったら繰り返し処理を終了します。

まとめ

ざっくりですが、いくつかのポイントをまとめてみました。

慣れるまではちょっと混乱しますが、できたら問題の処理を紙などに書いて流れを理解すると覚えやすいと思います。

参考になれば幸いです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次