Даны целые числа 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.
Это правильно? или я что то не до понял в этом задании... .
Другие языки программирования и технологии
Помогите понять задание. Pascal ABC
В условии говорится о получении новой последовательности из старой. При этом подразумевается, что последовательность так и остаётся последовательностью с именем 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.
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.
всё норм чувак, молодца :)
Похожие вопросы
- Помогите сделать код Pascal ABC
- помогите с информатикой (pascal ABC)\ 10 класс
- Помогите решить задание Pascal
- помогите понять задание)
- помогите решить задание на pascal ABC
- Проблема с программой в Pascal ABC,Встречено ';',а ожидалось ':'. Если менять, то вылетает ещё ошибка с if
- Программа в pascal abc
- Решить задания на pascal ABC
- помогите с задачей по Pascal abc!!!
- Ребят, кто знает Pascal ABC, помогите.