見出し画像

中学生の大学共通テスト ぷろぐらみんぐ脳トレ 第3回 if 文とwhile文

第2回は配列処理について学習、脳トレを行いました。今回は条件式の判定により処理文の分かれるif文と、条件式を満たしている間ループを繰り返すwhile文について学習、脳トレをいたします。共通点としてどちらも 文に条件式が含まれています。条件式は 「ぺけぺけ が ペコペコと 等しい」と言う時は「 ぺけぺけ==ペコペコ 」のようにイコールを2つ並べます。また「ぺけぺけ は ペコペコ以上」は 「ぺけぺけ>=ペコペコ」、「ぺけぺけ は ペコペコ以下」は「ぺけぺけ<=ペコペコ」、より大きいは 「ぺけぺけ>ペコペコ」、未満は  「ぺけぺけ< ペコペコ」となります。

if 文

f文のルール(パターン1)
if(もし)文は分岐処理といって、条件によって実行される文が異なってきます。まずは一番簡単なパターンを覚えましょう。
それは、条件がyes(はい、条件を満足しています。)の時だけ●印の字下げした指定文を実行するパターンです。つまり条件を満足しない場合は、何もしないで次の文へ進みます。

例)
もし お財布の中身が1000(円)未満なら、500円を加える。
これは1100円入っていれば、「何もしない」という事になります。

お財布=1100
if お財布<1000:
    ●  お財布=お財布+500
次の文
 ・
    ・

詳しく説明すると、お財布と言う変数が1000未満ならば、次の字下げした●印の文が実行され、お財布に500が加算されます。ところがこの例ではお財布は1100なので条件を満足しない、つまりno(ノー)なので何もせず、次の文へ進みます。ですからお財布は1100のままです。

では練習です。何と表示されるでしょう? なお#マークより右は文の説明です。

お財布=0
お財布=お財布+1000     #説明 1000円入れた。
お財布=お財布− 200      #説明 200円使った。
if お財布<=900:
     ● お財布=お財布+500
print( お財布 )

if文でお財布は800で900未満なので条件を満足しており、500が加算されます。結局 print文で、800+500の1500が表示されます。

では次の例題です。何と表示されますか?

お財布=0
お財布=お財布+1000     #説明 1000円入れた。
お財布=お財布− 200      #説明 200円使った。
if お財布<=600:
     ● お財布=お財布+500
print( お財布 )

答えは、800と表示されます。if文で既にお財布は800です。600以下では無いので、何もせず次の行のprint文へと進みます。

if文のルール(パターン2)
パターン2は、if(もし)文の条件式が、yes(はい)の場合の他に加えて、no(いいえ)の場合に何か別の処理をする時の記載ルールです。

no(いいえ)の時は、else:(そうでなければ:)と記載し、次の行の字下げした■印の文が実行されます。

例えば
もし お財布の中身が1000(円)未満なら、500円を加える。
1000円以上入っていれば、200円を引く、という場合は

if お財布<1000:
    ●  お財布=お財布+500
else:
       ■ お財布=お財布−200
次の文



と記載します。つまりこの例では、お財布と言う変数が1000未満ならば、次の字下げした●印の文が実行され、お財布に500が加算されます。そして1000以上なら、条件を満足しない、つまりno(ノー)なのでelseの指定文で200を引きます。

ではお財布は英語でpurseと書くので、変数名をpurseにしてpython風に記載すると、

if purse<1000:
      purce=purce+500
else:
      purce=purce-200
print(purce)
となります。pythonでは●や■マークは記載せず、字下げだけして記載します。

ちなみにjavascriptで記載すると。
if (purse<1000) {
     purce=purce+500;
} else {
     purce=purce-200;
}
console.log(purce);
となり、

excel VBAでは
If purce<1000 Then
   purce=purce+500
Else
   purce=purce-200
End if
Worksheets("Sheet1").Range("A1").Value = purce

となります。

ご覧のとおり、javascript やVBAでは 「End if 」とか終わりの「 }印」とかif文の終わりがわかる様になってますが、pythonではただ単に字下げ(4文字程度)しているだけで特にifやelseの終わりが記載されません。読み間違いに注意しましょう。

if文 の練習問題)  全てpython記載です。
なんと表示されるでしょう。

問1) ちょう簡単!
A=0
T=0
A=A+1000
if A>=1000:
       T=1
print( A , T)

問2)このぐらいは頭の中でやりましょう。脳トレです。
A=0
T=0
A=A+999
if A>=1000:
       T=1
else:
       T=2
print( A, T )

問3) 問2と似てますね!
A=0
T=0
A=A+999
if A>=1000:
       T=1
else:
       T=2
T=T+100
print( A, T )

問4) 問3と似てますね!
A=0
T=0
A=A+1010
if A>=1000:
       T=1
else:
       T=2
T=T+100
print( A, T )

問5) 問4と似てますね!
A=0
T=0
A=A+1010
if A>=1000:
      T=T+1
else:
       T=T+2
T=T+3
print( A, T )

問6) 問5と似てますね!
A=0
T=0
A=A+1010
if A>=1000:
      T=T+1
else:
       T=T+2
T=T+3
A=A-100
if A>=1000:
      T=T+1
else:
       T=T+2
T=T+1
print(A , T)

while文

次はwhile文です。while文も第1回に説明したfor文の様に、ループ(繰り返し)をするのですが、for文の様に繰り返し回数を指定するのではなく、条件式を満足する間、延々と繰り返す・・・と言うものです。では

while文の具体例です。なお#印より右は文の説明です。

count=0
sum=0
while count < 10 :            #countが9 まで繰り返す
        count=count+1         #ループ部分なので字下げしてある。
        sum=sum+count     #ループ部分なので字下げしてある。
print(count , sum)

countは1から9までで、9回ループします。sumは1+2+3+4+5+6+7+8+9です。合計は45です。

ではwhile文の練習問題です。

練習問題)  上の例と比較してみて下さい。
count=0
ss=0
while count < 10 :            #countが10未満のとき繰り返す
        count=count+1         #ループ部分 countに1を加算。
        ss=ss+count*count     #ループ部分 *は掛け算のマーク。
print(count , ss)

答え 9 , 285 

データサイエンスの立役者はSS(二乗和)

SSはsum of square の略で平方和といいます。単純にデータを2乗した合計です。
ここ100年の数理統計学の発展、そしてこの広範囲の応用は全てこの平方和のおかげなのです。工業における品質管理や宇宙工学、医療、薬剤データ比較、心理学、社会科学、経済学、AI技術など、全てこの平方和がベースなのです。大学共通テストでは、データサイエンス分野で、相関や回帰分析など、SSを用いたデータ処理は必ず出題されます。またプログラミング分野でも取り上げられる可能性があります。詳しくは、次回以降「アルゴリズム」でご説明いたします。


おわりに

一応、第1回からこの第3回までの学習で、共通テストサンプル問題のプログラミング(第2問)を回答できる、基本ルールの説明は完了しました。ですから各自でサンプル問題の第2問をじっくり考えてみてください。最初は全く急ぐ必要はないので、1日でも2日でもじっくり紙に書いて考えまくるのが、最大の脳トレです。

大学共通テストサンプル問題(大学入試センター)はこちら

次回はこんな問題がすらすらと解けるように、各種アルゴリズム、配列、分岐、ループをミックスした本番脳トレ(初級)を予定しています。お楽しみに!!!











この記事が気に入ったらサポートをしてみませんか?