- •Основи програмування та алгоритмічні мови Програмування мовою 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.4. Типізовані файли
2.4.1. Теоретичні відомості
Файл - структура даних з однорідними компонентами, які звуться записами. Існує три типи файлів: типізовані файли, записи яких мають жорстку структуру, частіше всього RECORD; текстові файли, що складаються з символів та рядків: нетипізовані файли, в які можуть передаватися блоки по 128 байт в кожний.
Процедури та функції для типізованих та текстових файлів:
ASSIGN(F,NAME)-ставить в відповідність файлову змінну F специфікації файлу NAME в вигляді: 'диск:\каталог\ім'я.розширення'
RESET(F)-відкриває вже існуючий файл F та позиціонує покажчик запису на початок файлу
REWRITE(Р)-створюється новий файл F, покажчик запису встановлюється на початок файлу.
CLOSE(F)-3aкриває файл F.
ЕОF(f)-функція приймає значення TRUE, якщо покажчик запису вказує на кінець файлу, інакше false.
ERASE(f)-знищується файл F, який перед тим треба закрити.
RЕNАМЕ(f,s)-переіменування закритого файлу F в файл S.
READ(f,S1,S2)-читання з файлу F змінні S1.S2.
WRITE(F,S1.S2)-3anис в файл F із змінних S1.S2.
Процедури та функції тільки для типізованих файлів
SЕЕК(F,N)-позиціонування покажчика запису на запис з номером N. Перший запис файлу має номер 0.
FILEPOS(F)-функція визначає номер запису, на який вказує покажчик.
FILESIZE(F) функція визначає кількість записів в файлі F.
2.4.2. Приклад програми
Умова задачі: Створити програму, яка працює з базою даних. В заданому файлі містяться відомості про іграшки: назва, їх ціна та вікові межі дітей, для яких вони створені. Програма повинна створювати базу, доповнювати її новими записами, вилучати старі записи, вставляти нові, сортирувати по назві, записувати на диск та читати з диску.
uses crt;
type toy=record { тип запису, що мiстить назву}
titl:string; {цiну та вiковi межi }
price:Integer;
age:integer;
end;
mas=array[1..20] of toy;
var a:mas; { заданий масив записiв }
f:file of mas; { заданий файл }
w,i1,l,J,k,i:integer; { робочi змiннi)
t:toy; {тимчасовий запис}
s:char; {змiнна для закiнчення вводу}
{ процедура вводу}
procedure vvod_1;
begin
writeln(' Створення бази:');
i:=0;
repeat {поки не натиснута клавiша 'n'}
clrscr;
i:=i+1;
with a[i] do begin
gotoxy(10,6);write('title of toy '); readln(titl);
gotoxy(10,8);write('price '); readln(price);
gotoxy(10,10);write('children age '); readln(age);
end;
writeln('continue? y/n');
s:=readkey;
until s='n';
i1:=i;
end;
procedure file_input;
begin
assign(f,'lab5_1.dat');
reset(f);
i:=0;
while not eof(f) do begin
i:=i+1;
with a[i] do read(f,a);
end;
i1:=i;
close(f);
end;
procedure file_output;
begin
assign(f,'lab5_1.dat');
rewrite(f);
for i:=1 to i1 do begin
with a[i] do write(f,a);
end;
close(f);
end;
procedure vvod_2;
begin
writeln('Доповнення бази:');
i:=i1;
repeat {поки не натиснута клавiша 'n'}
clrscr;
i:=i+1;
with a[i] do begin
gotoxy(10,6);write('title of toy '); readln(titl);
gotoxy(10,8);write('price '); readln(price);
gotoxy(10,10);write('children age '); readln(age);
end;
writeln('continue? y/n');
s:=readkey;
until s='n';
i1:=i;
end;
{--------вивiд на екран------}
procedure vivod;
begin
clrscr;
writeln('n-------Name--------price---age----');
for j:=1 to i1 do
begin
gotoxy(5,5+j); write(j:4);
with a[j] do
{для кожного запису вивести}
begin
gotoxy(10,5+j); write(titl);
gotoXY(20,5+j); write(price);
gotoXY(30,5+j); write(age);
end;
writeln;
end;
end;
procedure del;
begin
write('n=');readln(j);
for i:= j to i1-1 do a[i]:=a[i+1];
i1:=i1-1;
end;
procedure insert;
begin
write('n=');readln(j);
for i:= i1 downto j do a[i+1]:=a[i];
i1:=i1+1;
with a[j] do begin
clrscr;
gotoxy(10,6);write('title of toy '); readln(titl);
gotoxy(10,8);write('price '); readln(price);
gotoxy(10,10);write('children age '); readln(age);
end;
end;
procedure sort;
var
t:toy;
begin
for i:= 1 to i1-1 do
for j:= i+1 to i1 do
if a[i].titl>a[j].titl then begin
t:=a[i];
a[i]:=a[j];
a[j]:=t;
end;
end;
label 1;
begin {головна програма }
clrscr;
gotoxy(30,7);writeln('lab. work S.I');
gotoxy(30,8);writeln('varlant N30,student ');
i1:=0;
gotoxy(30,10);write('файл є-1 , немає-0');
readln(w);
if w=1 then file_input;
1:clrscr;
gotoxy(30,9);writeln(' головне меню');
gotoxy(30,10);writeln('----------------------------');
if i1=0 then begin gotoxy(30,11);writeln(' створення бази -0');end;
if i1<>0 then begin gotoxy(30,12);writeln('доповнення бази -1');
gotoxy(30,13);writeln('перегляд бази -2');
gotoxy(30,14);writeln('вилучення елемента бази -3');
gotoxy(30,15);writeln('вставка елемента бази -4');
gotoxy(30,16);writeln('упорядкування бази за ім'ям -5');
gotoxy(30,17);writeln('запис бази на диск -6');
gotoxy(30,18);writeln('вихід з програми (запис бази на диск) -7');
gotoxy(30,19);writeln('віихід з програми (без запису бази на диск -8');end;
readln(w);
case w of
0: begin vvod_1; vivod; file_output; readln; end;
1: begin vvod_2; vivod; readln; end;
2: begin vivod; readln;end;
3: begin vivod; del; vivod;readln; end;
4: begin vivod;insert; vivod;readln;end;
5: begin sort; vivod; readln;end;
6: begin file_output; end;
7: begin file_output;halt;end;
8: begin halt;end;
end;
goto 1;
end.