Лекция. Модульдік программалау концепциясы 4 страница



Олардың MS DOS, Windows операциялық жүйелерінде жұмыс істеу мүмкіндіктері жеткілікті.

C++ тілі де процедуралық тіл, бірақ онда ОБП тілінің ерекшеліктері кең түрде қарастырылған. ОБП тілінде қолданылатын негізгі ұйымдар: класс, объект, оқиға, қасиеттер мен әдістер. Бұл ұғымдар:

объект - құрылымы класс типі арқылы сипатталатын айнымалы;

оқиға - объект жағдайының өзгеруі; қасиеттер - объект сипаттамалары (параметрлері); әдіс - класс элементтерін іздейтін команда не процедура, функция.

класс - пайдаланушы анықтайтын тип. Тип қасиеттер мен әдістерді бірге қосып сипаттайды. Программада осы кластың жеке даналары дайындалады. ОБП-да класс үшін мұрагерлік, инкапсуляция және полиморфизм принциптері енгізілген. Мұрагерлік — программада негізгі класс типінің туынды иерархиялық класта сақталуы, т.б.

Тілде жадпен жұмыс істеуге арналған арнайы конструктор, деструктор функциялары да бар. Конструктор класс типті айнымалы үшін жадтан арнайы орын бөледі, деструктор бөлінген жадты тазалайды.

Мысал үшін фигуралық объектілерді қарастырайық. Мұндағы класс – геометриялық фигуралар типі. Класс жазық және кеңістіктегі у фигуралар болып екі ішкі класқа бөлінеді (C тілінде оларды м ұ рагер типтер деп атайды). Жазық фигуралар класы төбелері бар (мысалы, үшбұрыш, төртбұрыш) және төбелерсіз (мысалы, шеңбер, эллипс) болып екі ішкі класка бөлінеді (олар иерархиялық м ұ рагер типтер).

Оқиға - фигурамен жұмыс жағдайы.

Объектінің қасиеттері: боялу түсі, ұзындығы, ені және т.с.с. ОБП тілінде негізгі кластар программа түрінде дайындалған соң, олар арнайы кітапханалық (каталогтық) файлдарда сақталып қойылады. Мұрагерлік класты пайдаланып программа құруда негізгі класқа арнайы сілтеме орнатып, программалау процесін көп жеңілдетуге болады (себебі, ол Турбо Паскальда sin () функциясына арналған кітапханалық файлды пайдалану сияқты жұмыс істейді).

Бейсик, Паскаль, Си сияқты дәстүрлi программалау тiлдерiнде күрделi, үлкен программаларды дайындаудың кемшiлiгi – ол үшiн программалаушылар тобының көп күш жұмсауы қажет болатын. Программалауды жеңiлдету үшiн 80 – жыл­да­ры жаңа объект, класс (оbject, class) ұғымдары енгiзiлiп, объек­тiлi – бағдарлы программалау (ОБП) тәсiлi негiзге алын­ды. ОБП – Турбо Пас­кальда қолданылатын процедуралық және құ­ры­лымдық про­граммалаудың және модуль құрудың дамы­тылған түрi. Ол берiлген­дердi белгiлi бiр абстракциялық деңгейде көрсетiп, модульдiк про­граммалауды пайдаланады. Мысалы, Visual Basic про­граммалау жүйесi объектiлi про­граммалау не­гiзiнде ви­зуаль­ды түрде құрылған. Паскальдың ОБП тәсiлiн пайдала­нып құ­рылған жаңа нұсқасы Object Pascal (Объектiлi Пас­каль) деп аталады. Delphi осы тiлдiң негiзiнде да­йындалған. Объектiлi программалаудың ыңғайсыз­дығы – онда дәстүрлi про­граммалау тәсiлдерiн пайдалана бе­р­мейдi, бiрақ ондағы көп қиындықтар арнайы тәсiлдердi пай­далану арқылы тез ше­шiлген.

       ОБП тiлiнiң дәстүрлi программалау тiлдерiнен өзгешiлiгi – типте өрiстерге қоса, қасиеттер және әдiстер де сипатта­лады:

       өрiстер – Турбо Паскальдағы жазу (record) типiнiң өрiс­те­рi сияқты;

       қасиеттер – объект сипаттамалары;

       әдiстер – кластың өрiстерi мен қасиеттерiн өңдейтiн про­цедуралар мен функциялар.  

       Kласс – жоғарыда көрсетiлген құрылымды (өрiстер, қа­си­ет­­­тер және әдiс­терден тұратын) тип. Яғни, класс әдеттегi Паскаль типiнiң кеңейтiлген түрi. Класс типi арқылы сипат­талған айнымалы объект (нысан) деп ата­лады.

