«Весна — лето 2024»

Объектно-ориентированное программирование и его технология. (Методический материал для 9-11 классов)

Объектно-ориентированное программирование и технология.

Компьютердің құрылымына байланысты төменгі, ортаңғы,жоғары деңгейлі программалау тілдері болады.

Төменгі деңгейлі тілдерге нақты компьютрлік машиналық командалар тілі енеді. Машиналық тілдегі программа командалар тізбегі, яғни, операцияға қатысатын операндтардың адрестерімен орындалатын операцияның кодтарының тізбегі. Мұндай программалау тілдерін компьютерге тәуелді тілдер деп те атайды. Машиналық тілде жазылған программа басқа компьютерде орындалмауы мүмкін. Себебі бұл компьтердің командалар жүйесі мен құрылысы өзгеше болуы мүмкін. Машиналық тілде жазылған программа жылдам орындалады және жадтан аз орын бөледі. Машиналық тілде программалау көп уақыт жұмсауды қажет етеді.

Компьютердің құрылымына байланысты төменгі, ортаңғы,жоғары деңгейлі программалау тілдері болады.

Төменгі деңгейлі тілдерге нақты компьютрлік машиналық командалар тілі енеді. Машиналық тілдегі программа командалар тізбегі, яғни, операцияға қатысатын операндтардың адрестерімен орындалатын операцияның кодтарының тізбегі. Мұндай программалау тілдерін компьютерге тәуелді тілдер деп те атайды. Машиналық тілде жазылған программа басқа компьютерде орындалмауы мүмкін. Себебі бұл компьтердің командалар жүйесі мен құрылысы өзгеше болуы мүмкін. Машиналық тілде жазылған программа жылдам орындалады және жадтан аз орын бөледі. Машиналық тілде программалау көп уақыт жұмсауды қажет етеді.

Олимпиады: Информатика 1 - 11 классы

Содержимое разработки

Кіріспе..........................................................................................................3

І. ТАРАУ. Объектілі бағдарлы программалау және технологиясы.

  1. Объект ұғымы...............................................................7

  1. ОБП қасиеттерi.................................................................................13

  1. Әдістер.........................................................................20

  1. Виртуалды әдістер........................................................23

  1. Кластар құру...................................................................................... 24

  1. Жиындар құру ................................................................................... 40

ІІ.  ТАРАУ.  HTML және ОБПтехнологиясы жайлы Web түйін құру

  1.   HTML ...................................................................................................45

    1. Тегтер..........……………..................……............………....….46

    2. HTML тілінің құрылымы ……………..........………..….…...48

    3. Cілтемелер мен якорьлар …...........................…….….…...…50

          2. 1.4  Бетке суреттер енгізу ..……………….....................…...……52

          2. 1. 5 Тізімдермен жұмыс …………………..............................….. 57

2. 1. 6 HTML-дің мультимедиялық объектілері...................... …...58

         2. 1. 7  Кесте құру …………….......................................................... 60

         2. 1. 8  Фреймдер  ………...….............................…...………….….. 62

2. 2   Front  Page программасы ………............………………….…..…... 63

         2. 2. 1 Стандартты аспаптар тақтасы .……...............................….. 64

  1. 2. 2    Жұмыс режимі тақтасы …......................…………….….66

         2. 2. 3 Графикалық форматтардың түрлері …............................... .68

         2. 2. 4 Динамикалық  эффектілер..............................................…... 70

         2. 2. 5 Жүгіртпе жол…………...………........................…….…….. 70

         2. 2. 4  Бетке анимация ұйымдастыру........................................….. 71

2.3 ОБП жайлы Web түйіннің дайындалу технологиясы........................72

ҚОРЫТЫНДЫ ...........................................................................................79 

Пайдаланылған әдебиеттер...................................................80

Қосымша...............................................................................81

Кіріспе

 

       Компьютердің құрылымына байланысты төменгі, ортаңғы,жоғары деңгейлі программалау тілдері болады.

        Төменгі деңгейлі тілдерге нақты  компьютрлік машиналық командалар тілі енеді. Машиналық тілдегі программа командалар тізбегі, яғни, операцияға қатысатын операндтардың адрестерімен орындалатын операцияның кодтарының тізбегі. Мұндай программалау тілдерін компьютерге тәуелді тілдер деп те атайды. Машиналық тілде жазылған программа басқа компьютерде орындалмауы мүмкін. Себебі бұл компьтердің командалар жүйесі мен құрылысы өзгеше болуы мүмкін. Машиналық тілде жазылған программа жылдам орындалады және жадтан аз орын бөледі. Машиналық тілде программалау көп уақыт жұмсауды қажет етеді.

       Машиналық тілдердің кемшіліктері ортаңғы деңгейлі машинаға бағдарланған. Машиналық тілде программалау кезінде жадты бөліктеу жұмысын программалаушы орындайды. Ал бағдарланған тілдерде  ол жұмысты компьютр атқарады. Нақты адрестермен оперция кодтары орнына символдар және бір командаға біріктірілген командалар тізбегі ретінде орындалады. Ортаңғы деңгейлі тілдерге автокодтар мен ассемблер тілі кіреді. Ассемблер автокодтарды машиналық тілге  аударады. Мұндай программалау тілдерін трансляторлар деп атайды. Ассемблер тілінде программалау копьютр құрылымының барлық мүмкіндіктерін қолдануға мүмкіндік береді.

        Жоғары деңгейлі программалау тілдері компьютрге тәуелсіз деп те атайды. Яғни, траслятор прогаммалау тілінде жазылған командаларды машиналық тілге аударады. Жоғары деңгейлі программалау тілде проблемалық- бағдарланған және универсады болып бөлінеді.

         Проблемаға бағдарланған тілде тек бір салада есептерді тиімді шешуге арналған. Мысалы, экономикалық есептерді, лисп, пролог- жасанды интеллект саласындағы есептерді шешуге арналған. Универсал программалау тілдері кез келген сипаттағы, кез келген саладағы есептерді шешуге мүмкіндік береді. Универсал программалау тілдері процедуралық және объектілі – бағдарлы болып екіге бөлінеді. 1950 жылы алғашқы процедураға бағдарланған Фортран программалау тілі пайда болды, ал 1960 жылы Алгол программалау тілі, кейін Basic, Pascal, Cu, APL т.с.с. программалау тілдері шығарыла бастады.

        Паскаль программалау тілі 1969 жылы жасалынған, оны Швейцария ғалымы Никлаус Вирт құрастырып шығарған. Алғашқы кездері тіл программалау негіздерін оқытуға арналып шығарылғаны уақыт өте келе кәсіби программалаушының арасында кеңінен қолданыс тапты. Қазіргі кезге дейін программалау тілі жетілдіріліп, оның көптеген нұсқалары пайда болды. Паскаль тілі программалауға ыңғайлы құрал болғандықтан қазіргі кездерде де көптеген мәселерді шешуге пайдаланады.

        Паскаль тілінің соңғы нұсқасын 1991 жылы Borland International компаниясы жасап шығарды.

         Паскаль тілі – компелятор.     Паскаль тілінде алфавит Бейсик тіліндегідей, мұнда программалау ортасын іске қосу үшін бірнеше фактор жиынтығы керек:

  1. Turbo.exe – программаларды құру үшін интегралданған орта.

  2. Turbo.hlp – көмекші мәліметтер орналасқан файл.

  3. Turbo.tp – Turbo.exe файлы қолданатын конфигу- рациялық файл.

  4. Turbo.tpl- Turbo Pascal-дің резидентті модульдері.

  5. Tptour.exe- программалау ортасы алғаш іске қосылған кезде орта жайлы мәлімат беретін программа.

  6. Graph.tpu – ортаның барлық графикалық программасын іске қосатын файл.

        Қазіргі кезде Паскаль тілінің Turbo Pascal нұсқасы қолданылады. Бұл ортаны іске қосу үшін Turbo.exe файлын орындау қажет. Файл орындауға жіберілгеннен соң программалау ортасы экранда ашылады. Экран үш бөліктен тұрады:

  1. Мәзір қатары.

  2. Программа мәтіні терілетін жұмыс облысы.

  3. Көмекші мәлімет беретін қатар.

          Паскальда программа құрылымы :

  1. Label – белгілемелер.

  2. Const- тұрақтытылар.

  3. Type – типтер.

  4. Procedure, function – көмекші программалар.

  5. Var- айнымалыларды сипаттау.

  6. Begin……end – программаның негізгі бөлігі.

        Бұл дипломдық жұмыстың мақсаты ­­– Объектілі-бағдарлы программалаудың теориясын меңгеру, оның ішінде программалар құруды үйрену және Turbo Pascal-да мәзір арқылы ұйымдастыру. Бұл мақсатқа жету үшін келесі міндеттер орындалуы тиіс :

  1. Объектілі-бағдарлы программалауға қажетті мәліметтер жинау;

  2. Инкапсуляция, мұрагерлік, полиморфизмнің мағынала-рын түсіну;

  3. Turbo Pascal-да файлдармен жұмыс жасау;

  4. Тестік сұрақтарды енгізетін программа құрып үйрену және оны іске қосу;

  5. Графикалық режимнің жұмысын игеру;

  6. Turbo Pascal-дан мәзір программасының жұмысын игеру;    

  7. Turbo Pascal-да құрылған программаларды мәзір программасына кірістіру.

        Дипломдық жұмыс үш тараудан тұрады. Бірінші тарау объектілі  бағдарлы программалау негіздеріне, оның технологиясына  арналған. Екінші тарау WWW және HTML ұғымдарына, объектілі бағдарлы программалау технологиясы жайлы Web түйін құру технологияларына арналған.

        Web түйін  Front Page бағдарламасының көмегімен құрылған. Оның фреймдік, жүгіртпе жол жасау т.б. мүмкіндіктері пайдаланылған. Суреттер Photoshop – тың көмегімен дайындалған.

 

 

