Пробний підручник з програмування в

Б.В. Ващук

 

 

Turbo Pascal 7.0

 

Пробний підручник з програмування в

Середовищі Turbo Pascal 7.0

Для учнів 10 класу середньої

загальноосвітньої школи, студентів, вчителів

 

 

ВВПК

«Коледж – 2008»


ББК 33.974я722

В34

 

Схвалено радою методкабінету

(протокол №1 від ______ 2007р.)

 

 

За редакцією викладачів комп'ютерних дисциплін

Володимир-Волинського

Педагогічного коледжу ім. А.Ю. Кримського

Р.Й. Цаль-Цалько і М.А.Чуцького

Рецензенти: викладачі комп'ютерних дисцилін

М.А.Чуцький і Р.Й. Цаль-Цалько

(Володимир-Волинський педагогічний коледж

ім. А. Ю. Кримського)

 

Даний посібник може бути використаний

Вчителями початківцями,

Учнями загальноосвітніх навчальних закладів

 

 

Ващук Б.В.

 

В33 Середовище програмування Turbo Pascal 7.0: Підруч. для учнів 10 кл. серед. загальноосв. шк. – ВВПК: „Коледж”, 2008 – 47с.

 

 

ISBN 977-7889-06-7.

ББК 33.974я722

 

ISBN 977-7889-06-7. Б. В. Ващук, 2008


Зміст  
Вступ
Основні поняття мови Паскаль
1.1. Алфавіт мови Turbo Pascal. Типи даних
1.2. Службові слова мови Turbo Pascal
Стандартні типи даних
2.1. Операції відношень
2.2. Операції над стандартними типами даних
2.3. Вирази. Приклади
Структура програми мовою Turbo pascal 7.0
3.1. Правил написання Pascal-програм
Основні оператори мови Turbo Pascal
4.1. Оператор присвоєння в Turbo Pascal
4.2. Введення та виведення інформації у Pascal-програмах
Вікно середовища програмування Turbo Pascal 7.0
5.1. Основний екран інтегрованого середовища
5.2. Основні команди і гарячі клавіши
Базові алгоритмічні конструкції
6.1. Лінійна структура
6.1.1. Складений оператор і оператор переходу
6.2. Оператор перевірки умови (розгалуження)
6.2.1. Оператор вибору
6.3. Оператори циклу
6.3.1. Цикл із наперед заданою кількістю повторень For
6.3.2. Цикл із передумовою While
6.3.3. Цикл із післяумовою Repeat
Використання підпрограм у Turbo Pascal
7.1. Класифікація підпрограм.
7.2. Підпрограми-процедури. Приклади створення
7.3. Підпрограми-функції. Приклади створення
7.5. Рекурсивні підпрограми
Робота з масивами в Turbo Pascal
8.1. Поняття про масиви. Класифікація масивів
8.2. Операції над одномірними масивами (рядками)
8.3. Операції над двомірними масивами (матрицями)

 


 

Рядки в Turbo Pascal
9.1. Поняття про рядки. Стандартні процедури та функції.
9.2. Приклади типових програм по обробці рядків.
Елементи комп'ютерної графіки
10.1. Графічний режим.
10.2. Процедури і функції для графічних побудов.
10.3. Приклади
Приклади програм
Коди типових помилок програми Turbo Pascal 7.0
Література

Вступ

 

Як відомо, для того, щоб комп’ютер міг виконувати потрібні нам задачі, ним повинна керувати програма. Основна відмініть ЕОМ, в тому числі ПК, від інших пристроїв полягає в тому, що ним керує програма.



Комп’ютерна програма- це набір інструкцій, які вказують ЕОМ послідовність дій по вирішенню певної поставленої перед ним задачі.

Для того, щоб комп’ютер “зрозумів” вказівки програміста, він повинен “спілкуватись” із програмістом на спільній мові, яку називають мовою програмування.

