Pascal. дан одномерный динамический массив a(n), заполненный случайными числами в диапазоне от -30 до 30. все отрицательные элементы до минимального обнулить. исходный и изменённый массивы вывести на экран в отдельных строках.
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
Обнуляются все отрицательные элементы, расположенные от начала массива до минимального элемента.
// 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.
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
// 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