ВІКІСТОРІНКА
Навигация:
Інформатика
Історія
Автоматизація
Адміністрування
Антропологія
Архітектура
Біологія
Будівництво
Бухгалтерія
Військова наука
Виробництво
Географія
Геологія
Господарство
Демографія
Екологія
Економіка
Електроніка
Енергетика
Журналістика
Кінематографія
Комп'ютеризація
Креслення
Кулінарія
Культура
Культура
Лінгвістика
Література
Лексикологія
Логіка
Маркетинг
Математика
Медицина
Менеджмент
Металургія
Метрологія
Мистецтво
Музика
Наукознавство
Освіта
Охорона Праці
Підприємництво
Педагогіка
Поліграфія
Право
Приладобудування
Програмування
Психологія
Радіозв'язок
Релігія
Риторика
Соціологія
Спорт
Стандартизація
Статистика
Технології
Торгівля
Транспорт
Фізіологія
Фізика
Філософія
Фінанси
Фармакологія


Визначення поняття процедури.

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

Заголовок процедури починається службовим словом procedure і має вигляд:

procedure <ім'я процедури> (список формальних параметрів);

Ім'я процедури – це ідентифікатор. У списку формальних параметрів перелічуються імена формальних параметрів і вказуються їхні типи. Список може містити кілька груп параметрів. Якщо кілька, то вони розділяються між собою крапкою з комою ';'. Формальні параметри є аргументами і результатами процедури.

Заголовки процедур можуть бути, наприклад, такими:

procedure fact (k:integer;var f:integer);

procedure square (var a,b,c,S:real);

procedure scalar (var v1,v2:vector,p:real);

В останньому прикладі vector – це ім'я типу масиву, що повинний бути визначений раніше в основній програмі (у розділі type). Формальні параметри можуть бути відсутніми. Тоді заголовок процедури має вигляд:

procedure <ім'я процедури>;

Описовий блок процедури складається з таких же розділів, як і відповідний блок основної програми, тобто спочатку блоку дається опис констант, потім нестандартних типів даних, змінних і процедур, що використовуються тільки в даній процедурі. Вони називаються локальними. Це означає, що відповідні імена об'єктів мають зміст лише всередині тексту процедури, він і є областю дії цих ідентифікаторів. Наприклад, якщо змінна X є локальню стосовно даної процедури, то при виконанні цієї процедури робота зі змінною X не буде впливати на значення змінної з таким же ім'ям X (якщо вона є), описаної поза даною процедурою.

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

Константи, типи, змінні, описані в основній програмі, є глобальними. На них можна посилатися в будь-якому місці програми і, зокрема, у процедурах.

Останнім блоком процедури є виконавчий блок, всі оператори якого знаходяться між операторнтими дужками begin - end;. Блок операторів процедури закінчується символом ';'.

Звертання до процедури здійснюється за допомогою оператора-процедури, що має вигляд:

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

наприклад,

fact(n,f1);

Якщо заголовок викликуваної процедури не містить параметрів, то вони відсутні також в операторів-процедури:

<ім'я процедури>;

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

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

Розглянемо спочатку використання параметрів перших двох видів. Якщо в списку формальному параметрові передує службове слово var, то цей параметр є параметр-змінної, у противному випадку – це параметр-значення.

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

При виклику процедури в підпрограму передаються адреси комірок пам'яті фактичних параметрів і будь-які дії над формальними параметр-змінними в дійсності виконуються над відповідними фактичними параметрами. Якщо параметр представляє деякий результат процедури, то він обов'язково повинний бути визначений як параметр-змінна. При використанні індексних змінних (наприклад, елемента масиву A[і]) як фактичних параметрів перед їхньою підстановкою замість формальних параметрів всі індекси заміняються числовими значеннями.

Як фактичний параметр, що відповідає формальному параметрові-значенню типу integer, real або char, може використовуватися не тільки змінна, але і константа, вираз аналогічних типів. Якщо фактичним параметром є вираз, то при звертанні до процедури спочатку обчислюється значення цього виразу, а потім воно присвоюється відповідному параметрові значенню.

Стандартні процедури.

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

Табл.2. Основні стандартні процедури

Процедура Тип аргументу Тип результату Математичний запис .коментар
іnс(х,у) integer integer Збільшує x на у
іnс(х) Integer, char Integer, char Збільшує x на 1
dec(х,у) integer integer Зменшує x на у
dec(х) Integer, char Integer, char Зменшує x на 1

Розглянемо приклади значень процедур:

х:=1; іnс(х,5); (х=6), х:='а'; іnс(х); (х='b'),

х:=7; dес(х,3); (х=4), х:-'d'; dес(х); (х='с').

Завдання2 Написати процедуру для знаходження факторала

Procedure Fact(n:word; Var f:longint);

Var i:word;

Begin

f:=1;

For i:=2 to n do

f:=f*i;

End;

Var n,f:word;

Begin

< Введення змінної n >

