学年

質問の種類

情報:IT 高校生

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

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

回答募集中 回答数: 0
情報:IT 高校生

解説を読んでも分かりません。詳しく説明して欲しいです。

容器の中に、ある種の細菌が1個入っている。この細菌は1分たつと分裂して2個に増える。つま り1分後には2個,2分後には4個,3分後には8個…と増えていく。整数Mを1つ読み込んで M分後の細菌の数を出力するプログラムをつくりたい。以下のフローチャートの空欄 ウに入る最も適当なものを,次ののうちから一つずつ選べ。ただし, の解答の順序は問わない。 ⑩t と M が等しい イ ア ウ ① tがMより大きい ② t tがMより小さい e N=N-1 ④N=N+1 (5) N=N×2 ⑥N=N÷2 ⑦ t=t+1 t=t-1 ⑨ t=t×2 お替 はじめ 何分後かを入力する : M 最初の細菌数 N = 1 計算中の時間(分) t=0 Yes アド No 結果 N を表示する 解説 最初の操作から,Mは細菌の数を考える時間, Nは細菌の数, tは計算中の時間を表しているこ とが分かる。続いて、 条件分岐内のアに関しては, Yes の場合、 結果を表示することから,計 算した時間がM と一致しているか否かの判断をしていると考えられる。このため,◎の「t と Mが等しい」が正答である。続いて, イ, ウに関しては,細菌の数を増やし、計算中の時間を 増やすという操作を行う必要がある。細菌の数は,1分経過するごとに2倍になるため、⑤の「N =N×2」が正答である。また,計算中の時間は,分岐を通るたびに, 1分加算する必要がある ため, ⑦の 「t=t+1」が正答である。 答: アイ,ウ⑤⑦ (順不同)

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

課題でこれで成績がついてしまいます💦教えて欲しいです💦🙇‍♀️🙇‍♀️🙇‍♀️🙇‍♀️🙇‍♀️

■アルゴリズムとプログラミング (課題) 以下の課題に取り組み、 作成したファイルをデスクトップに保存し、PCの「課題提出全日制」 → 「2学年」 「自分のクラスのフォルダー」→「問題番号に対応したフォルダー」にドラッグアンド ドロップして提出しなさい。 (作成できたファイルのみ提出すること) ・Question ① マウスの移動量を表す単位で 「ミッキー」というものがある。 | ミッキーあたり0.254mm(ミリ メートル) である。 以下のプログラムの空欄を埋めて、キーボードからマウスの移動量をミッキーで 入力されたら、 cm (センチメートル) で表示されるプログラムを作りなさい。 (ファイル名は 「出席番号 q1 名前」 で保存すること) 1 a = float(input("マウスを何ミッキー動かしましたか?>")) 2b = 3. print("あなたは", b, "センチメートル動かしました。 ") 実行例 マウスを何ミッキー動かしましたか? >100 あなたは 2.54センチメートル動かしました。 • Question ② 製 以下のプログラムの空欄を埋めて、 「おはよう」, 「さよなら」 と言われたら挨拶を返すプログラム を作りなさい。 (ファイル名は「出席番号 92 名前」 で保存すること) 1 a=str(input("挨拶をしてください>")) 2 if a | "おはよう": print("コンピュータ:", a) "さよなら": print("コンピュータ:", a) 3 4 elifa 5 6 else: 7 実行例 挨拶をしてください > おはよう コンピュータ:おはよう print("コンピュータ:よくわかりません") 挨拶をしてください > さよなら コンピュータ: さよなら 挨拶をしてください > こんにちは コンピュータ: よくわかりません 開始 at 挨拶をしてください> aは "おはよう Yes おはよう 終了 No. は さよなら Yes さよなら No. よくわかりませ

未解決 回答数: 1
1/5