design2

程式撰寫(二)

                    • 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