IT
SMA
Terselesaikan

明日テストがあるのですが、このプログラムのやり方がイマイチ理解できません💦
特に、j=3のとき、(5)~(7)行目が、実行されないらしいのですが、何故ですか?
ミジンコでも分かるような説明をして欲しいです。゚( ゚இωஇ゚)゚。

問3 〈プログラム2〉について,下の(エ)~ (キ), また,(ク)については,適する語句を選べ。 Tokuten = [57,65,82, 70] i=0 ji+1から3まで1ずつ増やしながら繰り返す: | もし Tokuten [i] <Tokuten [j] ならば : (1) (2) (3) (4) (5) (6) (7) L temp = Tokuten [i] = Tokuten [i] Tokuten [j] Tokuten [j] = temp 〈プログラム2> さわり き (3) 行目によって, jは(エ) 回繰り返される。 (3) 行目では1回目に j = (オ)が 実行されたとき, (4) 行目は Tokuten [(カ)] < Tokuten [ (キ)] となる。 よって、 実行処理について j を繰り返した場合の(3)~ (7) 行目の処理後に配列 Tokuten, 変数 (5)(7) 行目は(ク実行される, 実行されない)。次の表によって, 〈プログラム2>の てどち temp に格納されている数を求めよ。で
i j [0] 57 [1] 65 Tokuten temp. [2] [3] 82 70 0 1 (ケ) コ (サ) (シ) (ス) 0 2 (セ) (ソ (タ) (チ) (ツ) 0 3 (テ) (ト (ナ) (二) (ヌ) B POINT ●配列構造を正しく理解する。 ●条件分岐 (もし・・・) について, 実行されるかされないかを正確に判断する。 ●プログラムの1つずつの手順を丁寧に解読していく。 解答・解説 問1 Tokuten [0]=68, Tokuten [1]=75, Tokuten[2]=50 問2 68 イ 75 ウ 75 問3 エ3 オ 1 0 キ 1 ク実行される ケーヌ 次ページ表1参照 (r) 問1 Tokuten[0]=68, Tokuten [1]=75, Tokuten[2] = 50 問題文の 1,2行目にある考え方を となる。 用いる。 (E) 問2 i = 0 のとき, (4) 行目を実行すると, (1) max=0, Tokuten[0]=68 (4) 行目が正しいから (5) 行目が実行され, (ア) は =Tokuten[0] = 68 が て, の 変数 max= i=1 のとき, (4) 行目を実行すると, max=68, Tokuten[1] = 75 (4) 行目は正しいから (5) 行目が実行され, (イ)は max=Tokuten[1]=75 i=2のとき, (4) 行目を実行すると, max=75, Tokuten [2] = 50 (4)目は正しくないから (5) 行目は実行されな い。 よって,i=2のとき,maxに格納されている数値(ウ) は75のまま。 問3 i=0より (3) 行目は「を1から3まで1ずつ増や しながら繰り返す」となるので,j=1,2,3より,(3) 回繰り返される。よって、1回目は j = (オ1)が実行さ れる。 (4) 行目では, i = 0, j =1であるから, Tokuten[(カ0)] <Tokuten [(キ1)] よって,(5)(7) 行目は(ク実行される)。 j=1のとき,(5)行目が実行され temp = 57, (6) 行目が 実行され Tokuten [0]=65,(7) 行目が実行され Tokuten[1] = 57 が格納され, Tokuten [2], Tokuten[3] は変化しない。 j=2のとき, (5) 行目が実行され temp=65, (6) 行目が 実行され Tokuten [0]=82, (7) 行目が実行され Tokuten [2] 65 が格納され, Tokuten [1], Tokuten [3] は変化しない。 j=3 のとき,(5)~ (7) 行目が実行されず, Tokuten [0], Tokuten [1], Tokuten [2], Tokuten [3] は変化しない。 (8) (e) 第3 #301-10-i i 1 Tokuten [0] <Tokuten [1] より (4) 行目の条件に適する。 Tokuten [0] < Tokuten [2] より (4) 行目の条件に適する。 Tokuten [0] > Tokuten [3] より (4) 行目の条件に適さない。 UNIT 11
よって次の表となる。 olo T 表 1 temp Tokuten i j [0] [1] [2] [3] 57 65 82 70 0 1 (65) (コ57) (サ82) (シ70) (57) 0 2 (セ82) (ソ57) (夕 65 ) (チ70) (ツ 65 ) 0 3 (82) (ト57) (65) (=70) (65)
プログラミング

Answers

✨ Jawaban Terbaik ✨

こんにちは。高校生にしては難易度高めの問題でしたね。

プログラム見て、i, j などに値を当てはめて動かしたら、
このプログラムの目的や変数(i, j, tempなど)の意味など、
理解の幅を広げると何をやっているのか、理解出来ますよ。

まず、値を入れる変数にi, jという文字列を使うのは、
情報のプログラミングにおいて共通の認識です。
そして、i, j がともに変数の場合、繰り返しが2重化されているというのが大抵のケースです。
繰り返しが2重化されているというのは、
今まで、iだけ0->1->2->3と見てればよかったものが、
iが0 ->1 ->2 ...end
jが0->1->2->3->0->1->2->3->0->1->2->3...end
のように、繰り返しの2段階の処理になるということです。
(ここは、理解するのに結構時間と慣れが必要になります)

また、変数tempというのは、temporary(一時的な)のことで、
aとbの値を交換したい時に、a=bのように1行では出来ないので、
temp = a
a = b
b = temp
と3行使うのが常套手段です。
要するにtempは一時的に必要になるメモリという意味で、
「値を交換する処理」と考えて下さい。
ここまで、分かると何をやっているかというと、大きい数をお互いに交換し合うことで、
一番大きい数を求めるということです。

そして、一番わからないところについて、j=3のとき、(5)~(7)が実行されない理由は、
最大の数(82)が先頭に届いたことで、処理が完了したからです。

𝒮𝒶𝓎𝒶

丁寧に説明して下さりありがとうございます!!🙇‍♀️🙇‍♀️

Post A Comment
Apa kebingunganmu sudah terpecahkan?