#pascal
#паскаль
Вопрос:
можете ли вы сказать мне, где ошибка. Я хочу записать в консоль содержимое a [i] в каждом для запуска. Вывод может состоять из 6 цифр. Есть предупреждение компилятора:
/usr/bin/ld.bfd: предупреждение: link.res содержит разделы вывода; вы забыли -T?
…Программа завершена с кодом выхода 0
program Hello;
type aha = array [1..6] of integer;
var
a: aha;
n,x,i: integer;
begin
a[1]:=2;
a[2]:=6;
a[3]:=4;
a[4]:=2;
a[5]:=4;
a[6]:=3;
n:=6;
x:=a[1];
for i:=2 to n do
begin
{
if (a[i-1]>= x) then
begin
a[i]:=a[i] - x div 2;
end;
else
begin
a[i]:=a[i] x;
x:= x mod x(a[i] 1);
end;
writeln (a[i]);
}
end;
end.
Комментарии:
1. Я не знаю, что означает предложенный параметр «-T» для компилятора, но я знаю, что пара фигурных скобок «{» и «}» заставляет его рассматривать все промежуточное как комментарий. Удалите их. Возможно, также добавьте a
readln:
непосредственно передend.
, чтобы окно консоли оставалось открытым.2. Кроме того, удалите точку с запятой (;) перед
else
. Это ошибка, так какif condition then begin ... end else begin ...end;
является составным оператором. У вас ошибка в строке `x:= x mod x(a[i] 1);` У вас не может бытьоператора, за которым сразу следует
mod
оператор.3. Предупреждение -T можно игнорировать. Это связано с аспектом миграции в некоторых дистрибутивах Linux