Лабораторна робота «Основи програмування та алгоритмічні мови»
Лабораторна робота №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 за спаданням з використанням підпрограми-процедури впорядковування.
Відрізок АВ розбитий на чотири рівні частини. Знайти координати точок ділення, якщо . Обчислення координат середини відрізку оформити у вигляді підпрограми-процедури.
Напишіть програму обчислення площі поверхні і довжини екватора на основі відомого радіусу планет сонячної системи. Форму планет вважати кулею. Обчислення площі поверхні і довжини екватора оформити у вигляді підпрограми-процедури.