- •“Київський політехнічний інститут” обчислювальна техніка та програмування - 1
- •Обчислювальна техніка та програмування - 1
- •Символи кодової таблиці ascii
- •Умовні переходи на мові "паскаль"
- •1: Begin
- •Цикли на мові "паскаль"
- •Підпрограми на мові "паскаль"
- •Function Alfha(a,b:real; c:byte):real;
- •Function Beta:integer;
- •Procedure Sorter (a,b:real; c:byte; Var X,y:real);
- •Procedure Beep;
- •Uses crt;
- •Window (x1,y1,x2,y2);
- •Window (10,5,45,15);
- •Window (1,1,80,25);
- •TextColor (yellow);
- •TextColor (14);
- •Текстові та типізовані файли мови "паскаль"
- •Assign (f1, ’Data.Pas’);
- •Reset (f2);
- •Rewrite (f2);
- •Seek (f2, 7);
- •FileSize (f2),
- •FilePos (f2).
- •Побудова графіків функцій на мові "паскаль"
- •MoveTo (200, 100);
- •SetLineStyle (0,0,1);
- •OutText (’Текст для виводу’);
- •OutTextXy (200,100,’Текст для виводу’);
- •SetTextStyle (0,0,0);
- •SetTextJustify (1,1);
- •PutPixel (150,50,green);
- •ClearDevice;
- •Бібліотечний модуль на мові "паскаль"
- •Interface
- •Implementation
- •Динамічні змінні мови "паскаль"
- •SetFillStyle (1, white);
- •Об’єктно-орієнтоване програмування на мові "паскаль"
- •New (Person, Init);
- •Destructor Done; Virtual;
- •Dispose (Person, Done);
- •Форматований ввід та вивід даних на мові “cі”
- •Printf(“керуючий рядок”,аргумент1,аргумент2, ...);
- •Scanf(“керуючий рядок”,аргумент1,аргумент2,...);
- •Scanf(“%d %f %c %s”,&I,&j,&k,l);
- •Scanf(“%d %*d %d”, &I,&j);
- •Scanf(“%d,%d”,&n,&m);
- •Оператори організації переходів на мові "сі"
- •1.2. Для організації умовного переходу по одному із багатьох варіантів доцільно використовувати оператор switch. Він має наступний формат:
- •Організація циклів на мові "сі"
- •Одновимірні та двовимірні масиви на мові "сі"
- •Char b[30];
- •Char a[10][20];
- •Записи, вкладені записи, масиви записів на мові "сі"
- •Int month;
- •Int year;};
- •Int class, age;};
- •Робота із бінарними та текстовими файлами
- •File *lst;
- •Int fflush (вказівник_на_файл);
- •Int fgetc(вказівник_на_файл);
- •Int fputc(вказівник_на_файл);
- •Int fread (вказівник_на_масив, розмір_об’єкта, кількість_об’єктів , вказівник_на_файл);
- •Int fwrite(вказівник_на_масив, розмір_об’єкта, кількіст_об’єктів , вказівник_на_файл);
- •Int fseek(вказівник_файла, зміщення, поч. Значення);
- •3. Контрольні запитання
- •Робота з функціями на мові “сі”
- •Тип_функції назва_функції(тип1 параметр1, ..., тип_n параметр_n);
- •Int main(int argc, char *argv)
- •3.1. Який синтаксис функцій у мові “сі”.
- •Комп’ютерний практикум № 17 графічний режим екрану на мові “ci”
- •Initgraph(int *driver, int *mode, char *path);
- •Void *pimage;
- •Void *malloc(об'єм_пам’яті_в_байтах);
- •Imagesize(x1,y1,x2,y2);
- •Putimage(x1, y1, вказівник, вид_вставки);
- •Вирішення диференційних рівнянь методом ейлера
- •Основи роботи в середовищі “turbo pascal 7.0” та “turbo c 3.0”
- •Комп’ютерний практикум № 17. Графічний режим екрану
Об’єктно-орієнтоване програмування на мові "паскаль"
Мета практикуму – розробка програмного забезпечення на мові прграмування "Паскаль" з використанням методів об’єктно-орієнтованого програмування.
ТЕОРЕТИЧНІ ВІДОМОСТІ
1.1. Об’єктно-орієнтоване програмування (ООП) характеризується трьома властивостями:
1). Об’єднання даних та підпрограм, що їх обслуговують, в один тип даних “Об’єкт”. Ця властивість ООП називається інкапсуляцією. В ПАСКАЛІ для опису об’єктів застосовується зарезервоване словоobject. Традиційно ім'я типу починається з великої буквиТ. Наприклад, створений об’єкт “Персона” (TPerson) уміщує три поля даних про людину:
Прізвище, ім'я, по батькові – Name;
Адреса – Address;
Телефон – Telephon;
та дві підпрограми-процедури, що їх обслуговують:
Read_Date– ввід даних про людину;
Write_Date– вивід даних про людину.
Підпрограми об’єкта називаються методамиі їх повний опис подається нижче опису об’єкта. Для позначення належності метода перед його іменем через крапку записується ім’я об’єкта, наприклад,Tperson.Read_Date. Для зменшення такої громіздкості при звертанні до методів у виконавчій частині програми застосовується операторWithаналогічно до типу даних “Запис”. Повний опис об’єкта “Персона” має наступний вигляд:
Type
TPerson= object
Name :string;
Address :string;
Telephon :string;
Procedure Read_Date;
Procedure Write_Date;
end;
Procedure TPerson.Read_Date;
begin
Write ('ПІБ ? ');
Readln (Name);
Write ('АДРЕСА ? ');
Readln (Address);
Write ('ТЕЛЕФОН ? ');
Readln (Telephon);
end;
Procedure TPerson.Write_Date;
begin
Writeln ('ПІБ: ',Name);
Writeln ('АДРЕСА: ',Address);
Writeln ('ТЕЛЕФОН: ',Telephon);
end;
Var
Person :TPerson;
2). При створенні нового об’єкта можна використати всі поля вже існуючого об’єкта, який є батьківським для створюваного дочірнього. Це дозволяє значно скоротити опис програми, бо непотрібно повторно описувати необхідні для роботи поля об’єкта. Ця властивість ООП називається наслідування. Ім'я батьківського об’єкта записується в круглих дужках після слова object в описі дочірнього об’єкта. Наприклад, опис об’єкта “Студент”, який уміщує всі поля існуючого об'єкта “Персона” та додатково одне поле з назвою інституту, здійснюється наступним чином:
Type
TStudent= object (TPerson)
Institute :string;
Procedure Read_Date;
Procedure Write_Date;
end;
Procedure TStudent.Read_Date;
begin
TPerson.Read_Date;
Write ('ІНСТИТУТ ? ');
Readln (Institute);
end;
Procedure TStudent.Write_Date;
begin
TPerson.Write_Date;
Writeln ('ІНСТИТУТ: ',Institute);
end;
Var
Student :TStudent;
Як видно, методи об’єкта “Студент” Read_Date та Write_Date доповнюються командами вводу та виводу інформації про інститут;
3). Методи ієрархічних об'єктів у наведених прикладах “Персона” та “Студент” мають однакові імена Read_DateтаWrite_Date, проте у кожному об'єкті їх дія відрізняється. Ця властивість ООП називаєтьсяполіморфізм.
1.2. Зв'язок між методами дочірніх та батьківських об'єктів у наведених прикладах установлюється під час компіляції програми, тому такі методи називаються статичними.Існують більш зручні методи, які дозволяють встановлювати зв'язок під час виконання програми. Вони називаютьсявіртуальнимий розширюють властивість поліморфізм, бо забезпечують зміну роботи методів у ході виконання програми. Віртуальні методи позначаються при описі типу об'єкта словомVirtual після заголовка підпрограми. При цьому всі відповідні методи в дочірніх об'єктах повинні також бути віртуальними. При наявності в об'єкті віртуальних методів його полям даних у виконавчому блоці програми повинні задаватися початкові значення, наприклад, нульові. Для цього служить спеціальний метод об'єктаConstructor(конструктор) по типу звичайної процедури, який за згодою має ім'яInit.
Недоліком віртуальних методів є менша швидкодія порівняно зі статичними методами.
1.3. Об'єкти, як й інші типи даних, можна розміщувати в динамічній пам'яті й працювати з ними за допомогою вказівників. Виділення та звільнення динамічної пам'яті здійснюється відомими командами NewйDispose. Наприклад, створення динамічного об'єктаTPersonпроходить наступним чином
Var
Person :^TPerson;
Begin
New (Person);
. . .
Dispose (Person);
End.
Якщо динамічний об'єкт має віртуальні методи, то перед його використанням у виконавчому блоці здійснюється ініціалізація об'єкта за допомогою метода Constructor
Person^.Init;
Для зменшення громіздкості можна об'єднати в одну команду процес ініціалізації та виділення динамічної пам'яті