Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Львівський коледж
Державного університету інформаційно-комунікаційних технологій
Розглянуто та схвалено на засіданні циклової комісії природничо-математичних дисциплін Протокол № від 2012 р. Голова циклової комісії_____ Конончук О.М. |
ЗатверджуюЗаступник директора з навчальної виробничої роботи _____________ Плешівський Я.М. “_____” ____________ 2012 р |
Інструкція
до лабораторної роботи з інформатики
на тему:
«Створення та реалізація програм з використанням функцій користувача та процедур»
Викладачі Конончук П. П.,
Конончук О.М.
Львів 2012
Лабораторна робота на тему: Створення та реалізація програм з використанням функцій користувача та процедур.
Мета: Навчитися складати та реалізовувати програми з використанням функцій користувача та процедур.
Теоретичні відомості
В мові Паскаль використовується два види підпрограм - процедури та функції. Вони відрізняються між собою структурою та способом виклику.
При проектуванні програми визначається, які частини алгоритму треба реалізувати як процедури, а де знадобиться функція. В головній частині програми підпрограми розташовуються після розділу опису даних перед оператором Begin, а викликаються при потребі в процесі виконання головної програми або іншої підпрограми. Структура процедури має вигляд:
Procedure імя (список формальних параметрів);
Розділ локальних даних
Begin
... {розділ виконавчих операторів}
End;
Перший рядок складає заголовок процедури, імя процедури вибирає програміст так як і ім'я змінної. В розділі локальних даних (який взагалі може бути відсутнім) описують ті дані, які використовуються тільки для «службових» цілей в самій процедурі (параметри циклів, робочі змінні та масиви, тощо).
Всередині підпрограми записують послідовність операторів, які реалізують потрібний алгоритм. При цьому вони працюють з формальними параметрами, локальними та глобальними даними.
Зв'язок між окремими частинами програми здійснюється через списки формальних параметрів та за допомогою глобальних змінних.
Глобальні дані описуються в головній програмі вони не являються фактичними параметрами при виклику підпрограм, не описані в підпрограмах, а використовуються в одній з них і в головній програмі.
Результати роботи підпрограми можуть бути передані до головної програми через формальні параметри та глобальні дані.
Приклад1. Програма обчислення суми десяткових цифр.
Const N=5;
Var X:Array [1..N] of Integer;
SumX, Kill,I : Integer;
Procedure Sum(A:Integer; Var ISum:Integer);
Begin
ISum:=0;
While A<>0 do
Begin
Kill:=Kill+1;
ISum:=ISum+Abs(A) mod 10;
A:=A div 10;
End; End;
Begin
Writeln(Введіть масив);
For I:=1 to N do Read(X[i]);
Kill:=0;
For I:=1 to N do
Begin
Sum(X[I], SumX);
Writeln(X[I]:6, SumX:4);
End;
Writeln(Загальна кількість цифр, Kill);
End.
Підпрограми-функції використовуються для реалізації алгоритму та повернення в головну програму одного результату в вигляді імені функції.
Ім'я функції вибирається довільно (як ім'я змінної).
Структура функції:
Function ім'я(список формальних параметрів): тип імені;
{локальні дані}
Begin
... ім'я := ...;
End;
Типом функції може бути скалярний тип, тобто: цілий, дійсний, логічний, символьний та рядковий тип String.
Відносно формальних параметрів, локальних та глобальних даних в функції діють такі ж самі обмеження та вимоги, що і в процедурах.
В виконавчій частині підпрограми-функції повинен бути хоча б один оператор в якому імені функції: призначається значення.
Звернення до функції виконується з якого-небудь арифметичного виразу так, як і до стандартних функцій тину sin(x), ln(x), тощо. Результат роботи функції передається в місце її виклику.
Pєкypciєю нaзuвaєтьcя aлгopumмiчнa кoнcmpyкцiя, дe niдnpoгpaмa вuклuкaє caмa ceбe. Peкypciя дaє змoгy зaпиcyвaти циклiчний aлгopитм, нe викopиcтoвyючи кoмaндy циклy. Poзглянeмo cпoчaткy пoняття cтeкy.
Cmeк цe cтpyктypa дaниx в oпepaтивнoї пaм'ятi, дe дaнi зaпaм'ятoвyютьcя i збepiгaютьcя зa пpинципoм «пepший пpийшoв ocтaннiм пiшoв». Aнaлoгoм y військовій cпpaвi є piжoк для нaбoїв дo aвтoмaтa
Приклад2. Cклacти peкypcивнy фyнкцiю Factorial для oбчиcлeння фaктopiaлa чиcлa n! = 1* 2* 3* ...* n, (0! = 1, 1! = 1), якa гpyнтyєтьcя нa бaгaтopaзoвoмy (peкypcивнoмy) зacтocyвaннi фopмyли n! = n* (n - 1)!.
Програма:
function Factoгial (n : integeг) : integer;
begin
if n = 0 then Factorial := 1 {Цe cmon-yмoea}
else Factorial := n * Factorial(n-1)
end;
Oбчиcлимo 4!: Factorial(4) = 4 • Factoгial(3) = 4 • 3 • Factoгial(2) = 4 • 3 • 2 • Factorial(l) = 4 • 3 • 2 • 1 • Factorial(0) = 4 • 3 • 2 • 1 • 1. У cтeк бyдyть зaнeceнi чиcлa 4, 3, 2, 1, 1. Peзyльтaт yтвopитьcя тaк: 1 • 1 • 2 • 3 • 4 = 24.
Зayвaжeння. Зacтocoвyючи peкypciю, пoтpiбнo пpaвильнo cклaдaти cтoп-yмoви, якi зaбeзпeчyють зaкiнчeння циклiчниx oбчиcлeнь.
Х і д р о б о т и :
Контрольні запитання
Індивідуальні завдання:
№ |
Формула для обчислення елементів матриці |
№ |
Формула для обчислення елементів матриці |
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
Скласти блок-схему алгоритму та програму формування двовимірного масиву дійсних чисел А[1..4, 1..5] введенням значень його елементів за допомогою формули згідно варіантів поданих в таблиці та виведення його у вигляді таблиці на екран використовуючи звернення до процедури (обчислення факторіалу здійснити за допомогою підпрограми-функції):