Подпрограммы - Pascal ABC (14274)
Формулировка задачи:
Даны целочисленные матрицы А(4х5) и В(3х7) Проверить есть ли в матрице элементы А элементы ,равные D, а в матрице В - элементы ,равные Q,где D,Q -заданные значения
Решение задачи: «Подпрограммы»
textual
Листинг программы
type mtr=array[1..4,1..7] of integer; procedure vvod(var a:mtr;m,n:byte;c:char); var i,j:byte; begin writeln('Исходная матрица ',c); for i:=1 to m do begin for j:=1 to n do begin a[i,j]:=random(100); write(a[i,j]:3); end; writeln; end; end; function poisk(a:mtr;m,n:byte;x:integer):boolean; var i,j,k:byte; begin k:=0; i:=1; while(i<=m)and(k=0) do begin j:=1; while(j<=n)and(k=0) do if a[i,j]=x then k:=1 else j:=j+1; if k=0 then i:=i+1; end; poisk:=k=1; end; var a,b:mtr; d,q:integer; begin vvod(a,4,5,'A'); write('Введите число для поиска d='); readln(d); if poisk(a,4,5,d) then writeln('В матрице есть числа равные ',d) else writeln('В матрице нет чисел равных ',d); vvod(b,3,7,'B'); write('Введите число для поиска q='); readln(q); if poisk(b,3,7,q) then write('В матрице есть числа равные ',q) else writeln('В матрице нет чисел равных ',q) end.
Объяснение кода листинга программы
- Создается тип данных
mtr
, который представляет собой матрицу целых чисел размером от 1 до 4 в первой размерности и от 1 до 7 во второй размерности. - Создается процедура
vvod
, которая принимает на вход матрицуa
типаmtr
, меткиm
иn
типаbyte
, а также символc
типаchar
. Внутри процедуры выводится исходная матрица, а затем происходит итерация по каждому элементу матрицыa
. Для каждого элемента выполняется проверка на равенство случайному числу в диапазоне от 1 до 100, и если условие выполняется, то выводится соответствующее значение. В конце выводится символ новой строки. - Создается функция
poisk
, которая принимает на вход матрицуa
типаmtr
, меткиm
иn
типаbyte
, а также числоx
типаinteger
. Функция выполняет поиск числаx
в матрицеa
. Для этого используется циклwhile
, который выполняется до тех пор, пока не будет найдено совпадение или не будут проверены все элементы матрицы. Если совпадение найдено, то переменнаяk
устанавливается в значение 1, иначе переменнаяj
увеличивается на единицу. После завершения цикла выполняется проверка значения переменнойk
. Если оно равно 1, то функция возвращает значениеtrue
, иначе - значениеfalse
. - Создаются переменные
a
,b
,d
иq
типаmtr
. - Вызывается процедура
vvod
для матрицыa
с меткамиm
иn
, и символомc
. - Выводится запрос на ввод числа для поиска
d
. - Выполняется поиск числа
d
в матрицеa
с помощью функцииpoisk
. Если совпадение найдено, то выводится сообщение о наличии числа в матрице, иначе выводится сообщение о том, что число в матрице отсутствует. - Вызывается процедура
vvod
для матрицыb
с меткамиm
иn
, и символомc
. - Выводится запрос на ввод числа для поиска
q
. - Выполняется поиск числа
q
в матрицеb
с помощью функцииpoisk
. Если совпадение найдено, то выводится сообщение о наличии числа в матрице, иначе выводится сообщение о том, что число в матрице отсутствует. - Функция
poisk
возвращает значениеtrue
илиfalse
. - Программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д