程式撰寫(二)
 
  • 題目一:比較輸入的值,何者為大?(困難度:*)
    • 二個數的比較:
      • 程式:
      • to max :a :b
        if :a > :b [print [第一個值較大]]
        if :a < :b [print [第二個值較大]]
        if :a = :b [print [二個值一樣大]]
        end

    • 練習題:三個數的比較?
      • 提示:會用到「and」的使用,如and (:a>:b)(:a>:c)

  • 題目二:輸入身高(公尺)及體重(公斤),算出身體質量指數(BMI),並評估是否肥胖?(困難度:**)
    • BMI =(公斤)/ (公尺*公尺)
      • BMI < 18.5(體重過輕)
      • 18.5≦BMI<24(體重正常)
      • 24≦BMI(體重過重)
    • 程式:
    • to bmi :H :W ;H:身高(公尺)、W:體重(公斤)
      make "b :W/:H/:H
      if :b<18.5 [print [體重過輕]]
      if and(:b>18.5)(:b<24) [print [體重正常]]
      if :b>24 [print [體重過重]]
      end

    • 上面程式,並不完整!請多加一些說明,如會告知:
      • 你的身高:XX 公尺
      • 你的體重:XX 公斤
      • 你的BMI值:XXX
      • 體重XX
    • 判斷句中,原本有「≦」,但忽略了「=」的判斷,該如何修改程式?

  • 題目三:四則運算出題系統 (困難度:**)
    • 設計「三位數」的加、減、乘、除混合題
    • 程式:
    • to exam :m ;m為題數,一共m題
      make "n 1 ;n為題號,如第n題
      repeat :m[
      make "a random 1000 ;隨機產生三位數的值
      make "b random 1000 ;隨機產生三位數的值
      make "c random 4 ;隨機產生0123
      if :c=0 [make "d "+] ;加
      if :c=1 [make "d "-] ;減
      if :c=2 [make "d "*] ;乘
      if :c=3 [make "d "/] ;除
      print (list :n ". :a :d :b "= )
      make "n :n+1
      ]
      end

    • 如果要設計「教用版」的題目(有附解答),要如何設計?
      • 提示: if :c=0 [make "d "+ make "f :a+:b]

  • 題目四:輸入三個邊長,判斷能否組成一個三角形?(困難度:***)
    • 組成三角形的條件:
      • 三角形任二邊長和大於第三邊
      • 三角形任二邊長差小於第三邊
    • 程式:
    • to tri :a :b :c

      ifelse and(:a+:b>:c)(:a-:b<:c)[
      ifelse and(:a+:c>:b)(:a-:c<:b)[
      ifelse and(:b+:c>:a)(:b-:c<:a)[

      print [這三個邊可以組合成一三角形]

      ][print [不成立]]
      ][print [不成立]]
      ][print [不成立]]
      end

    • 要注意「括弧」是否搭配!
    • 上述仍然不完整,任二邊長的差可能:a-:b或:b-:a,所以需要加入絕對值abs的使用,如下:
      • make "d abs :a-:b
      • make "e abs :a-:c
      • make "f abs :b-:c