Практическое
занятие № 11
Тема: Создание программ с использованием подпрограмм-процедур
Цель занятия: получить
практические навыки по описанию подпрограмм-процедур и их использованию в
главной программе на Turbo Pascal
Ход
работы
С помощью языка программирования
Turbo Pascal написать
программу для работы с массивами. Найти сумму максимальных элементов и
количество четных чисел в двух массивах. Массивы хранят только целые значения.
Заполнения массива случайными числами и вывода массива на экран оформить в виде подпрограмм-процедур.
Нахождение максимального элемента в массиве и нахождения количества четных элементов в массив оформить в виде функций.
Выполнение
работы
uses crt;
{описываем тип-массив из 50 целых элементов}
type mas=array[1..50] of
integer;
var
{исходные массивы}
m1,m2:mas;
{размеры массивов}
n1,n2:integer;
{промежуточные результаты максимума и
количества в массивах}
max1,max2:integer;
kol1,kol2:integer;
{описываем процедуру для заполнения массива
случайными числами
m -
массив; n - количество его элементов}
procedure vvod
(var m:mas; var n:integer);
{описываем локальные переменные}
var
{счетчик цикла}
i:integer;
{концы отрезка}
x,y:real;
begin
write('Введите размер массива: '); readln (n);
write('Введите концы отрезка для формирования массива: ');
readln(x,y);
randomize;
for
i:=1 to n do
m[i]:=round((y-x)*random+x);
end;
{описываем процедуру для вывода массива на
экран
m - массив, n - количество элементов}
procedure vivod
(var m:mas; n:integer);
{описываем локальные переменные}
var
{счетчик цикла}
i:integer;
begin
for i:=1 to n do
write(m[i]:4);
writeln;
end;
{описываем функцию для нахождения
максимального элемента в массиве
m - массив, n - размер массива}
function max (var
m:mas; n:integer):integer;
{описываем локальные переменные}
var
{счетчик цикла}
i:integer;
{переменная для максимума}
mx:integer;
begin
mx:=m[1];
for
i:=2 to 10 do
if
mx<m[i] then
mx:=m[i];
{функции присваиваем ответ}
max:=mx;
end;
{описываем функцию для нахождения количества
четных элементов в массиве
m - массив, n - количество элементов}
function kol
(var m:mas; n:integer):integer;
{описываем локальные переменные}
var
{счетчик цикла}
i:integer;
{переменная для количества}
k:integer;
begin
k:=0;
for
i:=1 to 10 do
if
m[i] mod 2 = 0 then
k:=k+1;
{функции присваиваем ответ}
kol:=k;
end;
{основная программа}
begin
clrscr;
{формируем первый массив}
writeln('Первый массив:');
vvod(m1,n1);
{выводим полученный массив на
экран}
vivod(m1,n1);
{определяем максимальное значение
в массиве и записываем в max1}
max1:=max(m1,n1);
{определяем количество четных
элементов в массиве и записываем в kol1}
kol1:=kol(m1,n1);
{формируем второй массив}
writeln('Второй
массив:');
vvod(m2,n2);
{выводим полученный массив на
экран}
vivod(m2,n2);
{определяем максимальное
значение в массиве и записываем в max2}
max2:=max(m2,n2);
{определяем количество четных
элементов в массиве и записываем в kol2}
kol2:=kol(m2,n2);
{выводим сумму максимальных
элементов}
writeln('Сумма
максимальных элементов массивов равна:',max1+max2);
{выводим количество четных
элементов}
writeln('Количество
четных элементов массивов равно:',kol1+kol2);
{делаем паузу для просмотра
результата}
writeln('Для
продолжения нажмите ENTER...');
readln;
end.
Решите самостоятельно:
Дан одномерный
целочисленный массив.
С помощью подпрограмм-процедур выполните заполнение массива случайными числами и вывод элементов массива на экран.
С помощью процедур или функций решите следующие задачи:
Дан двумерный
целочисленный массив (матрица).
С помощью подпрограмм-процедур выполните заполнение массива случайными числами и вывод элементов массива на экран.