https://www.w3schools.com/cpp/cpp_oop.as
Презентација и квизови изработени од Калина Јамндиева, Катерина Јамандиева, Петар Стојаноски, Софија Милошеска, Марија Ристеска, Елена Веруш, Илина Николоска
Прашања:
1. Според начинот на пресметување програмските јазици ги делиме на 2 групи. Кои се тие ?2. Која е разликата помеѓу процедуралните и објектно ориетираните јазици?
3. Кој е првиот јазик кој вовел објекти и класи ?
4. Што е ООП? Кои се предностите на ооп во однос на процедуралното програмирање
5. Објасни го принципот "Don't Repeat Yourself" (DRY)
6. Што е класа, а што објект ? Примери за класа и објекти
7.
9. Атрибутите и методите се во основа променливи и функции кои припаѓаат на класата. Тие често се нарекуваат „членови на класата“. Објасни !
Процедурално / Објектно
Процедуралното програмирање
користи листа на инструкции за извршување одредена задача чекор по чекор. Се
темели на процедури. Познати се и како top-down јазици, односно процедурите се извршуваат редоследно одгоре надолу.
Процедуралнои јазици : Fortran, Cobol, C, Basic, Pascal
Првиот ОО јазик Simula ја воведува идејата за објекти, како збир на информации кои се третираат како единствен елемент.
На објектно-ориентирана програма може да се гледа како на колекција од кооперативни објекти, за разлика од вообичаениот модел, во којшто на програмата се гледа како на листа од задачи (потпрограми). Во ООП секој објект е способен да прими порака, обработи податок и да прати порака на друг објект и на него може да се гледа како на независна “машина“ со посебна улога или одговорност.
Основна разлика помеѓу процедурално и OOP програмирање:
Програмата е организирана како низа од чекори (инструкции).
Податоците и функциите се одделени.
Фокусот е на што треба да се изврши.
Податоците и методите се обединети во објекти.
Фокусот е на кој го извршува однесувањето.
Се базира на: енкапсулација, апстракција, наследување и полиморфизам.
Процедуралното програмирање е ориентирано кон функции, додека OOP е ориентирано кон објекти (моделирање на реалниот свет преку објекти).
Наместо да размислуваме за кодот како низа од наредби, замислете дека градиме свет со „нешта“ (објекти).
Дискусија: Погледнете околу себе. Секој предмет е Објект. На пример, еден Автомобил.
Што поседува тој? (Боја, модел, брзина) — Ова се Податочни членки.
Што може да прави? (Забрзува, кочи, свири) — Ова се Функции-членки.
Вештачка интелигенција (AI) активност:
Отворете ChatGPT или друг AI четбот и напишете: „Опиши го објектот 'Паметен телефон' преку неговите карактеристики и акции како да си програмер.“ Споредете ги одговорите.
Класите го дефинираат објектот ( тие содржат атрибути и методи кои објектот треба да ги има).
Класа претставува нацрт (калап, модел, шаблон) на објект,што не наведува до заклучок дека класите може да имаат повеќе објекти .
Koга е дефинирана класата, можеме да инстанцираме објекти ( ООП термин кој значи "креирани" ). Објектот е клучен концепт на ооп и нивната основна намена е приказ на објект од реалниот свет. Софтверските објекти се слични на објектите од реалниот свет.
Објекти кои содржат ист тип на податоци и одговараат на пораки на ист начин припаѓаат на иста фамилија објекти односно припаѓаат на иста класа. Во ООП примарниот концепт е класа, и произволен број објекти (од иста фамилија) може да се креираат користејќи ист модел/ нацрт/ шаблон. Класите за објектите се она што се нацртите за куќите – класа е план за градење на објект од таа класа. Исто како што може да се изградат многу куќи од еден нацрт, може да се инстанцираат многу објекти од една класа.
Нека е даден нацрт/план за автомобил. Нацртот не може да се вози – тоа значи и класата не може да се „вози“. Значи треба да се конструира автомобил за истиот да може да се вози , што значи дека мора да се креира објект од класата за да може да се извршуваат функциите на класата.
Што е Класа, а што Објект?
·
Класа: Нацрт-план или рецепт (пр. Рецепт за торта).
·
Објект: Конкретен пример направен според планот (пр.
Самата торта на масата).
Концептот на „Црна кутија“ vs. „Отворена кутија“
Ако имате далечинско за телевизор, дали треба да
знаете како се поврзани жиците внатре за да го смените каналот?“
· Дискусија: во програмирањето, класата е кутија.
· Јавен пристап (public): Тоа се копчињата на
далечинското кои се достапни за сите. Ако нешто е public, секој може да го види
и користи.
· Податочни членки: Тоа се карактеристиките (пр. боја на
далечинското).
· Функции-членки: Тоа се акциите (пр. копчето „Power“).
Пристап до елементите - членки на класа
За да пристапите до елементите
на класа , го користите операторот точка (.).
a. во дефиницијата на класа - Inside
b. надвор од дефиницијата на класа – Outside (со :: - scope resolution operator
class MyClass { // The class
void myMethod() { // Method/function defined inside the class
cout << "Hello World!"; }
};
int main() {
MyClass myObj; // Create an object of MyClass
myObj.myMethod(); // Call the method
return 0;
}
-------------------------------------------------------------------------------
class MyClass { // The class
public: // Access specifier
void myMethod(); // Method/function declaration
};
// Method/function definition outside the class
void MyClass::myMethod() {
cout << "Hello World!";
}
int main() {
MyClass myObj; // Create an object of MyClass
myObj.myMethod(); // Call the method
return 0;
}
Одговори на прашањата !!!
1. Што дефинираме со „Класа“ во C++?
А) конкретна вредност во меморијата
Б) кориснички дефиниран тип кој служи како „нацрт-план“ за објекти
В) само листа од функции без податоци
А) стрелка (->)
Б) две точки (::)
В) точка (.)
3. Што означува клучниот збор public: во дефиницијата на класата?
А) членовите се достапни само во внатрешноста на класата
Б) членовите се достапни за користење надвор од класата (на пр. во main)
В) класата е достапна на интернет
4. Пронајди ја грешката во следниов код:
class Ucilnica {
public:
int brojNaUcenici;
}
class Krug {
public:
double radius;
double presmetajPlostina() {
return 3.14 * radius * radius;
}
};
8. Дополни го кодот за да се креира објект и да се повика функцијата
#include <iostream>
using namespace std;
class Student {
public:
string name;
void printName() {
cout << name;
}
};
int main() {
______ s;
s.______ = "Marko";
s.______();
}

No comments:
Post a Comment