На сьогоднішній день у світі існують сотні різних мов програмування, які в загальному можна поділити на мови програмування низького (Asembler)та високого рівня (Pascal, Delphi, Cі т.д.). Крім цього мови програмування можна поділити на функціональні, структурні, логічні, процедурні, об’єктно-орієнтовані.

Мова Pascal є однією із класичних мов програмування. Найбільшої популярності вона досягла у 80-х - першій половині 90-х років. На її основі розроблено цілий ряд сучасних мов програмування, таких як Borland Delphi.

Мову програмування Pascal розроблено в 1968 році на кафедрі інформатики Стенфордського університету швейцарським ученим Ніклаусом Віртом. Ця мова програмування отримала назву на честь відомого французького математика й філософа Блеза Паскаля (1623-1662). Спочатку вона розглядалась як навчальна мова програмування і завдяки простоті використання застосовувалась у навчальних закладах як “перша” мова програмування для студентів. В 1983 році фірма Borland International перевела її на комерційну основу в якості мови програмування для персональних комп’ютерів. Переломним етапом для мови Pascal став 1985 рік, коли появилась її нова версія, яку назвали Turbo Pascal 3.0. Вона містила оболонку для зручного написання та редагування тексту програм та компілятор стандартного Pascal. З цього часу Pascal набув широкого використання в колах як досвідчених програмістів так і початківців. В наступній версії Turbo Pascal 4.0 було усунуто багато обмежень компілятора, що часто піддавались критиці, та підвищено продуктивність системи. Найбільш важливим нововведенням стало застосування модульної концепції (UNIT-концепції), що була запозичена з мови програмування Modula-2. Це дозволило реалізувати в Turbo Pascal розробку великих програмних продуктів.

З появою версії 5.0 Turbo Pascal отримала ще більші можливості для використання професійними програмістами. Одним із важливих нововведень стало використання апаратних перекриттів або оверлеїв (overlays).Вони дозволили створювати потужні програмні продукти, які розраховані на використання при малих об’ємах пам’яті. Механізм оверлеїв полягає в поділі програми на частини, що почергово завантажуються в пам’ять (з дискети або жорсткого диска) по мірі необхідності. Крім цього в Turbo Pascal 5.0 розширено можливості відлагодження програм і забезпечено можливість підтримки розширеної пам’яті.

Ще одним важливим етапом для Turbo Pascal була поява версії 5.5. Саме в цій версії з’явилась концепція об’єктно-орієнтованого програмування (ООП).фактично моваPascal стала засновником цього напрямку розвитку мов програмування. ООП полягає у використанні спеціального типу даних - об’єктів (Object),які спрощують процес програмування, роблячи тексти програм значно компактнішими. В результаті чого з’явився термін Object Pascal.Паралельно з цим, об’єктно-орієнтоване програмування розвивається і в іншій популярній мові програмування C, в результаті чого з’являється C++. На основі Object Pascal корпорація Borland розробила нову мову програмування Delphi, яка набула великої популярності в другій половині 90-х років.

Популярність цієї мови пояснюється ще й тим, що вона належить до мов візуального програмування.Мови візуального програмування значно полегшують процес програмування інтерфейсу створюваних програм. Адже зовнішній вигляд вікон та інших об’єктів програміст створює лише з допомогою миші та панелей об’єктів-заготовок. Серед поширених мов візуального програмування можна також відмітити Visual Basic - це мова, на якій створюють макроси для документів дуже популярного офісного пакета Microsoft Office.

В даному посібнику розглянуто основні можливості програмування на стандартній мові програмування Turbo Pascal версії 7.0. Цей посібник розрахований перш за все на початківців, які тільки знайомляться із світом програмування. Знання Pascal допоможуть їм набути базових навичок програмування та стануть основою для подальшого вивчення більш потужних мов, таких як Delphi.

Транслятор— програма, що перетворює програму, написану мовою асемб­леру або МВР, в машинні коди.

Транслятори поділяються на дві категорії: інтерпретатори і компілятори.

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

