Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
П20 лаба.doc
Скачиваний:
2
Добавлен:
14.07.2019
Размер:
340.48 Кб
Скачать

Лабораторна робота «Основи програмування та алгоритмічні мови»

Лабораторна робота №3

Тема: «Використання функцій та процедур»

Мета завдання::

  1. Отримання практичних навичок алгоритмізації і програмування завдань з використанням функцій і процедур.

  2. Закріплення вмінь та навичок опису підпрограм, вибору параметрів, організації звернення до них.

Постановка завдання:

  1. Скласти програму рішення задачі відповідно до заданої умови. Використовувати дану функцію або процедуру як фрагмент програми, організувати в програмі звернення до неї, вказавши відповідні фактичні параметри при кожному виклику підпрограми. Початкові дані вибрати самостійно.

  2. Скласти програму обчислення заданого виразу, використовуючи підпрограму-функцію.

  3. Скласти програму для вирішення завдання курсу геометрії відповідно до свого варіанту, обчислення за відомими формулами організувати у вигляді підпрограм-функцій.

  4. Скласти програму рішення задачі з використанням підпрограми-процедури.

Зміст звіту:

  1. Постановка завдання для конкретного варіанту.

  2. Текст програми.

  3. Блок-схема алгоритму рішення задачі.

  4. Роздрук результатів роботи програми.

Теоретична частина:

  1. Використання рекурсії.

  2. Випереджаючий опис.

Варіанти завдань

Завдання №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;

Var

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;

Var

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

  1. Скласти програму, яка перевіряє, чи є чотирикутник, заданий координатами своїх вершин паралелограмом, використовуючи процедуру, що повертає як результат координати середини відрізку.

  1. Скласти програму обчислення довжин діагоналей чотирикутника, заданого координатами своїх вершин , використовуючи процедуру, що повертає як результат довжини двох діагоналей.

  1. Скласти програму обчислення радіусів r, R вписаного і описаного кіл біля рівностороннього трикутника із стороною а. Обчислення радіусів оформити у вигляді підпрограми-процедури.

  1. Напишіть програму знаходження кутового коефіцієнта k і коефіцієнта b в рівнянні прямої, заданої рівнянням , якщо відомо, що графік цього рівняння проходить через точки з координатами чи відомо, що графік цього рівняння проходить чдуры._____________________________________________________________________.

  1. Скласти програму обчислення радіусів r, R вписаного і описаного кіл біля трикутника із сторонами а,b,c. Обчислення радіусів оформити у вигляді підпрограми-процедури.

  1. Скласти програму обчислення координат вектора , якщо задані вектори і . Обчислення координат вектора оформити у вигляді підпрограми-процедури.

  1. Скласти програму обчислення радіусів r, R вписаного і описаного кіл біля правильного багатокутника із стороною а. Обчислення радіусів оформити у вигляді підпрограми-процедури.

  1. Скласти програму знаходження суми двох комплексних чисел і з використанням підпрограми-процедури обчислення .

  1. Скласти програму, яка обчислює периметр і площу ромба, якщо задані довжини його діагоналей . Обчислення площі і периметра оформити у вигляді підпрограми-процедури.

  1. Скласти програму впорядковування послідовності 3 даних чисел а,b,c за збільшенням з використанням підпрограми-процедури впорядковування.

  1. Скласти програму впорядковування послідовності 3 даних чисел x,y,z за спаданням з використанням підпрограми-процедури впорядковування.

  1. Відрізок АВ розбитий на чотири рівні частини. Знайти координати точок ділення, якщо . Обчислення координат середини відрізку оформити у вигляді підпрограми-процедури.

  1. Напишіть програму обчислення площі поверхні і довжини екватора на основі відомого радіусу планет сонячної системи. Форму планет вважати кулею. Обчислення площі поверхні і довжини екватора оформити у вигляді підпрограми-процедури.