Составьте программу, которая формирует массив из 15 случайных целых чисел, принадлежащих промежутку [-22, 33], заменяет положительные числа на 1 и выводит значение элементов массива до и после замены
begin
var a := ArrRandom(15, -22, 33);
a.Println;
a.Transform(t -> t > 0 ? 1 : t);
a.Println
end.
нет
просто учитель щас посмотрел на ваш ответ и сказал что это неправильно
Мне Ваш учитель пофигу, если честно. Программа работает и делает то, указано в вопросе.
Другое дело, что ваш учитель может не понимать этот код, поскольку он - всего лишь учитель информатики .а не профессиональный программист, но это уже его (и вашего класса) беда.
понял
Но это просто решается - достаточно программу запустить и убедиться в ее работе.
Есть и еще один вариант: вы изучаете не эту версию паскаля, а иную.
Тогда вина Ваша - надо было указать в вопросе название диалекта языка (ТурбоПаскаль, Free Pascal, Delphi, Lazarus и т.п.)
И наконец, есть еще один случай, когда задание дается с условием использовать только такие-то и такие конструкции языка. Правда я это считаю идиотизмом: составляя программу надо учиться выбирать наиболее эффективные механизмы.
Кстати, за отметки без причины нарушением работающих программ могут и наказать.
const n=15;
var i:integer;
a:array[1..n] of integer;
for i:=1 to n do
a[i]:=random(56)-22;
write(a[i]:3,' ')
end;
writeln;
if a[i]>0 then a[i]:=1;
end