Fact(n,f);

Write(‘ Факторіал числа n дорівнює ’, f);

Readln;

End

Завдання2 Написати процедуру для обміну значень А і В

 

Procedure Obm(Var a,b:real);

Var c: real;

Begin

c:=a; a:=b; b:=c;

End;

Var a,b:real;

Begin

< Введення змінних a,b >;

obm(a,b);

< Виведення змінних a,b >;

End.


Лекція №2 Масиви. Запис та реалізація в мові програмування Turbo Pascal

План

1. Масиви. Запис та реалізація.

2. Основні дії з елементами масивів.

3. Двовимірні масиви.

 

Масиви. Запис та реалізація.

Масив (аrrау)- це скінчений набір елементів одного (базового) типу, які зберігаються в послідовно розташованих комірках оперативної пам'яті і мають спільну назву.

Число елементів в масиві називається розмірністю масиву; кожен елемент масиву задається своїм порядковим номером в масиві - індексом.

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

Для створення типу масивів у мові Раscаl використовуються службові слова ТУРЕ і АRRАУ, що дозволяють створити тип даних користувача "Масив". Кожному типу масивів привласнюється ім'я; елементи, що відносяться до даного масиву, описуються в операторі VAR як змінні його типу.

Введення і виведення елементів масиву здійснюється в циклах. Індекси елементів масивів записуються у квадратних дужках.

У математиці поняттю масив відповідають поняття вектора та матриці. Розрізняють одно- та багатовимірні масиви. Двовимірний масив даних - це таблиця, що складається з декількох рядків.

Загальний вигляд конструкції опису типу масиву такий:

Vаr

ім'я: аrrау[<нижній індекс та верхній індек>] of <тип>;

де ім'я - ім'я змінної масиву;

аrrау -зарезервоване слово мови Тurbo Pascal, яке означає, що змінна є масивом;

нижній індекс та верхній індекс - цілі константи, які визначають діапазон зміни індексу елементів масиву та кількості елементів (розмір) масиву;

тип - тип елементів масиву.

Описати масив можна у розділі опису типів tуре,у розділі констант const, або у розділі оголошення змінних vаr.Назви типів масивів і змінних-масивів придумує користувач.

Доступ до елемента масиву здійснюється через назву масиву і номер елемента. Цей номер (його часто називають індексом) записується в квадратних дужках, наприклад, а[1] - перший елемент масиву а, b[2] - другий елемент масиву b.

Масиви, елементи яких однозначно визначаються одним індексом, називаються одномірними. У вигляді одномірного масиву можна представити, наприклад, урожайності різних полів одного господарства, де першому полю відповідає перше значення урожайності, другому полю - друге й т.д.; показники успішності різних груп одного курсу по певному предметі, де кожної із груп відповідає своє значення середнього бала за результатами іспиту та ін.

Мова Тurbo Pasсal допускає опис у програмах одномірних масивів у наступному виді:

tуре<ім'я_типу_масиву>= аrrау[<діапазон_індексів>] of <тип>,

де tуре- службове слово, використовуване для створення типу даних користувача;

аrrау... of - службові слова для опису масивів ("Масив...з");

<ім'я_типу_масиву> - ім'я типу, що задає користувач масиву (вимоги до імен типів збігаються з вимогами до імен змінних);

<діапазон_індексів> - діапазон зміни індексів масиву. Як даний діапазон може виступити будь-який порядковий тип. Найчастіше використовують тип-діапазон, у якому задають границі зміни індексів;

<тип> - тип елементів масиву, наприклад, real, integer, сharта ін.

Приклади опису типу масивів:

tуре М= аrrау [1..10] оf integer;

tуре АК= аrrау [0..15] оf real;

tуре VT= аrrау [-5..5] оf sihgle;

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

Наприклад:

var КЕ2:М;

var Р:АК;

var А:VТ;

Можна також описати змінну, яка безпосередньо має тип масиву, наприклад:

var КЕZ: аrrау [1..10] оf integer;

При звертанні до елементів масиву в тексті програми обов'язково потрібно вказувати їхній порядковий номер у масиві, наприклад, КЕZ[1], РОLЕ[0], А[5] (де та належить діапазону зміни індексів масиву).

Одномірні масиви, діапазон індексів яких починається з 1 називаються векторами.

Наприклад, якщо задано вектор V з 5 чисел (3, 0, 5, -7, 8), то другий елемент вектора дорівнює 0 (тобто V[2]=0), п'ятий елемент вектора дорівнює 8 (тобто V[5]=8) і т.д.

Щоб опрацювати всі елементи масиву використовують оператори організації циклів.

Приклад. Створити масив з перших ста цілих чисел і обчислити СУМУ всіх його елементів можна так:

S:=0; fоrі:=1 100 dо beginа[і]:=і; s:=s+а[і] еnd; writeln(s);

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

© 2013 wikipage.com.ua - Дякуємо за посилання на wikipage.com.ua | Контакти