ТЕМА №5: програмування МОВОЮ TURBO-PASCAL. ОРГАНІЗАЦІЯ циклів. ОПЕРАТОРИ циклів. СКЛАДАННЯ ПРОГРАМ З ВИКОРИСТАННЯ ОПЕРАТОРІВ циклу.
ПРОГРАМНО - дидактичного забезпечення: ЕОМ типу IBM. Turbo-Pascal 5.
Мета та завдання: Знайомство з операторами циклу мови Turbo-Pascal. Вироблення навичок роботи в Turbo-Pascal. Рішення практичних завдань з використанням операторів циклу.
ВИМОГИ до знань і вмінь:
Учні повинні знати:
Три різновиди операторів циклу;
У чому відмінності операторів циклу з попередніми і подальшим умовою;
Який тип має має змінна циклу з параметром;
Коли в операторах циклу і розгалуження використовуються операторні дужки;
Принцип організації руху графічних фігур.
Учні повинні вміти:
Використовувати цикли при складанні програм;
Правильно складати і використовувати умови в циклах WHILE або REPEAT;
Складати програми з використання операторів циклу.
Цикл - команда виконавцю повторити багаторазово зазначену послідовність команд алгоритмічної мови або, іншими словами, багаторазово повторювана частина програми.
Існує три різновиди оператора циклу.
Оператор циклу з параметром.
Використовується, коли відомо, скільки разів виконується циклічна частина програми.
параметр циклу - числова змінна типу integer
початок, кінець - арифметичний вираз
to - використовується коли початок менше кінця
downto - використовується коли почало більше кінця
оператор - тіло циклу, будь-який оператор, в тому числі і складовою
Параметру привласнюється значення початок
Виконується оператор - тіло циклу.
Потім параметр порівнюється з кінцем.
Якщо параметр більше / менше кінця, то починає працювати наступний оператор за оператором циклу, в іншому випадку до параметру додається / віднімається одиниця.
Знову виконується оператор.
Так триває поки параметр не стане більше / менше кінця.
Цикл з передумовою
умова - логічне вираження
оператор - будь-який оператор, в тому числі і складовою.
Перевіряється істинність умови
Якщо умова істинно виконується оператор
Цикл працює, поки умова не стане хибним.
Цикл з наступною умовою
repeat<операторы>until<условие>
повторювати до тих пір поки
умова - логічне вираження
оператори - будь-яку кількість будь-яких операторів, в тому числі і складовою.
Виконуються всі оператори між repeat і until
Перевіряється хибність умови
Цикл працює, поки умова не стане істинним.
Особливості та відмінності операторів циклу
Змінні оператора повинні бути визначені до входу в цикл
Необхідно передбачити вихід з циклу, щоб він не повторювався нескінченно.
Оператор while repeat може ні разу не виконається
оператор repeat обов'язково виконатися хоча б раз
Скільки зірочок буде виведено на екран в результаті виконання інструкцій?
For j: = 1 to 5 write ( '*');
ТЕМА №6: програмування МОВОЮ TURBO-PASCAL. ПРОЦЕДУРИ. ФУНКЦІЇ. СКЛАДАННЯ ПРОГРАМ З ВИКОРИСТАННЯ ПРОЦЕДУР І ФУНКЦІЙ. Рекурсія.
ПРОГРАМНО - дидактичного забезпечення: ЕОМ типу IBM. Turbo-Pascal 5.
Мета та завдання: Дати основні поняття підпрограм (процедур і функцій). Ознайомити з видами формальних параметрів: параметри-значення, параметри-змінні. Навчити розрізняти фактичні і формальні параметри. Знайомство з поняттям рекурсії. Вироблення навичок складання програм з використанням процедур та функцій.
ВИМОГИ до знань і вмінь:
Учні повинні знати:
Що таке підпрограма;
Що таке процедура;
Для чого використовуються процедури;
Що таке формальні і фактичні параметри;
Чим відрізняється завдання параметрів-значень від параметрів-змінних;
В якому місці програми ставиться опис процедур;
Як викликається процедура;
Що таке функція;
Чим відрізняються процедури від функцій,
Для чого використовуються функції;
Чим відрізняється заголовна рядок функції від заголовної рядки процедури;
В якому місці програми ставиться опис функції;
Як викликається функція;
Що таке рекурсія;
Для чого і як використовується випереджаюче опис підпрограми.
Учні повинні вміти:
Правильно описувати процедури і функції;
Правильно викликати процедури та функції;
Розрізняти формальні і фактичні параметри;
Правильно описувати параметри-значення і параметри
Розрізняти формальні і фактичні параметри;
Використовувати найпростіші рекурсії при складанні програм
Автономна частина програми, за допомогою якої можна виробляти одні й ті ж обчислення, з різними вихідними даними та в різних місцях програми, багаторазово, називається підпрограмою. Види підпрограм: процедури і функції.
Процедура (підпрограма) - багаторазово повторювана частина програми, оформлена окремо від основної програми. Місце розташування процедур в програмах - Розділ описів, за опис змінних.
Переваги використання процедур - зменшення обсяг програми, скорочення часу на налагодження.
Принцип роботи процедури:
Виконання програми починається з виконання основної частини програми. Як тільки з'являється необхідність у виконанні процедури, вона викликається на ім'я з передачею вхідних даних. Після виконання процедура передає в основну частину програми вихідних даних (результатів), в те місце, звідки була викликана процедура.
Потім триває виконання основної частини програми.
Процедура оформляється подібно основній програмі:
Розділ описів основної програми
Procedure ім'я (формальні параметри);
Всі змінні, представлені в розділі описів основної програми називаються глобальними. Вони діють як в розділі операторів основної програми, так і в будь-який подпрограмме.
Параметри (змінні), що визначаються при описі процедури називаються формальними.
Параметри (змінні), що задаються при виклику процедури називаються фактичними.
Формальні параметри (змінні, описувані в процедурі) діляться на параметри - значення і параметри - змінні
Параметри-значення - передають інформацію тільки в процедуру (вхідні), описуються як змінні із зазначенням типу (без зарезервованого слова Var).
Параметри-змінні - передають інформацію, як в процедуру, так і назад (вихідні), їх опис починається зі слова Var, потім слідує список змінних із зазначенням типу.
Procedure sterline (len: integer); - параметри-значення.
Procedure stl (l: integer, Var n integer); - параметри-значення і параметри - змінні.
Формальні параметра описуються тільки в заголовку процедури. Формальні параметри ніколи не описуються в розділі описів процедури. Якщо в процедурі використовуються змінні, відмінні від формальних параметрів, їх необхідно обов'язково описати в розділі опису процедури.
Виклик процедури подібно спеціальним операторам відбувається по імені із зазначенням фактичних параметрів, наприклад:
Імена фактичних параметрів можуть не збігатися з іменами формальних параметрів, але вони повинні відповідати один одному по типу. Формальні параметри описуються в розділі опису основної програми і до виклику процедури повинні отримати значення.
Приклад використання процедур:
Написати програму, яка виводить на екран рядок, що складається з певної кількості зірочок. Використовувати процедуру.
Procedure sterline (var len: integer);
For i: = 1 to len do
Write ( 'Введіть кількість зірочок'); Readln (n);
Функція, як і процедура, може містити кілька операторів, кілька вхідних (і тільки) параметрів, але результат виходить лише один. Цей єдиний результат позначається ім'ям функції і передається в основну програму.
У загальному вигляді функція записується в розділі опису основної програми в такий спосіб:
Function ім'я (формальні параметри): тип;
Оскільки результат позначається ім'ям функції, то після формальних параметрів вказується тип функції, який повинен збігатися з типом результату обчислень. В кінці опису функції імені функції обов'язково присвоюється якесь значення. Викликається функція по її імені із зазначенням фактичних параметрів. Функція може використовуватися в операторах присвоювання, умовних операторах і т.п. Наприклад, Res: = Compare (x1, x2);
Приклад використання функцій:
Написати програму, яка за допомогою функції порівнює два цілих числа і виводить результат порівняння у вигляді одного із знаків:>,<,=
Var x1, x2: real; res: char;
Function Compare (a, b: real): char;
If a> b then Compare: = '>' else if a
Writeln ( 'Введіть числа');
Рекурсія - це вивезення підпрограмою
(Процедурою або функцією) самої себе.
Розглянемо побудову рекурсивної функції на прикладі обчислення N. При правильно організованій рекурсивної підпрограми здійснюється багаторазовий перехід від деякого поточного рівня організації алгоритму до нижчого рівня послідовно доти, поки не буде отримано тривіальне рішення поставленого завдання.
IF N = 1 THEN FAKT: = 1
У нашому прикладі відбувається так: в операторі друку викликається функція FAKT з параметрами N, яка в свою чергу викликає функцію FAKT з параметрами N-1, і так далі, поки не викликається FAKT (1). Тоді це процес зупиняється, потім відбуватися витяг результату в зворотному порядку.
Це добре видно на наступному прикладі програми:
Рекурсивна форма організації алгоритму зазвичай виглядає витонченіше итерационной і дає більш компактний текст програми, але при виконанні, як правили, повільніше і може викликати переповнення стека.
Потрібно обов'язково відстежувати в програмі наповнення стека, тобто не допускати зациклення рекурсії.
Рекурсивний виклик може бути непрямим. У цьому випадку програма звертається до себе опосередковано, шляхом виклику іншої програми, в якій міститься звернення до першої. При використанні такого підходу потрібно використовувати випереджальний опис. Випереджаючий опис полягає в тому, що оголошується лише заголовок процедури, а її тіло замінюється директивою FORWARD. Після цього можна в іншій процедурі використовувати звернення до неї - адже компілятор вже може правильним чином організувати її виклик. Зверніть увагу: тіло другої процедури описується після першої і починається заголовком, в якому вже не вказуються описані раніше формальні параметри.
PROCUDURE A (I: BYTE);
Приклади програм з процедурами і функціями:
При складанні програм обов'язково використовувати процедури або функцію.
Знайти різницю двох факториалов F = m! - k. використовуючи функцію.
repeat until keypressed
Написати програму «Ті, що біжать вогні» з використанням процедури малювання кола.
repeat until keypressed; end.
Приклади програм з використанням рекурсій:
VAR X1, X2: WORD; I, M: BYTE; S: LONGINT;
Підрахувати суму N чисел Фібоначчі (1,1,2,3,5,8,13.):
VAR X1, X2: WORD; I, M: BYTE; S: LONGINT;
IF N = 1 THEN FIB: = 1;
IF N = 2 THEN FIB: = 1;
IF N> = 3 THEN FIB: = FIB (N-1) + FIB (N-2);
Написати рекурсивну функцію обчислення суми 1 + 2 + 3 + 4 + 5 + ... + N:
IF N = 1 THEN SUM: = 1 ELSE SUM: = SUM (N-1) + N;
Використовуючи рекурсивную функцію отримати подібну фігуру:
1 варіант (проста рекурсивна форма)
VAR X, Y: WORD; I, K, M, N: BYTE;
IF K<5 THEN LINT(X,Y,N,M);
2 варіант (рекурсивна форма з випереджаючим описом)
VAR X, Y: WORD; I, K, M, N: BYTE;
PROCEDURE LNT (X, Y, N, M: WORD); forward;
for k: = 1 to 5 do begin
Схожі документи:
ПрограммірованіенаязикеTurboPascalМатеріали до уроків У цій брошурі зібрані матеріали для підготовки та проведення голосування стосовно программірованіюна Паскалі, коли йде освоєння.
напрограммірованіе. Таким чином, введення додаткового 1 ч в тиждень на вивчення основ алгоритмізації і программірованіянаязике. матеріалів ЄДІ з інформатики). Урок 22. Узагальнюючий урок. Е. В. Кондратова Ю.Н. TurboPascal. типи даних і алгоритми.