
- •Цикли. Рекурентні програми.
- •Для першого кроку виконання циклу встановлюються початкові данні (перший та другий член ряду), а для подальших кроків потрібно для формули готувати нові значення:
- •Модуль crt.
- •1. Робота в текстовому відео режимі.
- •2. Управління клавіатурою.
- •3. Управління звуком.
- •4. Приклад роботи з процедурами та функціями модуля crt.
- •5. Практичне завдання.
Цикли. Рекурентні програми.
Залежність нового значення члена послідовності від певної кількості попередніх називається рекурентною, а програми, які обчислюють ці значення, називаються відповідно рекурентними.
Розглянемо створення рекурентних програм на слідую цих прикладах:
а) обчислення чисел Фібоначчі;
Ці числа мають такий вигляд: 1, 1, 2, 3, 5, ..
Питання до класу. – Які числа продовжують послідовність?
Як можливо порахувати їх? Яка формула застосовується для обчислення послідуючого числа?
Т
For i:=3
to n do
Fnew
=
Fold1
+
Fold2;
Для першого кроку виконання циклу встановлюються початкові данні (перший та другий член ряду), а для подальших кроків потрібно для формули готувати нові значення:
F2=
1; F1=
1;
F3=F2+F1;
Fnew
:= Fold2
+
Fold1;
F4=F3+F2;
Fold1:=
Fold2;
F5=F4+F3;
Fold2:=
Fnew;
F6=F5+F4; ………..
Клітини пам`яті з ім’ям Fold1та Fold2, які використовуються у формулі потрібно заповнювати новими значеннями перед послідуючим шагом обчислювання шляхом послідовного переміщення членів ряду. Повна програма обчислювання N-го члену ряду:
Program Fibonachi;
Var I, Fold1, Fold2, Fnew : integer;
begin
write(‘Задайте значення числа N’);
read( n );
F1= 1; F2= 1;
For i:=3 to n do
begin
Fnew = Fold1 + Fold2;
Fold1:= Fold2;
Fold2:= Fnew;
end;
writeln(‘Значення’, n: 5, Fnew );
repeat until KeyPressed;
end.
б) обчислення факторіалу;
За
означенням
n!=1
. Тобто
кожне послідуюче значення дорівнює
попередньому помноженому на номер
послідуючого члену ряду. Приклад програми
знаходження n!:
Program Factorial;
Var I, F: integer;
begin
write(‘Задайте значення числа N’);
read( n );
f= 1;
For i:=1 to n do
f:= f * I;
writeln(‘Значення факторіалу числа’, n: 5, ‘дорівнює’, F:10 );
repeat until KeyPressed;
end.
Модуль crt.
У Паскалі під модулями розуміють бібліотеки, в яких розміщені процедури та функції, що виконують роль допоміжних алгоритмів. Вони містяться в окремих файлах і підключаються до програми тільки тоді, коли їх імена зазначені у розділі Uses. Це дає змогу не перевантажувати Паскаль- програму зайвою інформацією.
Для підключення модуля CRT до програми необхідно ввести до неї рядок Uses CRT:
Program my_pror;
Uses Crt;
…...……………..
1. Робота в текстовому відео режимі.
Розмір екрана в текстовому відео режимі можуть бути 80х25 або 40х25 (горизонталь, вертикаль).
CLS; -Очищення екрана монітору;
TextMode N; -Відео режим встановлюється процедурою TextMode (константа режима від 0 до 3).
-
Конст. N
Розмір екрану
0
40х25, чорно-білий
1
40х25, кольоровий
2
80х25, чорно-білий
3
80х25, кольоровий
TextBackGround(color); -Встановлення кольору фону символів;
Значення color |
Встановлюваний колір |
Значення color |
Встановлюваний колір |
||
Числове |
Мнемонічне |
Числове |
Мнемонічне |
||
0 |
Black |
чорний |
9 |
LightBlue |
яскраво-сірий |
1 |
Blue |
синій |
10 |
LightGreen |
яскраво-зелений |
2 |
Green |
зелений |
11 |
LightCyan |
яскраво-блакитний |
3 |
Cyan |
блакитний |
12 |
LightRed |
рожевий |
4 |
Red |
червоний |
13 |
LightMagenta |
бузковий |
5 |
Magenta |
фіолетовий |
14 |
Yellow |
жовтий |
6 |
Brown |
коричневий |
15 |
White |
білий |
7 |
LightGrey |
яскраво-сірий |
128 |
Blink |
блимання символу |
8 |
DarkGrey |
темно-сірий |
|
|
|
TextColor(color); -Встановлення кольору символів;
Приклад:
Begin
TextMode 1; TextBackGround(red); TextColor(12); CLS;
. . . . .
або TextAttr:= Red +Gren*16+Blink;
формула встановлення атрибутів екрана = символ+ фон + блимання.
GoToXY(X,Y); -виставлення курсора в позицію x рядка y (1<=x<=80, 1<=y<=25);
В Turbo Pascal можливо виводить текстову інформацію в рамках не всього екрана, а тільки в рамках його окремою частини (вікно).
Window(X1,Y1,X2,Y2); -де x1 та y1 –координати лівого верхнього кута вікна;
x2 та y2 –координати правого нижнього кута вікна.
Координати вікна починаються з координати лівого верхнього кута вікна (1,1).
ClrScr; очищення вікна екрану.
Write(‘текст’,<змінна>); -виведення на екран або в вікно.
Приклад:
Begin
TextMode 1; TextBackGround(red); TextColor(12); CLS;
Window(12,8,38,17); TextBackGround(Green); TextColor(5); ClrScr;
Write(‘текст’,<змінна>).
. . . . .