Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Мет. вказ. Программирование (2 сем).doc
Скачиваний:
27
Добавлен:
26.11.2018
Размер:
3 Мб
Скачать
☆

Лабораторна робота 9 Програмування з використанням процедур і функцій

Мета роботи. познайомитися з поняттями "процедура" і "функція" у мові програмування Pascal, розглянути їхні подібності і розходження, закріпити практичні навички роботи із системою TURBO Pascal на прикладі реалізації алгоритмів за допомогою процедур і функцій, навчитися застосовувати метод послідовної деталізації в практичному програмуванні; застосовувати процедури і функції при рішенні задач.

Часто в програмі виявляються однотипні ділянки, що виконують ті самі обчислення, але з різними даними. Такі частини програми доцільно оформляти у виді підпрограм. У мові Pascal існує два види підпрограм: процедури і функції.

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

Приклад. Знайти суму додатних елементів у масиві.

Етапи рішення задачі:

  1. Алгоритм рішення досить простий - у циклі будемо "пробігати" масив, порівнюючи його члени з 0 і додавати, якщо вони більші нуля.

  2. Складемо блок-схему програми

Уточнимо з яких блоків складається блок "Додавання додатних елементів"

Зміст цих блоків не є складним, тому не варто їх уточнювати.

  1. Напишемо програму мовою Паскаль

program example10;

type

Tarray = array[1..100] of integer;

Var v: Tarray;

N,i,s:integer;

Procedure vvod_data(var m:Tarray;n:integer);

Var i:integer;

Begin

Writeln('Уведіть ',n,' чисел через пробіл');

For i:= 1 to n do read(m[i]);

End;

Function summ(m:TArray):integer;

Var s:integer;

Begin

S:=0;

For i:= 1 to n do if m[i]>0 then s:= s+m[i];

Summ:=s;

End;

begin

write('Уведіть розмірність масиву N= '); readln(n);

vvod_Data(v,n);

s:= summ(v);

writeln('Сума= ',s);

end.

Контрольні питання

  1. Для чого потрібні в програмі процедури і функції?

  2. У чому відмінність між процедурою і функцією?

  3. Чим відрізняються формальні і фактичні параметри?

  4. Чим відрізняються параметри-значення і параметрі-змінні?

  5. Як описуються глобальні і локальні змінні?

  6. Чому при звертанні до процедури, аргумент, переданий параметр-змінної, може бути тільки змінною, а не константою чи виразом?

Задачі.

  1. Дано дійсні числа х1, у1, х2, у2, ...,х10, у10. Знайти периметр десятикутника, вершини якого мають відповідно координати (х1, у1), (х2, у2), ..., (х10, у10). (Визначити процедуру обчислення відстані між двома точками, заданими своїми координатами.)

  2. Дано a,b,c,d,e - сторони п'ятикутника. Знайти площу п'ятикутника. (Визначити процедуру обчислення площі трикутника за його сторонами)

Дано три символьні матриці.

3. Ту матрицю, де є хоча б одній голосна – транспонувати.

4. У тій матриці, на головній діагоналі якої всі цифри, знайти найменшу і видалити відповідний рядок.

5. Описати функцію Stepen (x,n) від дійсного x і цілого n, що обчислює (за допомогою множення) величину xn, і використовувати її для обчислення b=2.7k+(a+1)-5.

6. Дано відрізки a,b,c і d. Для кожної трійки цих відрізків, з яких можна побудувати трикутник, надрукувати площу даного трикутника. Визначити процедуру Plo(x,y,z), що видає площу трикутника зі сторонами x,y і z, якщо такий трикутник існує.

7. Нехай процедура Socr(a,b,p,q) від цілих параметрів () приводить дріб до нескоротного виду. Описати дану процедуру і використовувати її для приведення дробу до нескоротного.

8. Дано довжини a, b і c сторін деякого трикутника. Знайти медіани трикутника, сторонами якого є медіани початкового трикутника. Довжину медіани, проведеної до сторони a.

9. Дано координати вершин двох трикутників. Визначити, який з них має більшу площу.

10. Дано координати вершин трикутника і координати деякої точки усередині нього. Знайти відстань від даної точки до найближчої сторони трикутника.

11. Два натуральних числа називаються "дружніми", якщо кожне з них дорівнює сумі всіх дільників іншого, за винятком його самого (такі, наприклад, числа 220 і 284). Надрукувати усі пари "дружніх" чисел, що не перевершують заданого натурального числа.

  1. Дано парне число n > 2. Перевірити для цього числа гіпотезу Гольдбаха. Ця гіпотеза полягає в тім, що кожне парне n, більше двох, можна представити у вигляді суми двох простих чисел.

  2. Дано натуральне число n. З'ясувати, чи є воно повним квадратом. Визначити функцію, що дозволяє розпізнавати повні квадрати.

  3. Потрібно написати програму, що виводить у порядку зростання всі правильні нескоротні дроби, знаменники яких менше N ().