Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Лабораторные работы № 10 – 11
Тема. Процедуры и функции пользователя в языке Delphi Цель работы: приобретение навыков написания программ с подпрограммами пользователя на языке Delphi Теоретическая часть В языке Delphi имеется два вида подпрограмм – процедуры и функции. Имея один и тот же смысл и аналогичную структуру, процедуры и функции различаются назначением и способом их использования. Все процедуры в языке Delphi делятся на 2 вида: встроенные и пользовательские. Встроенные определены заранее и могут вызываться без предварительного описания. Пользовательские – именованная группа операторов, реализующая определенную последовательность действий. Вызов пользовательских процедур и функций осуществляется по имени. Описание процедуры:
Рисунок 9 - Синтаксическая диаграмма описания процедуры
Описание функции:
Рисунок 10 - Синтаксическая диаграмма описания функции
Пример 10.1. Рассчитать значение y(x) по формуле Для расчета значения tg(x) используется подпрограмма-функция tg(а) с одним параметром.
Program Project1; var x, y: real; function tg(a: real): real; begin tg: =cos(a)/sin(a); end;
begin write('x='); readln(x); y: =sqr(tg(x+1))+tg(x+0.5)+7*tg(x); writeln('y=', y: 6: 2); readln; end.
Пример 10.2. Условие из предыдущего примера. В программе для расчета значения tg(x) используется подпрограмма-процедура tg(a, b) с двумя параметрами.
Program Project2; var x, y: real; x1, x2, x3: real;
procedure tg(a: real; var b: real); begin b: =cos(a)/sin(a); end;
begin write('x='); readln(x); tg(x+1, x1); tg(x+0.5, x2); tg(x, x3); y: =sqr(x1)+x2+7*x3; writeln('y=', y: 6: 2); readln; end. Пример 10.3. Рассчитать периметр ( в м) и площадь прямоугольника (в м2). Длины сторон (x, y) вводятся с клавиатуры в см. В программе используется подпрограмма-процедура parametr(a, b, p, s).
Program Project3; var x, y: integer; s1, p1: real;
procedure parametr(a, b: integer; var p, s: real); begin p: =2*(a+b)/100; s: =a*b/10000; end;
begin x: =30; y: =40; parametr(x, y, p1, s1); writeln('p1=', p1: 6: 2, ' s1=', s1: 6: 2); readln; end.
Пример 10.4. Условие из предыдущего примера. В программе используются две подпрограммы-функции.
Program Project4; var x, y: integer; s1, p1: real;
function p(a, b: integer): real; begin p: =2*(a+b)/100; end;
function s(a, b: integer): real; begin s: =a*b/10000; end;
begin x: =30; y: =40; p1: =p(x, y); s1: =s(x, y); writeln('p1=', p1: 6: 2, ' s1=', s1: 6: 2); readln; end.
Пример 10.5. Условие из предыдущего примера. В программе используется процедура parametr без параметров.
Program Project5; var a, b: integer; p, s: real; procedure parametr; begin p: =2*(a+b)/100; s: =(a*b)/10000; end; begin write('a='); readln(a); write('b='); readln(b); parametr; writeln('p=', p: 6: 2, ' s=', s: 6: 2); a: =50; b: =80; parametr; writeln('p=', p: 6: 2, ' s=', s: 6: 2); readln; end.
Пример 10.6. Условие из предыдущего примера. В программе используются две функции (s и p) без параметров.
Program Project6; var a, b: integer; p1, s1: real; function p: real; begin p: =2*(a+b)/100; end;
function s: real; begin s: =a*b/10000; end;
begin a: =30; b: =40; p1: =p; s1: =s; writeln('p1=', p1: 6: 2, ' s1=', s1: 6: 2); readln; end.
Варианты заданий (2 задания) Задание 1. Написать программу с подпрограммой-функцией. Задание 2. Написать программу с подпрограммой-процедурой (с параметром или параметрами).
1. Даны действительные s и t. Рассчитать f(t, -2s, 1.17)+f(2.2, t, s-t), где подпрограмма. 2. Даны действительные а, b, с. Получить , где max(x, y) подпрограмма. 3. Даны действительные числа S и t. Рассчитать f(t, -3*s, 2.5-t)+f( 5.2, 3*t, s-t), где подпрограмма. 4. Даны действительные числа S и t. Рассчитать f(1.5*t, 2*s)+f(t, 3-s)-f(2*s-3, t+s), где подпрограмма. 5. Даны действительные числа S и t. Рассчитать h(s, t)+h(h2 (s-t, s*t), h4 (s-t, s+t))+h(1, 1), где подпрограммы. 6. Даны действительные числа a, b. Рассчитать Y=min(a, b), Y1=min(min(a*b, a+b), min(a2 –b*a, b3-3*a)), Y2=min(Y12+Y, 5.25), где min(x, x1) подпрограмма. 7. Даны действительные числа S и t. Рассчитать f(t, 4*s, 2.5*t)+f( 5, 2*t, s+t), где подпрограмма. 8. Даны действительные числа S и t. Рассчитать h(s, t)+h3 (s-t, s*t)+h2 (s-t, s+t)+h(1, 1), где подпрограмма. 9. Даны действительные числа a, b, c. Рассчитать , где max(x, x1) описать как подпрограмму. 10. Вычислить К = (x + y + z) / 3, где x – наибольшее значение из параметров х1, х2, y - из y1, y2, z – из z1, z2. Использовать подпрограмму для нахождения наибольшего значения из двух параметров. 11. В порт в среднем приходят 3 корабля в день. Какова вероятность того, что в день придет 2 корабля, 4 корабля? Вероятность вычислять по формуле Р = 3 * е - 3 / к!. Использовать подпрограмму для расчета к!. 12. Вычислить Z = (v1 + v2 + v3) / 3, где v1, v2, v3 – объемы шаров с радиусами r1, r2, r3 соответственно. Использовать подпрограмму для расчета объёмов шаров. Объем шара вычислять по формуле V = 4 / 3*Пi*R3. 13. Определить число сочетаний из n по m (n> m), по формуле С=n! /m! (n-m). Использовать одну подпрограмму для расчета n! и m!. 14. Вычислить Z = (n + m) / 2, где n – наименьшее значение из параметров n1, n2, m – из m1, m2. Использовать подпрограмму для нахождения наименьшего значения из двух параметров. 15. Составить программу вычисления значения функции S = x2 + y2 + sin(2 * x2 * y2) + x + z + sin(2 * x * z) + y2 + z2 + sin(2 * y2 * z2), используя подпрограмму для расчета a + b + sin(2 * a * b).
Популярное:
|
Последнее изменение этой страницы: 2016-05-03; Просмотров: 584; Нарушение авторского права страницы