I ТАРАУ. ОБЪЕКТІЛІ БАҒДАРЛЫ ПРОГРАММАЛАУ

 

  1. Объект ұғымы

Объектілі бағдарлы программалаудың ең үздік технологиясы  және модификациясы жеңіл программа жасауға мүмкіндік береді. Оның мүмкіндіктерін ОБП тілінде қолдануға болады. Ондай тілдердің бірі Simula 67 , ол 60 – шы жылдардың екінші жартысында пайда болды. Қазіргі программалау тілдері ОБП-ны қолдайды. Оларға С++ , Java, Delphi т.б жатады. Бұл методология Turbo Pascal- дың 5.5 версиясынан бастап пайда болды. Мынаны айта кету керек, тек қана  ОБП тілдерінде емес басқа тілдерде де, мысалы, С және Фортран тілдерінде ОБП- ны қолданады. Бірақ оның жұмысын іске асыру өте қиынға түседі. Кейбір тапсырмалар класы дәстүрлі жолмен оңай шешіледі.

        ОбП- ны пайдаланып, программаны өңдеу проектілі жүйенің объектілі моделін өңдеуден басталады. Ол үшін проблемаларды объектілерге бөліп, олардың арасындағы бір- біріне тәуелділігін ашады. Бұл шығармашылық процесс болашақ жүйені қарастырушы программалаушының біліктілігіне сүйенеді. Егер, мысалы, беттің кескіні туралы сөз етсек, онда бастапқы беттің жылтыры тегіс фрагменттердің жиынтығымен, үшбұрыштармен нақты көрінеді. Бұндай бөлінуді триангуляция деп атайды. Бұл жағдайда үшбұрыштар объект болып есептелінеді. Үшбұрыштар қабырғаларымен,бұрыштың өлшемдерімен анықталады. Бірақ олардың ұқсастықтары бар болғанымен үшбұрыштарды жалпы бір класқа біріктіруге мүмкіндік береді. Объектінің сипаттамасы оның атрибуттарының жиынтығы болып табылады. Оларды тұрақты және тұрақсыз атрибуттар деп екіге бөледі. Тұрақты атрибуттар оның класындағы объектілерді сипаттайды. Мысалы, көпбұрыштың төбелерінің санын айтуға болады. Ал, тұрақсыз атрибуттар объектінің жағдайын сипаттайды – осы атрибуттың мағынасын өзгерту арқылы, біз объектінің жағдайын өзгерте аламыз. Мысалы, көпбұрыштың төбелеріндегі бұрыштардың өзгеруін айтуға болады. Кейде атрибуттардың типтері көрсетіледі, себебі, әрқайсысы әртүрлі мағына береді және тұрақсыз атрибуттың бастапқы мағынасын көрсетеді. Осы атрибуттың бастапқы мағыналары объектінің бастапқы жағдайын көрсетеді. Мысалы, үшбұрышты алатын болсақ, оның атрибуттары болып қабырғалары болып есептеледі.

Объектілерді класқа біріктірудің белгілері болып тек қана атрибуттар ғана емес, сондай-ақ тапсырмалардың контекстісі де есептеледі, мысалы, тікбұрыштар және тікбұрышты үшбұрыштар бірдей атрибуттардың жиынтығымен сипаттала алады- іргелес екі қабырғалардың ұзындықтары. Солай бола тұра олар әртүрлі геометриялық қасиеттермен бірге әртүрлі математикалық объектілер бола алады.

        Объектілерді класқа біріктіру тапсырмаларды жалпы қойылым ретінде көрсетуге мүмкіндік береді. Осы кластың барлық объектілеріне қатысты өзіне тән аты болады. Сонымен қатар кластағы атрибуттардың аттары кейбір объектілерге байланысты қойылады. Класты сипаттау ‘’ жазу ‘’ түрін сипаттауды еске түсіреді, әр объект тұрақты немесе тұрақсыз типтің мағынасындай мағыны береді.

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

        Объект  берiлгендердiң сипатталынуы мен оларды өңдейтiн программаларды бiрiктiредi. Объектiге енетiн программалар :

Процедуралар;

Функциялар;

Конструкторлар;

Деструкторлар түрiнде iске асады.

 

 

 


Объектке енгiзiлген программалар әдiстер деп аталынады және сонымен қатар:

 

 

Объект Turbo Pascal-да берiлгендердi сипаттау бөлiмiнде жазылады. Ал айнымалыларды сипаттау бөлiмiнде объект экземплярлары берiледi.

Type  Pozicia=Object

          X,Y:integer;

        Procedure Init(NewX,NewY:integer);

        Procedure Locat( var XL,YL:integer);

  End; 

Объектi сипаттау үшiн Object кiлiттi сөзi қолданылады. Pozicia объектiсiне  берiлгендер ретiнде X және Y бѕтiн айнымалылары және әдiс ретiнде Init және Locate процедуралары енгiзiлген.  NewX, NewY, XL,YL  айнымалалары объектiнiң берiлгенi емес, Init және Locate процедураларының формальды параметрi болып табылыды. Әдiстердiң мәтiнi объектен тыс берiледi, сондықтан сипатталыну кезiнде қандай объектiге жататыны анықталынуы тиiс. Егер әдiстер әртүрлi объектiлерге тиiстi болса, онда олардың аттарын бiрдей етiп жаза беруiмiзге болады.Сондықтан әдiс атына оның қай объектiге жататынын көрсететiн префикс қосылып жазылады, мысал: Pozicia.Init, Circle.Init.  Әдiстермен жұмыс iстеу үшiн айнымалы енгiземiз:

Var

MyPoz:Pozicia;

Бұл сипатталынудан кейiн MyPoz.Init(18,12) деп жазуымызға болады, яғни MyPoz объект экземплярының Init процедурасын шақыру арқылы  объектiнi инициализациялау болып табылады, нәтижесiнде MyPoz объект экземплярының X,Y  айнымалылары 18 және 32 мәнiне ие болады. Әрбiр объект экземплярының барлық айнымалыларына меншiктi жады алаңы болады және  олар арасында мәндердiң алмасуы үнсiз жүргiзiлмейдi.   Объект айнымалаларымен тура байланысуға болады. Төменде көрсетiлген мысалда программадағы екi нұсқаданың қай қайсысының орындалу MyPoz.Init процедурасының шақырғандағы нәтиженi бередi.

1-шi нұсқа:

MyPoz.X:=18;

MyPoz.Y:=32;

2-шi нұсқа:

With MyPoz do

X:=18;

Y:-32;

End;

ОБП әдiстемесi берiлгендермен тура байланысуға кеңес бермейдi. Объект берiлгендерiн сол объектiнiң әдiсi арқылы өңдеген жөн.

ОБП- ны қолданып жазылған программа бір-бірімен қарымқатынаста болатын объектіден тұрады. Объектіні программалық жүзеге асыру- олардың өңдеу процедуралары мен берілгендерін біріктіру деген сөз. Турбо Паскальда Object типі бар, оны record құрылымды типінің жалпыламасы деп есептеуге болады. Тұрақсыз объек типін объект экземпляры деп атайды.

        Объект типінің жазу типінен айырмашылығы тек қана берілгендерді сипаттайтын бөлімі ғана бар емес, тағы да объектіде сипатталатын процедуралар мен функциялар бар. Бұл процедуралар мен функциялар әдіс болып табылады.Объектінің әдістеріне олардың бөлімдері қатысты. Әдістері мен олардың параметрлері объектіні сипаттауда анықталады, ал оларды жүзеге асыру басқа жерде, яғни, программаның сол әдісті шақыру женрінде орындалады. Объектіні сипаттау әдіске қарайтын шаблондардан тұрады. Олар параметрлермен типтердің сандарының сәйкес екендігі компелятор үші н қажет.

              Type

                      Location=obgect

                            x,y:integer;

                            Procedure init( initX, InitY: integer);

                           Function getX: integer;

                           Function getY: integer;

                           End;

Обьект резервтегі object_end сөздерінің көмегімен сипатталады. Олардың арасында әдістер мен  бөлімдердің сипаттамасы бар. Келтірілген мысалда объект графикалық координаталардың белгілерін сақтау үшін екі бөлімнен, берілген объектілердің әдістері сипатталған процедура мен екі функциялардан құралған. Объекті типтердің сипатталауының басқа сипатталудан айырмашылығыол программалық бірліктің  (программа, модуль) ең жоғарғы сатысында тұрады. Әдістер мен функциялар, процедуралардың сипатталу бөлімінде мұндай сипаттау болмайды. Резевтегі private сөзі объект бөлімдеріне кіре алмайды. Келесі мысалда X,Y айнымалысына location объектілі типінің getX, getY әдістері арқылы ғана кіреді. Мысалы:

 Type

     Location= object

          Procedure init(initX, initY : integer);

          Function getX: integer;

          Function getY : integer;

     Private      X, Y : integer;

     End;

Private секциясында объект әдістері де бола алады. Әдістерді толық сипаттау, яғни, оларды жүзеге асыру сипатталуы объектіні сипаттаудан кейін тұруы керек. Әдістердің аттары құрамалы және нүкте арқылы бөлінетін әдістердің аттары мен

объектілердің аттарынан тұрады .    Мысалы :

          Procedure Location.init(initX, initY : integer);

Begin

         X:= initX;

         Y:= initY;

End;

Function Location. getX: integer;

Begin

       GetX:=X;

End;

Function Location.getY : integer;

Begin

GetY := Y;

End;

        Объект сипатталып болғаннан кейін прграммада оның экземплярын қолдануға болады. Яғни, берілген объектілі типтерінің айнымалысын :

     Var

         Grmarker : location;

       

1.2 ОБП қасиеттерi

