中学生の大学共通テスト情報ぷろぐらみんぐ脳トレ 第2回 配列変数に慣れよう!!
第一回はループ処理について学習、脳トレを行いました。今回は配列処理について学習、脳トレをいたします。
実際、大学共通テスト情報のプログラミングのサンプル問題では、配列処理の慣れがなければ、困惑してしまうのです。
ご覧のとおり。このサンプル問題の第2問が、プログラミング問題に該当します。一見見た感じ、ギョッとするでしょう!難しい!訳わかんない!という感じでしょうか。だいたい中学生にこんな問題解ける訳ないでしょう!と言うのが大半でしょう。しかし使われているプログラミングルールは、大きく、ループ処理、配列、分岐処理の3つです。そしてその中核を配列処理が占めています。
実際高校生でもプログラミングルールはわかっていても、プログラミング脳トレをやっていなければ解答不能なのです。将棋やチェスや囲碁のルールは知っていても、ゲームができないのと一緒です。
ではまず配列のルールです。
ルールは極めて簡単です。配列とはイメージしてもらうと、表のようなものと思って下さい。
例えば、このようなお財布別の金額一覧表のようなものです。お財布ごとにナンバーが付いていると思って下さい。
(第0列) (第1列) (第2列) (第3列)・・・・ (第n列)
お財布[0] お財布[1] お財布[2] お財布[3] お財布[n]
金額 300 100 200 500 ・・・・・お財布[n]の金額
もうお気づきでしょうが、列は第0列から始まります。言語により1から始まるものもありますが、サンプル問題も、Python, Javascript, VBAのいずれの言語も配列は第0列から始まりますので、0から始まることに慣れておいてください。
まずこのように[ ]型カッコを使って、配列を宣言します。宣言することで、その変数は配列変数となります。
宣言例
お財布=[]
これは配列変数のお財布を宣言し、
お財布[0]=0 お財布[1]=0 お財布[2]=0 ・・・・・・ お財布[n]=0
をあらわします。
お財布=[300,100,200,500]
と書くと、配列変数のお財布を宣言し、
お財布[0]=300 お財布[1]=100 お財布[2]=200 お財布[3]=500
であることを表します。
配列変数も普通の変数と同じく、代入や計算ができます。例えば
お財布[0]=100
お財布[1]=200
お財布[2]=お財布[0]+お財布[1]
print(お財布[2])
お財布[2]はお財布[0]の100とお財布[1]の200を足して300と表示されます。
では例題です。
お財布=[1000, 2000, 0]
お財布[2]=1000+お財布[0]+お財布[1]
表示せよ(お財布[2])
何か見覚えありませんか? 第一回の記載例とそっくりですね。普通の変数を使って書くと第一回のように
お財布赤=1000
お財布青=2000
お財布黄=0
お財布黄=お財布黄+(1000+お財布赤+お財布青)
表示せよ(お財布黄)
となります。
では配列変数の脳トレ開始です。何と表示されるでしょう?
問1) 簡単!
A=[ ]
A[0]=A[0]+1
A[0]=A[0]+1
A[0]=A[0]+1
A[0]=A[0]+1
print( A[0] )
問2)このぐらいは頭の中でやりましょう。脳トレです。
A=[ ]
A[0]=A[0]+1
A[1]=A[1]+1
A[0]=A[0]-1
A[1]=A[1]+1
print( A[0], A[1])
問3) 問2と似てますね!
A=[ ]
L=1
A[0]=A[0]+L
A[1]=A[1]+L
A[0]=A[0]-L
A[1]=A[1]+L
print( L, A[0], A[1])
問4) 問3と似てますね!
A=[ ]
L=4
A[0]=A[0]+L
A[1]=A[1]+L
A[0]=A[0]-L
A[1]=A[1]+L
print( L, A[0], A[1])
問5) さあここからが、本題です!!!
A=[ ]
L=0
A(L)=100
L=L+1
A(L)=200
print( L, A[0], A[1])
答え:
1、100,200
問6) まだまだ大丈夫!!
A=[ ]
L=0
A(L)=100
L=L+1
A(L)=200
L=L+1
A(L)=500
print( L, A[0], A[1], A[2])
答え:
2、100,200 , 500
問7) 同じく!!
A=[ ]
L=0
A(L)=100
L=L+1
A(L)=200
L=L+1
A(L)=500
L=L+1
A(L)=100
print( L, A[0], A[1], A[2], A[3])
答え:
3、100,200 , 500, 100
問8-1 いよいよループです。
A=[ ]
L=0
●繰り返し始まり 回数2回
A[L]=A[L]+1
L=L+1
●繰り返し にもどる
print(L , A[0] , A[1] , A[2])
答え:
2, 1,1 , 0
問8-2 2回ループです。
A=[ ]
L=0
●繰り返し始まり 回数2回
A[L+1]=A[L]+2
L=L+1
●繰り返し にもどる
print(L , A[0] , A[1], A[2])
答え:
2, 0 , 2,4
問8-3 3回ループです。
A=[ ]
L=0
●繰り返し始まり 回数3回
A[L+1]=A[L]+1
L=L+1
●繰り返し にもどる
print(L , A[0] , A[1], A[2] ,A[3])
答え:
3 0 , 1,2,3
問8-4 4回ループです。
A=[ ]
L=0
●繰り返し始まり 回数4回
A[L+1]=A[L]+1
L=L+1
●繰り返し にもどる
print(L , A[0] , A[1], A[2] ,A[3] , A[4])
答え:
4 0 , 1,2,3 , 4
問8-5 同じく4回ループです。
A=[ ]
L=0
●繰り返し始まり 回数4回
A[L+1]=A[L]+2
L=L+1
●繰り返し にもどる
print(L , A[0] , A[1], A[2] ,A[3] , A[4])
答え:
4 0 , 2,4,6 , 8
問 9 やや複雑です。
A=[ ]
L=0
A[L]=A[L]+1
L=L+1
A[L]=A[L-1]+1
print(L , A[0] , A[1] , A[2])
答え:
1 ,1 , 2 , 0
問 10 やや複雑です。
A=[ ]
L=0
A[L]=A[L]+1
L=L+1
A[L]=A[L-1]+1
L=L+1
A[L]=A[L-1]+1
print(L , A[0] , A[1] , A[2])
答え:
2 ,1 , 2 , 3
問 11 いよいよ本格ループです。メモをとりましょう。
A=[ ]
L=0
●繰り返し始まり 回数2回
A[L]=A[L]+1
L=L+1
A[L]=A[L-1]+1
●繰り返し にもどる
print( L , A[0] , A[1] , A[2])
ヒント
繰り返し1回目で
A[0]は1,で A[1]はA[0]+1なので2です。戻るときの L は1で
繰り返し2回目で
A[1]は1加算されて3になり、A[2]は3になったA[1]に1加算して4です。
答え:
2 ,1 , 3 , 4
問 12 いよいよ本格ループです。メモをとりましょう。
A=[ ]
L=0
●繰り返し始まり 回数 3回
A[L]=A[L]+1
L=L+1
A[L]=A[L-1]+1
●繰り返し にもどる
print( L , A[0] , A[1] , A[2] , A[3])
ヒント
繰り返し1回目で
A[0]は1,で A[1]はA[0]+1なので2です。戻るときの L は1で
繰り返し2回目で
A[1]は1加算されて3になり、A[2]は3になったA[1]に1加算して4です。
繰り返し3回目で
A[2]は1加算されて4になり、A[3]は4になったA[2]に1加算して5です。
答え:
3 ,1 , 3 , 4 , 5
この記事が気に入ったらサポートをしてみませんか?