Составьте программу, которая формирует массив из 15 случайных целых чисел, принадлежащих...

0 голосов
71 просмотров

Составьте программу, которая формирует массив из 15 случайных целых чисел, принадлежащих промежутку [-22, 33], заменяет положительные числа на 1 и выводит значение элементов массива до и после замены


Информатика (61 баллов) | 71 просмотров
Дано ответов: 2
0 голосов
Правильный ответ

PascalABC.NET 3.4.2, сборка 1881 от 19.11.2018

Внимание! Если программа не работает, обновите версию!

begin

 var a := ArrRandom(15, -22, 33);

 a.Println;

 a.Transform(t -> t > 0 ? 1 : t);

 a.Println

end.

Пример

-16 7 14 8 18 7 -5 -3 -18 26 -3 -8 31 13 -1

-16 1 1 1 1 1 -5 -3 -18 1 -3 -8 1 1 -1

(654k баллов)
0

нет

0

просто учитель щас посмотрел на ваш ответ и сказал что это неправильно

0

Мне Ваш учитель пофигу, если честно. Программа работает и делает то, указано в вопросе.

0

Другое дело, что ваш учитель может не понимать этот код, поскольку он - всего лишь учитель информатики .а не профессиональный программист, но это уже его (и вашего класса) беда.

0

понял

0

Но это просто решается - достаточно программу запустить и убедиться в ее работе.

0

Есть и еще один вариант: вы изучаете не эту версию паскаля, а иную.

0

Тогда вина Ваша - надо было указать в вопросе название диалекта языка (ТурбоПаскаль, Free Pascal, Delphi, Lazarus и т.п.)

0

И наконец, есть еще один случай, когда задание дается с условием использовать только такие-то и такие конструкции языка. Правда я это считаю идиотизмом: составляя программу надо учиться выбирать наиболее эффективные механизмы.

0

Кстати, за отметки без причины нарушением работающих программ могут и наказать.

0 голосов

const n=15;

var i:integer;

a:array[1..n] of integer;

begin

for i:=1 to n do

begin

a[i]:=random(56)-22;

write(a[i]:3,' ')

end;

writeln;

for i:=1 to n do

begin

if a[i]>0 then a[i]:=1;

write(a[i]:3,' ')

end

end.

(3.9k баллов)