Лабораторная работа №6
Программирование с использованием подпрограмм пользователя.
Цель работы – овладение навыками алгоритмизации задач с использованием
подпрограмм пользователя различных видов, овладение навыками написания
программ и обращения к ним, выбора параметров подпрограмм.
Задание для самостоятельной работы.
Изучить:
правила записи подпрограмм различных видов и способов обращений к ним;
способы передачи параметров в подпрограмму;
правила записи программ, использующих подпрограммы.
Разработать алгоритм решения задачи.
Составить программу решения задачи.
Подготовить тестовый вариант программы и исходных данных.
Задание к работе
Задание А.
Выполнить на ЭВМ программу, использующую подпрограмму функцию, в
соответствии с номером параметра, указанным в таблице.
Проверить правильность выполнения программы с помощью тестового
варианта.
Вариант
Задания Условия задачи Примечания
1 Вычислить большие корни кв. уравнений
x2-ax+b=0
cy2-dy-f=0 Все корни действительные
2 Подсчитать число точек, находящихся внутри круга радиусом r с центром
в начале координат; координаты заданы массивами X(100), Y(100)
Расстояние точки от начала координат вычислять в подпрограмме
3 Определить периметры энугольников, координатами их вершин заданы в
массивах X, Y. Длину стороны энугольников вычислять в подпрограмме
4 Подсчитать число точек, находящихся внутри круга радиусом r с центром
в точке с координатами (1,1); координаты заданы массивами X(80), Y(80)
Расстояние точки от центра круга определять в подпрограмме
5 Вычислить z=(v1+v2+v3)/3 , где v1 ,v2,v3, – объёмы шаров с радиусами
r1 , r2 и r3 соответственно Vi вычислять в подпрограмме
6 Вычислить суммы положительных элементов массивов X(N), Y(M), Z(K)
NK*RM. Если K=1, то условие
R>RM используется для нахождения наибольшего; если K= -1, то условие
R
end;
vec := rm
end;
{ исполняемая часть главной программы }
begin
textattr:=27;clrscr;
gotoxy(30,2);writeln(‘’);
write(‘Введите кол-во координат верхней полуплоскости. ‘);
readln(n);
writeln(‘Введите координаты’);
for i :=1 to n do begin
read(x[i]); write(‘ ‘);readln(y[i]);
end;
writeln(‘Ближайшая точка удалена на расстояние =’, s:=vec(x,y,n,-1);
write(‘Введите кол-во координат нижней полуплоскости. ‘);
readln(n);
writeln(‘Введите координаты’);
for i :=1 to n do begin
read(x[i]); write(‘ ‘);readln(y[i]);
end;
writeln(‘Наиболее удаленная точка находится на расстояни =’,
s:=vec(x,y,n,1);
end.
Проверить правильность выполнения программы для массивов, заданных
значениями:
Для верхней полуплоскости x={-4,0,3}; y={0,5,4};
Для нижней полуплоскости x={-4,0,2}; y={-2,-5,-1};
Для которых наименьшее расстояние от начала координат в верхней
полуплоскости s = 4, а наибольшее – в нижней полуплоскости s = 5.
Задание Б.
Решить на ЭВМ задачу. Переписать положительные элементы массивов
X(n),Y(m) в массив Z подряд. Запись положительных элементов в массив
осуществить в подпрограмме. Принять ограничения: n0 then begin
inc(l);
c[l] := a[j];
end;
end;
{ исполняемая часть главной программы }
begin
window(1, 1, 80, 25);textattr := 27; clrscr;
gotoxy(5, 2);write(‘Введите кол-во элементов массива X’);
readln(n);
gotoxy(5, 3);write(‘Введите значения массива X’);
for i := 1 to n do begin
gotoxy(i*4-2, 5); read(x[i]);
end;
gotoxy(5, 9);write(‘Введите кол-во элементов массива Y’);
readln(m);
gotoxy(5, 10);write(‘Введите значения массива Y’);
for i := 1 to m do begin
gotoxy(i*4-2, 12); read(y[i]);
end;
l := 0;
st(x,z,n,l);
st(y,z,m,l);
gotoxy(5, 15);write(‘Результативный массив Z’);
for i:=1 to l do begin
gotoxy(i*4-2, 17);write(z[i]);
end;
end.
Данная конкретная программа в тестировании не нуждается, так как
выведенные на печать результаты позволяют однозначно судить о
правильности выполнения программы.
Контрольные вопросы
Указать, при каких условиях целесообразно использование подпрограмм,
какие выгоды они представляют пользователю.
Указать, в чём отличие различных видов подпрограмм пользователя.
Указать способы обращения к подпрограммам пользователя.
Указать способы передачи параматров в подпрограмму.
Указать, как организовывать подпрограмму без параметров.
Перечислить, как согласуются формальные и фактические параметры.
Указать конструкции, которые могут быть формальными и фактическими
параметрами.
Пояснить, как и куда осуществляется выход из подпрограммы.
Нашли опечатку? Выделите и нажмите CTRL+Enter