- •Основи програмування та алгоритмічні мови Програмування мовою borland Pаscаl v7.0 для пеом Процедурне та модульне програмування
- •2.2.1. Теоретичні відомості
- •1. Основи алгоритмізації та програмування
- •1.1. Послідовність рішення задачі з допомогою еом
- •1.2.Середовище turbo Pаscаl
- •1.3.Типи даних turbo Pаscаl
- •1.4.Основні поняття мови програмування turbo Pаscаl
- •1.4.1.Синтаксис мови Програмування turbo Pаscаl
- •1.4.2. Основні дії в мові програмування
- •1.4.3. Умовні оператори
- •1.4.4. Методи організації циклів
- •1.4.5. Оператор вибору
- •1.4.6. Масиви.
- •1.4.7. Робота з рядками, масиви символів
- •1.4.8. Робота з типом string
- •1.4.9. Тестові завдання
- •1.4.10. Варіанти завдань для самостійного розгляду
- •2. Програмування в мові Pascal
- •2.1 Процедурний підхід до програмування
- •2.1.1 Теоретичні відомості
- •2.1.2.Приклад програми
- •2.1.3. Варіанти завдань для лабораторної роботи
- •2.2. Записи з фіксованою частиною
- •2.2.1. Теоретичні відомості
- •2.2.2. Приклад програми
- •2.2.3. Варіанти завдань для лабораторної роботи
- •2.3. Записи з варіантами
- •2.3.1. Теоретичні відомості
- •2.3.2. Приклад програми
- •2.3.3. Варіанти завдань для лабораторної роботи
- •2.4. Типізовані файли
- •2.4.1. Теоретичні відомості
- •2.4.2. Приклад програми
- •2.4.3. Варіанти завдань лабораторної роботи
- •2.5. Текстові файли
- •2.5.1. Теоретичні відомості
- •2.5.2. Приклад програми
- •2.5.3. Варіанти завдань Лабораторної роботи
- •2.6. Множини
- •2.6.1. Теоретичні вказівки
- •2.6.2. Приклад програми
- •Алгоритм
- •2.6.3. Варіанти завдань лабораторної роботи
- •2.7. Черги та стеки
- •27.1. Теоретичні вказівки
- •Алгоритм побудови стека:
- •2.7.2. Приклад програми
- •2.7.3. Варіанти завдань лабораторної роботи
- •2.8. Дерева
- •2.8.1. Теоретичні вказівки
- •2.8.2. Приклад програми
- •2.8.3. Варіанти завдань лабораторної роботи
- •2.9. Графіка
- •2.9.1. Теоретичні вказівки
- •2.9.2 Приклад програми
- •2.9.3 Варіанти завдань
- •2.10.Програмування інтерфейсу користувача. Розробка меню
- •2.10.1. Теоретичні вказівки
- •2.10.2. Приклад програми
- •2.10.3. Варіанти завдань
- •4 Створити меню такої структури: Головне меню
- •3. Основні принципи модульного програмування
- •3.1. Приклад програми
2.1 Процедурний підхід до програмування
2.1.1 Теоретичні відомості
Процедура - фрагмент програми, який має своє ім'я. Якщо в програмі звернемося до імені, в програмі відбувається активізація процедури, що називається викликом процедури.
Після виклику виконуються оператори в процедурі, а по закінченні управління повертається назад в головну програму і виконується оператор, який стоїть за викликом процедури. Опис процедури:
Procedure ім'я_процедури (ім'я_параметра1: тип;
ім'я_параметра2: тип;
var ім'я_параметра3:тип;
.......................):
begin
{тіло процедури} end;
Процедура повертає значення, що визначається, через параметри-змінні, які описуються, як var ім'я_параметра3:тип; в списку параметрів. Параметри, що описуються як ім'я_параметра2: тип; називаються параметрами - значеннями.
Опис функції:
function ім'я_функції (ім'я_параметру) : тип_значення_функції;
begin { тіло функції, в кінці тіла обов'язковий оператор
ім'я_функції:= значення; } end;
Функція завжди визначає тільки одне значення і повертає його до головної програми через своє ім'я. Оператор виклику процедури:
ім'я_процедури(фактичні значення параметрів);
Виклик функції можливий через оператор присвоєння або через параметр процедури або іншої функції:
ім'я_змінної:=ім'я_функції (фактичні значення параметрів);
writeln(ім'я_функції (фактичні значення параметрів));
формальні параметри - це локальні змінні, що використовуються тільки в тілі процедури або функції. Фактичні параметри підставляються під час виклику процедури або функції та замінюють формальні параметри. Для опису параметрів використовується розділ типів користувача: type ім'я_типу=стандартний_тип;
Випреджуючий опис процедур та функцій використовується, коли в програмі необхідно використати процедуру до моменту її опису. Для цього використовується ключове слово FORWARD.
Procedure a( параметри) ; forward;
Procedure b( параметри) ;
Begin
…….
A(P);
End;
Procedure a( параметри) ;
Begin
…….
B(P);
End;
При використанні зовнішніх процедур задається директива компілятора {$L ім'яфайла.OBJ}. Для використання процедур та функцій в головній програмі вони повинні бути об'явлені своїми заголовками та ключовим словом EXTERNAL;
{$L ім'яфайла.OBJ}
Procedure Proc1; EXTERNAL;
Procedure Proc2(X,Y:Byte); EXTERNAL;
Function Func1(X,Y:Byte):word; EXTERNAL;
2.1.2.Приклад програми
Умова задачі: Ввести матрицю цілих чисел вимірністю 5*5, в кожному рядку знайти максимальний елемент та замінити його на діагональний
type matr=array[1..5,1..5]of integer;
vector=array[1..5]of integer;
var
a:matr; {матриця}
max:vector; {масив максимальних елементів}
ind:vector; {масив номерів стовпчиків, де є максимальний елемент}
i,j:integer; {параметри циклів}
n:integer; {вимірність матриці}
procedure vvod(var ap:matr;var np:integer);
var i,j:integer;
begin write('n: ');
readln(np);
writeln('matr');
for i:=1 to np do
for j:=1 to np do
read(ap[i,j]);
end;
procedure poisk(ap:matr;np:integer;var maxp:vector;var indp:vector);
var i,j:integer;
begin
for i:=1 to np do {перегляд рядків матриці}
begin
{фіксація першого максимального елемента}
maxp[i]:=ap[i,1];indp[i]:=1;
for j:=1 to np do {перегляд стовпчиків}
if maxp[i]<ap[i,j] then
begin {визначення максим, елемента та його індексів}
maxp[i]:=ap[i,j];
indp[i]:=j; {масив індексів максимальних елементів рядків} end;
end;
end;
procedure VyvodMatr(ap:matr; np:integer);
var i,j:integer;
begin for i:=1 to np do begin
for j:=1 to np do
write(ap[i,j]:5);
Writeln; end;
end;
procedure VyvodVector(maxp:vector;np:integer);
var i:integer;
begin for i:=1 to np do
writeln('B рядку ',i,' максим, елемент ',maxp[i],'ind=', ind[i]);
end;
procedure zamena(var ap:matr;np:integer;indp:vector);
var i,j:integer;
begin
for i:=1 to np do
a[i,i]:=ap[i,indp[i]];end;
{головна програма}
begin
writeln('Результати л.р.вар.');
vvod(a,n);
writeln('задана матриця');
VyvodMatr(a,n);
poisk(a,n,max,ind);
VyvodVector(max,n);
zamena(a,n,ind);
writeln('матриця пiсля замiни');
VyvodMatr(a,n);
end.