Составить процедуру обнуления всех положительных элементов массива - Pascal ABC
Формулировка задачи:
Составить процедуру обнуления всех положительных элементов в одномерном массиве A.
С помощью этой процедуры обнулить все положительные элементы в n-м и k-м столбце произвольной матрицы B.
Помогите!
Решение задачи: «Составить процедуру обнуления всех положительных элементов массива»
textual
Листинг программы
uses crt; const nmax=20; type mas=array[1..nmax] of integer; //Г¬Г*Г±Г±ГЁГў=ñòîëáåö Г¬Г*òðèöû mtr=array[1..nmax] of mas; //Г¬Г*òðèöГ*=Г¬Г*Г±Г±ГЁГў ñòîëáöîâ procedure zero(var x:mas;n:byte); //ïðîöåäóðГ* Г§Г*ìåГ*Г» var i:byte; begin for i:=1 to n do if x[i]>0 then x[i]:=0; end; var b:mtr; r,c,i,j,n,k:byte; begin randomize; repeat write('Êîëè÷åñòâî ñòðîê îò 1 äî ',nmax,' r='); read(r); until r in [1..nmax]; repeat write('Êîëè÷åñòâî ñòîëáöîâ îò 2 äî ',nmax,' c='); read(c); until c in [2..nmax]; writeln('ГЊГ*òðèöГ* B:');//Г§Г*ïîëГ*ГЁГ¬ ñòîëáöû Г¬Г*òðèöû for j:=1 to c do for i:=1 to r do repeat b[j][i]:=-5+random(11); until b[j][i]<>0; //ГЎГҐГ§ Г*îëåé for i:=1 to r do //âûâåäåì ïîñòðî÷Г*Г® begin for j:=1 to c do write(b[j][i]:3); writeln end; repeat writeln('Ââåäèòå Г*îìåðГ* äâóõ Г°Г*Г§Г*ûõ ñòîëáöîâ îò 1 äî ',c); read(n,k); until(n in [1..c])and(k in [1..c])and(k<>n); zero(b[n],r); zero(b[k],r); writeln('Г‡Г*ìåГ*Г* ïîëîæèòåëüГ*ûõ Гў ñòîëáöГ*Гµ ',n,',',k,' Г*Г* Г*îëè'); for i:=1 to r do begin for j:=1 to c do write(b[j][i]:3); writeln end; end.
Объяснение кода листинга программы
- В начале кода объявляются переменные
nmax
,mas
иmtr
. Переменнаяnmax
используется для ограничения размера массива, а переменныеmas
иmtr
используются для хранения и обработки массивов. - Затем определяется процедура
zero
, которая принимает массивx
и байтn
в качестве параметров. Внутри процедуры происходит циклfor
, который выполняетсяn
раз. Для каждого элементаx[i]
проверяется условиеx[i] > 0
. Если это условие истинно, то значениеx[i]
устанавливается равным нулю. - Далее объявляется переменная
b
, которая является массивомmtr
. - Затем начинается цикл
repeat
, который выполняется до тех пор, пока не будет прочитано значениеr
для первого элемента массиваb
. Внутри цикла выводится сообщение с помощью функцииwrite
и читается значениеr
с помощью функцииread
. Значениеr
затем используется для создания массиваb
. - После этого начинается цикл
for
, который выполняетсяc
раз. Для каждого элементаb[j]
проверяется условиеb[j] <> 0
. Если это условие истинно, то выводится сообщение с помощью функцииwrite
и читается значениеk
с помощью функцииread
. Значениеk
затем используется для вызова процедурыzero
для элементаb[n]
. - После этого вызывается процедура
zero
для элементаb[k]
. - Цикл
repeat
завершается, когда значениеn
равноc
илиk
не равноn
. - Конец процедуры
zero
. - Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д