Поменять местами минимальный элемент массива и первый элемент, имеющий нулевое значение - Pascal ABC
Формулировка задачи:
Поменять местами минимальный элемент массива и первый элемент, имеющий нулевое значение.
Вот шапка:
Решение задачи: «Поменять местами минимальный элемент массива и первый элемент, имеющий нулевое значение»
textual
Листинг программы
Uses Crt; Const n=20; Type Mas = array [1..n] of integer; Var A: Mas; i,i1,imn,x:integer; Begin Randomize; Writeln('Исходный массив'); For i:=1 to n do begin A[i]:=-10+random(21); Write(A[i]:4); end; Writeln; i1:=0; imn:=1; For i:=1 to n do begin if A[i]<A[imn] then imn:=i; if(i1=0)and(A[i]=0)then i1:=i; end; Writeln('Минимальный элемент=',A[imn],' его номер=',imn); if i1=0 then Write('Нулевого элемента нет') else begin Writeln('Номер первого нулевого элемента=',i1); x:=A[imn]; A[imn]:=A[i1]; A[i1]:=x; Writeln('Обмен первого нулевого и минимального элементов'); For i:=1 to n do Write(A[i]:4); end; end.
Объяснение кода листинга программы
- Создается случайный массив из 20 целых чисел от -10 до 10.
- Выводится содержимое массива.
- Инициализируются две переменные: i1 для хранения индекса первого нулевого элемента и imn для хранения индекса минимального элемента.
- Запускается цикл, в котором проверяется, является ли текущий элемент минимальным среди всех элементов, начиная с i1. Если это так, то обновляется значение imn.
- Проверяется условие i1=0 и A[i1]=0. Если оно выполняется, то i1 обновляется на текущий индекс.
- Если i1 не равно 0, то выводится номер i1-го нулевого элемента.
- Если i1=0, то выводится сообщение
Нулевого элемента нет
. - Обновляется значение x на текущее значение A[imn].
- Обновляется значение A[imn] на текущее значение A[i1].
- Обновляется значение A[i1] на x.
- Выводится сообщение
Обмен первого нулевого и минимального элементов
. - Запускается еще один цикл, в котором выводится содержимое массива.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д