вывести результат на экран. поменять местами первый отрицательный и последний положительный элементы массива. вывести езультат на экран. учесть возможность отсутствия в массиве отрицательных и положительных элементов
По порядку
- генерировать массив A
for i:=1 to 15 do a[i]:=random(200)-100;
- найти первый отрицательный
first_minus:=0; for i:=1 to 15 do begin if a[i] < 0 then begin first_minus:=i; break; end; end;
- убедиться что отрицательное число встретилось
if first_minus = 0 then writeln('нет отрицательного числа в массиве!');
- найди последний положительный
last_plus:=0; for i:=15 downto 1 do begin if a[i] > 0 then begin last_plus:=i; break; end; end;
- убедиться что положительное число встретилось
if last_plus = 0 then writeln('нет положительного числа в массиве!');
- поменять местами найденые элементы
temp:=a[first_minus]; a[first_minus]:=a[last_plus]; a[last_plus]:=temp;
-----
const
N = 10;
var
a: array [1..N] of integer;
i: integer;
first_minus: integer;
last_plus: integer;
temp: integer;
begin
{init random}
for i:=1 to N do a[i]:=random(100)-50;
write(' начальные данные: ');
for i:=1 to N do write(a[i]:4);
writeln;
first_minus := -1;
for i:=1 to N do begin
if a[i] < 0 then begin
first_minus:=i;
break;
end;
end;
if first_minus = -1 then begin
writeln('нет отрицательных элементов');
exit;
end;
last_plus := -1;
for i:=N downto 1 do begin
if (a[i] > 0) then begin
last_plus:=i;
break;
end;
end;
if last_plus = -1 then begin
writeln('нет положительных элементов');
exit;
end;
temp:=a[first_minus];
a[first_minus]:=a[last_plus];
a[last_plus]:=temp;
write('после перестановки: ');
for i:=1 to N do write(a[i]:4);
writeln;
end.вывод
начальные данные: 29 3 28 -7 -3 40 -44 46 6 -14 после перестановки: 29 3 28 6 -3 40 -44 46 -7 -14
Комментариев нет:
Отправить комментарий