学年

教科

質問の種類

情報:IT 高校生

イの回答が③となる理由を教えてください。 aは負の数でも可能である理由がわかりません。

第3問 次の文章を読み、後の問い (問1 問2)に答えよ。(配点 25) . 自然数nについて,その正の平方根√は,自然数になるときと無理数となると T きがある。 √が自然数となるとき, n を平方数と呼ぶ。 高校生のミオさんは、ある自然数n を入力したときに,これが平方数であれば √にあたる自然数を表示し、平方数でなければの近似値を計算し表示するよう なプログラムを作成することを考えた。 問1 入力された自然数nについて,それが平方数であるかどうかを調べるプロ グラム (図1) を考える。 図1中の空欄 ア・ イに入れるのに最も適 当なものを,後の解答群のうちから一つずつ選べ。なお, 「a**b」は「aのb乗」 すなわち, a を計算するものとする。また,「==」 は 「等しい」こと,「!=」は「等 しくない」ことをそれぞれ表す比較演算子である。 奉者には (1)表示する(“自然数を一つ, 入力してください:") (2)n= 【外部からの入力】 MJ(3) a = = 0 (4) iを1からn まで1ずつ増やしながら繰り返す : 110 0 (5) もし **2 == ア ならば: (6) LLa a=i Pazo (7) もし イ ならば: (8) 表示する (n, “は平方数で√",n, "", a, "です。") (9) そうでなければ (10) L ! 表示する (n, “は平方数ではありません。") 図1 入力された自然数が平方数かどうかを判定するプログラム

解決済み 回答数: 1
情報:IT 高校生

ランレングス圧縮です 解説を見てもわかりませんでした 1〜3行は、1が16個なので、「1 1111」で5ビット。 というところから意味がわかりません 教えてくださるとありがたいです🥲😭

3 例題 2 ランレングス圧縮によるデータの圧縮 10 図のデータ (16×16ビット)のAの部分を0.Bの部分を1として, 以下の約束に従って1行ごとに圧縮すると, データ量は何ビットに なるか。また,圧縮率はどのようになるか計算しなさい。 ①最初のビット : はじまりがAの場合は0Bの場合は1とする。 ② 次の4ビット: AまたはBが続く個数を表す。 ただし, 「個数-1」 として表現する。 16 B B B BIBIA AAA A A AIA AAAA AIAIA AIA 15 解答例 考え方 圧縮率は, 「圧縮後のデータ量圧縮前のデータ量」で求め られる。 圧縮後のデータ量 民宿前のデータ量 2/15 27. 223 1~3行は,1が16個なので,「11111」 で5ビット。 4.5行は,1が3個, 0が3個 14個.0が3個.1が3 個なので,「100100010001100100010」 21ビット。 6~16行は,「0010100110101」 なので, 13ビット。 各行のビット数を合計すると, 5×3+21×2+13×11=200 よって,データ量は200ビットとなる。 また, 圧縮率は, 200 -x100=78.125 となり, 約78%である。 16x16 考察 圧縮率が高いということは,よりデータ量が少なくなること であり、また圧縮率の数値はより小さくなることを意味する。 BIB AIA 11111 1 1 11 11 1 1 111 11 1 1 0 0 0 010 1 0 1 010 010 000 0 010 00111 0 011110 0 010 01010 1 0 1 1 0 0 010 1|11|10 AAAAAAABBBBB F 16 478546 後 => 6 x100 前

解決済み 回答数: 1
情報:IT 高校生

情報:高3 [ウ]の部分がなぜ③になるのか分かりません。 iが 1〜kazu-1 になるから jは 0〜kazu-2 までは考えられたのですが、ここから kazu-2 が kazu-1-i になるのはなぜでしょうか、、教えてください🙇🏻

次の生徒 (S) と先生 (T) の会話文を読み, 空欄 解答群のうちから一つずつ選べ。 ア ~ に入れるのに最も適当なものを,後の 201 T:データを昇順または降順に並べ替えるアルゴリズムのことをソートといいます。まずはじめに,バブルソー トというアルゴリズムを考えてみましょう。 バブルソートは、配列の中の隣り合うデータの大小を比較し交 換を繰り返す方法です。 図1は、10個の要素を持つ配列 Data に対してバブルソートを行う場合の流れを 表しています。グラムの まず、配列の先頭とその次の要素を比較し, 左の方が大きければ右と交換する。 これを一つずつずらしなが ら配列の最後尾まで繰り返していき、最後尾まで繰り返したら1周目の比較が終了します。 S: つまり, 1周目の比較がすべて終了した段階で、 配列の最後尾には ア が入っているのですね。 イ T: その通りです。 2周目は、配列の を除いて1周目と同じように比較していきます。 これを繰り返 して、最後には配列が並び変わっているという具合ですね。図2はバブルソートのプログラムを表してい ます。 1071 配列 Data 77 52 89 48 97 3 18 62 33 29 1周目/ 1回目の比較 77 52 89 48 97 3 18 62 33 29 交換する 1周目/ 2回目の比較 52 77 89 48 97 3 18 62 33 29 交換しない (81) 1周目/3回目の比較 52 77 89 48 97 交換する 3 18 62 33 29 図1 配列 Data に対するバブルソートの流れ Irabid (1) (2) (Data) (3) (4) (5) Data = [77,52,89,48,97, 3,18,62,33,29] kazu = iを1から kazu 1まで1ずつ増やしながら繰り返す : を0から ウ まで1ずつ増やしながら繰り返す: もしData[j] > Data [j + 1] ならば: & FURS ipin (6) hokan = Data[j] ① Ad>(7) (8) エ _Data [j+1] = hokan 図2 バブルソートのプログラム 0000 1036 0 kouk 4-1 S図2のプログラムだと, もし仮に最初からデータが昇順に並んでいても、配列 Data の場合と同じ回数だけ 比較を繰り返さないといけないですよね? T:いいところに気が付きましたね。 最初から昇順に整列された配列をバブルソートすると、交換回数は オ だけど比較回数は |ので効率が悪いです。 それでは,データの整列が完了した段階で繰り返 しを抜けるように図1のプログラムを修正してみましょう。 まず, 変数 koukan を用意して初期化してお きます(図3の (3) 行目)。 次に, 交換が発生した場合, 変数 koukan に 「1」 を代入するようにしましょ (図3の (10) 行目)。 さて、ここで図4のプログラムを, 図3のプログラムのどこに挿入すればいいか 分かりますか? S:繰り返しが1周終わるごとに変数 koukan の値を確認する必要がありますから、 T:正解です! よくできました。 98 第3章 コンピュータとプログラミング キ だと思います。 0

解決済み 回答数: 1