Другие языки программирования и технологии

Помогите понять задание. Pascal ABC

Даны целые числа a1, a2, ..an. Получить новую последова-

тельность из n целых чисел, заменяя ai нулями, если | a i |

не равно max (a1, a2, ..an), и заменяя ai единицами в против-

ном случае (i = 1,2,...n).

Я НЕ ЗНАЮ КТО ЭТО СОСТАВЛЯЛ, НО ЭТО НАДО РЕШИТЬ... .

Исходя из того что понял, то и написал

var

a:array of integer;// Два массива

b:array of integer;

i,n,max:integer;// переменная для запуска цикла, размер массива, максимальное значение.

begin

write('Введите длину последовательности n=');

readln(n);// запрос размера массива

SetLength(a,n+1);// так, как функция считает с нуля добовляем 1

for i:=1 to n do

begin // цикл запроса последовательнасти и определения max

readln(a[i]);

if max<a[i] then max:=a[i];

end;

SetLength(b,n+1);

writeln('Новая последовательность');

for i:=1 to n do

begin //отсартировка по заданным в задаче критериям и вывод.

if a[i]<max then b[i]:=0 else b[i]:=1;

write(b[i])

end;

writeln

end.

Это правильно? или я что то не до понял в этом задании... .
В условии говорится о получении новой последовательности из старой. При этом подразумевается, что последовательность так и остаётся последовательностью с именем A.

var A : array of Integer; { Раз уж тебе нравится так, то можно… Хотя подразумевается какой-то разумный размер массива до 100 или 1000 элементов }
i, n, Amax : Integer;

begin
Write('Введите длину последовательности n= '); ReadLn(n); { Зачем у тебя комментарий для очевидной вещи? }
SetLength(A, n); { Устанавливаем размерность массива в N элементов }
Write('Введите A[1] = '); ReadLn(A[0]); { Пользователю нет смысла знать, что там у нас с массивами на самом деле. Но! Ему нужно знать, чего от него хочет компьютер! ! }

Amax := A[0];
for i := 1 to Pred(n) do begin Write('Введите A[', Succ(i) , '] = '); ReadLn(A[i]); { Запрос очередного элемента последовательности }
if A[i] > max then max := A[i];
end;

WriteLn('Новая последовательность, в которой все элементы |Ai| равные max(A1, A2, …, An) заменены на 1, а не равные заменены на 0 :');
for i := 0 to Pred(n) do begin
if Abs(A[i]) = max then A[i] := 1 else A[i] := 0; { Собственно - замена }
Write(#32, A[i]); { Чтобы числа было разделены… Иначе они сольются в сплошную последовательность нолей и единиц }
end; WriteLn;
end.
Сергей Костинский
Сергей Костинский
83 543
Лучший ответ
всё норм чувак, молодца :)