Turbo Pascal 7.0, залишаючись сумісним із попередніми версіями Turbo Pascal та Turbo Pascal for Windows, надає нам ряд нових можливостей. Найважливішою з них є наявність значно швидшого компілятора програм, який став своєрідним світовим стандартом для компіляторів.

Компілятор- це спеціальна програма (програмний модуль), яка здійснює перетворення тексту програми, написаного на відповідній мові програмування, у програмний код, зрозумілий комп’ютеру. Сам процес перетворення тексту програми, у програмний код називається компіляцією.

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

Алгоритм –це чітка послідовність дій, напрямлена на досягнення мети або на розв'язання поставленого завдання.

Програма— це алгоритм, записаний мовою програмування.

Мова програмування— це система позначень, за допомогою яких можна точно описати алго­ритм для виконання його комп'ютером.

Мови програмування поділяються: машинні коди, мови асемблеру (Asembler), мови високого рівня (Turbo Pascal), візуальне програмування (Delphi).

Класифікація мов високого рівня: Алгоритмічні (процедурні) мови програмування, дескриптивні (непроцедурні) мови програмування.


Стандартні типи даних

За допомогою програм МВР вирішуються найрізноманітніші завдання, тому необхідно мати можливість створювати й обробляти різні типи даних. Основна одиниця інформації — окремий елемент даних, наприклад число або символ.

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

Тип даних Позна­чення Опис Обсяг пам'яті Приклади
Цілочисельний тип Byte Цілі числа в інтервалі [0; 255] 1 байт 0, 5, 245
Shortint –128..127 1 байт -5, 26, 96
word 0..65535 2 байта 0, 36, 6545
Integer (основний) Цілі числа в інтервалі [-32767; 32767] 2 байта 457, -568, -7, 0
longint –2147483648..2147483647 4 байта -2356, 988456
Дійсний тип single 1.5·10–45–3.4·1038 4 байта 236,36; 6954,369
Real (основний) Значення з плавоючою крапкою, що містить мантису (до 11 значущих цифр) і експоненту - степінь числа 10 (від 10-39 до 1038) 6 байтів 0.4,-1.8, 0.172Е+3, 37Е-4
extended 3.4·10–4951 –1.1·104932 10 байт 0.4,-1.8, 0.172Е+3,
Символьний тип даних Char Символьні константи містять один символ, який обмежено апострофами 1 байт А', 'є', Y, '2'
Рядковий тип даних String Рядок символів довжиною не більше 255 Зале­жить від довжини  
Логічний тип даних Boolean Константи логічного типу мають два можливі значення: True (істинне) і False (хибне) 1 байт 5<3 - True 5+8>14- False

 

Операції відношень

Результатом операції відношень є значення логічного типу:

 

 

> більше ніж   < = менше ніж або дорівнює
> = більше ніж або дорівнює = дорівнює
< менше ніж < > не дорівнює

Операції над стандартними

Типами даних

Операції над цілими числами:

Операції над дійсними числами:

Зауваження. Операції над дійсними числами завжди дадуть дійсний результат, навіть якщо обидва аргументи цілі!

 

 


Вирази

Приклади

Правила використання виразів:

1. Вираз записується в один рядок. Наприклад, вираз:

мовою Паскаль має бути записаний так:

(a*x+b*sqr(x)+c*sqr(x)*x)/(14*x-x).

2. У виразах використовуються тільки круглі дужки, причому кіль­кість дужок, що відкриваються, повинна відповідати кількості дужок, що закриваються.

З. Не можна записувати підряд два знаки арифметичних операцій.

Обчислення виконуються зліва направо відповідно пріорітету операцій:

1) операція обчислення функцій;

2) Операції піднесення до степення;

3) операції множення, ділення, mod і div;

4) операції додавання і віднімання.


Структура програми мовою

Turbo pascal 7.0

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

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