ОБП инкапсуляция, мұра, полиморфизм деген қасиеттерден  тұрады.

        Инкапсуляция – дегеніміз ол объектінің өзіне қолданылатын қажетті детальді жасыру.инкапсуляция тек өзіне тән әдістері арқылы ғана берілгендерге кіруді ұйымдастыратын бірден бір тәсілИнкасуляция- жаңа объект түрiн өңдеудегберiлгендердiң процедура және функциялармен бiрiгуi болып табылады.   "Инкапсуляциятерминi- бұл жалпы бiр "қабыққа" (Object ... End) берiлгендер мен әдiстердi бiрiктiру мағанасын бередi.

 Жоғарыда айтылғандай, ОБП әдiстемесiмен келiсе отырып, берiлгендердiң мәндерiн өзгерту мақсатында, берiлгендермен тура байланысуға болмайды. Объект берiлгендерi әдiстер арқылы өңделуi тиiст. Бұл инкапсуляция болып табылады. Private cипаттауы арқылы берiлгендер мен әдiстердiң бiр бөлiгiн объектен тыс пайдалануға мүмкiншiлiк туғызбауға болады.

  Type

   NewObject=object

   Public

     Берiлгендердi сипаттау{ашық бөлiгi}

     Әдiстердi сипаттау {ашық бөлiгi}

   Private

     Берiлгендердi сипаттау{жабық бөлiгi}

     Әдiстердi сипаттау {жабық бөлiгi}

   End;

Жабық берiлгендердi тек қана осы объектiнiң әдiстерi ғана өңдей алады алады.

Инкапсуляция принципі бойынша объект және оған орындалатын іс-әрекеттер біріктіріліп объектінің ерекше бір түрінде қарастырылады. Яғни, әрбір объект және оған орындалатын іс-әрекеттер жеке класс ретінде ұйымдастырылады.

        Біздің мысалда объектіні сипаттау init-инициялизациясының процедурасы және getX, getY функциялары бөлек өзінше объект бола алмайды. Ол - location объекті типінің бөлінбейтін бөлігі. Егер программада берілген типтердің бірнеше айнымалыларының сипаттамасы келтірілген болса, онда әр айнымалы берілгендерді сақтау үшін өзінің есте сақтау облысы болады, ал функциялар мен процедураларға кіретін нүктелердің нұсқаулары үшін жалпы есте сақтау облысы болады. Әр әдісті шақыру мүмкіндігі тек қана өзінің құрама атының көмегімен ғана орындалады.

        Өзінің бұрынғы қасиеттерін пайдаланып, дамыта және өзгерте отырып, мұрагерлік жаңа объектілерді  анықтауға мүмкіндік береді.

Мұрагерлік принцип- белгілі бір объектіден келесі бір объект туындап, туынды объекті бастапқы объектінің барлық қасиеттеріне ие болуы. Сонымен қатар туынды объект бастапқы объектіде болмайтын жаңа қасиетке ие болуы да мүмкінТуынды объект түбірлік объектіден барлық өрістер мен  әдістерді қабылдап және оған өзінің өрістері мен әдістерін қосады немесе түбірлік объектінің әдістерін өзінікіне айырбастай алады. Туанды объектінің сипаттамасы мына мысалда келтірілген.

Мұра -бағынышты объектiлерден тұратын иерархиялық құрылымды құрайтын бағынышты объектiнi анықтауӘрбiр бағынышты объект ататегi объектiсiнiң берiлгендерiне, процедура мен функцияларына тiкелей байланыса алады.

Ататегi объектiсiнiң атын туылатын жаңа объектiнiң сипатталуына жазу арқылы мұра қалдырылынады. Осылай ағаш тәрiздi құрылым құрылады. Мұра-бұл объектiлер емес, объект түрлерi арасындағы байланыс болып табылады. Мысалы:

Type Pozicia=Object {Ата-ана объектiсi}

X,Y:Integer;

Procedure Init(NewX,NewY:integer);

Procedure Locate(Var XN,XL:Integer);

End;

Kom=Object(Pozicia)  {Бағынышты объект}

      Cvet,Raz:Word;

       Procedure Init(NewX,NewY:Integer;Color:Word);

       Procedure Zoom(Delt,Znak:Integer);

End;

Pozicia түрiне бағынышты  Kom түрi қабырғасы Raz (пиксел бойынша)   болып келген  боялған квадратты бередi. Мұнда мұрадан қалған X,Y  координаттары квадрат центiрiнiң координатасын бередi. Zoom процедурасы квадратты Delt және Znak аргументерi бойынша үлкейтедi (кiшiрейтедi).

Әдiстердмұра етуЖаңа алаңдарды сипатаған кезде, алаң аттарының қайталанып жазылмайтындылығын қадағалау керек. Объектiдегi жаңа алаң аты мұра арқылы алынған алаң атымен сәйкес болған жағдай программада қате туғызады. Ал әдiстер басқаша болып келедi. Объект (бағынышты объект) күрделi болған сайын, ол өзiн өрнектейтiн жаңа әдiстердi талап етiп ғана қоймай, ескi әдiстердi өзгеруiн талап етуi, оның "жүрiс-тұрысыда" күрделене түседi. Kom.Init  локальды әдiс Pozicia.Init  ата-ата әдiсiн жабады. Егер Kom.Init әдiсi болмаса, онда Pozicia.Init Kom түрi үшiн глобальды болып табылыды және  автоматты түрде осы әдiске программа назар аударады.

Функциональды ұқсас әдiстердiң бiрдей аталынуы объектiлер жүйесiн қабылдау мен программалауды жеңiлдетедi.

Мысалы :

Type

     Point= object(location)

          Visible: boolean;

          Procedure init(initX, initY: integer);

          Procedure show;

          Procedure hide;

          Function isvisible: boolean;

          Procedure moveto(newX,newY: integer);

      End;

        Бұл жерде point объектісі туынды объекті болады, ал түбірлік объект ретінде location объектісі болады. Туынды объектіде түбірлік объектінің өрістері мен әдістерінің сипаттамасы жоқ. Соңғысының ( түбірлік объектінің) аты дөңгелек жақшаның ішінде object сөзінен кейін көрсетілген. Туынды объект  әдісінен  түбірлік объект әдісін шақыруға болады. Туынды объект жасау үшін түбірлік объектінің алғашқы текстісінің болуын  қажет етпейді. Түбірлік объект трансляциядан өткен модульдің құрамында болуы мүмкін.

        Турбо Паскальда inherited деген сөз резервте болады. Ол түбірлік объект әдісін шақыруға қолданылады. Туынды объект сипаттамасында сәйкес келетін сөйлем орналасқан, мысалы:

     constructor nunfield.init(x.coord, y.coord, len:integer;

                                           lmin, lmax: longint);

        begin

            inherited.init(x_coord, y_coord,len);

                     min:=lmin;

                     max:=lmax;

         end;

        Инициализация дегеніміз массивті нөлдермен толтыру, бұл үшін fillchar процедурасы қолданылады. Біріші параметр белгіні өзіне иеленетін берілгендердің объектісін береді. Ал екінші параметр үшінші параметр арқылы берілген белгі кіргізілетін жадтағы аралас байттың саны. Бұл процедураны шақыру кезінде кіріктірілген Турбо Паскальдың self тұрақтысы қолданылады. Ол экземпляр объектісіне анық емес нұсқағыш параметрі болып табылады. Инициялизация кезінде массивтердің аты мен типі анықталынады. Массивтің құрылуы кезінде массив өлшемі шектен тыс үлкен болмауын және типтің дұрыс көрсетілуін қадағалайтын тексерулер жүргізіледі. Содан кейін массивке жадтан орын бөледі және олар нөлге айналады. Массивтермен жұмыс аяқталғаннан кейін close әдісі шақырылады.

        Полиморфизм – туынды объектілердің бастапқы объектілер әдістерін басқа есептерді шешуге қолданылуы. Обект қасиеттеріне байланысты әдістер әртүрл іс- әрекеттер жасайды, осы кезде полиморфизм көрінеді. Полиморфизм виртуальды  әдістермен және соңғы байланыс механизмімен байланысты. Дәл осы ситуацияда қандай операция орындалатындығы жөніндегі шешім программа орындалу кезінде қабылданады.

