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