Всё сдал! - помощь студентам онлайн Всё сдал! - помощь студентам онлайн

Реальная база готовых
студенческих работ

Узнайте стоимость индивидуальной работы!

Вы нашли то, что искали?

Вы нашли то, что искали?

Да, спасибо!

0%

Нет, пока не нашел

0%

Узнайте стоимость индивидуальной работы

это быстро и бесплатно

Получите скидку

Оформите заказ сейчас и получите скидку 100 руб.!


Процедури та функції в Turbo Pascal

Тип Реферат
Предмет Информатика
Просмотров
402
Размер файла
28 б
Поделиться

Ознакомительный фрагмент работы:

Процедури та функції в Turbo Pascal

Житомирський військовий інститут національного авіаційного університету

Реферат

на тему:

Процедури та функції в TurboPascal

Житомир 2010

1. Загальні відомості про процедури та функції

Автономна частка програми (яка реалізує визначений алгоритм і припускає звертання до неї із різних часток загальної програми) називається підпрограмою.

Розміщення підпрограм у програмі схоже з ієрархічним принципом побудови файлової системи (рис.1).

Рис. 1.

Позитивні сторони використання підпрограм:

1) реалізується метод структурного програмування (блочна, модульна побудова);

2) економія пам’яті (яка виділяється для зберігання змінних підпрограми тільки під час роботи підпрограми);

3) імена змінних в основній програмі і підпрограмах незалежні (потр. змінна А програми і підпрограми можуть мати різні фізичні значення);

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

В мові Паскаль виділяють два види підпрограм:

- процедура (PROCEDURE);

- функція (FUNCTION).

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

Форма заголовків:

Program <ім’я> (список параметрів)

Procedure <ім’я> (список параметрів)

Function <ім’я> (список параметрів)

Блоки можуть бути незалежними або вкладеними один в одного. Відповідно вони носять назву зовнішнього або внутрішнього (рис.1).

Рис. 2. Принцип блочної побудови програми

Змінні і константи можна описувати у зовнішніх або внутрішніх блоках. Тому виникає два поняття змінних і констант: локальні і глобальні.

Локальні – існують у рамках того блока, де вони описані. Тобто за межами даного блока їх використовувати не можливо.

Глобальні – описані у зовнішньому блоці але використовують у внутрішньому блоці.

Правила локалізації змінних:

1) змінна (константа) існує в рамках того блока де вона описана;

2) кожна змінна в межах блока повинна бути описана тільки один раз;

3) якщо у внутрішньому блоці використовується змінна, яка описана у зовнішніх блоках, то діє тільки опис самого внутрішнього блоку (найближчого);

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

2. Процедури з параметрами та без параметрів

Процедури з параметрами (методика розробки)

· процедура складається із заголовка і блока. Блок будується стандартно і не відрізняється від блока програми за винятком того, що наприкінці процедури ставиться крапка з комою.

· Ім’я вибирають довільно. Параметри, які містяться у списку параметрів, носять назву формальних – тобто вони не приймають ніяких значень, а тільки позначають місця, на які далі будуть поставлені так звані фактичні параметри. Параметри позначають початкові дані (аргументи) і результати виконання процедури.

· Список параметрів складається із окремих секцій, які відокремлюють крапкою з комою ( ; ). В секції вказується перелік (список) параметрів і через двокрапку їх тип.

Наприклад:

Procedure R( x, y : real; k : integer; var s : real);

Тут параметри x і y вказують першу секцію, k – другу, s – третю. В даному прикладі x, y, k – параметри-значення; s – оператор-змінна, перед яким повинно стояти службове слово var. Параметри-значення – аргументи функції, а параметри-змінні – результати виконання процедури.

Приклад 2.1.1 розробки процедури:

Procedure Sum (a, b : real; var y, z : real);

const n=10;

var i : integer;

begin

for i := 1 to n do

begin

y := a + b * i;

z := 4 * y – i;

end;

end

Тут a і b – вхідні параметри, їх значення передаються із основної програми в цю процедуру. Результати процедури (вихідні параметри)є обчислені значення y і z, які передаються із процедури в основну програму і там можуть бути використані.

Методика використання процедури у зовнішньому блоці

Для використання процедур існує так званий оператор процедури:

<ім’я процедури> (список фактичних параметрів)

Ім’я повинноспівпадати з іменем записаної процедури. Параметри у дужках носять назву фактичних. Вони відповідають реальним змінним, над якими виконують операції. Фактичні і формальні параметри повинні відповідати одне одному за містом їх розміщення і типом. Список фактичних параметрів не містить типів даних, бо вони вже вказані у списку формальних параметрів.

