04 IF文とじゃんけんプログラム
2学期
課題 4-1★
※プログラム画面の写真を提出
課題 4-2★
※プログラム画面の写真を提出
課題 4-3★★
 
※記入したプリントの写真を提出
課題 4-4★★★
※プログラム全行の写真を提出
※
A ボタンを押下したとき,自作したサイコロの目がランダムに表示されているか。
※
B ボタンを押下したとき,2 個のさいころの目の和 2 ~ 12 が確率分布に従ってランダムに表示されているか。
===============【テスト対策】===============
1 条件の範囲を読む
【問題】
age の値により,どのような表示になるか。
if age < 18:
  display.scroll('Junior')
elif age <20:
  display.scroll('Youth')
else:
  display.scroll('Adult')
age の値 
17 ・・・ 
18 ・・・ 
19 ・・・ 
20 ・・・ 
21 ・・・ 

[]
[]
[]
[]
[]
[類題1]
 age の値により,どのような表示になるか。
if age > 20:
  display.scroll('Adult')
elif age >= 18:
  display.scroll('Youth')
else:
  display.scroll('Junior')
age の値 
17 ・・・ 
18 ・・・ 
19 ・・・ 
20 ・・・ 
21 ・・・ 

[]
[]
[]
[]
[]
[類題2]
 ten の値により示された文字となるよう空欄に比較演算子を入れよ。
if ten 30:
  display.scroll('Akaten')
elif ten 60:
  display.scroll('Gokaku')
elif ten 80:
  display.scroll('Yushu')
else:
  display.scroll('Yoi')
ten の値 
20 ・・・ 
30 ・・・ 
40 ・・・ 
60 ・・・ 
70 ・・・ 
80 ・・・ 
90 ・・・ 

Akaten
Gokaku
Gokaku
Gokaku
Yoi
Yoi
Yushu
2 同じ条件分岐を別の書き方で表す
【問題】
下のプログラムと同じ働きをするものを右のア~ウから 1 つ選びなさい。

if age < 18:
  display.scroll('Junior')
else:
  display.scroll('Adult')
答.[]
ア if age >= 18:
  display.scroll('Adult')
else:
  display.scroll('Junior')
イ if age <= 18:
  display.scroll('Junior')
else:
  display.scroll('Adult')
ウ if age > 18:
  display.scroll('Adult')
else:
  display.scroll('Junior')
[類題1]
 下のプログラムと同じ働きをするものを右のア~ウから 1 つ選びなさい。

if age >= 18:
  display.scroll('Adult')
else:
  display.scroll('junior')
答.[]
ア if age <= 18:
  display.scroll('Junior')
else:
  display.scroll('Adult')
イ if age < 18:
  display.scroll('Junior')
else:
  display.scroll('Adult')
ウ if age > 18:
  display.scroll('Adult')
else:
  display.scroll('Junior')
[類題2]
 下の左右のプログラムが,コードは異なれども同じ働きをするプログラムとなるよう空欄を埋めよ。
if ten > 60:
  display.scroll('Gokaku')
else:
  display.scroll('Tsuishi')
if ten   60:
  display.scroll('  ')
else:
  display.scroll('  ')
3 プログラムの入れ子
【問題】
IF 文の中にさらに IF 文を書くことを [ ] という。
下のコードと同じ働きをするプログラムとなるよう,
コード A とコード B の空欄に適当な比較演算子を入れなさい。
if age < 20:
  if age < 18:
    display.scroll('Junior')
  else:
    display.scroll('Youth')
else:
  display.scroll('Adult')
コード A コード B
if age 18:
  if age 20:
    display.scroll('Youth')
  else:
    display.scroll('Adult')
else:
  display.scroll('Junior')
if age 20:
  display.scroll('Adult')
else:
  if age 18:
    display.scroll('Youth')
  else:
    display.scroll('Junior')


 
[類題1]
 左下のコードと同じ働きをするプログラムとなるよう,
 コード A , B , C の空欄に適当な比較演算子を入れなさい。
if ten >= 30:
  if ten > 80:
    display.scroll('Great')
  else:
    display.scroll('Nomal')
else:
  display.scroll('Poor')
コード A
if ten 80:
  display.scroll('Great')
else:
  if ten 30:
    display.scroll('Nomal')
  else:
    display.scroll('Poor')
コード B コード C
if ten 30:
  display.scroll('Poor')
else:
  if ten 80:
    display.scroll('Nomal')
  else:
    display.scroll('Great')
if ten 30:
  if ten 80:
    display.scroll('Nomal')
  else:
    display.scroll('Great')
else:
  display.scroll('Poor')
[類題2]
 2 つのプログラムが等価となるよう空欄に適当な比較演算子を入れなさい。
if x >= 4:
  if x >= 8:
    display.scroll('A')
  elif x >= 6:
    display.scroll('B')
  else:
    display.scroll('C')
elif x >= 2:
  display.scroll('D')
else:
  display.scroll('E')
if x 6:
  if x 4:
    if x 2:
      display.scroll('D')
    else:
      display.scroll('E')
  else:
    display.scroll('C')
else:
  if x 8:
    display.scroll('A')
  else:
    display.scroll('B')
4 効率の良い書き方とインデントの位置
【問題】
下のプログラムを実行したとき,どのように見えるか説明しなさい。
while True:
  value = random.randint(1,3)
  if value <= 1:
    display.show(gu)
  elif value <= 2:
    display.show(cho)
  else:
    display.show(pa)
    sleep(2000)
[類題1]
 下のプログラムを実行したとき,どのように見えるか説明しなさい。
while True:
  value = random.randint(1,3)
  if value <= 1:
    display.show(gu)
  elif value <= 2:
    display.show(cho)
    sleep(2000)
  else:
    display.show(pa)
[類題2]
 下のプログラムで,表 heads も裏 tails も 1 秒間見えるようにしたい。
 どのようにしたらよいか提案しなさい。
while True:
  coin = random.randint(1,2)
  if coin <= 1:
    display.scroll('heads')
    [  ①  ]
  else:
    display.scroll('tails')
    [  ②  ]
  [  ③  ]
⇦ 03 LED自作と疑似乱数とIF文
目次
05 ループと初期化とリスト① ⇨