Program- це заголовок програми, що вказує її ім'я. Для Turbo Pascal 6.0 і більш новіших версій цей підрозділ вказувати необов’язково, хоча рекомендовано вказувати заголовок програми, щоб уже при першому знайомстві з її текстом можна було отримати інформацію про її призначення.

Потрібно відмітити, що заголовок програми, що слідує, за словом PROGRAM є ідентифікатором і володіє всіма його властивостями. Крім цього, заголовок програми обов’язково повинен починатись з латинської літери, а далі можуть знаходитись символи, допустимі для алфавіту Turbo Pascal.

Uses- цей підрозділ вказує назви модулів та бібліотек, що потрібно підключити до програми. Поняття “модуль”, “бібліотека”, “блок” складають основу термінології програмування на Pascal. Модуль представляє собою замкнутий блок, що має своє ім’я, компілюється окремо і підключається до вашої програми, як ніби “чорна скринька” із набором певних (описаних у ньому) процедур, функцій, типів даних, констант і т.д. Бібліотека представляє собою набір таких модулів. Якщо модулі в програмі не потрібно використовувати (не використовується процедури, функції і т.д., що описані в модулі), то цей підрозділ не вказуємо.

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

Label- підрозділ, в якому вказується список усіх міток, що використовуються в програмі. Якщо міток у програмі немає, то підрозділ LABEL не вказуємо.

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

Const- підрозділ опису констант. Якщо в програмі будуть застосовуватись константи, то їх імена та значення (після знаку рівності) вводять в розділі ConstВ інших випадках цей підрозділ не вказується. Слід відмітити, що стандартні константи, прийняті в Pascal, не потрібно описувати в даному розділі.

Type - підрозділ опису користувацьких типів даних. В цьому підрозділі переважно вказують складні та нестандартні типи даних. Якщо такі типи в програмі не використовують, то даний підрозділ не вказується.

Var - підрозділ опису всіх змінних, що використовуються в програмі. Потрібно відмітити, що всі змінні, що використовуються в програмі, обов'язково повинні бути описані в підрозділі var.Це єдиний підрозділ розділу описів та узгоджень, який обов’язково повинен бути представлений у кожній Pascal-програмі.

Розділ текстів процедур та функцій вказується лише у випадку, якщо в програмі використовуються нестандартні процедури та функції, що створені самим користувачем (якщо вони не описані в одному з модулів вказаних у розділі USES). Потрібно відмітити, що процедури та функції - це спеціальним чином оформлені послідовності команд (у вигляді підпрограми). Доступ до цієї підпрограми може здійснюватись з будь-якого місця основної програми, а також з будь-якої процедури та функції, що описані нижче по тексту програми. Більш детально про використання процедур та функцій буде описано далі.

Третій розділ програми - це розділ основного блоку програми. В цьому розділі знаходиться основний текст програми. Починається цей розділ словом beginі закінчується словом end,після якого слідує крапка.

Оператори

Оператори — це команди програми. Нижче наводяться основні оператори, за допомогою яких можна створювати првсті програми.

Оператор Загальний вигляд Опис Приклади
:=Присвою-вання Ідентифікатор:= вираз Присвоює змінній конкретне значення, заповнюючи комірку пам'яті, відведену для змінної, новим значенням, відночас знищу­ючи старе А:=2 X:= У + 2 - Z Name:= 'Федір'
Read Введення (зчитування) даних з клавіатури Read(a1, a2,... ,аn), де а1, а2, ...,аn –змінні зазначених типів, яким присво­юються значення, що вводяться Програма зупиняється і чекає вве­дення необхідної кількості даних. Числа при введенні поділяються пробілами або натиском клавіші <Enter>. Введення закінчується натиском клавіші <Enter> Read (Name) Read (А, В, У, Z)
Readln Після введення значень а1, а2, ...,аn курсор переводиться на наступний рядок
Write Виведення (запис) даних на моні­тор Write(a1, a2,... ,аn), де а1, а2, ...,аn –константи або змін­ні зазначених типів Виведення зазначених даних (чисел, змінних, тексту, який обме­жено апострофами) виконується з позиції курсору Write ('Відповідь',2) Відповідь 2 Write('Привіт,', Name,'!') Привіт, Федоре!
Writeln Після виведення значень а1, а2, ...,аn курсор переводиться на наступний рядок
         

