Задача.
Задан двумерный массив целых чисел. Определить количество четных чисел в массиве.
Составим: процедуру ввода элементов массива;
функцию подсчета количества четных чисел;
процедуру вывода двумерного массива в виде матрицы.
- Таблица идентификаторов
№ | Наименование переменной | Обозначения в программе |
Имя массива | a | |
Количество строк | n | |
Количество столбцов | m | |
Индексы массива | I,j |
- Листинг программы.
program pp_1;
type
mas=array[1..10,1..10] of integer;
var
a:mas; n,m,i,j:integer;
{ Процедура ввода массива }
procedure input_mas(n,m:integer; var a:mas);
begin
for i:=1 to n do
for j:=1 to n do readln(a[i,j]);
end;
{Функция подсчета количества нечетных чисел}
function kol(n,m:integer; a:mas):integer;
var
k:integer;
begin
kol:=0;
for i:=1 to n do
for j:=1 to n do
if not odd(a[ i,j ]) then k:=k+1;
kol:=k;
end;
{Процедура вывода матрицы}
procedure print_mas(n,m:integer; a:mas);
begin
for i:=1 to n do
begin
for j:=1 to n do write(a[i,j],‘ ‘);
writeln;
end;
end;
{ Исполнительная часть основной программы }
begin
writeln(‘Введите n<=10, m<=10’);
readln (n,m);
writeln(‘Введите элементы массива по строкам’);
input_mas(n,m,a);
writeln(‘Исходная матрица’);
|
|
print_mas(n,m,a);
writeln(‘Количество нечетных чисел =’,kol(n,m,a));
readln;
end.
Вопросы для самоконтроля
- В каких случаях прибегают к построению подпрограмм?
- В каком месте программы располагаются функции или процедуры?
- Что такое процедура?
- Какова структура процедуры?
- Как передается информация в процедуру?
- Каким образом возвращаются результаты работы процедуры в основную программу?
- Какое соответствие должно быть между формальными и фактическими параметрами?
- Какие переменные называются глобальными? Время существования глобальных переменных?
- Какие переменные называются локальными? Время существования локальных переменных?
- Когда используют директиву forward?
- В каких случаях целесообразно прибегать к построению функций?
- Как передается информация в функцию?
- Каким образом возвращается результат работы функции в основную программу?