Жүйе объект үшiн жадтың динамикалық облы­сынан ар­найы орын қалдырады. Яғни, шын мәнiнде, объект жай ай­­­ны­ма­лы емес, ол - жадтың динамикалық облысының кез­дейсоқ ад­ре­сiн сақтайтын көрсеткiш. Бiрақ программада оған Турбо Пас­кальда пайданылатын көрсеткiш белгiсi ( ^ ) енгiзiлмей жа­зылады.

       Объект құрылған кезде автоматты түрде конструктор (cons­tructor) деп аталатын әдiс ша­қырылып, ол объектiнi дина­ми­калық облыс­та орна­ластырады, динамикалық жадтан объ­ек­тiнi арнайы деструктор (destructor) әдiсi жояды.

       Сонымен, ОБП - да пайдаланылатын объект сөзiнiң екi мағынасы бар: айнымалы (абстрактты, дерексiз объект) және нақты объект (мысалы, формада орнатылған компонент, гео­метриялық дене, т.с.с.). Delphi – де бiрiншi объект нақты класс данасын анық­тайды.

Клас­қа иерар­хиялық (бағынышты, жоғарыдан тө­мен) клас­тардың енуi де мүмкiн. Мысалы, геометриялық фигуралар класы жазық фигуралар және кеңiстiк фигуралары болатын екi iшкi кластық фигураларға бөлiнедi. Ал жазық фигуралар класы төбелерi бар (үшбұрыш, көпбұрыш) және төбелерсiз (шеңбер, эллипс) болып екi iшкi класқа бөлiнедi. Объектiлi программалауда барлық кластар иерархиялық түрде негiзгi TObject класынан тарайды (TObject ® TPersistent ® TComponent ® …). әдетте не­­гiзгi класты аталық, бағыныңқы клас­тар­ды туынды не сәбилiк кластар деп атайды (TObject – барлық кластардың арғы атасы, TComponent – барлық иерар­хиялық компоненттердiң жоғарғысы (компонент деп TComponent класының мұрагерi болатын класс данасын атайды)). әр ұрпақ өзiнiң аталық класының мүмкiндiктерiн (өрiстерiнiң, қасиет­терiнiң, әдiстерiнiң сипаттамаларын) қабылдай­ды. Мысалы, TObject класының Create (бастапқы мән мен­шiктеу (инициал­дау)) әдiсi барлық туынды кластарға тиiстi (TObject класында конструктор Create деп аталады). әр ұрпақ өзiне қо­­сым­ша жаңа мүмкiн­дiктер (сипаттамалар) қосып, келесi ұрпақтарға беруi мүмкiн.

 

Delphi-де класс атауын T әрпiнен бастау­ келiсiлген. Фор­маға ен­гiзiлген компонент данасы сандық индекс қосылған класс ата­уын алады.

Туынды кластың сипатталу түрi:

 

type <туынды класс атауы>=class (<негiзгi класс атауы>);

 <класс мүшелерiнiң тiзiмi>

end;

var <объект> : <класс атауы>;

 

мұндағы класс  мүшелерi - өрiстер, қасиеттер және әдiс­тер.

Мысалы,

       type TForm1 = class (TForm)

Button1 : TButton;

  Label1 : TLabel;

Procedure Button1Click ( Sender : TObject);

end;

var  Form1 : TForm1;

 

TForm1 = class (TForm) жазуы TForm класының үлгiсi­мен құрыла­тын жаңа (туынды) TForm1 класын анықтайды. Form1 : TForm1 жолындағы Form1 айнымалысы - класс да ­ насы