Зауваження. Після кожного оператора в програмі ставиться символ «;» (крапка з комою). У кінці програми ставиться «.» (крапка).

Turbo Pascal 7.0

Основний екран інтегрованого середовища програмування Turbo Pascal 7.0 виглядає таким чином:

 

По функціональному призначенню виділяється три області екрану:

  • Рядок меню
  • Робоча область
  • Рядок стану

Рядок меню активізується натисненням клавіші F10. У меню містяться наступні розділи:

  • File. Дозволяє виконувати всі основні дії з файлами (створення відкриття, збереження ..)
  • Edit. Дозволяє виконувати всі основні операції редагування тексту (копіювання, вставка, видалення фрагментів, відміна останніх змін ..)
  • Search. Дозволяє здійснювати пошук і заміну фрагментів тексту.
  • Run. Дозволяє запускати програму, зокрема в покроковому режимі.
  • Compile. Дозволяє здійснювати компіляцію програми.
  • Debug. Містить команди, що полегшують процес пошуку помилок в програмі.
  • Tools. Містить деякі додаткові засоби Турбо Паскаль.
  • Options. Дозволяє встановити необхідні для роботи параметри компілятора і середовища програмування.
  • Window. Дозволяє виконувати всі основні операції з вікнами (відкривати, закривати, переміщати, змінювати розмір).
  • Help. Дозволяє отримати наявну в системі довідкову інформацію.

Всі пункти меню доступні через гарячі клавіші. Для цього треба натиснути клавішу Alt і ту букву, яка виділена червоною в назві пункту меню.Меню також дозволяє працювати з мишею.

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

Рядок стану демонструє деякі доступні і важливі в даний момент операції і відповідні ним комбінації клавіш.

Лінійна структура

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

 
 


Блок-схема лінійного алгоритму наведена на рисунку ліворуч (рис.1)

 

Лінійна програма, яка підраховує суму двох чисел праворуч (рис. 2)

Лінійні алгоритми (інша назва – прості)– це алгоритми, що складаються з команд присвоєння, введення-виведення даних та викликів процедур.

Рис. 1 Рис. 2

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

Цикл (повторення) –це вид управляючої структури, що дозволяє кілька разів повторити задану кількість операторів.


BEGIN

Suma:=Suma+Cina;

N:=N+1

END;

Оператор переходу.

Оператор переходу – це оператор, що реалізує розгалуження і передає керування у потрібне місце.

GOTO <позначка>

Оператор переходу має таку структуру:

Позначку заздалегідь оголошують в розділі оголошення позначок:

LABEL <список позначок>.
<позначка>: <оператор>

Якщо позначка (ціле число) оголошена, то в програмі повинен бути такий фрагмент:

 

Зауваження 1. Оператор GOTO використовують зрідка.

Зауваження 2.У середовищі програмування Turbo (Borland) Pascal 7.0 службове слово PROGRAM можна не писати. Але це тільки у версії 7.0 і вище.

Begin

Write('Введіть порядковий номер місяця (від 1 до 12): ');

readln(MONTH);

Case MONTH of

3,4,5:writeln('Becнa');

6,7,8 : writeln ('Літо');

9,10,11:writeln('Ociнь');

12,1,2:writeln('Зимa')

end;

End.

ВКАЗІВКИ ПОВТОРЕННЯ (ЦИКЛУ)

5. Вказівка повторення з параметромFOR

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

Для реалізації циклічних алгоритмів у мові Паскаль використовуються оператори повторення (цикли):

* оператор циклу з параметром (For);

