HOME»基本情報技術者試験掲示板»科目B、if文やwhile文が複数重なる問題につい
投稿する
科目B、if文やwhile文が複数重なる問題につい [5207]
山田さん(No.1)
スレッドの通りで、if文やwhile文や複数重なると、どこの処理してたか見失う時が多々あります。
皆さんの整理する方法とか、考え方等をご教示していただけるとありがたいです。
皆さんの整理する方法とか、考え方等をご教示していただけるとありがたいです。
2023.12.09 11:16
y4 kさん(No.2)
★FE ブロンズマイスター
実際にコードを書く場合なら、それらの語句の行で改行すると、次の行では字下げ(インデント)をするので、各行の開始位置で判断できますが、純粋に頭の中だけでトレースすると混乱するかもしれないですね。
試験本番でもメモ用紙を貰えるので、処理ブロック毎に字下げしながら書いてみては如何ですか?
試験本番でもメモ用紙を貰えるので、処理ブロック毎に字下げしながら書いてみては如何ですか?
2023.12.09 17:12
まきさん(No.3)
エクセルとか使えます
2023.12.09 18:42
SGさん(No.4)
複数重なるというのは↓のようなプログラムのことですか?
もしもそうでしたら、重なるではなく入れ子とかネストっていいます
F(x)
1: A = {1, 2, 3, 4}
2: if (x < 0) {
3: return 0;
4: }
5: for (iを1からAのサイズまで繰り返す) {
6: if (x が A[i] と等しい) {
7: return A[i]
8: }
変数xの値が2だとすると2行目から4行目までは不要なのでそもそも書きません
5行目から8行目は3回繰り返すので、横着せずにメモ用紙に↓を2つ書いてトレースします
5: for (iを1からAのサイズまで繰り返す) { # i = 1
6: if (x が A[i] と等しい) { # x = 2, A[i] = 1
7: return A[i]
8: }
5: for (iを1からAのサイズまで繰り返す) { # i = 2
6: if (x が A[i] と等しい) { # x = 2, A[i] = 2
7: return A[i]
8: }
本番の試験では変数や配列に格納されている値は横着して変数の上にメモします
これは簡単な例なので頭の中でトレースしますが
繰り返し処理や条件判定が入れ子になっている長いプログラムはトレースしましょう
もしもそうでしたら、重なるではなく入れ子とかネストっていいます
F(x)
1: A = {1, 2, 3, 4}
2: if (x < 0) {
3: return 0;
4: }
5: for (iを1からAのサイズまで繰り返す) {
6: if (x が A[i] と等しい) {
7: return A[i]
8: }
変数xの値が2だとすると2行目から4行目までは不要なのでそもそも書きません
5行目から8行目は3回繰り返すので、横着せずにメモ用紙に↓を2つ書いてトレースします
5: for (iを1からAのサイズまで繰り返す) { # i = 1
6: if (x が A[i] と等しい) { # x = 2, A[i] = 1
7: return A[i]
8: }
5: for (iを1からAのサイズまで繰り返す) { # i = 2
6: if (x が A[i] と等しい) { # x = 2, A[i] = 2
7: return A[i]
8: }
本番の試験では変数や配列に格納されている値は横着して変数の上にメモします
これは簡単な例なので頭の中でトレースしますが
繰り返し処理や条件判定が入れ子になっている長いプログラムはトレースしましょう
2023.12.10 04:13