Программаны дайындау барысында Delphi мо­дульдiң In­terface бөлi­мiнеформаға енгiзiлген компо ­ нент ­ тер мен оқи­ғасы таңдалған әд i стерд i сипаттауды автоматты түрдеен­гiзедi, әдiс­тердi iске асыру нұс­қау­лары мо­дульдiң imple­men­tation бөлi­мiне қолдан жазы­лады.

Жалпы, Delphi – де класс деп   өзiне ұқсас даналарды да­­­­­йындау үшiн үлг i түрiнде алынатын, толық түрде дайындал­ған программа үзiндiсiн де атайды. Программалаушы бұ­рын да­­­­йын­­далған класс данасының көшiрмесiн түрлi про­грам­маларға енгiзiп, про­граммалауды және оның көлемiн көп жең i лдету i не болады.

Delphi құрамына жүздеген дайын кластар енгiзiлген. әр ком­понент қатаң түрде тек бiр класқа ғана тиiстi. Мысалы,

Delphi – де форма (TForm) компонентi – Forma класына ти i ст i, осы типтi ай­нымалы (Form1) – класс объ ­ ект i с i. Класс бөлiгi ретiнде сипатталып, қажет болса, модульдiң Implemen­tation (iске асыру) бөлiгiнде жазылатын сәйкес процедура - әд i с. Мысалы, procedure TForm1.Button1Click әд i с

       Форма iшiне орналастырылған TEdit компонентiнiң Edit1 данасын (объектiсiн) екi рет шерткен кезде пайда болатын оқиғаны өңде ­ у i ш әд i с i не (процедурасына) мысал:

 

       procedure TForm1.Edit1Click(Sender : TObject);

       begin

       Edit1.Text := ‘Сiз редакциялау өрiсiн екi рет шерттiңiз‘;

        end;

 

       Программаны iске қосу командасы берiлген соң компи­ля­тор автоматты түрде негiзгi модульге енгiзiлген төмендегi екi әдiстi орындайды:

       Application.CreateForm(TForm1, Form1);

       Application.Run;

Бүлардың бiрiншiсi жадта Form1 объектiсiн құрады (объект i н i инициал ­ дайды), екiншiсi Application объектiсiне қосымшаның негiзгi формасын iске қосуға нұсқау бередi (Run). Жоғарыда жазыл­ған про­цедураның орындалу нәтижесiнде форманың Edit1 өрiсiне оның Text қасиетiне меншiктелген мәтiн жазы­лады.

Ескерту. Белгiсiз жағдайда про­грам­мада қасиет орнату командасын иерар­хиялық түр­­­де жазу қажет, мысалы:

Form1.Button1.FontSize:=14;

 

Мүндағы иерархияның бiрiншi объектiсi – форма (Form1), екiншi объект – формада орнатылған Button1 түймесi, үшiншi объект – түйменiң шрифт қасиет i; команда – форманың Button1 объектiсiне енгiзiлген FontSize (шрифт өлшемi) айнымалысына 14 мәнiн меншiктеу. Яғни, объектiлер арасына қойылатын нүкте сәй­кес иерархиялық объектiге с i лтеме.

 

М ұ рагерл i к . Инкапсуляция . Полиморфизм

ОБП – да класс үшiн мұрагерл i к , инкапсуляция және поли ­ морфизм принциптерi енгiзiлген.

