
Лабораторна
робота
«Основи
програмування
та
алгоритмічні
мови»
Лабораторна робота №3
Тема: «Використання функцій та процедур»
Мета завдання::
Отримання практичних навичок алгоритмізації і програмування завдань з використанням функцій і процедур.
Закріплення вмінь та навичок опису підпрограм, вибору параметрів, організації звернення до них.
Постановка завдання:
Скласти програму рішення задачі відповідно до заданої умови. Використовувати дану функцію або процедуру як фрагмент програми, організувати в програмі звернення до неї, вказавши відповідні фактичні параметри при кожному виклику підпрограми. Початкові дані вибрати самостійно.
Скласти програму обчислення заданого виразу, використовуючи підпрограму-функцію.
Скласти програму для вирішення завдання курсу геометрії відповідно до свого варіанту, обчислення за відомими формулами організувати у вигляді підпрограм-функцій.
Скласти програму рішення задачі з використанням підпрограми-процедури.
Зміст звіту:
Постановка завдання для конкретного варіанту.
Текст програми.
Блок-схема алгоритму рішення задачі.
Роздрук результатів роботи програми.
Теоретична частина:
Використання рекурсії.
Випереджаючий опис.
Варіанти завдань
Завдання №1
Скласти програму рішення даної задачі відповідно до номера свого варіанту. Використовувати дану функцію або процедуру як фрагмент програми, організувати в програмі звернення до неї, вказавши відповідні фактичні параметри при кожному виклику підпрограми.
Варіант 1.
Скласти
програму обчислення найменшого загального
кратного двох введених чисел х, у за
формулою
,
використовуючи процедуру обчислення
найбільшого загального дільника цих
чисел.
Procedure NOD(a,b:integer; var k:integer);
Begin
While a<>b do
If a>b then a:=a-b else b:=b-a;
k:=a;
End;
Варіант 2.
Скласти програму обчислення найменшого загального кратного двох введених чисел х, у за формулою , використовуючи функцію обчислення найбільшого загального дільника цих чисел.
Function NOD(a,b:integer):integer;
Begin
While a<>b do
If a>b then a:=a-b else b:=b-a;
NOD:=a;
End;
Варіант 3.
Скласти програму обчислення найбільшого загального дільника трьох введених чисел х, у, z, використовуючи процедуру обчислення найбільшого загального дільника цих чисел.
Procedure NOD(a,b:integer; var k:integer);
Begin
While a<>b do
If a>b then a:=a-b else b:=b-a;
k:=a;
End;
Варіант 4.
Скласти програму, яка визначає, чи є три введені числа х, у, z взаємно-простими. Взаємно-простими називаються числа, найбільший загальний дільник яких дорівнює 1. Використовувати функцію обчислення найбільшого загального дільника цих чисел.
Function NOD(a,b:integer):integer;
Begin
While a<>b do
If a>b then a:=a-b else b:=b-a;
NOD:=a;
End;
Варіант 5.
Скласти
програму обчислення
,
використовуючи процедуру зведення
дійсного числа в цілу ступінь
.
Procedure Step(n:integer; x:real; var y:real);
Var i: integer;
Begin
y:=1;
for i:=1 to n do
y:=y*x;
End;
Варіант 6.
Скласти
програму обчислення суми
,
використовуючи
функцію обчислення факторіалу натурального
числа.
Function Fact(n:integer):integer;
V
j,p:integer;
Begin
p:=1;
For j:=1 to n do p:=p*j;
Fact:=p;
End;
Варіант 7.
Скласти програму для обчислення
виразу
,
а-дійсне, m-ціле,
використовуючи функцію для зведення
дійсного числа в цілу ступінь.
Function Step(n:integer; x:real:real;
Var i: integer;
y: real;
Begin
y:=1;
for i:=1 to n do
y:=y*x;
Step:=y;
End;
Варіант 8.
Скласти програму для обчислення прибутку по внеску залежно від введеного терміну (1, 3, 5, m років), якщо введена відсоткова ставка і сума внеску.
Function dohod(sum, stavka:real; srok:integer):real;
Begin
dohod:=sum*(stavka/100/365)*srok;
End;
Варіант 9.
Скласти
програму обчислення суми
,
використовуючи
функцію обчислення факторіалу натурального
числа.
Function Fact(n:integer):integer;
V
j,p:integer;
Begin
p:=1;
For j:=1 to n do p:=p*j;
Fact:=p;
End;
Варіант 10.
Скласти програму для обчислення опору в електричній мережі. Розрахувати опір залежно від типу з'єднання t (1 - послідовне, 2 - паралельне). Якщо тип з'єднання вказаний невірно, як результат функція поверне значення -1.
Function sopr(r1,r2:real; t:integer):real;
Begin
if t=1 then sopr:=r1+r2 else
if t=2 then sopr:=r1*r2/(r1+r2)
else sopr:=-1;
End;
Варіант 11.
Скласти
програму для множення двох звичайних
дробів вигляду
і
,
якщо вводяться чисельники і знаменники
дробів. Результат представити у вигляді
нескоротного дробу. Для скорочення
використовувати функцію знаходження
найбільшого загального дільника.
Function NOD(a,b:integer):integer;
Begin
While a<>b do
If a>b then a:=a-b else b:=b-a;
NOD:=a;
End;
Варіант 12.
Скласти програму для підсумовування простих чисел з проміжку [m;n] . Використовувати функцію, перевіряючу чи є число простим.
Function PROST(n:integer):boolean;
Var i: integer;
Begin
i:=1;
Repeat
i:=i+1;
until n mod i=0;
If i=n then PROST:=TRUE
else PROST:=FALSE;
End;
Варіант 13.
Скласти програму для визначення кількості простих чисел з проміжку [1;n] . Використовувати функцію, перевіряючу чи є число простим.
Function PROST(n:integer):boolean;
Var i: integer;
Begin
i:=1;
Repeat
i:=i+1;
until n mod i=0;
If i=n then PROST:=TRUE
else PROST:=FALSE;
End;
Завдання №2
1. Скласти програму обчислення
даного виразу:
,
де
-
функція знаходження найбільшого з двох
чисел.
2. Скласти програму обчислення
даного виразу:
,
де
-
функція знаходження найменшого з двох
чисел.
3. Скласти програму обчислення значення виразу:
,
використовуючи функцію
для обчислення значення
.
4. Напишіть програму обчислення виразу:
,
де
.
Обчислення значень х оформити у вигляді підпрограми-функції.
5. Скласти програму обчислення
даного виразу:
.
Піднесення дійсної підстави до ступеня
з натуральним показником оформити у
вигляді функції, як знаходження добутку
однакових множників, не використовуючи
стандартної математичної функції
обчислення ступеня.
6. Скласти програму обчислення
даного виразу:
.
Обчислення значення модуля оформити у
вигляді функції
.
7. Складіть програму обчислення
числа сполучень з N по М. Число сполучень
визначається за формулою:
,
де n!=1∙2∙3∙…∙n.
Обчислення факторіалу оформити у вигляді
функції.
8. Скласти програму знаходження більшого з 4 чисел а,b,c,d з використанням функції пошуку більшого з двох.
9. Скласти програму знаходження меншого з 4 чисел x,y,z,t з використанням функції пошуку мінімального з двох чисел.
10. Дано дійсні числа s і t.
Отримати
,
де
.
Обчислення величини g(а,b)
оформити у вигляді функції.
11. Дано дійсні числа s і t.
Отримати
,
де
.
Обчислення величини f(а,b,c)
оформити у вигляді функції.
12. Скласти програму обчислення
даного виразу:
,
де
-
функція знаходження максимального з
двох чисел.
13. Обчислити
Z=(sign(x)+sign(y))∙sign(x+y),
де
-функія
визначення знаку числа, що приймає
значення 1, якщо число а-
додатнє; -1, якщо число
а- від’ємне;
0 – при а=0.
Завдання №3
1. Скласти програму для
обчислення медіан трикутника із заданими
сторонами
за формулами:
.
2. Скласти програму, яка
визначає кути трикутника із сторонами
за формулами:
.
3. Скласти програму, яка
обчислює периметр трикутника, якщо
задані координати вершин
.
Обчислення відстані між двома точками
оформити у вигляді функції за відомою
формулою:
.
4. Скласти програму, яка знаходить найбільшу сторону трикутника, якщо задані координати вершин . Обчислення відстані між двома точками оформити у вигляді функції за відомою формулою: .
5. Скласти програму, яка знаходить найменшу сторону трикутника, якщо задані координати вершин . Обчислення довжин сторін трикутника за формулою знаходження відстані між двома точками: оформити у вигляді функції.
6. Скласти програму, яка
обчислює найбільшу середню лінію
трикутника із заданими координатами
вершин
.
Обчислення відстані між двома точками
оформити у вигляді функції за відомою
формулою:
.
7. Скласти програму, яка для
чотирикутника, заданого координатами
своїх вершин
перевіряє,
чи є він квадратом. Обчислення довжин
відрізків оформити у вигляді функції
за відомою формулою:
.
8. Скласти програму, яка обчислює бісектриси трикутника із сторонами за формулами:
9. Скласти програму для
обчислення
де
-об'єми
куль з радіусами
.
Обчислення об'єму кулі оформити у вигляді
функції.
10. Скласти функцію обчислення
висот трикутника із сторонами
за формулами
,
,
,
де
,
,
якщо задані сторони трикутника
.
11. Скласти програму, яка перевіряє, чи є чотирикутник, заданий координатами своїх вершин ромбом.
12. Задані координати вершин
п'ятикутника
.
Скласти програму, що визначає периметр
п'ятикутника. Обчислення довжин сторін
оформити у вигляді функції за відомою
формулою:
.
13. Скласти програму, яка перевіряє, скільки існує трикутників із за пропонованими довжинами сторін а, b, с, d, e. Використовувати нерівність трикутника.
Завдання №4
Скласти програму, яка перевіряє, чи є чотирикутник, заданий координатами своїх вершин паралелограмом, використовуючи процедуру, що повертає як результат координати середини відрізку.
Скласти програму обчислення довжин діагоналей чотирикутника, заданого координатами своїх вершин , використовуючи процедуру, що повертає як результат довжини двох діагоналей.
Скласти програму обчислення радіусів r, R вписаного і описаного кіл біля рівностороннього трикутника із стороною а. Обчислення радіусів оформити у вигляді підпрограми-процедури.
Напишіть програму знаходження кутового коефіцієнта k і коефіцієнта b в рівнянні прямої, заданої рівнянням
, якщо відомо, що графік цього рівняння проходить через точки з координатами
чи відомо, що графік цього рівняння проходить чдуры._____________________________________________________________________.
Скласти програму обчислення радіусів r, R вписаного і описаного кіл біля трикутника із сторонами а,b,c. Обчислення радіусів оформити у вигляді підпрограми-процедури.
Скласти програму обчислення координат вектора
, якщо задані вектори
і
. Обчислення координат вектора оформити у вигляді підпрограми-процедури.
Скласти програму обчислення радіусів r, R вписаного і описаного кіл біля правильного багатокутника із стороною а. Обчислення радіусів оформити у вигляді підпрограми-процедури.
Скласти програму знаходження суми двох комплексних чисел
і
з використанням підпрограми-процедури обчислення
.
Скласти програму, яка обчислює периметр і площу ромба, якщо задані довжини його діагоналей
. Обчислення площі і периметра оформити у вигляді підпрограми-процедури.
Скласти програму впорядковування послідовності 3 даних чисел а,b,c за збільшенням з використанням підпрограми-процедури впорядковування.
Скласти програму впорядковування послідовності 3 даних чисел x,y,z за спаданням з використанням підпрограми-процедури впорядковування.
Відрізок АВ розбитий на чотири рівні частини. Знайти координати точок ділення, якщо
. Обчислення координат середини відрізку оформити у вигляді підпрограми-процедури.
Напишіть програму обчислення площі поверхні і довжини екватора на основі відомого радіусу планет сонячної системи. Форму планет вважати кулею. Обчислення площі поверхні і довжини екватора оформити у вигляді підпрограми-процедури.