Program PR;

procedure P(x, y : real; var z : real );

end;

begin

P(a, b, c);{виклик процедури}

end

Приклад 2.2.1

в програмі визначити довжину кола C і площі круга S, обмеженого цим колом; відстань L центра кола від початку координат О. Координати центра кола – x, y, радіус кола – R.

Program KOLO (input, output);

var R: real; {радіус}

x, y: real;{координати центра}

C: real;{довжина кола}

S: real;{площа круга}

L: real;{відстань від центру}

Procedure KRUG (R, x, y : real; var C, S, L : real);

const pi = 3.14;

begin

C:= 2 * pi * R;

S:= pi* sqr ( R );

L:= sqrt ( sqr(x) + sqr(y));

end;

begin

writeln (‘ ввести R, x , y :‘);

read (x, y , R);

KRUG (R, x ,y, C, S, L);

writeln (‘довжина кола = ’, C : 6 : 2);

writeln (‘площа кола = ’, S : 6 : 2);

writeln (‘відстань = ’, L : 6 : 2);

end.

Суть (трактовка) параметрів-значень і параметрів змінних

Розглянемо особливості передачі параметрів із зовнішнього блоку до внутрішнього.

1-й спосіб – підстановка на місце формальних параметрів обчислених значень фактичних параметрів. Наприклад (див. приклад 2.1.1):

Sum (3.5, 7.6, y, z);

2-й спосіб – підстановка замість формальних параметрів імен фактичних параметрів:

Sum (x1, x2, y, z);

При цьому результати процедури завжди отримують імена (і не обов’язково співпадають з іменами формальних параметрів). Наприклад:

Sum (x1, x2, С, D);

Розглянемо можливі варіанти опису фактичних параметрів у зовнішньому блоці і відповідне звертання до процедури.

Таблиця 2.1

І. Procedure P(x : тип; y : тип; var z : тип);
1

A – const; B - const;

C – var

P (A, B, C)
2

A – var; B – var;

C – var

A := F1; B := F2;

P (A, B, C);

або read (A, B);

P (A, B, C);

3C – var;P (3, 4 ,C);
ІІ. Procedure P1(var x : тип; var y : тип; var z : тип);
4

A – var;

B – var;

C – var;

A := F1; B :=F2;

aбо

read (A, B);

P1 (A, B, C);

Коментарій табл.2.1:

1) фактичні параметри A і B у зовнішньому блоці описані як const і замінюють формальні параметри – значення x, y процедури Р;

2) фактичні параметри А і В обчислюються або вводяться у зовнішньому блоці перед вставленням їх у процедуру;

3) фактичні параметри А і В не об’явлені. Тому замість їх імен вставленні конкретні значення 3 і 4;

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

Процедури без параметрів

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

Приклад 2.2.1а:

Program KOLO1 ( input, output );

var R, x, y, С, S, L : real;

procedure KRUG;

const pi = 3.14;

begin

C := 2 * pi * R;

S := pi* sqr ( R );

L := sqrt ( sqr(x) + sqr(y));

end;

begin

writeln ( ‘ ввести R, x , y :‘);

read ( x, y , R);

KRUG ;

writeln (‘довжина кола = ’, C : 6 : 2);

writeln (‘площа кола = ’, S : 6 : 2);

writeln (‘відстань від центра = ’, L : 6 : 2);

end.


Змінні, яки використані у процедурі описані як глобальні (R, x, y, C, S, L).

3. Особливості використання функцій

Особливості функцій:

1) має тільки один результат виконання (процедури дозволяють отримати ряд результатів для різних параметрів);

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

3) форма побудови функції відрізняється від процедури тільки заголовком;

4) можна викликати в середині виразу:

F := FAСT (M) – FAСT (K);

Приклади заголовків функції:

1) FUNCTION f (a, b :real) : real;

a і b – дійсні параметри значення; f – ім’я функції, яка отримає результат виконання функції типу real.

2) FUNCTION f1 (x : real; var y, z : integer) : real;

x - дійсний параметр-значення;

y, z – цілі параметри-змінні;

Суть параметрів-значень і параметрів-змінних аналогічна процедурам

3) FUNCTION f2 : real;

без параметрів.

Приклад 3.1: знайти різницю факторіалів F = m! – k!, де m! = 1*2*3*...*m; k! = 1*2*3*...* k.

