- •Основи програмування та алгоритмічні мови Програмування мовою 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.2. Записи з фіксованою частиною
2.2.1. Теоретичні відомості
Запис - структурований тип даних, що складається з фіксованого числа компонентів одного або кількох типів. Формат типу запису:
TYPE <ім'я типу>=RECORD
< ідентифікатор поля>:<тип компонента>;
ідентифікатор поля>:<тип компонента>;
VAR <ідентифікатор >:<ім'я типу>;
Обсяг пам'яті, що необхідний для запису, складається з довжини компонентів. Звертання до поля (компоненту) запису здійснюється за допомогою ідентифікатора змінної та ідентифікатора поля, розділеним крапкою. Така комбінація зветься складовим ім'ям. Наприклад:
N.NUMBER:=1993: N.MARKA:= ‘ТАЗ-24’:
Оператор приєднання WITH використовується для спрощення роботи з компонентами запису. Щоб не використовувати складове ім'я компонентів запису, застосовують оператор WITH, в якому вказується змінна типу запис. Після цього можна працювати з іменами компонентів. як із звичайними змінними. Формат оператора:
WITH <змінна типу запис> DO <оператор>:
WITH n DO begin (запис n має поля number, marka) number:=1996; marka:='volvo':
end;
with c.b do month:= 9;
with c do with b do month:=9;
Pascal дозволяє вкладання записів один в одний, відповідно оператор WITH може бути вкладеним. WITH R1 DO WITH R2 DO
WITH R3 DO Це еквівалентно запису WITH R1.R2.R3 DO ....
2.2.2. Приклад програми
Умова задачі: Ввести масив записів, кожен з яких містить відомості про прізвище, адресу та номер телефону. Скласти програму, що сортує ці дані за алфавітом прізвищ, знаходить в масиві записів запис, що введений з клавіатури)
uses crt;
type anketa=record
FIO:string;
adress:string;
phone:string;
end;
var
mas:array [1..10] of anketa;
i,j,k:integer;
s:char;
rec:anketa;
procedure vvod;
begin
i:=0;
repeat
i:=i+1;
with mas[i] do
begin
write('FIO ');readln(FIO);
write('adress ');readln(adress);
write('tel ');readln(phone);
end;
writeln('continue? Y/N');
s:=readkey;
until s='N'
end;
procedure vyvod;
begin
writeln('-FlO--adress----telephone--');
for j:=1 to i do
begin
with mas[j] do
begin
write(' ',FIo );
write(' ',adress);
write(' ',phone);
end;
writeln;
end;
end;
procedure sort;
var tmp:anketa;
begin
for j:=1 to i-1 do
for k:=j+1 to i do
begin
if mas[j].fio>mas[k].fio then
begin
tmp:=mas[j];
mas[j]:=mas[k];
mas[k]:=tmp;
end;
end;
end;
procedure search;
var flag:boolean;
begin
writeln('input record for search):fio,adress.tel');
readln(rec.fio);
readln(rec.adress);
readln(rec.phone);
for j:=1 to i do
with mas[j] do begin
If (fio=rec.fio)and(adress=rec.adress)and(phone=rec.phone)
then
begin
flag:=true;
writeln(' record found:',rec.fio,' ',rec.adress,' ',rec.phone);
{break;}
end
else flag:=false;
end;
if flag=false then writeln('record not found');
end;
begin
writeln('results of program var 30');
writeln('auther studentЕ ');
vvod;
writeln('array of inputs records');
vyvod;
sort;
writeln('array of records after sort');
vyvod;
search;
end.