-1

入力:月名(1月/2月/…/12月)

出力:季節(冬・春・夏・秋)

冬:12月~2月

春:3月~5月

夏:6月~8月

秋:9月~11月

私が試してみました:

Program Months;

var
  Month:String;

begin
  writeln('Insert month name:');
  readln(Month);

  if Month = 'March' or Month = 'April' or Month = 'May' then

    begin
    writeln(Month,' is Spring month');
    end

    ...
    etc   
    ...

end.

しかし、このプログラムは機能していません。

4

1 に答える 1

6

演算子の優先順位-それは重要です。あなたは書く必要があります:

if (Month = 'March') or (Month = 'April') or (Month = 'May') then

これは、Pascalではor優先度が高い=ため、実際に評価されているのは次のとおりです。

if ((Month = ('March' or Month)) = ('April' or Month)) = 'May' then

これは明らかに無意味であり、コンパイルされません(上記の行で間違いを犯した可能性がありますが、これは一般的な考え方です)。Pascalでの演算子の優先順位について詳しくは、このリンクを参照してください。

于 2012-11-25T01:21:30.397 に答える