Мұрагерлiк - программада негiзгi класс типiнiң туынды ие­рархиялық кластарда да сақталуы.Мысалы, автомобиль жеңiл және жүк машинасы болып бөлiнедi. Олардың жұмыс iстеу жағдайына байланысты, сипаттамаларына ортақ және бөлек өрiстер, қасиеттер мен әдiстер енгiзiлуi мүмкiн. Бiрақ, әр қайсысына жеке – жеке типтi толық анықтау үнемдi емес. Бiрiнiң типiн аталық етiп қабылдап, екiншiсiне қосымша қа­сиеттердi енгiзу жеткiлiктi. Delphi – дiң барлық кластары TОbject класына мрагер.

       Инкапсуляция (iшiнде, бiртұтас) – классөрiстерiн, қасиеттерiнжә­неәдiстерiн бiрiктiрiп, бiртұтас түрiнде қарас­тыру мүмкiндiгi. Инкапсуляция класты программаның қалған бөлiктерiнен бө­лiп алып, нақты есептi шешу үшiн пайдала­нуға мүмкiндiк ту­ғы­затын принцип. Мысалы, TForm класы өз бойында Windows – терезенi дайындау үшiн барлық қажет­тiлердi iшiнде сақтай­ды (өзiнде инкапсулдайды).

       Полиморфизм (көп түрлiлiк) – мұрагер кластардың аталық класқа енгiзiлген әдiс атауы бойынша басқа қасиеттер енгi­зiл­ген ұқсас есептi шешуiне болатындығы, яғни түрлi клас­тарда әр түрлi әре­кет­тердi орындайтын әдiстерге бiрдей атау беру мүмкiндiгi.

 

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

1. Объектiлi-бағдарлы программалау дегенiмiз не?

2. Қандай құрылымдық тип класс (class) арқылы сипатталады?

3. Инкапсуляция дегеніміз не?

4. Полиморфизмді қалай түсінесің?

5. Мұрагерлік деп нені айтады?


6-лекция. Негізгі түсініктер мен енгізу ортасы және программаларды орындау механизмі

Жоспар:

1. Компьютердің логикалық схемасы.

2. Есептеу құралдарының негізгі түрлері.

3. Машиналық тіл және ассембілер тілі туралы түсінік.

4. Операциялық жүйелердің функциональдық қызметі.

5. Программалау, компиляция және программаны орындау ортасы, модульдерді

қолдану

1.Орындалатын программа ЭВМ жадында сақталады.

2.Барлық информациялар: машиналық командалар, сандар, әріптер, символдар, ұяшық адрестері т.б. екілік кодтар түрінде орындайды.

3.ЭВМ программаны процессордың негізгі алгоритміне сүйеніп орындайды.

4.Екілік кодтар арасындағы амалдар екілік жүйе ережелеріне сай орындалады.

ЭВМ информацияны (екілік кодтарды) тетіктерге магистральмен жібереді, адресі бойынша қай ұяшықтан қандай информацияны алу немесе жадтың қай ұяшығына информацияны жазу керектігін және сол сияқты команда кодына қарап қай амалды орындау керектігін анықтайды. Магистраль 16 өткізгіш сымдардан тұрады да, сымдар бойымен бір мезгілде екілік кодтың барлық разрядтары беріледі. Белгілі бір сымға екілік кодтың тек белгілі разряды ғана сәйкес келеді және бұл разряд тек өзіне сай сыммен беріледі: 1-сыммен-кіші разряд, 2-сыммен-келесі разряд т.с.с.

Мысалы, 1011 коды былай беріледі: 1-сымға жоғарғы кернеу, 2-сымға жоғарғы кернеу, 3-сымға төменгі кернеу, 4-сымға жоғарғы кернеу беріледі, ал қалған сымдарға төменгі кернеу беріледі (сан кодтары 16 орынға дейін нөлдермен толықтырылып жазылады).

Бұдан соң компьютер кернеудің болуы немесе болмауы арқылы кодталған информацияларды өңдеуге көшеді. Бұл үшін логикалық элементтер деп аталатын арнаулы электронды тетіктер пайдаланылады.

                                                                1-кіріс

Жєне
емес
кіріс                           шығыс                                                           шығыс                                                                2-кіріс


               1-сурет                                                2-сурет

 

Енді осындай қарапайым логикалық элементтермен танысайық.

А) ЕМЕС, элементінің бір кірісі мен бір шығысы ғана бар. Егер элементтің кірісінде сигнал болса, шығысында сигнал болмайды, ал егер кірісінде сигнал болмаса, онда шығысында сигнал әр уақытта да бар болады. Элементтің атауының өзі (ЕМЕС) оның осы қасиетінінен туған.                                                                                           2-кесте

Сигнал Кірісте                  Шыѓыста   1 0 0                             1
ЕМЕС элементінің қасиетін                                            

1-сурет пен 2-кесте ар-


Дата добавления: 2019-02-12; просмотров: 520; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!