情報:IT
高校生
解決済み

キってどのように考えてますか?
教えてほしいです

(01) len_h = 文字数 (honbunchu) (02) len_k = 文字数 (kensaku) (03) kosu = 0 (04) もしlenh >= len k ならば : (05) iを0から キ まで1ずつ増やしながら繰り返す: (06) honbunchu の文字目から 1en_k文字分の文字列を s に代入 (07) もし等価 (s, kensaku) == "等しい"ならば: (08) kosu = kosu + 1 図2 検索 (honbunchu, kensaku)のプログラム 検索(" ク ■京都")の戻り値は1である。 キ の解答群 len h - 1 ②len_h len_h - len_k 1 len k - 1 (3) len_h - len_k -1
⑩ 適当。文字比較処理の実 ときは常に len1 回実行される。 ① 適当でない。 str1 と str2の文字列が異なっていても文字 数が同じであれば1回以上実行される。 ② 適当でない。 len1 < len2のときは, 文字数が異なるので0 回となる。 問3 ≠ ② ク ①が正解。 検索 " 東京都文京区小石川", "京都) を例に実行した場合 東京 京都 都文 文京 京区 区小 小石 石川 である。 この場合, (05) 行目のi, 0から7 (= len_h- len_k)まで1ずつ増やしながら繰り返すことになる。 これを参 考に、図2のプログラムの (05)~ (08) 行目を完成させると、次 のようになる。 の中から 「京都」 に一致する個数を求めるのが図2のプログラム (05) 1を0から len_h len_k (キ)まで1ずつ増 (06) やしながら繰り返す: honbunchu の文字目から len_k文字分の || 文字列をに代入 (07) | もし等価 (s, kensaku)等しい”ならば: (08) LLL kosu= kosu+1 これに従うと、検索(東京都文京区小石川 (7", "京都") の戻り値は1である。

回答

✨ ベストアンサー ✨

どのプログラム言語にしても、
「もし、条件Aならば」→「B回繰り返す」というのは、定番です。
そして、実質、何回繰り返すのかは、キが決めることになります。

私は、C言語を長くやっていたので、具体的な考え方としては、
もし len_h >= len_k ならば を見たら、
等号付きなので、(len_k - len_h) に+1を足した回数を繰り返し、
その下の繰り返す回数の添え字(そえじ)のiが1でなく0から始まっているので、
len_k - len_h +1 -1 = len_h - len_k かなと考えます。

ただ、これは単なる予測に過ぎない考え方です。

実際には、解答の2と3の二択で迷うことになるため、
(04)行目から(08)行目までをよく読みます。
繰り返しが終わる条件文(07)にiの値は関与しないことと、
具体的な短い文字列を試しに代入して、2か3で正しい方を選びます。

問題文の絵がおそらく一部なので、明確なことは言えませんが、
私は上記のように考えました。

この回答にコメントする
疑問は解決しましたか?

この質問を見ている人は
こちらの質問も見ています😉