以上より、右側のボックスから出力されるB2の値は「1」となります。問14-2-29けたの数字に対して、次のルールでチェックディジットを最後尾につけることにした。チェックディジットを付加した10けたの数字として「6655333331」は正しい。ルール1:各けたの数字を合計する。ルール2:ルール1で得られた数が2けたになった場合は、得られた数の各けたの数字を合計する。この操作を、得られた数が1けたになるまで繰り返す。ルール3:最終的に得られた1けたの数をチェックディジットとする。問88一部改変)答えを見る答え:〇チェックディジット(検査数字)とは、符号の入力誤りなどを検出するために元の符号に付加される数字のことです。チェックディジットを最後尾につける前の9桁の数字は「665533333」なので、これを使って検証していきます。・ルール1:各けたの数字を合計。6+6+5+5+3+3+3+3+3=37・ルール2:ルール1で得られた数が2けたなので、各けたの数字を合計。3+7=102けたなので、再度各けたの数字を合計。1+0=1・ルール3:最終的に得られた1けたの数「1」をチェックディジットとして最後尾につける。問14-2-3大文字の英字から成る文字列の暗号化を考える。暗号化の手順と例は次のとおりである。あるとき、元の文字列は”DEB”である。手順にしたがって、元の文字列”DEB”を暗号化してみます。・手順1:英字を文字番号に変換。”D”→”3””E”→”4””B”→”1”・手順2:n文字目にnを加算。1文字目に1を加算→3+1=”4”2文字目に2を加算→4+2=”6”3文字目に3を加算→1+3=”4”・手順3:26で割った余りを新たな文字番号に。4÷26=0・・・余り”4”6÷26=0・・・余り”6”4÷26=0・・・余り”4”・手順4:文字番号を英字に変換。あるとき、元の文字列は”DEB”となります。問14-2-4流れ図で示す処理を終了したとき、xの値は28となる。問79一部改変)答えを見る答え:×トレース表を作っていきます。「x=y」になるまで条件に応じた処理を繰り返します。14以上より、処理を終了したときのxの値は14となります。問14-2-5表に示す構成のデータを、流れ図の手順で処理する場合について考える。流れ図中のx、y、zをそれぞれデータ区分A、B、Cと適切に対応させれば、比較(「xか?」、「yか?」、「zか?」)の回数の合計は、最低170回で済む。問48一部改変)答えを見る答え:〇もし分岐がYesの場合はその処理は終了となり、Noの場合は次の分岐に渡されます。件数の多いデータ区分を先の分岐で処理したほうが全体の比較回数を少なくすることができます。したがって、もっとも件数の多いデータ区分Cをx、次に多いデータ区分Bをy、データ区分Aをzとして処理することで、分岐処理の回数を最も少なくすることができます。20以上より、最も少ない比較回数の合計は、100+50+20=170回となります。問14-2-6配列に格納されているデータを探索するときの、探索アルゴリズムに関する以下の記述のうち、適切なものは2つある。2分探索法は、探索対象となる配列の先頭の要素から順に探索する。線形探索法で探索するのに必要な計算量は、探索対象となる配列の要素数に比例する。線形探索法を用いるためには、探索対象となる配列の要素は要素の値で昇順又は降順にソートされている必要がある。探索対象となる配列が同一であれば、探索に必要な計算量は探索する値によらず、2分探索法が線形探索法よりも少ない。問69一部改変)答えを見る答え:×1の記述(誤り):探索対象となる配列の先頭の要素から順に探索するのは線形探索法(リニアサーチ)です。2の記述(正しい):線形探索法は先頭の要素から順に探索する方法のため、探索対象となる配列の要素数が増えれば、比例的に探索するのに必要な計算量も増加します。3の記述(誤り):要素の値が昇順又は降順にソート(整列)されている必要があるのは二分探索法(バイナリサーチ)です。4の記述(誤り):探索対象となる配列が同一であれば、平均的な比較回数は2分探索法が線形探索法よりも少なくなります。配列の先頭のほうに探したいデータがあるような場合は、線形探索法のほうが比較回数が少なくなる場合もあります。問14-2-7隣り合う要素の大小を比較して、入れ替えを繰り返しながら整列させるソートアルゴリズムをクイックソートという。設問はバブルソートの説明となります。クイックソートとは、適当な値(ピボット)を境界値として選択し、ピボット未満の要素を先頭側に集め、ピボット未満の要素のみを含む区間とそれ以外に分割することを繰り返すことで整列を行うアルゴリズムです。出力し、2番目に“B”が出力されます。その次に、proc1()を実行します。以上より、出力順は”C”,”B”,”A”,”C”となります。問14-3-2次のプログラムを実行すると、”3,2′′と出力される。xyの値とzの値をこの順にコンマ区切りで出力する答えを見る答え:〇トレース表を作成して変数の値を確認します。2以上より、yの値とzの値をこの順にコンマ区切りで出力すると、”3,2′′となります。以上の整数を引数として受け取り、入場料を返す。ret答えを見る答え:〇if文による条件分岐で、年齢ごとの入場料を返すプログラムですが、プログラムを見ると、関数feeの結果として返される変数retが入場料を表しているということがわかります。歳まで」という条件を入れる必要がありますが、ここで注意したいのは、if文は上から優先的に実行されるため、その上の「if~」の条件(つまり3歳以下という条件)は「elseif~」に当てはまる条件に含む必要がないということです。要するに、3歳以下の場合は「ret←100」という処理が優先されるため、あえて「4歳以上でかつ9歳以下」と書く必要はないという意味です(もちろん書いてもいいですけど)。問14-3-4関数checkDigitは、10進9桁の整数の各桁の数字が上位の桁から順に格納された整数型の配列originalDigitを引数として、次の手順で計算したチェックデジットを戻り値とする。ここで、配列の要素番号は1から始まる。配列originalDigitの要素番号1〜9の要素の値を合計する。合計した値が9より大きい場合は、合計した値を10進の整数で表現したときの各桁の数字を合計する。この操作を、合計した値が9以下になるまで繰り返す。(2)で得られた値をチェックデジットとする。問78一部改変)答えを見る答え:〇まず、前半のfor文から説明していきます。「iを1からoriginalDigitの要素数まで1ずつ増やす」とありますが、iは配列originalDigitの添字(要素番号)になっているため、手順(1)の「配列originalDigitの要素番号1〜9の要素の値を合計する」を処理していることが分かります。次のwhile文では、jが9より大きい場合に繰り返す処理であることから、手順(2)の処理を行っていることが分かります。]の2行で行っているということになります。商」は、10の位の数字をkに代入する処理となります。8」なので商”5′′は10の位の数字を表すことになります。あとはこれに1の位の数字を足したいわけですが、どのように処理すればいいでしょうか?9桁の数字の各桁の合計(j)が”58′′の場合であれば、58(j)から50を引いてやれば1の位の数字”8′′を表すことができます。商)を10倍したもの(k×10)が例で言うところの”50′′に当たるので、これをjから引いてやれば1の位の数字を表すことができます。最後に、変数jの10の位の数字と1の位の数字の合計をjに代入します(jが1桁になるまでこれを繰り返します)。問14-3-5関数calcXと関数calcYは、引数inDataを用いて計算を行い、その結果を戻り値とする。変化し、戻り値は13となった。変化し、戻り値は25となった。bに入れる字句の適切な組合せは次のようになる。値がどう変わるかをトレースしていきます。inData」から、numに1が格納されます。値は次のように変わります。変化するため、正しいことが分かります。値がどう変わるかをトレースしていきます。inData」から、numに1が格納されます。空欄aは「num+2×i」です。変化するため、正しいことが分かります。要素数2以上の整数型の配列を引数にとり、整数型の配列を返す関数である。makeNewArray({3,2,1,6,5,4})として呼び出したとき、戻り値の配列は{3,5,6,12,17,21}となる。ここで、配列の要素番号は1から始まる。out答えを見る答え:〇プログラムを順番に見ていきましょう。1outの末尾にin[1]の値を追加する配列inは{3,2,1,6,5,4}なので、in[1](1番目の要素)の値は”3′′です。これを配列outの末尾に追加します。最初outは要素数0の配列(空っぽの配列)なので、この時点でout={3}になります。(iを2からinの要素数まで1ずつ増やす)inの要素数は6つあるので、iを2から6まで1ずつ増やしていきながら処理を繰り返します。out[outの要素数]この時点でのoutの要素数は1つだけなので、out[1]=3となり、これをtailに代入します(tail=3)。in[i])の結果を追加するtail=3、in[i]=in[2](配列inの2番目の要素)=2なので、outの末尾に”5′′(=3+2)を追加します。この時点で、out={3,5}になります。out[outの要素数]この時点でのoutの要素数は2つなので、out[2]=5となり、これをtailに代入します(tail=5)。in[i])の結果を追加するtail=5、in[i]=in[3](配列inの3番目の要素)=1なので、outの末尾に”6′′(=5+1)を追加します。この時点で、out={3,5,6}になります。out[outの要素数]この時点でのoutの要素数は3つなので、out[3]=6となり、これをtailに代入します(tail=6)。ここまで来ると皆さんお気づきの通り、tailは配列outの末尾の要素の値を格納するための変数です。in[i])の結果を追加するtail=6、in[i]=in[4](配列inの4番目の要素)=6なので、outの末尾に”12′′(=6+6)を追加します。この時点で、out={3,5,6,12}になります。out[outの要素数]この時点でのoutの要素数は4つなので、out[4]=12となり、これをtailに代入します(tail=12)。in[i])の結果を追加するtail=12、in[i]=in[5](配列inの5番目の要素)=5なので、outの末尾に”17′′(=12+5)を追加します。この時点で、out={3,5,6,12,17}になります。out[outの要素数]この時点でのoutの要素数は5つなので、out[5]=17となり、これをtailに代入します(tail=17)。in[i])の結果を追加するtail=17、in[i]=in[6](配列inの6番目の要素)=4なので、outの末尾に”21′′(=17+4)を追加します。この時点で、out={3,5,6,12,17,21}になります。以上より、戻り値の配列は{3,5,6,12,17,21}となります。問14-4-1プログラム言語の役割は、コンピューターに対して処理手続を記述することである。答えを見る答え:〇コンピュータでアルゴリズムを実行できるようにするには、プログラム言語を用いてアルゴリズム(処理手順)を記述する必要があります。問14-4-2コンピュータに対する命令を、プログラム言語を用いて記述したものを機械語と呼ぶ。設問はソースコードの説明となります。機械語(マシン語、バイナリコード)とは、コンピュータが解析できるように2進数に変換されたプログラムのことです。問14-4-3Java言語で作成したプログラムであり、Webサーバからダウンロードして、Webブラウザ上で実行するものはJavaアプリケーションである。設問はJavaアプレットの説明となります。Javaで作成したプログラムは実行形態によって、Javaアプリケーション(OS上から起動されるプログラム)、Javaアプレット(Webブラウザ上で実行されるプログラム)、Javaサーブレット(Webサーバ上で実行されるプログラム)に区別されます。問14-4-4JavaScriptは、Webブラウザ上に動的な振る舞いなどを組み込むことができる。問88一部改変)答えを見る答え:〇JavaScriptは、主に動きのあるWebページを開発する際に使われるプログラミング言語です。問14-4-5Pythonは、科学技術計算向けに開発されたプログラム言語である。科学技術計算向けに開発されたプログラム言語はFortran(フォートラン)です。Python(パイソン)は、オープンソースのプログラミング言語で、多くのプラットフォームで動作し、読みやすく書きやすいという特徴があります。利便性の高い大規模な標準ライブラリを備えており、データ分析やAI(人工知能)の分野で注目されています。問14-5-1HTMLとは、タグを使ってWebページの論理構造やレイアウトが指定できるマークアップ言語である。問67一部改変)答えを見る答え:〇HTMLは、主にWebページを表現するためのマークアップ言語で、Webブラウザなどでの表現に利用されます。問14-5-2文書の構造などに関する指定を記述する、”<”と”>”に囲まれるタグを、利用者が目的に応じて定義して使うことができる言語をHTMLという。設問はXMLの説明となります。決められたタグしか使用できないHTMLに対して、XMLは独自にタグを定義することができるマークアップ言語です。問14-5-3JSONは、インターネット上で公開されるWebページを作成するときに使用される言語である。問66一部改変)答えを見る答え:×インターネット上で公開されるWebページを作成するときに使用される言語はHTMLです。JSONは、異なるプログラム言語で書かれたプログラム間でのデータのやり取りなどに用いられるデータの記述形式です。viewsいぬぼきいぬぼきは2大ビジネススキル簿記とITが無料で学べる学習サイトです。イラストや例題を多用した明快な解説と豊富な演習問題で初学者でもしっかりと知識を身につけることができます。実践的な問題演習を通じて習得した知識を確実に定着でき、独学でも効率的な学習が可能です。11時間前たなかご利用の際は↓こちらにある掲示板の利用規約を読んでください。疑問の解消、モチベーションの維持・アップ、意見交換や雑談などにご活用ください。サイトの感想や管理人への連絡もこちらからお願いします。