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

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

*計算體重指數(shù)
*PARAMETERS:w type p DECIMALS 2,

  • h TYPE p DECIMALS 2.
    

*data:t type p DECIMALS 2,

  • m(20) TYPE c.
    

*t = w / ( h ** 2 ).
*if t < 18.

  • write:/ '您的體型為偏瘦'.
    *elseif t > 18 and t < 25.
  • write:/ '您的體型為正常'.
    *elseif t > 25 and t < 27 .
  • write:/ '您的體型為超重'.
    *else .
  • write:/ '您的體型為肥胖'.

*endif.

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

*PARAMETERS:sex(2) type c,

  •       faheight type p DECIMALS 3,
    
  •       moheight TYPE p DECIMALS 3,
    
  •       exercise(2) type c,
    
  •       diet(2) type c.
    

*data:height type p DECIMALS 3,

  •  t type p DECIMALS 3.
    

*if sex = 'F'.

  • if exercise = 'Y' AND diet = 'Y'.
  •  height = ( faheight * '0.923' + moheight ) / 2 .
    
  •  t = height + height * '0.02' + height * '0.015'.
    
  •  WRITE:/ '預(yù)測身高是:' , t.
    
  • elseif exercise = 'Y' and diet = 'N'.
    
  •  height = ( faheight * '0.923' + moheight ) / 2 .
    
  •  t = height + height * '0.02'.
    
  •  WRITE:/ '預(yù)測身高是:' , t.
    
  •  elseif exercise = 'N' and diet = 'Y'.
    
  •    height = ( faheight * '0.923' + moheight ) / 2 .
    
  •    t = height + height * '0.015'.
    
  •    WRITE:/ '預(yù)測身高是:' , t.
    
  • else.
  •   height = ( faheight * '0.923' + moheight ) / 2 .
    
  •    t = height .
    
  •    WRITE:/ '預(yù)測身高是:' , t.
    
  •  endif.
    

*elseif sex = 'M'.

  • if exercise = 'Y' AND diet = 'Y'.
  •  height = ( faheight + moheight ) * '0.54' .
    
  •  t = height + height * '0.02' + height * '0.015'.
    
  •  WRITE:/ '預(yù)測身高是:' , t.
    
  • elseif exercise = 'Y' and diet = 'N'.
    
  •  height = ( faheight + moheight ) * '0.54'  .
    
  •  t = height + height * '0.02'.
    
  •  WRITE:/ '預(yù)測身高是:' , t.
    
  •  elseif exercise = 'N' and diet = 'Y'.
    
  •    height = ( faheight + moheight ) * '0.54'  .
    
  •    t = height + height * '0.015'.
    
  •    WRITE:/ '預(yù)測身高是:' , t.
    
  • else.
  •   height = ( faheight + moheight ) * '0.54'  .
    
  •    t = height .
    
  •    WRITE:/ '預(yù)測身高是:' , t.
    
  •  endif.
    

*ENDIF.

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

PARAMETERS: length(5) TYPE n.
data:money TYPE p DECIMALS 2,
t type c.
if length <= 2 .
money = 5.
elseif length > 2 and length <= 10.
money = '1.6' * length.
else.
money = length * 1.
ENDIF.
WRITE:/ '應(yīng)付', money.

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

PARAMETERS: year type i,
month TYPE i,
day TYPE i.
data: count TYPE i .

if month = 1.
count = day.
elseif month = 2.
count = 31 + day.
elseif month >= 3 and year mod 4 = 0 and year mod 100 <> 0 or year mod 400 = 0 .
case month.
when 3.
count = 31 + 29 + day.
when 4.
count = 31 + 29 + 31 + day.
when 5.
count = 31 + 29 + 31 + 30 + day.
when 6.
count = 31 + 29 + 31 + 30 + 31 + day.
when 7.
count = 31 + 29 + 31 + 30 + 31 + 30 + day.
when 8.
count = 31 + 29 + 31 + 30 + 31 + 30 + 31 + day.
when 9.
count = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + day.
when 10.
count = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + day.
when 11.
count = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + day.
when 12.
count = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + day.
ENDCASE.
else.
case month.
when 3.
count = 31 + 28 + day.
when 4.
count = 31 + 28 + 31 + day.
when 5.
count = 31 + 28 + 31 + 30 + day.
when 6.
count = 31 + 28 + 31 + 30 + 31 + day.
when 7.
count = 31 + 28 + 31 + 30 + 31 + 30 + day.
when 8.
count = 31 + 28 + 31 + 30 + 31 + 30 + 31 + day.
when 9.
count = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + day.
when 10.
count = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + day.
when 11.
count = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + day.
when 12.
count = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + day.
ENDCASE.
ENDIF.
WRITE:/ count.

image.png

image.png

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

*PARAMETERS: m(5) type n.
*data: g type i,

  •  s type i,
    
  •  q TYPE i,
    
  •  w TYPE i.
    

*g = m mod 10.
*s = ( m mod 100 ) div 10.
*q = ( m mod 10000 ) div 1000.
*w = m div 10000.
*if m > 99999 and m < 10000.

  • WRITE:/ '您輸入的不是五位數(shù)'.
  • elseif g = w and s = q.
  •  WRITE:/ 'm是回文數(shù)'.
    
  •  else.
    
  •  WRITE:/ 'm不是回文數(shù)'.
    
  • ENDIF.
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

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