ABAP 選擇結(jié)構(gòu)編程練習(xí)題

1、體型判斷
某體檢中心按照“體重指數(shù)”對(duì)客戶的體形進(jìn)行判斷,體重指數(shù)計(jì)算如下:
體重指數(shù)t=體重w/ (身高h(yuǎn)^2)(w單位:公斤;h單位:米)
判斷依據(jù):當(dāng)t < 18 時(shí),體型為“偏瘦”;當(dāng)t介于18和25之間時(shí),體型為“正?!?;當(dāng)t介于25和27之間時(shí),體型為“超重”;當(dāng)t >=27時(shí),體型為“肥胖”。要求:編程從鍵盤輸入你的身高h(yuǎn)和體重w,根據(jù)給定公式計(jì)算體重指數(shù)t,然后判斷你的體重屬于何種類型。

*體型判斷

*PARAMETERS:
*     W TYPE STRING,
*     H TYPE STRING.
*
*DATA T TYPE STRING.
*
*T = W / ( H * H ).
*    WRITE:/ '您的T值為:',T.
*
*IF T < '18'.
*  WRITE:/ '您的體型為“偏瘦”'.
*  ENDIF.
* IF T > '18'.
*  IF T < '25'.
*    WRITE:/ '您的體型為“正?!?.
*  ENDIF.
* ENDIF.
*    IF T > '25'.
*      IF T < '27'.
*        WRITE:/ '您的體型為“超重”'.
*      ELSE.
*        WRITE:/ '您的體型為“肥胖”'.
*      ENDIF.
*    ENDIF.
執(zhí)行結(jié)果1

執(zhí)行結(jié)果2

2、身高預(yù)測(cè)
每個(gè)人的身高與遺傳、飲食習(xí)慣與體育鍛煉等因素密切相關(guān)。設(shè)faHeight為父親身高,moHeight為母親身高,身高預(yù)測(cè)公式為:男性成人時(shí)身高=(faHeight + moHeight)×0.54cmcm女性成人時(shí)身高=(faHeight×0.923 + moHeight)/2cm。此外,如果喜愛(ài)體育鍛煉,那么可增加身高2%;如果有良好的衛(wèi)生飲食習(xí)慣,那么可增加身高1.5%。
編程:從鍵盤輸入用戶的性別、父母身高、是否喜愛(ài)體育鍛煉、是否有良好的飲食習(xí)慣等條件,利用給定公式和身高預(yù)測(cè)方法對(duì)身高進(jìn)行預(yù)測(cè)。

*身高預(yù)測(cè)

*PARAMETERS:
*    SEX TYPE STRING,
*    faHeight TYPE I,
*    moHeight TYPE I,
*    PE TYPE STRING,
*    GH TYPE STRING.
*
*DATA: M_HEIGHT TYPE I ,
*      M_HEIGHT1 TYPE I,
*      M_HEIGHT2 TYPE I,
*      M_HEIGHT3 TYPE I,
*      W_HEIGHT TYPE I,
*      W_HEIGHT1 TYPE I,
*      W_HEIGHT2 TYPE I,
*      W_HEIGHT3 TYPE I.
*
*M_HEIGHT = ( faHeight + moHeight ) * '0.54'.
*M_HEIGHT1 = M_HEIGHT * ( 1 + '0.015' ).
*M_HEIGHT2 = M_HEIGHT * ( 1 + '0.02' ).
*M_HEIGHT3 = M_HEIGHT * ( 1 + '0.035' ).
*
*W_HEIGHT = ( faHeight * '0.923' + moHeight ) / 2.
*W_HEIGHT1 = W_HEIGHT * ( 1 + '0.015' ).
*W_HEIGHT2 = W_HEIGHT * ( 1 + '0.02' ).
*W_HEIGHT3 = W_HEIGHT * ( 1 + '0.035' ).
*
*IF SEX = '女'.
* IF PE = '否'.
*   IF GH = '否'.
*  WRITE:/ '你的預(yù)測(cè)身高為:',W_HEIGHT.
*   ELSEIF GH = '否'.
*    WRITE:/ '你的預(yù)測(cè)身高為:',W_HEIGHT1.
*   ENDIF.
* ELSEIF PE = '是'.
*     IF GH = '是'.
*       WRITE:/ '你的預(yù)測(cè)身高為:',W_HEIGHT3.
*     ELSEIF GH = '否'.
*       WRITE:/ '你的預(yù)測(cè)身高為',W_HEIGHT2.
*       ENDIF.
* ENDIF.
*ENDIF.
*
*IF SEX = '男'.
* IF PE = '否'.
*   IF GH = '否'.
*  WRITE:/ '你的預(yù)測(cè)身高為:',M_HEIGHT.
*   ELSEIF GH = '是'.
*    WRITE:/ '你的預(yù)測(cè)身高為:',M_HEIGHT1.
*   ENDIF.
* ELSEIF PE = '是'.
*     IF GH = '是'.
*       WRITE:/ '你的預(yù)測(cè)身高為:',M_HEIGHT3.
*     ELSEIF GH = '否'.
*       WRITE:/ '你的預(yù)測(cè)身高為',M_HEIGHT2.
*       ENDIF.
* ENDIF.
*ENDIF.
執(zhí)行結(jié)果1

