В представленном коде есть несколько ошибок, которые могут привести к указанной вами ошибке компиляции. Основная причина ошибки в том, что после каждого ключевого слова `case` и его разветвлений должен следовать однобуквенный оператор, а не несколько. В вашем коде в случае `1` у вас сразу после двоеточия `:` идет несколько операторов, один из которых - `writeln`, и это вызывает ошибку.
Вот правильная структура для `case` в Pascal:
```pascal
case выражение of
значение1: операторы1; // Убедитесь что после значения идет только один оператор
значение2: операторы2; // Или коммутатор разрешает блок операторов
end;
```
Исправленный код может выглядеть так:
```pascal
program case14;
uses math; // Добавьте это, если собираетесь использовать sqrt
var
f, a: integer;
R1, R2, S: real; // Лучше использовать real для дробных значений
begin
writeln ('Введите цифру от 1 до 4 включительно!');
Readln(f);
Writeln('Введите значение стороны равностороннего треугольника');
Readln(a);
case f of
1: begin // Используйте блок begin-end, если нужно выполнить несколько операций
R1 := (a * sqrt(3) / 4);
writeln('R1=', ' ', R1);
R2 := R1 * 2;
writeln('R2=', ' ', R2);
S := sqr(a) * sqrt(3) / 4;
writeln('S=', ' ', S);
end;
// Добавьте здесь другие случаи, если нужно
end;
end.
```
Пояснения исправлений:
1. Я добавил блок `begin-end` для случая `1`, чтобы можно было выполнить несколько операторов.
2. Я изменил тип переменных `R1`, `R2` и `S` на `real`, чтобы избежать потери дробной части при вычислениях (если это имеет значение в вашей задаче).
3. Убедитесь, что вы используете `uses math`, если вы собираетесь использовать математические функции, такие как `sqrt`.
Теперь ваш код должен компилироваться без ошибок. Если нужно добавить другие случаи, просто добавьте их аналогично, используя правильный синтаксис.