Pascal. дан одномерный динамический массив a(n), заполненный случайными числами в диапазоне от -30 до 30. все отрицательные элементы до минимального обнулить. исходный и изменённый массивы вывести на экран в отдельных строках.

dostovalovaanast dostovalovaanast    3   20.07.2019 11:00    0

Ответы
mit210404 mit210404  22.09.2020 20:47
//Pascal ABC.NET v3.1 сборка 1172

Var
 ar:array of integer;
 n,i,min,mini:integer;
begin
randomize;
min:=2147483647;
 writeln('Введите размерность:');
 readln(n);
 setlength(ar,n);
 writeln('Array:');
  for i:=0 to n-1 do
   begin
    ar[i]:=random(-30,30);
    write(ar[i]:4);
    if min>=ar[i] then
     begin
      min:=ar[i];
      mini:=i;
     end;
   end;
  for i:=0 to mini-1 do
   if ar[i]<0 then ar[i]:=0;
 writeln;
 writeln('Final array:');
  for i:=0 to n-1 do
   write(ar[i]:4);
end.

Пример ввода:
5
Пример вывода:
Array:
  -3 -26  -2  18 -21
Final array:
   0 -26  -2  18 -21
ПОКАЗАТЬ ОТВЕТЫ
nalimovshurik nalimovshurik  22.09.2020 20:47
Обнуляются все отрицательные элементы, расположенные от начала массива до минимального элемента.

// PascalABC.NET 3.1, сборка 1179 от 29.02.2016
begin
  var n:=ReadInteger('n=');
  var a:=ArrRandom(n,-30,30); a.Println;
  var m:=a.Min;
  var i:=0;
  while a[i]<>m do begin
    if a[i]<0 then a[i]:=0;
    Inc(i)
    end;
  a.Println
end.

Тестовое решение:
n= 10
-26 -25 -7 11 26 -13 12 -29 -15 -13
0 0 0 11 26 0 12 -29 -15 -13
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика

Популярные вопросы