Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Цикли.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
117.76 Кб
Скачать

Цикли. Рекурентні програми.

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

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

а) обчислення чисел Фібоначчі;

Ці числа мають такий вигляд: 1, 1, 2, 3, 5, ..

Питання до класу. – Які числа продовжують послідовність?

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

Т

For i:=3 to n do

Fnew = Fold1 + Fold2;

обто, починаючи з третього члена цієї послідовності існує така залежність: 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(‘текст’,<змінна>).

. . . . .

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]