* оператор циклу з передумовою (While);

* оператор циклу з післяумовою (Repeat).

Оператор циклу з параметром передбачає повторне виконання деякого оператора з одночасною зміною значення, що присвоюється керуючою змінною (параметру цього циклу). Він має вид:

а) зі значенням 1 кроку зміни параметра:

For < параметр >:= <вираз1 > to <вираз2 >do <оператор >

Дія оператора: Параметрові циклу присвоюється значення виразу 1. Якщо це значення менше-рівне, ніж значення виразу 2, то виконується оператор. Після виконання оператора значення параметра автоматично збільшується на 1 і знову порівнюється зі значенням виразу 2 і т.д. Коли значення параметра стане більшим, ніж значення виразу 2, то виконується наступний після циклу оператор.

або

б) зі значенням -1 кроку зміни параметра:

For < параметр >:=< вираз1 > downto <вираз2 > do <оператор>

Дія оператора: Ця команда діє як попередня, але крок зміни параметра є –1.

Оператор - тіло циклу.

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

Якщо вираз1 і вираз2 розділяє службове слово to, то після виконання оператора (тіла циклу) параметр циклу v приймає значення Succ(v), якщо ж дільником виразу1 і виразу2 служить слово downto, то параметр циклу v після виконання тіла циклу приймає значення Pred(v).

Приклад:

Піднести будь-яке дійсне число а до будь-якого цілого степення n.

Розв'язок:

program Stepin;

Var

a,p:real;

i,n:integer;

Begin

write('введіть a - основу степеня, а=');

readln(a);

write('введіть ціле n - показник степеня, n=');

readln(n);

p:=1;

for i:=1 to n do

p := p * a;

writeln('p=',p)

End.

6. Вказівка повторенняWHILE

Оператор For використовується лише у випадку, коли заздалегідь відома кількість повторень тіла циклу. У більш загальному випадку, коли кількість повторень заздалегідь невідома, а задана деяка умова закінчення (або продовження) циклу, у мові Pascal використовують інші оператори повторення: оператор циклу з передумовою While і оператор циклу з післяумовою Repeat.

Вказівка циклу з передумовою:

 
 

 


Дія оператора:

Оператор (тіло циклу) виконується до тих пір, поки умова істинна. Якщо при першій перевірці умова виявилась хибною, оператор не виконується. Зазначений оператор виконується нуль, один або декілька разів, поки умова справджується.

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

 

 
 
Приклад 1. Роздрукувати символи латинського алфавіту. а) звичайний порядок: programlatsimvol; var S:char; begin S:='A'; while S<='Z' do begin writeln(S); S:=succ(S); end end. б) у зворотному порядку: programlatsimvol; var S:char; begin S:='Z'; while S>='A' do begin writeln(S); S:=pred(S); end end.

 


 

 


7. Вказівка повторенняREPEAT

 

Оператор For використовується лише у випадку, коли заздалегідь відома кількість повторень тіла циклу. У більш загальному випадку, коли кількість повторень заздалегідь невідома, а задана деяка умова закінчення (або продовження) циклу, у мові Pascal використовують інші оператори повторення: оператор циклу з передумовою While і оператор циклу з післяумовою Repeat.

Оператор циклу з післяумовою визначений діаграмою:

 

 


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

 

REPEAT <оператор1 > <оператор2 > <оператор3 > *** <оператор n > UNTIL <умова>;

Дія оператора:Спочатку виконуються зазначені оператори, а пізніше перевіряється умова. Якщо умова справджується (істинна), то виконання циклу завершується, якщо ні, то оператори виконуються ще раз, і так далі.

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

 

ВКЛАДЕНІ ЦИКЛИ: Вкладені цикли– це декілька циклів записаних один за одним. Наприклад: for i:=1 to 10 do for j:=1 to 15 do <оператори>

Зауваження:

Repeat Until KeyPressed– умова, чи

натиснена клавіша (пауза);

 

 
 
