вывести результат на экран. поменять местами первый отрицательный и последний положительный элементы массива. вывести езультат на экран. учесть возможность отсутствия в массиве отрицательных и положительных элементов
По порядку
- генерировать массив 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
Комментариев нет:
Отправить комментарий