FUNCTION FACT ( n: integer) : real;

var i : integer;

p : real;

begin

p :=1;

for i := 1 to n do

p := p * i;

FACT := p;

end;

Викликається функція як і процедура з використанням фактичних параметрів (наприклад, m i k):

F := FAСT (M) – FAСT (K);

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

4. Методи звертань до процедур і функцій

Існує 3 варіанта звертання до процедур і функцій:

1) із зовнішнього блоку (цей спосіб розглянули у попередніх питаннях лекції);

2) із сусідньої функції;

3) із самої функції – рекурсія.


Рис. 3.

На рис. 3 умовно подано:

1. звертання до процедури F1 із тіла програми Pr;

2. звертання до процедури F2 із тіла процедури F1;

3. звертання до процедури F2 всередині самої себе – рекурсія.

Приклад 4.1. Визначити факторіал у рекурсивній формі:

n!= 1, при n= 0;

n! = n(n-1)!, при n>0.

Тут n! визначається через (n!-1), тобто через ту ж саму функцію.

Program FACT (input, output);

var n : integer;

FUNCTION F ( v : integer): integer;

begin

if v = 0 then F := 1

else F := v * F(v-1);

end;

begin

writeln (‘ ввести аргумент n ‘);

read ( n );

if n<0 then writeln (‘факторіал не визначений’);

else writeln (‘факторіал’, n ,’= ’, F(n));

end.

В прикладі 5.1 рекурсивна функція F обчислює факторіал для n>0 за формулою n!=n(n-1)!. Однак, дану функцію можна представити і не рекурсивною:

FUNCTION F( v : integer): integer;

begin

F := 1:

for i := 1 to v do

F := F * i;

end;

Формально у мові Паскаль не дозволяється використовувати конструкції, які ще не описані.

Для виключення таких ситуацій використовують, так званий, випереджальний опис процедур і функцій. При цьому до опису процедури F1 вказується на подальші використання процедури F2. Тоді звертання з F1 до F2 допустимо.

Program Pr…;

Procedure F2 (параметри);

FORWARD;

Procedure F1 (параметри);

F2 (параметри);{звертання до F2 всередені F1}

end;

Procedure F2;{список параметрів відсутній}

end;

begin

end.

Pr містить дві незалежні процедури F1, F2. В F1 є звертання до F2, тому використаний впереджальний опис процедури F2, який складається із заголовка з параметрами і службового слова FORWARD. Тоді сам опис F2 має заголовок без повторення формальних параметрів.

!Особливості:!

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

2)Вхід до блоку процедур або функцій тільки через його початок, а вихід по закінченню всіх дій. Таким чином оператори goto – заборонені, тобто всі мітки у блоці належать блоку і описуються у блоці. Поняття локальних і глобальних міток не існує.

3)При необхідності вийти із середини блока можна використавши стандартну процедуру EXIT , яка має форму:

EXIT (аргумент)

(аргумент – ім’я функції, процедури, програми,

службове слово PROGRAM)

Якщо аргументом є ім’я програми або службове слово PROGRAM, то виконання програми достроково завершується. Якщо аргументом є процедура або функція, то вони завершуються і управління передається в той блок, який викликав процедуру або функцію. Тобто оператору, який стоїть після оператору виклику (рис.4).

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

Суть: значення глобальних змінних, які отримані у зовнішньому блоці до входа до процедури (функції), можуть бути змінені в процесі виконання процедури (функції), що приведе до помилки при подальшому їх використанні в програмі.

останов

Рис. 4

Приклад:

Program Pr (input, output);

var i, n, k : integer;

T: array[1..100] of real;

FUNCTION SN: real;

begin

SN := 0

for i:=1 to n do SN:=SN+T[i]

end;

begin

i:=34;

r:=SN;

a:=i + k;{i – після виконання функції стала

невизначеною, тому a:=i + k – не має смисла}

end.


Висновки:

Таким чином, в мові Pascal є широкі можливості використання процедур і функцій, що надає більшу наочність, компактність, структурованість програмам; виникають умови для створення складних програмних комплексів групами програмістів; процес програмування стає більш систематичним і цілеспрямованим.


Нет нужной работы в каталоге?

Сделайте индивидуальный заказ на нашем сервисе. Там эксперты помогают с учебой без посредников Разместите задание – сайт бесплатно отправит его исполнителя, и они предложат цены.

Цены ниже, чем в агентствах и у конкурентов

Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит

Бесплатные доработки и консультации

Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки

Гарантируем возврат

Если работа вас не устроит – мы вернем 100% суммы заказа

Техподдержка 7 дней в неделю

Наши менеджеры всегда на связи и оперативно решат любую проблему

Строгий отбор экспертов

К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»

1 000 +
Новых работ ежедневно
computer

Требуются доработки?
Они включены в стоимость работы

Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован

avatar
Математика
История
Экономика
icon
148098
рейтинг
icon
3130
работ сдано
icon
1353
отзывов
avatar
Математика
Физика
История
icon
142374
рейтинг
icon
5882
работ сдано
icon
2654
отзывов
avatar
Химия
Экономика
Биология
icon
95606
рейтинг
icon
2034
работ сдано
icon
1274
отзывов
avatar
Высшая математика
Информатика
Геодезия
icon
62710
рейтинг
icon
1046
работ сдано
icon
598
отзывов
Отзывы студентов о нашей работе
54 689 оценок star star star star star
среднее 4.9 из 5
РЭУ им Плеханова
Реферат был готов через пару часов, это очень быстро! Отличный материал ! Спасибо большое!
star star star star star
Кипу
Заказ выполнен идеально.Все четко по структуре, а главное красиво и граммотно написано. Т...
star star star star star
ПГУПС
Работа выполнена на отлично. Оригинальный антиплагиат, преподаватель принял работу без как...
star star star star star

Последние размещённые задания

Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн

Научно исследовательская работа

Реферат, Экономика предприятия

Срок сдачи к 18 окт.

только что

нужно в каждом задании выполнить только вариант под номером...

Решение задач, линейная алгебра

Срок сдачи к 14 окт.

только что

Задачи по высшей математике

Контрольная, Высшая математика

Срок сдачи к 17 окт.

1 минуту назад

Совершенствование лизинговых операций на примере...

Курсовая, Финансовый менеджмент

Срок сдачи к 7 дек.

1 минуту назад

Решить 4 задачи

Решение задач, Химия

Срок сдачи к 15 окт.

2 минуты назад

выполнить контрольную работу

Контрольная, история физической культуры

Срок сдачи к 13 окт.

2 минуты назад

Задание № 2 к контрольной работе № 1 Разработайте сценарий...

Контрольная, Педагогика

Срок сдачи к 31 окт.

4 минуты назад

Курсоваял

Курсовая, детали машин

Срок сдачи к 20 окт.

4 минуты назад

Задача по динамике 9 класс

Решение задач, Физика

Срок сдачи к 13 окт.

5 минут назад
6 минут назад

Выполнить контрольную работу с практическими заданиями

Контрольная, Технология производств, менеджмент, бжд

Срок сдачи к 14 окт.

7 минут назад

Самодельные взрывные устройства используемые в зоне боевых действий

Статья, Взрывчатые вещества, военное дело, химия

Срок сдачи к 20 окт.

7 минут назад

Решить 4 задачи на тему «Векторы», 11 класс

Решение задач, Геометрия

Срок сдачи к 18 окт.

7 минут назад

Реферат на тему: стратегия развития тнк «Лукойл» на мировом рынке

Реферат, Корпорации в мировой экономике

Срок сдачи к 13 окт.

8 минут назад

Решить 1 задачу

Решение задач, БЖД

Срок сдачи к 1 дек.

8 минут назад

Расчет кузнечно-рессорного отделения предприятия г

Курсовая, Техническое обслуживание, менеджмент

Срок сдачи к 20 окт.

9 минут назад

Вы начальник отдела документооборота, правового

Контрольная, Управление персоналом

Срок сдачи к 14 окт.

11 минут назад
planes planes
Закажи индивидуальную работу за 1 минуту!

Размещенные на сайт контрольные, курсовые и иные категории работ (далее — Работы) и их содержимое предназначены исключительно для ознакомления, без целей коммерческого использования. Все права в отношении Работ и их содержимого принадлежат их законным правообладателям. Любое их использование возможно лишь с согласия законных правообладателей. Администрация сайта не несет ответственности за возможный вред и/или убытки, возникшие в связи с использованием Работ и их содержимого.

«Всё сдал!» — безопасный онлайн-сервис с проверенными экспертами

Используя «Свежую базу РГСР», вы принимаете пользовательское соглашение
и политику обработки персональных данных
Сайт работает по московскому времени:

Вход
Регистрация или
Не нашли, что искали?

Заполните форму и узнайте цену на индивидуальную работу!

Файлы (при наличии)

    это быстро и бесплатно