Отрицательные элементы массива заменить нулями - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

отрицательные элементы массива заменить нулями остальные отсортировать по возрастанию! Помогите плиз

Решение задачи: «Отрицательные элементы массива заменить нулями»

textual
Листинг программы
uses crt;
 
const
  nmax = 100;
 
var
  a: array[1..nmax] of integer;
  n, i, j, x: integer;
 
begin
  clrscr;
  randomize;
  repeat
    write('Размер массива до ', nmax, ' n=');
    readln(n);
  until n in [1..nmax];
  writeln('Исходный массив:');
  for i := 1 to n do
  begin
    a[i] := -25 + random(50);
    write(a[i]:4);
  end;
  writeln;
  for i := 1 to n - 1 do
    for j := i + 1 to n do
      if(a[i] > 0) and (a[j] > 0) and (a[i] > a[j]) then
      begin
        x := a[i];
        a[i] := a[j];
        a[j] := x;
      end;
  writeln('Сортировка положительных:');
  for i := 1 to n do
  begin
    if a[i] < 0 then a[i] := 0;
    write(a[i]:4);
  end;
  readln
end.

Объяснение кода листинга программы

  1. Объявлены переменные:
    • a: массив для хранения чисел (array[1..nmax] of integer);
    • n, i, j, x: целочисленные переменные для выполнения операций (integer).
  2. Задается размер массива (n) с помощью цикла и записи с клавиатуры (readln).
  3. Выводится исходный массив (writeln('Исходный массив:'); for i := 1 to n do begin writeln(a[i]:4); end; writeln;).
  4. Происходит сортировка массива по следующему правилу: если элементы a[i] и a[j] положительные и a[i] больше a[j], то происходит обмен a[i] и a[j] через временную переменную x (for i := 1 to n - 1 do for j := i + 1 to n do if(a[i] > 0) and (a[j] > 0) and (a[i] > a[j]) then begin x := a[i]; a[i] := a[j]; a[j] := x; end;).
  5. Выводится отсортированный массив (writeln('Сортировка положительных:'); for i := 1 to n do begin if a[i] < 0 then a[i] := 0; write(a[i]:4); end; readln).
  6. Завершается выполнение программы (end.).

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.667 из 5
Похожие ответы