執(zhí)行結(jié)果2

3、出租車計(jì)費(fèi)問(wèn)題。計(jì)費(fèi)標(biāo)準(zhǔn)如下:起步價(jià)為5元,前2公里不計(jì)費(fèi);超過(guò)2公里但不超過(guò)10公里,按單程1.6元/公里計(jì)費(fèi);10公里以上,一律按單程1元/公里計(jì)費(fèi)。實(shí)際行駛里程四舍五入取整后作為計(jì)算里程。請(qǐng)為出租車司機(jī)編寫程序,當(dāng)輸入實(shí)際里程時(shí),立即輸出乘客應(yīng)付的車費(fèi)。

* 出租車計(jì)費(fèi)問(wèn)題

*PARAMETERS:
*      S TYPE I.
*DATA: M TYPE I,
*      M1 TYPE I,
*      M2 TYPE I.
*
*M = 5.
*M1 = M + ( S - 2 ) * '1.6'.
*M2 = M + ( S - 2 ) * 1.
*
*IF S <= 2.
*  WRITE:/ '應(yīng)付車費(fèi)為:',M.
*ELSE.
*  IF S < 10.
*    WRITE:/ '應(yīng)付車費(fèi)為:',M1.
*  ENDIF.
*    IF S > 10.
*      WRITE:/ '應(yīng)付車費(fèi)為:',M2.
*    ENDIF.
*ENDIF.
執(zhí)行結(jié)果1

執(zhí)行結(jié)果2

4、判斷天數(shù)。
輸入某年某月某日,判斷這一天是這一年的第幾天?

* 判斷天數(shù)
PARAMETERS:
    DAY TYPE I,
    MONTH TYPE I,
    YEAR TYPE I.

DATA:
      DAYS TYPE I.

IF YEAR MOD 400 = 0 OR ( YEAR MOD 4 = 0 AND YEAR MOD 100 <> 0 ).
  CASE MONTH.
    WHEN 1.
      DAYS = DAY.
    WHEN 2.
      DAYS = 31 + DAY.
    WHEN 3.
      DAYS = 31 + 29 + DAY.
    WHEN 4.
      DAYS = 31 + 29 + 31 + DAY.
    WHEN 5.
      DAYS = 31 + 29 + 31 + 30 + DAY.
    WHEN 6.
      DAYS = 31 + 29 + 31 + 30 + 31 + DAY.
    WHEN 7.
      DAYS = 31 + 29 + 31 + 30 + 31 + 30 + DAY.
    WHEN 8.
      DAYS = 31 + 29 + 31 + 30 + 31 + 30 + 31 + DAY.
    WHEN 9.
      DAYS = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + DAY.
    WHEN 10.
      DAYS = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + DAY.
    WHEN 11.
      DAYS = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + DAY.
    WHEN 12.
      DAYS = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + DAY.
ENDCASE.
ELSE.
  CASE MONTH.
  WHEN 1.
      DAYS = DAY.
    WHEN 2.
      DAYS = 31 + DAY.
    WHEN 3.
      DAYS = 31 + 28 + DAY.
    WHEN 4.
      DAYS = 31 + 28 + 31 + DAY.
    WHEN 5.
      DAYS = 31 + 28 + 31 + 30 + DAY.
    WHEN 6.
      DAYS = 31 + 28 + 31 + 30 + 31 + DAY.
    WHEN 7.
      DAYS = 31 + 28 + 31 + 30 + 31 + 30 + DAY.
    WHEN 8.
      DAYS = 31 + 28 + 31 + 30 + 31 + 30 + 31 + DAY.
    WHEN 9.
      DAYS = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + DAY.
    WHEN 10.
      DAYS = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + DAY.
    WHEN 11.
      DAYS = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + DAY.
    WHEN 12.
      DAYS = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + DAY.
    ENDCASE.
ENDIF.
WRITE:/ YEAR,'年',MONTH,'月',DAY,'天','是',YEAR,'的第',DAYS,'天'.

執(zhí)行結(jié)果1

執(zhí)行結(jié)果2

5、判斷回文一個(gè)5位數(shù),判斷它是不是回文數(shù)。即12321是回文數(shù),個(gè)位與萬(wàn)位相同,十位與千位相同。

*  DAYS = DAYS + DAY.
*WRITE:/ DAYS.

* 判斷回文
*PARAMETERS: NUM TYPE STRING.
*
*DATA: A TYPE I,
*      B TYPE I,
*      C TYPE I,
*      D TYPE I.
*
*A = NUM+0(1).
*B = NUM+1(1).
*C = NUM+3(1).
*D = NUM+4(1).
*
*IF A = D AND B = C.
*  WRITE:/ NUM,'是回文數(shù)'.
*ELSE.
*  WRITE:/ NUM,'不是回文數(shù)'.
*ENDIF.
執(zhí)行結(jié)果1
執(zhí)行結(jié)果2
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容