Что значит встречено а ожидалось

После констант начали описывать переменные, а об этом компилятору забыли сказать:

cоnst n=5; ← константы
j: array [1..n] of real; ← переменные

ну компилятор где-то встретил точку с запятой, а по синтаксису там должно быть = , тебе компилятор даже номер строки пишет.

program xxx;
const n=5;
var j: array [1..n] of real;
a,t,i,n,min:integer;
i: array [1..n] of real;
begin
writeln (‘Введи целочисленый массив из 25 элеметов’);
for i:=1 to 25 do
begin
writeln (‘A (‘, i ,’)=’);
readln (A(i));
end;
t:=25;
i:=0;
for i:=1 to 25 do
begin
if (t>0) then
t:=25-n;
min:=a[i+5];
for j:=1 to n do
begin
if (min)

Помогите, пожалуйста, пишет, что ‘Встречено else, а ожидалось ;’

Ответы (1)

У вас в программе несколько ошибок с расстановкой операторов и терминирующих точек с запятой. Вот рабочий вариант:

Обратите внимание на расстановку точек с запятыми.

Comments

Copy link Quote reply

vdjenjer commented Oct 2, 2018

Если не указывать тип переменной а , всё работает. Если ‘123’ заменить на строковую переменную — тоже работает. То есть вот так всё нормально:

И вот так тоже работает:

This comment has been minimized.

Copy link Quote reply

vdjenjer commented Oct 2, 2018

Кстати, в похожем случае выдаётся другая ошибка.

Program22.pas(3) : Встречено ‘:’, а ожидалось ‘)’

Опять же при автовыведении типа переменной всё в порядке.

This comment has been minimized.

Copy link Quote reply

Читайте также:  Задать ip через командную строку

Alvin-Seville commented Oct 2, 2018 •

Код из первого Вашего поста, переведенный на C#:

То есть, проблема в том, что поле, свойство или метод не может быть вызван для созданного на лету экземпляра класса или записи, если тип переменной указан явно. То же самое касается и срезов, лишь с тем отличием, что для них требуется массив или список экземпляров класса/записи. Строку можно рассматривать как частный случай массива – массив символов. Я сделал отдельными программами тесты, чтобы удобнее было посмотреть всем желающим.