Какие из следующих фрагментов программ содержат синтаксические ошибки?Обоснуйте ответ — Pascal(Паскаль)

1. var
S: String;
case S of
'Zero': WriteLn('Ноль');
'One': WriteLn('Один');
'Two': WriteLn('Два');
else
WriteLn('Много!');
end;
Выдаёт ошибку ordinal expreesion expected.
Так вроде же типу селектора соответствует тип константы...

2. var
I: Integer;
S: String;
case I div 100 mod 10 of
0, 5..9: S:='копеек';
1: S:='копейка';
2..4: S:='копейки';
else
S:='????';
end;
Здесь вроде всё правильно.

3. var
B: Boolean;
case B of
True: WriteLn('Истина');
False: WriteLn('Ложь');
else
WriteLn('Неизвестно');
end;
Выдаёт can't read or write variables of this type

4. var
R: Real;
case R of
3.14159: WriteLn('Число Пи');
2.71828: WriteLn('Число E');
else
WriteLn('Неизвестная константа');
end;
Выдаёт ordinal expreesion expected.

5. type
DayOfWeek=(Mon, Tue, Wed, Thu, Fri, Sat, Sun);
var
D: DayOfWeek;
case D of
Sat..Sun: WriteLn('Выходной день');
else
WriteLn('Рабочий день');
end;
can't read or write variables of this type

Ответы

var
S: char;
begin
readln(s);
case S of
'0': WriteLn('Ноль');
'1': WriteLn('Один');
'2': WriteLn('Два');
else
WriteLn('Много!');
end;
end.
type
DayOfWeek=(Mon, Tue, Wed, Thu, Fri, Sat, Sun);
var
D: DayOfWeek;
begin
D:=Sun;
case D of
Sat..Sun: WriteLn('Выходной день');
else
WriteLn('Рабочий день');
end;
end.
var 
B:integer;
 
begin
readln(B);
case B of
1: WriteLn('Истина');
2: WriteLn('Ложь');
else
WriteLn('Неизвестно');
end;
end.

Leave a Comment

+ 9 = 16