Ошибка fatal: syntax error identifier expected - Free Pascal
Формулировка задачи:
program AAG_7;
Uses CRT;
Var AA: Array[1..8,1..4] of Integer;
I,J,:Integer;
Imx,Imn,maxSum,minSum,rowSum,Buf,SumStr,SumAll:Integer;
Procedure ZAP;
Begin
Randomize;
For I:=1 To 8 Do
For J:=1 To 4 Do AA[I,J]:=Random(41)-20;
End;
Procedure PrintArr;
Begin
For I:=1 To 8 Do Begin
For J:=1 To 4 Do Write(AA[I,J]:5);
WriteLn;
End;
END;
Procedure Sum;
Begin
SumAll:=0;
Imn:=1;
Imx:=1;
maxSum:=-700;
minSum:=700;
For I:=1 To 8 Do Begin
rowSum:=0;
For J:=1 To 4 Do Begin
rowSum:=rowSum+AA[I,J];
If rowSum>maxSum then Begin
maxSum:=rowSum;
Imx:=I;
End;
If rowSum<minSum then Begin
minSum:=rowSum;
Imx:=I;
End;
WrireLn('SumStr',I:4,'rowSum');
End;
For J:=1 To 4 Do
Begin
Buf:=AA[Imn,J];
AA[Imn,J]:=AA[Imx,J];
AA[Imx,J]:=Buf;
End;
WriteLn;
End.Решение задачи: «Ошибка fatal: syntax error identifier expected»
textual
Листинг программы
Program AAG_7;
Uses CRT;
Var AA: Array[1..8,1..4] Of Integer;
Var
I,J: Integer;
Imx,Imn,maxSum,minSum,rowSum,Buf,SumStr,SumAll: Integer;
Procedure ZAP;
Begin
Randomize;
For I:=1 To 8 Do
For J:=1 To 4 Do
AA[I,J] := Random(41)-20;
End;
Procedure PrintArr;
Begin
For I:=1 To 8 Do
Begin
For J:=1 To 4 Do
Write(AA[I,J]:5);
WriteLn;
End;
End;
Procedure Sum;
Begin
SumAll := 0;
Imn := 1;
Imx := 1;
maxSum := -700;
minSum := 700;
For I:=1 To 8 Do
Begin
rowSum := 0;
For J:=1 To 4 Do
Begin
rowSum := rowSum+AA[I,J];
If rowSum>maxSum Then
Begin
maxSum := rowSum;
Imx := I;
End;
If rowSum<minSum Then
Begin
minSum := rowSum;
Imx := I;
End;
WriteLn('SumStr',I:4,'rowSum');
End;
For J:=1 To 4 Do
Begin
Buf := AA[Imn,J];
AA[Imn,J] := AA[Imx,J];
AA[Imx,J] := Buf;
End;
WriteLn;
End.
Объяснение кода листинга программы
- Объявлены переменные:
- AA: Array[1..8,1..4] Of Integer;
- I, J: Integer;
- Imx, Imn, maxSum, minSum, rowSum, Buf, SumStr, SumAll: Integer;
- Выполняется процедура ZAP, которая инициализирует массив AA случайными значениями.
- Выполняется процедура PrintArr, которая выводит на экран все значения массива AA.
- Выполняется процедура Sum, которая выполняет суммирование элементов каждой строки массива AA и находит максимальную и минимальную сумму. Также процедура выполняет перестановку элементов в строке с минимальной суммой на позицию строки с максимальной суммой.
- Переменная SumAll инициализируется нулем.
- Переменные Imn и Imx инициализируются единицей.
- Переменные maxSum и minSum инициализируются значением -700.
- Цикл выполняется для каждой строки массива AA.
- Внутри цикла выполняется другой цикл, который суммирует элементы текущей строки.
- Если текущая сумма больше maxSum, то обновляются значения maxSum, Imx.
- Если текущая сумма меньше minSum, то обновляются значения minSum, Imx.
- Выводится на экран значение текущей суммы.
- Цикл выполняется для каждой строки массива AA.
- Внутри цикла выполняется другой цикл, который ищет пару элементов для перестановки.
- Переменная Buf инициализируется значением элемента в позиции (Imn,J).
- Элемент в позиции (Imn,J) заменяется на значение элемента в позиции (Imx,J).
- Элемент в позиции (Imx,J) заменяется на значение переменной Buf.
- Выводится на экран результат.