
- •Лабораторна робота № 1.
- •Теоретичні відомості
- •Система меню Turbo Pascal 7.0.
- •Меню роботи з файлами file.
- •Меню редагування edit.
- •Меню пошуку інформації search.
- •Меню використання програми run.
- •Меню компіляції compile.
- •Меню наладки debug
- •Меню вікон window
- •Меню інформаційної допомоги help.
- •Редактор тексту середовища Turbo Pascal
- •Команди управління рухом курсора.
- •Контрольні запитання.
- •Лабораторна робота № 2. Лінійні програми. Арифметичні вирази.
- •Теоретичні відомості(Pascal)
- •Значення вбудованих функцій:
- •Процедури введення-виведення:
- •Теоретичні відомості (с) Дві прості програми
- •В цій програмі порівняно з першою використано декілька нових речей
- •Приклад програми
- •Завдання
- •Контрольні запитання.
- •Лабораторна робота № 3 Процеси розгалуження.
- •Теоретичні відомості.(pascal)
- •If логічний вираз then оператор1 else оператор 2;
- •If логічний вираз then
- •If умова1 then if умова2 then оператор1 else оператор 2
- •Теоретичні відомості.(c) Операції відношення і логічні операції.
- •Умовний оператор if.
- •If (умова) оператор;
- •If (умова) оператор;
- •Приклад програми
- •Блок-схема алгоритму
- •Варіанти завдань
- •Контрольні запитання:
- •Лабораторна робота № 4. Розв’язування на еом задач з циклічним обчислювальним процесом.
- •Теоретичні відомості (Pascal).
- •Теоретичні відомості (“с”)
- •Цикли While і do-While
- •Контрольні запитання.
- •Лабораторна робота № 5,6. Одновимірні масиви. Двовимірні масиви.
- •Теоретичні відомості.(Pascal)
- •Теоретичні відомості.(c)
- •Двовимірні масиви
- •Ініціалізація масивів.
- •Масиви вказівників
- •Лабораторна робота №7 Складання блок-схем і програм з використанням процедур і функцій.
- •Теоретичні відомості.(Pascal)
- •1. Процедури
- •Теоретичні відомості.(«с») Функції в мові Сі.
- •Оголошення функції.
- •Прототипи функцій.
- •Область дії і область видимості змінних.
- •Параметри і аргументи функції.
- •Void sort (int arr[ ],int n ) /*можна ще писати void sort(int arr[10], int n), або void sort(int *arr, int n)*/
- •Програма мовою с
- •Лабораторна робота №8. Обробка текстів.
- •Теоретичні відомості.(Pascal)
- •Процедури для роботи з рядками
- •Функції для роботи з рядками.
- •Теоретичні відомості.(с) Масиви символів . Рядки.
- •Функції для роботи з рядками.
- •Приклад виконання завдання.
- •Блок-схема
- •Програма мовою Pascal
- •Програма мовою с
- •Контрольні запитання.
- •Завдання .
- •Лабораторна робота № 9. Записи з фіксованою частиною.
- •Теоретичні відомості
- •Приклад програми
- •Варіанти завдань
- •Процедури та функції тільки для типізованих файлів
- •Теоретичні відомості (с) Вказівник на файлову змінну.
- •Текст програми (Pascal)
- •Блок-схема.
- •Завдання.
- •Лабораторна робота №11. Графіка.
- •Деякі графічні функції
- •Приклад програми.
- •Варіанти завдань.
- •Контрольні запитання.
Лабораторна робота № 9. Записи з фіксованою частиною.
Мета: Оволодіти практичними навичками розробки та програмування програм з використанням записів з фіксованою частиною.
Теоретичні відомості
Запис - структурований тип даних, що складається з фіксованого числа, компонент одного або кількох типів. Формат типу запису:
TYPE <ім'я типу>=RECORD ;
<ідентифікатор поля>:<тип компонента>;
………………………….. <ідентифікатор поля>:<тип компонеита>;
end;
VAR <ідентифікатор>:<ім'я типу>;
Обсяг пам'яті, що необхідний для запису, складається з довжини компонентів. Звертання до поля (компоненту) запису здійснюється за допомогою ідентифікатора змінної та ідентифікатора поля, розділених крапкою. Така комбінація зветься складеним ім'ям. Наприклад:
N.NUMBER:=1993; N.MARKA:=‘ГA3-24’;
Оператор приєднання WITH використовується для спрощення роботи з компонентами запису. Щоб не використовувати складене ім'я компонентів запису, застосовують оператор WITH, у якому вказується змінна типу запис. Після цього можна працювати з іменами компонентів, як із звичайними змінними. Формат оператора:
WITH <змінна типу запис> DO <оператор>;
WITH n DO begin {запис n має поля number, marka}
number:=1996; marka:= 'volvo';
end;
Pascal дозволяє вкладання записів один в одний, відповідно оператор WITH може бути вкладеним.
WITH Rl DO
WITH R2 DO
WITH R3 DO
Це еквівалентно запису WITH R1,R2,R3 DO ...
Приклад програми
program Iab_4_l;
{ Ввести масив записів, кожен з яких містить відомості про прізвище, адресу та номер телефона. Скласти програму, що сортує ці дані за алфавітом прізвищ, знаходить у масиві записів запис, що введений з клавіатури}
uses crt;
type anketa= record { Тип запису, що містить прізвище, }
FIO: string; {адресу та телефон }
adress:string;
phone:string;
end;
var
mas:array [1..10] of anketa; { Масив записів 1 }
і, j,k: integer; {параметри циклів}
s:char; {змінна для закінчення вводу даних}
rec:anketa; {запис для пошуку}
procedure wod; {————————ввід масиву записів—————}
begin
і:=0;
repeat
і:=і+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; {ввід з клавіатури відповіді: y/n }
upcase(S)='N'; {зміна малих літер на великі}
end;
procedure vyvod; {———вивід масиву записів——}
begin
writeln(’— ——FIO——— ————— adress—————— telephone— ’);
for j:=l to і 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:=l to i-1 do {фіксація елемента масиву}
for k:=j+l to і 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.pnone);
for j:=l to і do {пошук запису по введеному значенню}
with mas[j] do begin if(flo=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 not flag then writeln('record not found');
end;
begin {————головна програма——————}
writeln('rezults of program var 30');
writeln(auther student...');
wod; {ввід масиву записів}
writeln (array of input's records');
vyvod; {вивід масиву записів}
sort; {сортування масиву}
writeln('array of records after sort');
vyvod; {вивід відсортованого масиву}
search; {пошук потрібного запису}
end.