Приклад 1. Роздрукувати символи латинського алфавіту. а) звичайний порядок: programlatsimvol; var S:char; begin S:='A'; Repeat write(S); S:=succ(S); until S>'Z' end. б) у зворотному порядку: programlatsimvol; var S:char; begin S:='Z'; Repeat write(S); S:=pred(S); until S<'A' end.


 


Підпрограми

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

Стандартні підпрограми створювати не потрібно — вони містяться у стандартних модулях System, Crt, Dos, Graph тощо.

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

1. Процедури (procedure). Загальний опис процедури:

procedure <назва> (<список формальних параметрів>); <розділи описів і оголошень процедури>; begin <розділ команд процедури> end;

У списку формальних параметрів перераховують змінні разом із зазначенням їхніх типів. Розрізняють параметри-аргументи (інший термін: параметри-значення) — вхідні дані для процедури, і параметри-результати (інший термін: параметри-змінні), через які можна повертати результати роботи процедури в основну програму. Перед списками параметрів-результатів кожного типу записують слово var.

Зауважимо, що масиви фіксованих розмірів у списках формальних параметрів не можна описувати за допомогою слова array (див. зразки програм).

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

Приклад1. Розглянемо процедуру з назвою Cina, яка визначає с — вартість k хвилин телефонної розмови з похвилинною оплатою 0.6 грн. + 20% ПДВ.

procedure Cina(k:integer; var c:real);

Begin

c:=k*0.6; c:=c+0.2*c;

end;

У наведеному прикладі k є формальним параметром-аргументом, с — формальним параметром-результатом.

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

Звернення до процедури:

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

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

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

Команда виклику функціонує так: значення фактичних параметрів присвоюються відповідним формальним параметрам процедури, виконується процедура, визначаються параметри-результати, значення яких надаються (повертаються) відповідним фактичним параметрам у команді виклику.

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

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

 

2. Функції (function). Функція, на відміну від процедури, може повертати в місце виклику лише один результат простого стандартного типу.

Загальний опис функції:

function <назва>(<список формальних параметрів>) : <тип функції>; <розділи описів і оголошень функції>; begin <розділ команд функції, де має бути така команда: назва:=вираз> end;

У розділі команд функції має бути команда присвоєння значення деякого виразу назві функції. Результат функції повертається в основну програму через її назву (як і випадку використання стандартних функцій, таких як sin, cos).

Звернення до функції:

<назва> (<список фактичних параметрів>).

Приклад1. Створимо функцію для обчислення tg(x) та обчислимо значення виразу tg(x)+ctg(x)+tg2(x).

program Myfunc;

uses Crt;

var x,y:real;

function tg(x:real):real;

Begin

tg:=sin(x)/cos(x)

end;

begin clrscr;

writeln('Введіть х');

readln(x);

y:=tg(x)+1/tg(x)+sqr(tg(x));

writeln('y=', y:5:2); readln

End.

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

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

Приклад1. Рекурсивна функція обчислення суми цілих чисел від a до b має вигляд:

functionSuma(a,b:integer):integer;

Begin

if a=b then Suma := a {Це стоп-умова рекурсії}

else Suma := b + Suma(a, b–1) {Це неявний цикл}

end;

 

Приклад2. Скласти рекурсивну функцiю Factorial для обчислення факторіала числа n! = 1·2·3·...·n, (0! = 1, 1! = 1), яка грунтується на багаторазовому (рекурсивному) застосуваннi формули n! = n·(n – 1)!.

function Factorial(n : integer) : integer;

Begin

if n = 0 then Factorial := 1 {Це стоп-умова}

else Factorial := n * Factorial(n–1)

end;

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


Масиви

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

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

1. Одновимірні масиви (рядки, вектори):









Последнее изменение этой страницы: 2016-04-07; Нарушение авторского права страницы

infopedia.su не принадлежат авторские права, размещенных материалов. Все права принадлежать их авторам. Обратная связь