Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Алгоритм+жне+бадарламалау+негіздері.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.77 Mб
Скачать

Бақылау сұрақтары:

  1. Класс пен оның элементтеріне ат тағайындағанда ұсынылатын ережелер.

  2. Класс дегеніміз не? Объект дегеніміз не? Кластың жариялануы. Объектінің жариялануы. Кластың синтаксисі.

  3. Кластың өрісі дегеніміз не? Мысалдар. Кластың өрістерінің қалқалануы. Мысалдар.

  4. Кластың әдісі болып не табылады? Мысалдар. Кластың әдісі кәдімгі процедурадан несімен ерекшеленеді?

  5. Әдістердің қалқалануы. Статикалық қалқалану. Динамикалық қалқалану.

  6. Динамикалық, виртуальды және қалқалау әдістері. Мысалдар.

  7. Абстракті әдістер. Мысалдар. Қайта іске қосылатын әдістер.

  8. Конструктор мен деструктор. Мысалдар.

  9. Кластың қасиеті. Қасиеттің синтаксисі. Мысалдар.

  10. Қасиеттің класы өрістің класынан несімен ерекшеленеді? Read, write специфиациялары.

  11. Инкапсуляция. Мысал.

  12. Туындау. Мысал.

  13. Полиморфизм. Мысал.

  14. Кластың құрылымы. Published, private, protected, public секциялары.

  15. Кластарға амадар қолдану. IS және AS кілттік сөздері. Мысалдар.

  16. Оқиға. Оқиғаның сипатталынуының синтаксисі. Мысалдар.

  17. Процедуралық тип. Мысалдар.

  18. Ең қарапайым процедуралық тип болып қандай тип табылады? Sender параметрі.

  19. Оқиғаның өңдегішін қалай шақырады?

  20. Оқиғаға қайта ат тағайындау. Мысалдар.

Өз бетінше орындауға арналған тапсырма

  1. Объектілі – бағытталған бағдарламалаудың негізгі принциптері. Объект, хабарлама, класс, объектінің данасы және әдіс.

  2. Абстракция, инкапсуляция, туындау және полиморфизм. Мысалдар.

  3. Delphi – дің абстрактілі кластарының сипаттамалары (TObject, TPersistent, TComponent).

  4. Delphi – дің абстрактілі кластарының сипаттамалары (TControl, TGraficControl, TWinControl, TScrollingWinControl).

  5. Stored, default (немесе nodefaulte), implements спецификациялары. Мысалдар.

  6. Берілгендердің динамикалық құрылымы. Нұсқағыштар, динамикалық айнымалылар. Мысалдар.

  7. Variant типі. Variant типті айнымалылар. Variants модульі.

Зертханалық жұмыс №4 «Полиморфизм және көрнекілік әдістер»

Полиморфизм — бұл әртүрлі кластарға кіретін әдістерге бірдей ат тағайындау мүмкіндігі. Полиморфизмнің концепциясы Концепция полиморфизма обеспечивает в случае применения метода к объекту использование именно того метода, который соответствует классу объекта.

Біреуі қалған екеуіне базалық класс болатындай үш класс анықталсын:

type

// базалық класс

TPerson = class

FName: String; // өрістің аты

Constructor Create(AName: String);

Function Info: String; virtual;

end;

// TPerson – нан туынды

TStud = class (TPerson)

FGr: Integer; // оқу тобының нөмірі

Constructor Create(Aname: String; Gr: Integer);

Function Info: String; override;

end;

// TPerson – нан туынды

TProf = class(TPerson)

FDep: String; // құжыраның аты

Constructor Create(AName: String; Dep: String);

Function Info: String; override;

end;

Әрбір класта Info әдісі анықталған. Базалық класта virtual директивасының көмегімен Info әдісі көрнекі болып анықталған. Әдістің көрнекі болып анықталуы еншілес класқа көрнекілік әдісті өз меншік әдісімен айырбас жасауға мүмкіндік береді. Әрбір еншілес кластың өзінің Info класы анықталған, ол аталық кластың сәйкес келетін әдісін айырбастайды (аталық кластың көрнекілік әдістерін ауыстыратын туындалған кластың әдісі, override директивасында орналастырылады).

Төменде әрбір класс үшін Info әдісінің анықталуы келтірілген.

function TPerson.Info: String;

begin

result := ' ';

end;

functicn TStud.Info: String;

begin

result := FName + ' группа ' + IntToStr(FGr)

end;

function TProf.Info: String;

begin

result := FName + ' кафедра ' + FDep;

end;

Екі класс та бір базалық кластан туындағандықтан студенттер мен оқытушылардың тізімін былай жариялауға болады (бұл жерде мынаны еске алу қажет, объект дегеніміз - бұл нұсқағыш):

list: array[1..SZL] of TPerson;

Тізімді осылай жариялауға болады, өйткені Object Pascal аталық кластың нұсқағышына еншілес кластың нұсқағышының мәнін меншіктеуге мүмкіндік береді. Сондықтан list массивінің элементі Tstud класының және TProf класының элементтері бола алады.

Студенттер мен оқытушылардың тізімін Info әдісін массив элементтеріне қолдану арқылы шығаруға болады. Мысалы, былай:

st := ' ';

for i := 1 to SZL do // SZL – тізім – массивінің өлшемі

if list[i] <> NIL

then st := st + list[i] .Info + #13;

ShowMessage(st);

Бағдарламаның орындалуы барысында массивтің әрбір элементі TStud типті объектіден де, TProf типті объектіден де тұра алады. Полиморфизмнің коцепциясы объектіге объектінің типіне сай келетін әдісті қолдануды қамтамасыз етеді.

Келесі бағдарлама жоғарыда қарастырылған TPerson, TStud және TProf кластарының жариялануын қолдана отырып, студенттер мен оқытушылардың тізімін қалыптастырады және шығарады. Бағдарламаның мәтіні 2.1 листингісінде, ал қарым – қатынас терезесі сурет 2.1 келтірілген.

Сурет 2.1 «Полиморфизм» бағдарламасының қарым – қатынас терезесі

2.1 листингісі Полиморфизмнің демонстрациясы

Unit polimor_;