Полиморфизм ("көпкөр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н Virtual  сөзi жазылуы керек. Ал оларды қосу үшiн конструкторге назар аударуымыз керекКонструктор-бұл процедураның бiр түрi болып табылады және объектiнi сипаттау барысында Constructor сөзi процедура алдына жазылады. Бұл түсiнiктердi жақсы игеру үшiн мысал қарастырылған.

Қарастырылатын мысалда объектiлер ретiнде геометриялық фигуралар алынған. Кадарларды ауыстыра отырып "көрiнiстi жасыру-позициясын өзгерту-жаңа орында пайда болу" принципы бойынша фигураларды (хаосты) ұшыратын Fly  әдiсi объектiлермен жұмыс iстейдi. Мұнда көрсету (Show) және жасыру(Hide) фигураның әр түрiне арнайы арналған болып табылады. Бұлар виртуальды әдiстерге "кандидат" болады. Бұл мысалда, негiзгi ой- өлшемiн, түсiн және пропорциясына дейiн өзгерiп отыратын "ұшатын" фигуралар жиынын құру болып табылады.        

Абстрактылы ата-аналық түр

 

 

 

Бастапқыда 3 түр алынған: Point("нүкте"), Circle( дөңгелек), Ring("Сақина"), бiрақ программа көрсетiлген кескiн бойынша  құрылған.

Point объектiсi қолданылмағандықтан, оның конструкторы жоқ. Circle түрiнiң конструкторы туылу блогiне қосалқы  жазылған. Басқа жағдай үшiн Ring түрiнде (қосалқы емес) конструктор  қарастырылған. Ол "бос " болып табылады. Виртуальды әдiстерi бар әр объектiге оның әдiстерiн  қолданбай тұрып, алдын ала оның конструкторiне   назар аударылуы керек. Конструкторла виртуалды бола алмайды.

TestRing конструкторiне фигура туылмас бұрын назар аударылған. Өйткенi Ring.Init блогi Circle.Init-ке назар аударады, ал соңында Show блогы орындалып фигура экранға шығады. Бiрақ  Show әдiсi виртуальды және алдын ала қосылуы керек. Circle түрiндегi виртуальды әдiстертердiң қосылуы Krug.Init конструкторының бiрiншi әректi болып табылады. Ал Show блогына ол жұмыстың соңында назар аудылады. Ring өзiнiң Hide виртуальды әдiсi жоқ болғандықтан, ататегiнiң әдiсiн қолданған. Виртуальды әдiстер мұра қалдырады.

Виртуальды емес әдiстер қарапайым блоктар сияқты программаны компиляциялаған кезде қосылады (ерте байланысу). Виртуальды әдiстер үшiн әр түрге компилятор  олардың адрестерi  жазылған ВӘК (виртуальды әдiстер кестесi) кестiн жадыда құрады. ВӘК кестесi орындалу кезiнде қолданылады ("қожайын"-әдiспен кеш байланысу). Конструкторге назар аударған кезде, ол объектiдегi арнайы алаңға осы түрдегi объектiнiң BӘК кетесiне нұсқау жазылады. Fly әдiсi Show және Hide әдiстерiмен ВӘК кестесi арқылы байланысады.

Обектiнi динамикалық жадыда орналастыруға болады. Бұл оларды құруға ыңғайлы жағдай туғызады. Мысалы динамикалық обектiлердi тудыра отырып оларды виртуальды әдiстерiмен де байланысуға болады. Ол үшiн New процедурасының екiншi параметiрiне конструкторге назар аудару жазылады. TestCircle түрiне ^Circle нұсқауын қолданамыз және "ұшатын" дөңгелектiң туылу келесi түрде жазылады:

New(Circle,Init(151,182,30,5));  Cicrle^.Fly(100);

New процедурасының екi параметiрболған жағдайда керектi алаңдарға жадыдан орын алуды конструктор бiрiншi болып iстейдi. Dispose процедурасы жадыдағы объектiлердi жадыдан босатады. Ол үшiн жадыдағы объектiлердi босататын арнайы процедура блогiн iске қосылады. Объектiдегi мұндай процедура -деструктор деп аталынады. Десторукторды консторуктор сияқты бағдарламашы өзi жазады. Деструктор виртуальды болып келедi , ал конструктор бола алмайды.                           

Point объектiсiнде үш X,Y, Visable берiлгендер алаңы бар, GetX,GetY функциялары X пен Y-тiң мәндерiн қайтарады. Show процедурасы берiлген координатада  нүктенi экранда көрсетедi, ал Hide  нѕктенi "сөндiредi". IsVisable  функциясы нүктенiң экранда көрiп тұрғанын немесе сөнiп тұрғанын анықтайды. Х нүктесiн (0,0) координатасында көрсету программасының бөл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не байланысты   шақырылады. 

        

1.3   Әдістер

                Әдіс - объектінің қасиеттерін өзгертуге арналған процедуралар мен функциялар. Операция – бұл әдістің сипаттамасы, ал әдіс операцияны жүзеге асыру болып табылады. Логикалық жағынан қарағанда әдістер бірдей операцияларды орындайды, бірақ әртүрлі кодтың фрагменттерімен жүзеге асырылады. Әрбір операцияда анықталмаған аргумент болады, ол сол операция қолданатын объект, бірақ басқа да аргументтер болуы мүмкін, ол оны параметрлейтін параметрлер. Әдіс тек класс пен объектіге қатысты.

         Объектінің кейбір атрибуттарының мағынасы тек сол объектінің оперциясына ғана қатысты бола алады. Ондай атрибуттар жабық атрибуттар деп аталады. Объектілерде жабық операцияларды да анықтауға болады.

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

Жалпыламалау мыналарды анықтауға мүмкіндік береді:

Класс “бір өлшемді фигуралар”, “түзу” және ”доға ” кластары “бір өлшемді фигуралар” кластарының ішкі класы болып есептеледіб ал бір өлшемді фигуралар класы түзу және доға класының суперкласы болып табылады. Егер осындай келісушілікте қарайтын болсақ, суперклассоперациясы мен атрибуттары сол ішкі класқа сәйкес болады ( сол атрибуттар мен операциялар ішкі кластарға мұрагер бола алады), онда доға және түзу кластарының ( ішкі кластар) атрибуттарымен операциялары бір өлшемді фигуралар класына ( суперкласс) көшіріле алады. Әр супер кластың атрибуттары мен оперциялары ішкі кластың барлық сатысындағы мұрагері болып табылады және бұл кластарды сипаттауды жеңілдетеді және қысқардады.

         Кейде белгілі бір суперкластағы ішкі кластың операциясын қайта анықтау қажет болады. Ол үшін мұрагерлік нәтижесінде суперкластан алынған операция қолданылады. Егер жаңа операция мұрагерлік операциясын кеңейтетін болса, онда қайта анықтау қолданыдады. Төмендегі суретте үш өлшемді нукте класының және екі өлшемді нүкте класының атрибуттары мен операцияларының мұрагерлеу схемасы  көрсетілген. Екі өлшемді нүктенің координаталары берілген. Ол оның атрибуттары, ал екі өлшемді нүкте объектілерінің орындайтын операциясы Х, У координаталарын және нүктенің арақашықтығын анықтау. Үш өлшемді нүкте класы ( ішкі класс) өзінің екі өлшемді нүкте суперкласының Х,У координатасын мұрагерлікке алады және өзіне тағы бір атрибут- Z координасын қосып алады. Х,У координатасын анықтау операциясы да мұрагерлікке алынады. Одан басқа Z координатасын анықтау операциясы қосылады және келесі үш өлшемді нүкте арасындағы арақашықтықты анықтау операциясын қайта орындайәды. Үш өлшемді нүкте арақашықтығын есептеу формуласының  екі өлшемді нұсқадан айырмашылығы болады.

                               Түбірлік объект

                                                             Түбірлік объект

          Екі өлшемді нүкте

Х координатасы 

У координатасы

Х координатасын анықтау

У координатасын анықтау

Келесі нүктеге дейінгі арақашықты анықтау

 

Атрибуттар

 

Операциялар

                                       

                                         ¯                                     

                                 Туынды объект                                                                                

     Үш өлшемді нүкте                                

Х координатасы

У координатасы

Z координатасы

Х координатасын анықтау

У координатасын  анықтау

Z координатасын анықтау

Келесі нүктеге дейінгі арақашықтықты анықтау


 

 

 

 

 

 

Turbo Pascal программалау тiлiнде әдiстердiң статикалық және виртуальды деген екi түрi бар. Статикалық әдiстер онша күрделi емес, жадыдан аз орын алады және тез орындалады, бiрақ ОБП барлық артықшылығын толығымен көрсете алмайды. Жоғарыдағы программада пайдаланылған әдiстер - статикалық әдiстер болып табылады, яғни, егер әдiстiң түрi , онда ол статикалық болып табылады.

 

1.4 Виртуалды әдістер.

Виртуалды әдістермен оларды шақыратын процедуралар арасындағы байланыс программаны орындау барысында орнатылады. Бұл соңғы байланыс деп аталады. Оның алғашқы байланыстан айырмашылығы ол компеляция кезінде орнатылады. Виртуалды объектіні сипаттауда әдістің атынан кейін резервтегі virtual сөзі қолданылады. Туынды мен түбірлік объектінің виртуалды әдістерінің аттары бір- біріне сәйкес келуі керек. Виртуалды әдістері бар объектінің экземплярын инициализациялау арнайы әдіс – конструктордың көмегімен орындалады. Конструктор объект өрісіне алғашқы белгілерді иелендіреді және объектіні инициялизациялау кезіндегі керекті іс-әрекеттерді  орындайды. Әдіс- конструктор атында procedure сөзі  constructor сөзімен алмасады. Конструктор іс-әрекетіне қарама- қарсы іс- әрекет тағы да бір арнайы әдіс деструкторды орындайды. Ол destructor сөзімен сипатталады.

Конструктор виртуалды әдістер таблицасына нұсқағыш жасайды және ол таблицаны іздеу үшін пайдаланылады. Таблицаға виртуалды әдістер объектісінің балық адрестері кіреді. Виртуалды әдістерді шақыру кезінде оның аты бойынша адресі анықталады. Одан кейін сол адрес бойынша басқару беріледі. Әр объект типінің өзіне тән виртуалды әдістерінің таблицасы болады. Бұл операцияға әр түрлі процедураларды шақыру мүмкіндігін береді. Егер бір типті объектінің бірнеше экземпляры болса, онда конструктор әр экземпляр үшін шақырылуы керек. Ондай болмаған жағдайда программа жұмысы бірден тоқтатылады. Конструтор мен деструктор бос болуы мүмкін, яғни, оперциялар болмайды. Бұл жағдайда барлық керекті код  конструктор және деструктор сөздерін трансляциялау кезінде құрылады.

Статикалық әдiс  - дегеніміз статикалық айнымалыларда программаның немесе процедураның іске қосылып жұмыс істегеннен бастап жадыдан адресі анықталып, программа немесе процедура жұмысын аяқтағанша айнымалы тек сол адресте сақталуды айтамыз. Мысалы: var  бөліміне жазылған айнымалыларды статикалық айнымалыларға жатқызамыз.

1.5 Кластар құру

   Айналаға қарап, өмірдің көптеген заттарын байқауға болады. Мысалы,  ит, үстел, теледидар, автомобиль. Мұнда кейбір геометриялық фигураларды да жатқызуға болады. Мысалы, шеңбер, тіктөртбұрыш және т.б. Қоршаған ортаның объектілерін екі типке бөлуге болады: олардың бәрінің қалпы және мінез – құлқы болады. Мысалы, автомобильдің қалпы бар (түсі, жүру жылдамдығы, типі және дөңгелек көлемі) және мінез – құлқы (тежеуі, жылдамдатуы).  Шеңбердің өзіне тән қасиеттері бар. Мысалы, орталық координаттары, радиусы, түсі. Және де өзіне тән мінез – құлқы (салу, орын алмастыру, түсін өзгерту).

1.1. сурет. Жалпы белгіленген объектінің программалық бейнесі.

программалық объектілер, қоршаған орта объектілеріне тән өзіндік қасиеттері де бар. программалық объектілер өзінің қалпын өзінің қасиетінде сақтайды. Қасиеті – идентификаторы бар, белгілі бір мән. программалық объектілердің мінез – құлқын әдісарқылы іске асырады. Әдіс – бұл объектімен байланысқан астыртын программа (процедура). Сонымен, объект дегеніміз – бұл құрамында әдіс пен қасиеті бар программалық бірлік (1.1 сурет).

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

Жоғарыда айтылып өткен мәселе жайында мысалы келтірейік:

Мысалы ретінде кез келген программа құру қажет дейік, ол программа шеңберді салып оны кез келген түске бояуы тиіс делік. Бұл үшін оған радиус, орталық координат және де ол шеңбер боялатын түс қажет. Егер стандартты түрде даярлайтын болсақ, онда бізге келесі мәндер керек болады:

R – шеңбер радиусы;

X, Y – шеңбер орталығының координаттары;

Color – шеңбер түсі.

Бұл шеңберді салу үшін бізге процедура қажет, демек оны Draw деп атайық. Ол R, X, Y, Color  координаталы шеңберді бейнелеп тұрады.

Стандартты даярлаудың кемшілігі бұл параметрлердің бір – бірімен байланыссыз болуы. Мысалы, бір емес үш шеңбер салу керек (мысалы аққала).  Стандартты программалау жағдайында бізге екі амалдың бірін таңдау қажет болады. Біріншісі - шеңбер үшін R, X, Y, Color, онан соң осы шеңбердің әрқайсысы үшін Draw командасын  шақыру қажет.  Бұл тәсілдің кемшілігі егер көп шеңбер салу керек болса, онда бізге көптеген ауыспалы мәндер қажет болады. Бұл программаның үлкен размерділі болуына әкеліп соғады. Екінші тәсіл - әрбір шеңбер үшін R, X, У, Color, бірақ екінші шеңбер салу барысында, алғашқы шеңбердің  мәні жоғала береді. Бұл тәсілдің кемшілігі  соңғы шеңберден басқа барлық шеңберлердің мәнін жоғалтып аламыз.

Егер бұл суретте тек аққала  салумен шектеле қойсақ, онда кемшілігі көрінбей қалады. Көлемі жағынан үлкен программа құратын болсақ, онда бізге программаға елеулі өзгерістер енгізу қажет болады. Аққаламен қарастырылған мысалда бірнеше өзгеріс болады.

Аққаланың экран бетінде жүруі үшін Move процедурасы қолданылады. Аққаланы баратын жеріне жеткізу үшін программистке аққаланың баратын жерінің координаттары қажет емес (анығырақ айтсақ, әрбір баратын нүктесінің координаталарын). Сондықтан Move процедурасының параметрлері барлық мәні емес, тек жанама мәндерін ғана білуі тиіс. Демек, аққала өзінің бастапқы нүктесінен бастап жүруі тиіс.

Аққаланың барлық түстерін өзгерту үшін ChangeColor процедурасы қолданылады. Ол процедура орындалу үшін  екі параметр қажет. Өзгертілетін объектінің атымен өзгертілетін түсі. Егер екінші тәсілді пайдаланатын болсақ (ауыспалы мәні аз), онда біздің процедура аса қиынға түседі.  Мұның себебі, аққала құрылатын шеңберлердің (соңғысынан басқа) мәндерінің болмауы. Себебі, Draw процедурасы шақырылған сайын ол мәндерді білуі тиіс.  Демек, аққала салынған жағдайда ауыспалы R, X, Y, Color мәні тек соңғы объект үшін ғана берілген болады. Ал, қалғандарының мәні жоғалған болып табылады. Сондықтан шеңберлердің бәрінің орнын ауыстыру үшін, екінші тәсіл қолайсыз болып табылады.

Бірінші тәсілді қолдану барысында, өте үлкен тәсілді, барлық өзгертулерді енгізуге болады.  Бірақ жаңадан енгізілген мәндер үшін бір процедураны үш  реттен шақыруға тура келеді. Егер тағы да бірнеше аққала салатын болсақ, онда біздің программамыздың оқылуы өте баяу болғандығынан басқа, стандартты жолмен жазу өте қиын, әрі оқылмай қалу мүмкінділігі басым болады. Енді аталған мәселе объектті – ориентирлік программалау  жағынан қарастырайық. Мұнда бірнеше ауыспалылардың орнына, бірнеше объекті пайда болады.  Басында барлық шеңберлерді бірдей элементтер, бірақ әртүрлі құрылымнан тұрады деп есептейміз. Олар бір – бірінен тек параметрлерімен ерекшеленеді деп алайық. Draw, Move и ChangeColor процедураларының орындалуы бәрі үшін жалпы бірдей болады. Демек, әрбір шеңбер өзге шеңберге ұқсас тек өзінің параметрлерімен (радиусымен, орталық координатасымен, түсімен) ерекшеленетін, бірақ бірдей іс – қимыл әрекетін жасайтын деп есептеледі.  Ары қарай қарастырылып отырған мәселе ОБП терминдерін қолдану арқылы жазылады.

Әрбір элемент өз бетінше объект ретінде қарастырылып ортақ бір процедураны орындайды. Ол  әрбір элемент (экземпляр)белгілі бір классқа жатады. Объектінің параметрі (радиусы, түсі және т.б.) оның қасиеті деп аталады. Ал оның жасайтын іс - әрекеті (түсін өзгертуі, орын алмастыруы) әдіс деп аталады. Әдіс әрбір сұранысқа жауап беретін болса, онда оның класы анықталады, объектінің экземплярын анықтайды. Және керісінше.

Енді аталған мәселелерді мысалда қолданып көрейік. Барлық шеңберлер Round класына жатады деп алайық (5.2. сурет).

Round класының қасиеттері болып, төмендегілер есептеледі:

■   R – шеңбер радиусы;

■   X, Y – шеңбердің орталық координатасы;

■   Color – шеңбер түсі. Round класының әдістері:

Draw – берілген параметрлер бойынша шеңбер салады;

Move – таңдалған бағытта шеңберлердің бәрін біркелкі қозғалтады;

ChangeColor – шеңбердің түсін өзгертеді.

1.2 сурет. Round класындағы бейнелер.

Аққаланы салу үшін, үш шеңбер қажет. Оның үстіңгісін Head, ортаңғысын Body,  ал астынғысын Foot  деп атауға болады. Демек, олардың барлығы бірдей қасиетке ие болады (R, X, Y, Color) және бірдей әдістерді шақырады (Draw, Move,ChangeColor).

ООП тәсілінде, қарапайым тәсілде қанша сақтау құрылғысы қолданылса, сонша сақтау құрылғысы қолданылады. Бірақ мұнда кішкене болса да есептеуге ыңғайлы болады. Тәуелсіз блоктардан құралып, құру және қазіргі заман талабына сай болады.  Программаны қолдану тәсілінің оңай болу себебі, ол әртүрлі блоктан құралып, басқа программаларда қолдануға мүмкіншілік береді. Бірнеше жаңа блоктарға қосуға мүмкіншілік береді.

Мұраға алу. Аталған мысалға қайта оралайық. Аққалаға көз салу керек делік, уақыт өткен сайын, ол көзін ашып жауып тұруы тиіс. Round объектілері секілді бұларда сол типке жатуы тиіс. Аққаланың көздері аққаламен бірге экран бетімен жылжып отыруы тиіс және түсін өзгерту мүмкіншілігін сақтауы керек.  Көздер үшін тағы бір класс құруға болады. Ол  Eyes (көз) деп аталады. Онда Round  әдісінің қасиеттері мен амалдары толық сақталуы және Blink (ашу - жұму) әдісі қосылуы тиіс.

Ол үшін ООП – да мұраға алу механизмі қарастырылған. Бұл механизм иерархиялық құрылымнан тұрады. АлдыменRound класы құрылады, сонан соң Eyes класы құрылады да Round класының қасиетіне ие болады. Eyes класына Blink әдісі  қоладанылады (1.3 сурет).

Round  класы ата – анасы, ал Eyes класы баласы, яғни мұраға алушы болып табылады.

Яғни, мұраға алу дегеніміз – мұрагерлік қасиетке ие болатын класстың ата – анасының қасиетіне және әдісіне ие болуы.

 

1.3 сурет. Eyes класының Round класының қасиеттері мен әдістеріне мұрасына ие болуы.

Демек, ООП- ны қолдану программаның көлемін қысқартып, оның тез істеуін қамтамасыз етеді.

Инкапсуляция — кластын берілгендері мен әдістерін біріктіріп, біртұтас түрінде қарастыру мүмкіндігі және оны басқа кластардың пайдалана алмауы. Мұндай класпен жүмыс істеу операторлары Visual Basic'тe Private кілттік сөзі арқылы жазылған процедураға енгізіледі (инкапсуляция — қорап ішінде).

Полиморфизм. Полиморфизм термині гректің екі сөзінен  шыққан: poly (көп) и morphos (форма). Демек полиморфизм  дегеніміз «көп форма» деген мағынаны білдіреді.  Бұл типтің ерекшелігі бұл тип кез келген  әртүрлі типтегі мәндерге ие  бола алады. Полиморфты параметрлері бар процедуралар (функциялар) полиморфты деп аталады. Ары қарай полиморфты ООП да қолданылуы қарастырылады.

Шеңберлермен мысалдарға қайта оралайық,  мысалы экранда тек шеңбер емес, басқа да геометриялық денелерді салу керек делік. Олармен де жоғарыда келтірілген параметрлермен қимылдар жасауы керек делік. Оны салу үшін біз оның биіктігі мен енін және ұзындығын білуіміз керек.

Аталған параметрлерді енгізу үшін біз класс құруымыз керек. Ол классты Rect (rectangle – тіктөртбұрыш), ол Round класының мұрагері болуы керек.

Round  класын универсалды ету үшін, оның қасиеттерін өзгерту керек.оның радиусымен орталық координатасына орнына төмендегідей мәндерді енгізу керек:

Тор – фигураның жоғарғы жағының координатасы;

Left - фигураның сол жағының координатасы;

Height - фигураның биіктігінің координатасы;

Width - фигураның енінің координатасы.

Осы қасиеттер бойынша  фигураға жетпей координаттарды оңай  анықтауға болады. Мысалы, тіктөртбұрышты (квадратты) бейнелеу үшін сол жақ координатасына енін қосу керек, ал төбесі жағынан биіктігін алып тастау керек. Делік,

Тор =80, Left =20, Height =40, Width =60.

Онда оң  жағы  мына мәнге ие болады: Left + Width =80,

Ал төменгісі мынаған: Тор - Height =40.

Демек, аталған тіктөртбұрыш келесідей координаттарға ие болады (оң координата – горизонталь ось үшін, екінші мәні – вертикаль ось үшін):  А (20,80),  В (80,80), аталған тіктөртбұрыш 13.4 суретте қарастырылған.

Round тегі негізінен жоғарыда аталған қасиеттерге сүйене отырып, Rect  ұрпағын құруға болады. Яғни бұл ұрпақты тіктөртбұрыш салу барысында қолдануға болады. Демек, бұл сурет бейнелеу шеңберлерді бейнелеуден әлдеқайда бөлектеніп тұруы тиіс. Сонымен, Rect Draw әдісін өзіне тән етуі тиіс, ата – анасынан бөлектенуі тиіс. Өзге жағдайларда Rect әдісіне жататын Draw программасын шақыртқан уақытта экранда тіктөртбұрыш емес, шеңбер бейнеленіп тұрады.  Мұндай оқиға болмау үшін, Rect әдісіне Draw әдісінің қасиеттерін сипаттау қажет. Сонда Round әдісіне жататын объектілер үшін Draw  мәні шеңбер болады да, Rect әдісі үшін, Draw мәні тіктөртбұрышты бейнелейді. Draw атымен аталған әдістер әртүрлі қимылдар үшін жауап береді. Ол қай кластағы суретті бейнелеуге байланысты болады. Аталған жағдай ООП – да полиформизм деп аталады. Аталған полиформизмнің ООП – да графикалық интерпретациясы  13.5 суретте келтірілген.

1.4 сурет. Берілген биіктік, ені мен ұзындығына байланысты тіктөрт бұрыш салу әдісі.

 

1.5 сурет. Round және Rect класс объектілері үшін Draw  әдісін шақыртқан кездегі полиформизм.

 

Проектте өзіндік класс құру үшін, менюде Project  - Add Class Module (Класс модульін қосу) командасын таңдау қажет. Нәтижесінде диалогтық терезе бейнеленеді. Бұл терезеде Class Module пунктін  таңдауға болады. Құрылып жатқан класс үшін  берілгендер мәнін осы терезеде енгізуге болады. Бірақ, Visual Basic класы арқылы VB Class Builder (VB класс құрғыш) пунктін таңдау арқылы салған жөн болады.

 

1.6 сурет. Класс модулін құру диалогтық терезесі.

1.7 сурет. Класс құрғыш  терезесі.

Өзіндік класстар құру үшін Visual Basic- те, Class Builder (VB класс құрғыш) әдейі құру амалы қарастырылған. жоғарыда аталған Round  класын осы амал арқылы  құру әдісін қарастырайық.

VB Class Builder  пунктін таңдағаннан кейін, класс құрғыш  терезесі пайда болады. Бұл терезенің сол жақ шетінде аталған проектінің өзінің проектілері бейнеленеді. Егер класстар құрылмаған болса, онда Project 1 пункті ғана бейнеленеді.

Жаңа класстар құру. Жаңа классты құру үшін мына командалар қолданылады (13.8. сурет): File \ New | Class (құралдар панелінде орналасқан немесе Add New Class пернесі). Мұнда Name қатарында класстың аталуын көрсету керек,  аталған жағдайда  ол - Round. Егер де ұрпақ класын құру керек болса, онда  Based On таңдау қажет. Бар тізімдердің арасыннан қай классқа жататындығын нұсқау қажет.  Аталған жағдайда бұл  тізім бос болады (қолданылбалы тізім әлі құрылмаған).

1.8 сурет. Жаңа классты құруға арналған диалогтық терезе.

Жаңа класстың  құрылымын құру үшін, басқаша айтқанда оның қасиеттерін сипаттау үшін, терезенің сол жақ бетінен классқа атау таңдау қажет. Мәзір қатарынан File \ New, оның ішінде: Property (қасиеті), Method (әдісі), Event (құбылыс).  Бұдан бөлек құралдар панелінде  ұқсас әрекеттер жасайтын пернелерді пайдалануға болады.

Add New Property (Жаңа қасиет қосу).

 Add New Method (Жаңа әдіс қосу).

Add New Event (Жаңа құбылыс қосу).

Класстың қасиетін қосуЖаңа классқа жаңа қасиет қосудан бұрын ол қасиетке жаңа ат табу қажетRound класы үшін, келесідей қасиеттер қосу қажет:

(Integer типі); X, Y (Integer типі); Color (Long типі).

Түс беру үшінLong типті толық мағыналар қолданылады. Сол үшін Color қасиетін көрсеткенде осы тип қолданылады.

Класс әдістерін қосуКлассқа жаңа методтар қосу Method Builder (Әдіс құрғыш) (13.9 сурет) терезесінде іске асады.Name мәзірінде әдістің атауы беріледіArguments  қатарында, шақырған жағдайда орындалатын  аргументтер тізімі беріледі. Аргументтермен жұмыс терезенің оң жағындағы Method Builder  мәзіріндегі пернелер арқылы орындалады.

Add (қосу) – жаңа аргумент қосады.  Delete (өшіру) – белгіленген аргументті өшіреді.

 Move Up (жоғарыға орын ауыстыру) – тізім бойынша бір қатар жоғары көтереді.

 Move Down (төменге орын ауытыру) - тізім бойынша бір қатар төмен түсіреді.

Add пернесін басқан кездеAdd Argument (аргумент қосу) диалогтық терезесі пайда болады. Бұл мәзірде аргументтің аталуын (Name қатары), және де бірнеше қосымша параметрін көрсету қажет. Және де қосымша ашылатын Data Type тізімінің ішінен аргументтің типін нұсқау қажет (1.10 сурет).

1.9 сурет. Round  класына Move әдісін қосу.

Классқа  осы әдіс арқылы Draw, Move және ChangeColor әдістерін қосу қажет. Осының алғашқысы үшін аргументтер тізімі  көрсетілмейді. Өз алдына Move екі аргументке ие, олар: XStep As Integer және XStep As Integer. Бұл аргументтерMove әдісін шақыру барысында іске асатын, шеңбердің вертикаль және горизонталь  орын ауыстыру мәндерін анықтайды. Басқаша айтқанда, бұл аргумент шеңбердің тұрған орнынан Move  әдісін шақырғаннан кейін, қай орынға ауысатын көрсетеді.

ChangeColor әдісі  NewColor As Integer атты жалғыз аргументке ие, бұл аргумент салынып жатқан шеңберге қандай түс беру болатындылығын анықтайды.

Классты сақтау. Керек компоненттердің бәрін енгізіп болғаннан кейін, проектіге енгізілген өзгертулерді сақтау үшінFile\UpdateProject (проектті жаңарту) командасын орындау қажет.  Егер мұны орындамаса, онда жабу барысында Class Builder ескерту терезесі ашылады. Бұл терезеде өзгертілген немесе жаңадан құрылған классты сақтау ұсынылады. Жоғарыдағының бәрін орындау  барысында сізде жаңа Round класы қосылады. Бұл класстың кеңейтілуі CLS, бұл файлдың орналасу орны Round.cls файлының ішінде болады.

 

1.10 сурет. Move әдісіне XStep  аргументін қосу

 

Кодтар класын өзгерту. Қолданбалы класс құру барысында қорытынды этапы болып, автоматты түрде құрылған  кодты өзгерту болып табылады. Жоғарыдағының бәрін орындау  барысында сізде жаңа Round класы жаңа автоматты түрде енгізілген кодымен бірге беріледі. Бітіру барысында классты құру классты құрғыш мәзірінде  өзіне тән  кодтар терезесі ашық тұрады.  Мұнда бірнеше енгізулер енгізу қажет. Round  әдісінде көрсетілген командалар тізімін нұсқау қажет. Бұл өзгертулер тізімі 5.1. листингісінде көрсетілген.

Шеңберді көрсету барысында Circle әдісі қоладынлады. Оның синтаксисі " VB6 сурет салу" атты 12 тарауда толық  қарастырылады.

Мұнда Prop­erty Let  и Property   Get процедураларына аса назар аудару қажет. Бұл процедуралар автоматты түрде енгізіп қойылады. Бұл процедуралар Let қасиеттерін орнату барысында және қарапайым Get  мәнін  шақыру барысында орнатылады.

Аталған тарауда қозғалған сұрақтарға ActiveX басқару элементтері тақырыбына 17 тарауда көрсетілген.

' сақтау үшін локальды ауыспалылар

'  Қасиет мәндері

Private mvarR As  Integer

Private ravarX As  Integer

Private xnvarY As  Integer

Private mvarColor As  Long

Public  Sub ChangeColor(NewColor As Long)

Color  = NewColor

Draw

End Sub

Public Sub Move(XStep As Integer, _

YStep As Integer)

Forml.Circle (X, Y), R, Forml.BackColor

X = X + XStep

Y = Y + YStep

Draw

End Sub

Public Sub Draw()

Forml.Circle (X, Y), R, Color

End Sub

Public Property Let Color(ByVal vData _

As Long)

'Syntax: X.Color = 5

mvarColor = vData

End Property

Public Property Get Color() As Long

'Syntax: Debug.Print X.Color

Color = mvarColor

End Property

Public Property Let Y(ByVal vData _

As Integer) 'Syntax: X.Y = 5

mvarY = vData

End Property

Public Property Get Y() As Integer

'Syntax: Debug.Print X.Y

Y = mvarY

End Property

Public Property Let X(ByVal vData_

As Integer)

'Syntax: X.X =5

mvarX = vData

End Property

Public Property Get X() As Integer

'Syntax: Debug.Print X.X

X = mvarX

End Property

Public Property Let R(ByVal vData _

As Integer)

'Syntax: X.R = 5

mvarR = vData

End Property

Public Property Get R() As Integer

'Syntax: Debug.Print X.R

R = mvarR

End Property

 

Мұраға алу. Алдыңғы тарауда Round және Eyes кластарының ұрпақтану принципетрі көрсетілген болатын. Visual Basic Класс Құрғышында өте қарапайым тәсілмен өз планыңызды іске асыруға мүмкіншілік бар. Ол үшін жоғарыда көрсетілгендейалғашқыда Round класын құру қажет. Онан соң экранның сол жақ бетінде Project 1 Class Builder белгілеу қажет. File | New \ Class немесе Add New Class пернесін қолдану керек. Жоғарыда көрсетілгендей Class   Module   Builder (13.8. суретEyesкласының  атын нұсқау керек. Based On тізімінде Round класын белгілеу қажет. Бұл 1.11 суретте көрсетілген.

 

1.11 сурет. Eyes класының Round қасиеттерімен әдістерін мұраға алуы

бұл жағдайда Eyes класының әдістері қайта анықталған болады. Немесе оларға қайта мән беру керек болады (Round – тың басқа әдіс кластарымен салыстырғанда, процедура терезесінде бұл мәндер “бос” болады).

Объектілерді құру. Кез келген класстың жаңа экземпляры жаңалықтар операторы арқылы құрылады. Мысалы, Dim, қызметтік сөз тіркесі арқылы As New:

Dim экземпляр As New класс

Бұл жағдайда класс параметрі ретінде, бұл жағдайда қолданылатын Visual Basic классын  нұсқауға болады. Мысалы, класс формасы (Forml) немесе класс проектісі (Project 1). Басқаша жағынан мүмкін емес болып, басқа класс жаңа экземплярын құру, бөлектеп айтқанда, бар немесе басқаша да басқару элементтерін құру болып табылады. Мысалы,CommandButton (команда пернесі). Басқаша айтқанда программалық жағынан жаңа басқару элементін  қосу мүмкін емес болып табылады (мысалы, перне және т.б.).

Басқаша жағынан қарасақ, класс параметрі болып, құрушының көмегімен құрылған кез келген бір класс болуы мүмкін. мысалы,Round:

Dim Head As  New Round

13.2. листингісінде Round класы, объект кластарын қолдану арқылы аққала құру программалық кодтары келтірілген. 13.12. суретте  берілген кодтың жұмыс істеуі келтірілген.

1.12 сурет. Round объект класы арқылы аққала салу.

1.2 листингісі Round объект кластарын қолдану арқылы аққала құру программалық кодтары.

Private  Sub Form_Load()

Dim Head As  New Round

Dim Body As  New Round

Dim Foot  As  New Round

Қасиеттерін орнату

Head.X  =   100:   Head.Y  =   50

Head.R  =   20

Head.Color = vbBlue

Body.X = 100: Body.Y = 100

Body.R = 30

Body.Color = vbBlue

Foot.X = 100: Foot.Y = 170

Foot.R = 40

Foot.Color = vbBlue

1 Аққаланы салу

Head.Draw

Body.Draw

Foot.Draw

End Sub

 

Vis­ual Basic құрғыштары арқылы класстарды құру принциптері көрсетілді.

Объект типі. Жоғарыда көрсетілгендей, кез келген объект Visual Basic немесе қолданбалы класс болсын, әйтеуір белгілі бір классқа жатады. Кейде программаның жұмыс істей барысында классты анықтау қажеттілігі туады. Бұл қажеттілік орын алмастыру процесінде  өзекті мәселелердің біріне айналып келеді.

Қай классқа жататындығын анықтау үшін, келісімді құрушы оператордың If ...End If: көмегі керек болады:

If  TypeOf   объект Is  класс Then

оператор

End If

Егер аталған объект класстың экземпляры болып табылса, онда операторлар орындалған болады.

1.6  Жиындар құру

Жиын - Visual Basic  те өз бетімен объектілерді сақтау құрылымын білдіреді (немесе объектіге бару жолын). Жиынмен жұмыс массивтермен жұмыс секілді бірдей болып табылады. Бірақ жиынның жағымды жақтарының бірі болып, оларға алдын ала диапазонды нұсқау қажет емес. Мұнда объектіні қосу немесе өшіру барысында автоматты түрде диапазон беріле береді.

Visual Basic тілінде қолданушы стандартты панельді пайдалануына мүмкіншілігі бар. Мысалы, Forms (дайын форма) немесеControls (формадағы басқару элементтері). Collection класы негізінде өзіне керек элементті өзі құрып ала алады.

Мысалы:

Public  colPictures As New Collection

Аталған жағдайда Collection класының жаңа түрі құрылады. Оның аты colPictures болады.

Жиынтыққа жаңа элементті қосу. Жиынтыққа жаңа элементті қосу Add: әдісінің көмегімен іске асады.

жиынтық.Add  Item,    [Key],    [Before],    [After]

мұнда 

жиынтық- жиынтық  атауы;

Item қосылатын элемент;                          

[Key] кілт (тәртіб ретінде, қатар мәні) арқылы жиынтық арасынан іздеуге болады;

[Before] жиынтық ішіндегі элемент (немесе оның қатар саны), алдына жаңа объект қосылатын қатар (мысалыBefore  =  2);

[After] - жиынтық ішіндегі элемент, қосылатын жаңа элемент сол қатардан кейін қосылады.

Бұл жайда  бір анығы Add әдісінен кейін Before немесе After бірақ элементі қосыла алады.

Айта кететін бір жай, Collection негізінде құрылған жиынтық элементтерінің саны өзге массивтермен немесе стандартты жиынтықтармен  (0 – ден басталатын жиынтықтарменсалыстырғанда 1 – ден басталады.

Элементті жиынтықтан өшіру. Жиынтық ішінен өшіру Remove: әдісі арқылы іске асады.

Жиынтық.Remove  Index

Index параметрі ретінде өшірілетін элементтің позициясын немесе кілтті (егер ол Add. әдісі арқылы алдын ала құрылған болса) көрсетуге болады.

Жиынтық ішінен белгілі бір элементті таңдау. Жиынтық ішінен белгілі бір элементке ауыспалының мағынасын енгізу үшін Item:әдісін қолдануға болады.

ауыспалы= жиынтық.Item(Index)

Index әдісі дәл Remove әдісі секілді қолданылады.

Item әдісі стандартты түрде қолданылатын болғандықтан, командалар тізбегінде оны көрсету міндетті емес. Демек, төмендегі екі оператор бір нәрсені орындайтын болады:

vntltem = colPictures.Item(l) немесе

vntltem = colPictures(1)

Жиынтық ішіндегі элементтер саны. жиынтық ішіндегі элементтер санын анықтау үшінCount қасиетін қолдану қажет. Бұл жағдайда ескере кететін бір жай, жиынтыққа әрбір өзгеріс енгізген сайын бұл элемент мәні өзгеріп отырады және программдық кодта да, даярлау барысында да өзгертілмейді.

Егер жолды басқа  жолмен салыстырмалы түрде тексеру қажеттігі туса, Is операторын қолдануға болады. Аталған команданың қорытындысы ретінде True мәні болады (егер жол бір объектіні көрсететін болса) немесе False (егер жол объектінің бірнеше объектіні көрсететін болса). Басқару конструкциясында Is операторында қолданылады.

Жиынтық элементтерін өңдеу. Жиынтық элементтерін өңдеу үшін, тәртіп ретінде арналған For Each...Next операторы қолданылады. Оның синтаксисі ретінде:

For Each элемент In жиынтық

оператор Next

жиынтықтың әрбір элементі цикл орындалу үшін (индекстердің өсуіне қарайблок операторы қолданылады. Аталған циклды орындау үшін шектеулер берілген, атап айтсақ, әрбір элемент, жиынтыққа жатады. Міндетті түрде Variantтипін қолдануы тиіс (мысалы, ауыспалы, элемент ретінде  процедураның басында тапсырыссыз сипатталады):

Dim Birthday

For Each Birthday In colBirthday

If  Birthday =  #l/l/2000# Then Beep Next

Жоғарыда келтірілген командалар даталар арасында #1 /1/2000#, colBirthday жиынтығында бар ма екендігін тексереді. Егер ол дата табылса, онда Веер операторы арқылы дауыс береді. Берілген дата Birthday  ауыспалысына алынады.

Мысалы 2.1. Жиынтық арқылы жұмысшылардың туылған күні, айы және олардың аты – жөнін енгізу. Берілген аты – жөні бойынша жұмысшылардың туылған күнін анықтау.

Шешуі. Жиынтық ретінде colBirthday қолданылып, қолданушының көмегімен жұмысшылардың аты – жөні мен туылған даталары енгізіледі. Мұндағы туылған датасы жиынтықтың міндетті элементтерінің бірі болып табылады. Ал, аты – жөні – кілттік мәнге ие болады және сол бойынша іздеу іске асады.

Мәндерді енгізу  қосу пернесі  арқылы іске асады. Демек тізімге енгізген сайын бір енгізілген аты – жөні қосылып отырады. Бірнеше мән енгізіліп болғаннан кейін іздеуге де болады. Бір аты – жөнді белгілеу арқылы ашылатын тізімде іздеу  пернесін басу қажет.  Нәтижесінде, оң жақ шетінде белгіленген жұмысшының туылған датасы көрсетіледі (14.1. сурет).

2.1 сурет. Иванов деген жұмысшының  туылған датасын анықтау.

2.1. листинг жұмысшылардың туылған даталарын өңдеу барысында жиынтықты қолдану

Dim colBirthday As New Collection

Dim Surname As String

Dim Birthday As String

Option Explicit

Private Sub cmdAdd_Click()

Surname = txtSurname.Text

Birthday = txtBirthday.Text

' Жиынтыққа аты – жөн қосу

cboSurname.Addltem Surname

' Туылған датасын енгізу 

' жиынтыққа кілттік мәнімен (аты – жөнімен)

colBirthday.Add Birthday, Surname

' тексттік жолдарды тазарту

txt Surname. Text = ""

txtBirthday.Text = ""

txtSurname.SetFocus

End Sub

Private Sub cmdExit_Click()

End

End Sub

Private Sub cmdSearch_Click()

' Туылған датаны іздеу 

' белгіленген аты – жөн бойынша

lblSearch. Caption = _

colBirthday(cboSurname.Text)

End Sub

IІ ТАРАУ. WWW және HTML

 

2.1 HTML

 Қазіргі заманғы Интернеттің дамуы берілгендерді алмастырудың жаңа протоколының пайда болуымен 90 – шы жылдардың басында пайда болды. Бл протокол HTTP (Huper Text Transmission Protocol – гипертекстті жіберу протоколы) деп аталады. Осы протоколмен бірге Интернет арқылы файлдарды жіберіп, HTTP серверлерінің желісін біріктіретін World Wide Web (кейде WWW немесе Web деп атайды) протоколы пайда болады.

Бұл файлдардың негізгі бөлігін Web – беттер деп аталатын, HTML (Hyper Text Markup Language – гипертексті белгілеу типі) тілінде жазылған, арнаулы файлдар құрайды. Web – беттер не Интернетте жарияланатын файлдар HTTP серверлеріне орнату арқылы жарияланады. Web – беттердің мазмұны кезкелген тақырыптарда болуы мүмкін, бірақ олардың барлығында түпкі тамыры – HTML тілі. HTML құжатының кеңейтілуі көбінесе htm немесе html болып келеді.

HTML тілі WWW қызметімен бірге пайда болып, дамып келген. Ол WWW – тің негізгі және сонымен бірге оның өте әйгілі болғандығының себебі болып табылады. HTML тілінің мәнін және қажеттілігін оның атынан түсінуге болады.

Гипертекст бұл – иллюстрация, мультимедиялық қоюлар, басқа документтерге гиперсілтемелер т.с.с. қосымша элементтерді басқаратын арнаулы кодтары бар текст. Ал белгілеу осы тексттің кодтарын қою, демек осы документтің Web – браузерлер арқылы қалай көрінетінін анықтайды. Белгілеу қарапайым немесе күрделі болуы мүмкін, бірақ бастапқы текст бәрібір құжатта өзгертілмеген түрде сақталады.

Мұндағы ең негізгі атау бұл – тіл. HTML басқа программалау тілдері сияқты компьтерлік тіл болып табылады. Оның бойында әжептеуір қатал ережелер бар және дұрыс алу үшін осы ережелер сақтау қажет.

Web – беттер компьютер экранында форматталған түрде көрінгенімен, HTML тілі құжатты форматтауға арналмаған, өйткені текст элементтерін дәл позициялау Web – беттік шектеулерге алып келеді, ал бұл Интернетте мүмкін емес.

Мысалы, Word тексттік процессорында текстті форматтаған кеде, біз бұл тексттің нақты бір принтерде және нақты форматтағы қағазда қалай көрінетіндігін дәлме – дәл нақты анықтаймыз. Ал, бұл құжат Интернетте орналастырылған кезде, бұны көру үшін қандай компьютердің қолданылатынын білу мүмкін емес. Мүмкін бұл текст қазіргі заманға сай Windows жүйесінде істейтін браузер бар компьютер экранында көрінетін шыға. Мүмкін ол графиканы көрсете алмайтын, MS DOS жүйесіндегі браузер шығар, ал одан басқа,мүмкін бұл текст мүлдем экранда көрінбейтін қолданушы үшін құжат арнаулы құрылғыға Брайль шрифті шығару мүмкін.

Осы атылған құрылғылардың барлығы үшін құжаттар құру қажет болғандықтан HTML тілі құжат форматын анықтайды. Ол құжатты функциональды белгілеуге қызмет етеді, демек текст фрагменттеріні қызметін анықтауға мүмкіндік береді.

Мысалы, текст атауы кездессін, олай болса, HTML коды осы фрагменттің атау екенін көрсетіп қояды. Мұндай кодты алған соң, браузер бұл атауды үлкен шрифтпен көрсетер, мүмкін экран текст бойынша тегістер, мүмкін құжаттың ойнап жатқан дауысын көбейтер. Дегенмен, HTML тілінде бірнеше форматтау кндалары бар. Бірақ оларды қолдану ұсынылмайды.

2. 1. 1 Тегтер

Бастапқы текстті белгілеуді орындайтын HTML тілінің кодтары – тегтер деп аталады. Тегсимволдар жиынтығы. Барлық тегтер “” (үлкен) символымен аяқталады. Кейде бұл символдар жұбын бұрыштық жақша деп те атайды. Ашу бұрыштық жақшасының (

HTML тіліндегі әрбір тегтің арнаулы қызметі бар. Тег атауы үшін кіші әріптерді де, үлкен әріптерді де қолдана беруге болады, алайда көбінесе негізгі тексттен айырмашылығы болу үшін үлкен әріптер қолданылады.

HTML – дің бір тегі құжаттың бір ғана бөлігіне әсер етеді, мысалы абзацқа. Бұл жағдайда тегтер жұбы қолданылады: ашу (). Ашу тегі бір эффектті бастайды, ал жабу тегі – оны тоқтатады. Жабу тгтері қисық сызық (/) символымен басталады.

Кейбір тегтер өзінің тұрған жеріне ғана эффект береді. Бұл жағдайда жабу тегі қолданылмайды. Егер тег ішінде HTML тілінде жоқ сөз кездессе, онда ол тег оқылмай кетеді.

Құжат браузер арқылы ашылғанда тегтер көрінбейді олар тек құжаттың қалай көрінетіндігіне әсер етеді.

Тег атрибуттары.

Көбінесе тегтер ішінде өзінің бастапқы эффектісіне әсер ететін атрибуттар болуы мүмкін. Атрибуттар бұл бір-біріне пробел арқылы бөлінген және кілттік сөзден бөлек қосымша кілттік сөздер. Кейбір атрибуттар олардың мәнін қажет етеді. Мәндер кілттік сөздер теңдік белгісімен (=) ажыратылады. Атрибут мәні тырнақшаға алынуы керек. Бірақ көбінесе оларды тастап кетуге де болады. Жабу тегтерінде ешқандай атрибут болмайды.

Программалау тілдерінде түсініктеме (программаның бөлігі емес, нұсқау үшін қолданылатын тексттік жолдар) қолдану мүмкіндігі мәлім. HTML тілінде де мүмкіндік бар. Мұнда түсініктемелер арнаулы символымен аяқталады. Түсініктеме ішінде кез келген символдар болуы мүмкін, “” (үлкен) символынан басқа, бұл түсініктеме ішінде тегтер болмайды деген сөз.

 

2.1.2  HTML тілінің құрылымы

HTML құжаты жоғарыда айтылғандай белгілеу тегтерінің (қарапайым символдар) және негізгі тексттен тұрады.демек, HTML құжаты бұл қарапайым тексттік файл оны құру үшін кез келген тексттік редакторды қолдануға болады, мысалы, Windows 9х құрамындағы Блокнот.

  1. HTML құжатының барлығының нақты белгіленген құрылымы болады. Құжат тегінен басталып, тиісті жабу тегімен аяқталу керек. Бұл тегтер жұбы браузерге алдында тұрған нағыз HTML құжаты екенін көрсетеді.

  2. HTML құжаты атау бөлімінен және ол дәл осы ретпен орналасады. Атау бөлімі және тегтерінің арасында жазылады және ол құжат туралы информацияны сақтайды. Сондай – ақ, бұл бөлімде және деген құжаттың “нағыз” атауы орналасатын тегтер болуы керек. Windows жүйесіндегі істейтін браузерлердің көпшілігі бұл тегті браузер терезесінің атауын толтыру үшін қолданылады.

  3. Құжат мәтінінің өзі құжат денесінде орналасады. Ал, құжат денесі және

Получите свидетельство о публикации сразу после загрузки работы



Получите бесплатно свидетельство о публикации сразу после добавления разработки


Серия олимпиад «Весна — лето 2024»



Комплекты учителю



Качественные видеоуроки, тесты и практикумы для вашей удобной работы

Подробнее

Вебинары для учителей



Бесплатное участие и возможность получить свидетельство об участии в вебинаре.


Подробнее