Turbo pascal қазақша реферат (турбо паскаль)

Turbo pascal қазақша реферат (турбо паскаль)

Мазмұны реферат

1. Объектілер (кіріспе).

2. ОББ-дың негізгі принциптері.

3. Қою оқу міндеттері.

4. Объектілерді құру.

5. Объектілерін пайдалану.

Пайдаланылған әдебиеттер тізімі.

1. Объектілер Turbo Pascal 7.0.
Негізінде сол немесе басқа бағдарламалау тілінің жатыр кейбір басқарушылық идеясы көрсететін елеулі әсер стилі тиісті бағдарламалар.

Тарихи бірінші бастамасы құрылымдау бағдарламаларын, оған сәйкес бағдарламашы керек шешуге, қандай рәсімдері, ол өз бағдарламасы, содан кейін таңдау ең жақсы алгоритмдер іске асыру үшін осы рәсімдерді. Пайда болуы осы идеялар болатын салдары жеткіліксіз зерттелгендігінің алгоритмдік тараптар есептеуіш процестерді стольхарактерной үшін ерте бағдарламалық әзірлемелер (қырқыншы жылдары — елуінші жылдары). Типтік үлгі процедуралық-бағдарланған тіл болып табылады Фортран – бірінші және әлі күнге дейін ең танымал программалау тілдерінің. Жүйелі пайдалану идеясын рәсімдік құрылымдау бағдарламаларын құруға әкелді бай кітапхана бағдарламалау қамтитын көптеген салыстырмалы түрде шағын рәсімдерін, оның ішінде, кірпіштерден, құруға болады «» ғимараты.

Қарай прогресс саласында есептеуіш математика назар бағдарламалау болды смещаться байланысты рәсімдерді жағына ұйымдастыру. Бұл тиімді әзірлеу күрделі бағдарламалар қажет пәрменді тәсілдері дұрыстығын бақылауды деректерді пайдалану. Контрольдолжен жүзеге асырылады сатысында компиляция кезінде айдағанда мал бағдарламаларды, олай болмаған жағдайда, тәжірибе көрсеткендей, күрт өсуде қиындықтар жасау ірі бағдарламалық жоба. Отчетливое түсіну, осы проблеманы құруға әкелді Ангола-60, ал кейінірек Паскаль, Модулы-2, Си және басқа да көптеген бағдарламалау тілдері бар көп немесе аз дамыған құрылымының типтері. Логикалық салдары бұл бағытты дамыту болды модульдік тәсіл бағдарламаларын әзірлеу сипатталатын талпыныс «жасыру» деректер мен рәсімдер модуль.

Бастап тілі Симула-67, бағдарламалау байқалды жаңа тәсіл, ол атауын алды объектілі-бағытталған бағдарламалау (бұдан әрі-ҚТҚ). Оның басқарушылық идеясы ниетімен байланыстыруға деректер обрабатывающими бұл деректер рәсімдеріне сәйкес біртұтас объект. Ерекшелігі объектілері болып табылады инкапсуляция (біріктіру) және оларды өңдеу алгоритмдерін, нәтижесінде деректер мен рәсімдерді көбінесе дербес мәнін жоғалтады. Нақты ҚҚТБ ретінде қарастыруға болады модульдік бағдарламалау ноаого деңгейін орнына, көбінесе, кездейсоқ, механикалық бірлестігінің рәсімдер мен деректер баса назар аударылады, олардың смысловую байланыс.

Қандай қуатты құралдарымен бар ҚҚТБ көрсетеді кітапхана Turbo Vision, жиынтыққа кіретін жеткізу Турбо Паскаль. Бұл жұмыста қаралатын негізгі идеялар ОББ тәсілдері мен оларды пайдалану.

Айта кету керек, артықшылықтары ОББ-дың толық білінеді ғана әзірлеу кезінде жеткілікті күрделі бағдарламалар. Сонымен қатар, инкапсуляция, жылтыр объектілер мүлдем жаңа қасиеті «дербестіктің» барынша тәуелсіздік қалған бөліктерінен. Дұрыс жасалынған ірімшік объект барлық қажетті деректер мен рәсімдерге сәйкес оларды өңдеу, табысты жүзеге асыру тербуемые оған әрекет. Талпыныстары пайдалануға ҚҚТБ үшін бағдарламалау қарапайым алгоритмдер байланысты, мысалы, республикасы еңбек бола алмайды бойынша дайын формулалар жиі көрінеді искуственными нагромождениями қажетсіз тілдік конструкциялар. Мұндай бағдарламалар, әдетте, мұқтаж емес құрылымдау, бөлген алгоритм бірнеше салыстырмалы тәуелсіз бөліктері, оларды оңай және естественнее әзірлеуге дәстүрлі тәсілдермен Паскаль. Әзірлеу кезінде күрделі диалогтік бағдарламалардың бағдарламашы мәжбүр құрылымдау бағдарламасын, өйткені тек осы жағдайда ғана ол может рассчитывать на успех: «сыни массасы» құрылымдалмаған бағдарлама болып табылады көлемі 1000-1200 жолдарының бастапқы мәтін – баптау құрылымдалмаған бағдарламалар болшего көлемі, әдетте, бетпе-бет шамадан тыс қиындықтармен. Құрылымдау бағдарламасын жүргізеді, іс жүзінде, әзірлеуге өз кітапхананың бағдарламалау – міне, осы сәтте көмекке келеді жаңа құралдары ҚҚТБ.

2. ОББ-дың негізгі принциптері.
Объектілі-бағытталған бағдарламалауға негізделген «үш китах» – үш маңызды принциптері, придающих объектілеріне жаңа қасиеттері. Осы принциптерге болып табылады инкапсуляция, мұрагерлік және полиморфизм.

Инкапсуляция бірлестігі бар біртұтас деректерді өңдеу алгоритмдерін және осы деректер. Шеңберінде ОББ-дың деректер деп аталады өріс объектінің, ал алгоритмдер – объективтік әдістермен.

Инкапсуляция мүмкіндік береді барынша оқшаулау объектісіне сыртқы ортадан. Ол айтарлықтай сенімділігін арттырады әзірленетін бағдарламалар, т. б. оқшауланған объектісінде алгоритмдер алмасады бағдарламасымен салыстырмалы түрде шағын көлемі деректер, олардың саны мен түрі, осы деректер, әдетте, мұқият контролирутся. Нәтижесінде, ауыстыру немесе түрлендіру алгоритмдер және деректер инкапсулированных объектіге, әдетте, әкеп соқпайды жаман прослеживаемых салдарын тұтастай алғанда бағдарламаны (арттыру мақсатында қорғалу прграмм » ҚҚТБ дерлік пайдаланылмайды жаһандық айнымалылар).

Тағы бір маңызды салдары инкапсуляция болып табылады жеңілдігі алмасу объектілері, көшіру, оларды бір бағдарламаны басқа. Бұл ҚҚТБ «итермелейді» әзірлеуге кітапхана объектілер сияқты, Turbo Vision.

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

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

Біртіндеп өмірге «қағидатын наследуй және изменяй» жақсы келісіледі кезең-кезеңмен тұрғыдан әзірлеу ірі бағдарламалық жобалар мен көбінесе ынталандырады мұндай тәсіл.

Полиморфизм – бұл қасиеті ұқсас объектілерді (т. е. объектілер бар, жалпыға ортақ бір ата-ананың) шешуге ұқсас мағынасы мәселелері әр түрлі тәсілдермен. Шеңберінде ОББ-дың мінез-құлық объектінің қасиеттері анықталады жиынтығы вхожящих оған әдістері. Өзгерте отырып, алгоритм немесе басқа әдісті потомках объект, бағдарламашы мүмкін ұялатып, осы ұрпақтарына жоқ болса ата-анасының өзіне тән қасиеттері. Өзгерту үшін әдісін қажет жабылсын, оны потомке, т. е. жариялау потомке аттас әдісі және іске асыру, оған қажетті іс-әрекеттер. Нәтижесінде объектідегі-ата-ана мен объект-потомке болады екі аттас әдісін, бар әр түрлі алгоритмическую негізін және, демек, придающие объектілері әр түрлі қасиеттері. Бұл полиморфизмом.

В Турбо Паскале полиморфизм қол жеткізіледі тек жоғарыда сипатталған мұрагерлік механизмі және жабу әдістерін ата-анасының, бірақ олардың виртуализацией (төменде қараңыз), мүмкіндік беретін ата-аналар әдістеріне жүгінуге әдістеріне ұрпақтары.

3. Қою оқу міндеттері.
Техникасымен танысу ҚҚТБ бұл жұмыста кесінділермен мысалдар, біріккен шеңберіне келесі оқу міндеттері.

Талап етіледі әзірлеу бағдарламасын жасайды, экранда бірқатар графикалық кескіндемелер (нүкте, шеңбер, сызық, төртбұрыш) және жылжытуға бұл кескінді экранда. Түрі құрылатын бағдарламада экраннан көрсетілді төмен.

Жылжыту үшін, суреттерді бағдарламасы пайдаланылатын болады басқару пернелері курсор, пернелер Home, End, PgUr, PgDn (пермещения бойынша диагональным бағыттары) және Tab пернесі таңдау үшін орны ауыстырылатын объект. Выход из программы – Esc пернесі.

Техникалық бағдарламасын іске асыру талап етеді қаражатын пайдаланудың екі стандартты кітапхана – CRT және GRAPH. Үшін емес, көңіл аудармау негізгі проблемаларды ҚҚТБ, сипаттағанда іске асыру оқу міндеттері құралдарын қолдану ерекшеліктері осы кітапханалардың лишб өте қысқа коментируются мәтіндерінде.

4. Объектілерді құру.
В Турбо Паскале объектілерін құру үшін пайдаланылады үш резервтелген сөздер бар: object, constructor, destructor және де үш стандартты директивалар: private, public және virtual.

Зарезервированное сөз object сипаттау үшін қолданылады. Объектінің сипаттамасы орналастырылуға тиіс бөлімде сипаттау түрі бар:

type

MyObject = object

{өріс объектінің}

{әдістері объектінің}

end;

Егер объект порождается қандай да бір ата-ананың, ата-анасының аты көрсетіледі дөңгелек жақша ішінде бірден сөзбен object:

type

MyDescendantObject = object (MyObject)

……………………………………………………

……………………………………………………

end;

Кез келген нысан болуы мүмкін сколько угодно ұрпақтары, бірақ бір ғана ата-ананың, бұл құруға мүмкіндік береді иерархиялық ағаштар мұрагерлік объектілері.

Осы оқу міндеттері жасаймыз объект-ата-ана TGraphObject, оның шеңберінде инкапсулированы өрісі мен әдістері, жалпы барлық қалған объектілер:

type

TGraphObj = object

Private {өріс объектінің жасырылады пайдаланушы}

X,Y: Integer; {координаттары реперной нүктелері}

Color: Word; {түс фигуралар}

Public

Constructor Init (aX, aY: Integer; aColor: Word);

{жасайды экзепляр объектінің}

Procedure Draw (aColor: Word); Virtual;

{вычерчивает объект берілген түспен aColor}

Procedure Show;

{көрсетеді объект – вычерчивает оның түспен Color}

Procedure Hide;

{прячет объект – вычерчивает оның түспен фон}

Procedure MoveTo (dX, dY: Integer);

{ауыстырады объект нүкте координаттармен X+dX и Y+dY}

end; {соңы сипаттау TGraphObj объектісін}

Болашақта құру объектілері-ұрпақтары атынан TGraphObject іске асыратын барлық ерекше қасиеті нүкте, сызық, шеңбер және тікбұрыш. Бұл графикалық объектілерді сипатталатын болады ережеге сәйкес жүзеге асырады экранда (өріс X және Y), түс (Color). Әдісінің көмегімен Draw ол қабілетті болады көрсетуі өзіне экранда көмегімен қасиеттерін «өзін көрсету» (Show әдісі) және «жасыру» тәсілі (Hide) шекарада экранға (MoveTo әдісі). Ескере отырып, ортақ қасиеттерін графикалық объектілерді, біз жариялаймыз абстракті объект TGraphObj, ол байланысты емес нақты графикалық тұлға. Ол біріктіреді барлық жалпы алаң мен әдістері нақты пішіндер мен алыстағы ата-анасы үшін басқа да объектілер.

Директива Private сипаттамада нысанның ашады секциясына сипаттау жасырын өрістер мен әдістері. Аталған осы секция элементтері объект «көрінбейді» программистке, егер бұл объект, ол кітапхана TPU-модуль. Жасырылып, әдетте, сол өрістері мен әдістері, оларға бағдарламашы (оның мүддесі үшін!) емес, болуы тиіс тікелей қол жеткізу. Мысалда ол еркін ауыстырып координаттары реперной нүкте (X,Y), ол әкеледі объектінің орнын ауыстыру. Өзгерту үшін өрістерді X және Y көзделген объектісінің құрамына кіретін әдістері Init және MoveTo. Жасырын өрістер мен әдістері қол жетімді аясында сол бағдарламалық бірліктер (бағдарлама немесе модуль), онда сипатталған тиісті объект. Болашақта бұл бағдарлама модулін пайдалану GraphObj сипаттай отырып, объектілер. Жасырын өріс қол жетімді болады модулінде GraphObj, бірақ қолжетімсіз пайдаланатын, оның негізгі бағдарламасы. Әрине, шеңберінде нақты міндеттері құру жасырын элементтер объектіні мүлде міндетті емес. Объект TGraphObj олар енгізілген тек безендіру үшін мүмкіндіктер ҚҚТБ.

Директива public күшін жояды private директивалары, бұл барлық мынадай public элементтері объект қол жетімді кез келген бағдарламалық еденице. Директивалар private және public мүмкін произвольным түрде чередоваться » перделах бір объект.

Нұсқалары хабарландырулар TGraphObj объектісін пайдалану тетігін private…public:

type

TGraphObj = object

X,Y: Integer;

Color: Word;

Constructor Init (aX,aY: Integer; aColor: Word);

Procedure Draw (aColor: Word); Virtual;

Procedure Show;

Procedure Hide;

Procedure MoveTo (dX,dY: Integer);

end;

Сипаттау өріс еш айырмашылығы жоқ сипаттау әдеттегі айнымалы. Өрістермен мүмкін кез келген деректер құрылымы, оның ішінде және басқа да нысандар. Пайдаланылатын мысалда өріс X және Y қамтиды координату реперной (тән) нүкте нрафического объектінің өрісі, Color — оның түсі. Реперная нүкте сипаттайды ағымдағы жағдайы графикалық фигураларды экрандағы, негізінен, болуы мүмкін оның кез келген нүктесімен (мысалда ол сәйкес келеді, шекті координаттары нүктеден описываемом төмен объектіде TPoint орталығы шеңбер объектісінде TСircle, бірінші шетімен тікелей объектісінде TLine және сол жақ жоғарғы бұрышы тік төртбұрыштың объектісінде TRect).

Сипаттау үшін әдістерді ҚҚТБ пайдаланылады үшін дәстүрлі Паскаль процедуралар мен функциялар, сондай-ақ ерекше түрі рәсімдерінің — конструкторлар және деструкторлар. Конструкторлар құру үшін арналған нақты данасы объектінің, өйткені объект — бұл мәліметтер типі, яғни «үлгі», ол бойынша құруға болады неше угодно жұмыс дана деректердің объектілік үлгідегі (типтегі TGraphObj, мысалы). Зарезервированное сөз constructor пайдаланылатын тақырыбындағы конструктор орнына procedure, ұйымдардан компилятору құруға ерекше коды пролога, оның көмегімен теңшеледі деп аталатын кесте виртуалды әдістері (қараңыз. төмен). Егер объектіде жоқ виртуалды әдістері, және онда болуы мүмкін бірде-бір конструктор, керісінше, егер ең болмағанда бір әдісі ретінде сипатталған виртуалды (кейіннен сөзбен Virtual см әдіс Draw), объектісінің құрамына кіруге тиіс, ең болмағанда бір конструктор және өтініш конструктору тиіс прежшествовать өтініші кез келген виртуалды әдісі.

Типтік әрекет, сатылатын конструктор тұрады наполнеии объектілік өрістің нақты мәндеріне. Айта кету керек, әр түрлі даналары бір объектінің бір-бірінен ерекшеленеді ғана нәрсемен объектілік алаңдарын, онда аремя олардың әрқайсысының қалай пайдаланады бірдей объекттік әдістері. Мысалда конструктор Init TGraphObj объектісін алады барлық қажетті толық анықтау үшін данасының деректер параметрлері арқылы жүгінген aX, aY, aColor.

Рәсімі Draw арналған сызу үшін графикалық объект. Бұл рәсім іске асырылатын болады потомках TGraphObj объектісін әр түрлі. Мысалы, визуализация нүктесінен жөн шақыру рәсімін, PutPixel, сызу үшін сызықтың — рәсімін Line және т. б. объект TGraphObj рәсімі Draw ретінде анықталған виртуалды («воображаемая»). Абстракті объект TGraphObj арналған емес, экранға шығару үшін, алайда, болуы рәсімі Draw бұл объект деп кез келген ұрпағы TGraphObj болуы тиіс меншікті Draw әдісі, оның көмегімен ол өзін көрсету экрандағы.

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

Болуы объектісінде TGraphObj виртуалды әдісін Draw оңай жүзеге асыруға мүмкіндік береді басқа үш әдісті объектінің көрсету үшін объект экранда Show әдісі шақырылады Draw түспен aColor тең мәніне өріс Color, жасыру үшін графикалық объект, әдіс Hide шақырылады Draw мәндегі түсті GetBkColor, т. е. ағымдағы түспен фон.

Қарастырайық жүзеге асыруды объектінің орнын ауыстыру. Егер ұрпағы TGraphObj (мысалы, TLine) қалайды жылжыту үшін, өзіне экранда, ол жүгінеді ата-ана MoveTo әдісі. Бұл әдісте алдымен көмегімен Hide объект жуылады экран, содан кейін көмегімен Show показываетя басқа жерде. Іске асыру үшін өз іс-әрекеттерін және Hide және Show жүгінеді виртуалды әдісі Draw. Өйткені шақыру MoveTo шеңберінде жүзеге асады объектінің TLine, пайдаланылады ТВМ осы объектінің шақырылады және оның әдіс Draw, вычерчивающий тікелей. Егер перемещалась шеңбер, ТВМ тармақшасында, сатып алынатын тауарларға еді мекенжайы әдісін Draw объектінің TСircle және визуализация-өшірілудің объект жүзеге асырылған еді бұл әдістің көмегімен.

Сипаттау үшін барлық қасиеттері объектіні ашу қажет мазмұн объектілік әдістер, т. е. тиісті рәсімдерді сипаттау және функуии. Әдістерін сипаттау жүргізіледі әдеттегі үшін Паскаль тәсілімен кез келген жерде, бөлімнің сипаттамасы, бірақ сипаттамасынан кейін объект. Мысалы:

end;

Constructor TGraphObj.Init;

begin

X:= aX;

Y:= aY;

Color:= aColor

end;

Procedure TGraphObj.Draw;

begin

{Бұл рәсім ата-аналар объектісінде ештеңе жасамайды, сондықтан экземплялры TGraphObj қабілетті емес көрсетуі өзіне экранда. Үшін ұрпақтары TGraphObj объектісін болды қабілетті көрсетуі өзіне, олар өтейді бұл әдіс}

end;

Procedure TGraphObj.Show;

begin

Draw (Color)

end;

Procedure TGraphObj.Hide;

begin

Draw (GetBkColor)

end;

Procedure TGraphObj.MoveTo;

begin

Hide;

X:= X+dX;

Y:= Y+dY;

end;

Айта кету керек екі мән-жайлар. Біріншіден, сипаттау әдістерін аты әдісін толықтырылады алдынан атымен объектіні, яғни пайдаланылады құрама аты әдісі. Бұл бір ғана қарапайым себеппен, бұл иерархия туыстық объектілердің кез келген әдістерін мүмкін жабық » потомках. Құрамдас аттары анық көрсетеді тиесілігін нақты рәсім. Екіншіден, кез-келген нысандық әдісі қолдануға болады қамтылған өріс объектінің дерлік ретінде шырша еді олар анықталған ретінде жаһандық айнымалы. Мысалы, құрушы TGraph.Init ауыспалы осы шақты сол жақ бөліктерінде операторлары меншіктеу білдіреді объекттік өріс тиіс қайтадан жазылуға рәсімінде. Одан токо, сипаттамасы

Constructor TGraph.Init;

var

X,Y: Integer; {қате!}

Color: Word; {қате!}

begin

……………………..

……………………..

end;

туындатады туралы хабарлама екі анықтау айнымалылар X, Y, Color (бұл тұрады ерекшелігі пайдалану алаңдарын жаһандық айнымалы: жаһандық айнымалылар болады переопределять рәсімдерде, ал объектілік өріс переопределять болмайды).

Назар аудару қажет, яғни абстракті объект TGraphObj үшін арналған емес, выводя экранға, сондықтан оның әдіс Draw ештеңе жасайды. Алайда, Hide әдістері, Show, MoveTo «біледі» формат шақыру осы әдісті іске асыруда қажетті іс-әрекеттерді қарата нақты әдістеріне Draw өзінің болашақ ұрпақтарының четез тиісті ТВМ. Бұл полтморфизм.

Жасаймыз қарапайым ұрпағы жылғы Tgraphobj — объект TРoint, оның көмегімен болады визуализироваться және жылжуға нүктесі. Барлық негізгі іс-әрекет, ол үшін қажетті, бар объектісінде TGraphObj, сондықтан объектісінде TPoint жабылады жалғыз әдісі — Draw:

type

TPoint = object (TGraphObj)

Procedure Draw (aColor); Virtual;

end;

Procedure TPoint.Draw;

begin

PutPixel (X,Y,Color) {көрсетеміз түспен Color пиксель бастап

координаттары X және Y}

end;

Жаңа объект TРoint пайдалануға болады кез келген әдісі объектінің ата-анасының TGraphObj. Мысалы, шақыру әдісі MoveTo жылжыту үшін сурет нүктесі жаңа орынға. Бұл жағдайда ата-аналар әдісі TGraphObj.MoveTo болады жүгінуге әдіс TPoint.Draw, жасыру, содан кейін көрсету сурет нүктелері. Мұндай шақыру қолжетімді кейін өтініш конструктору Init объектінің TРoint, ол қажетті түрде настроит ТВМ объект. Егер шақыруға TPoint.Draw дейін шақыру Init, оның ТВМ емес тиіс дұрыс мекен-жайы мен зависнет».

Үшін создат объект-желіні енгізу қажет екі жаңа өрістерді сақтау үшін координаттар басқа аяғына дейін. Қосымша өрістерді толтыру қажет нақты мәндерімен, сондықтан жабуға конструктор родотельского объектісі:

type

TLine = object (TGraphObj)

dX, dY: Integer; {Үстелуі координаттар екінші аяғына}

Constructor Init (X1, Y1, X2, Y2: Integer; aColor: Word); Virtual;

end;

Constructor TLine.Init;

{Тудырады унаследованный конструктор TGraphObj үшін бастамашылық жасау өріс

X, Y, Color. Содан кейін бастамашылық етеді өріс dX, dY}

begin

{Вызываем унаследованный конструктор}

Inherited Init (X1, Y1, aColor);

{Бастамашылық танытпақпыз өріс dX, dY}

dX:= X2-X1;

dY:= Y2-Y1

end;

Procedure Draw;

begin

SetColor (Color); {Орнатамыз түсі Color}

Line (X, Y, X+dX, Y+dY) {Вычерчиваем сызық}

end;

Бұл құрушы TLine.Init үшін бастамашылық жасау өріс X, Y, Color және еңбек кітапшасымен расталады жылғы родмтельского объектінің шақырылады унаследованный конструктор TGraph.Init, ол үшін пайдаланылады зарезервированное сөз inherited (ағыл. — унаследованный):

Inherited Init (X1, Y1, aColor);

C жазамды біз пайдалана алар еді және құрама аты әдісі:

TGraphObj.Init (X1, Y1, aColor);

Үшін бастамашылық жасау алаңдарын dX және dY формула арақашықтық өздігінен байқалу үшін) көлденең және тігінен қолданысқа соңына дейін тікелей жолмен тікелей оның екінші аяғына дейін. Бұл мүмкіндік береді әдісі TLine.Draw есептеу координаттары екінші аяғына координаттар бойынша бірінші және смещениям dX, dY. Нәтижесінде қарапайым өзгерту координаттар реперной нүктесінің X,Y ата-аналар әдісі TGraph.MoveTo ауыстырады бүкіл суретті экранда.

Енді қиын емес объектіні сатуға TСircle құру үшін және жылжыту шеңбер:

type

TCircle = object (TGraphObj)

R: Integer;

Constructor Init (aX, aY, aR: Integer; aColor: Word);

Procedure Draw (aColor: Virtual);

end;

Constructor TCircle.Init;

begin

Inherited Init (aX, aY, aColor);

R:= aR

end;

Procedure TCircle.Draw;

begin

SetColor (aColor); {белгілейді түсі Color}

Circle (X, Y, R) {вычерчивает шеңбері}

end;

Объектіде Trect, оның көмегімен құрылады және перемещается тіктөртбұрыш, учтем, бұл жағдай үшін тапсырмалар төртбұрыштың көрсету талап етіледі төрт целочисленных параметря, т. е., сонша, қанша арналған тапсырмалар желісі. Сондықтан объект TRect ыңғайлы породить емес TGraphObj, ал TLine, оны пайдалану үшін конструктор Init:

tipe

TRect = object (TLine)

Procedure Draw (aColor: Word);

end;

Procedure TRect.Draw;

begin

SetColor (aColor);

Rectangle (X, Y, X+dX, Y+dY) {вычерчиваем тіктөртбұрыш}

end;

Үшін сипаттаудың графикалық объектілер құру үшін кедергі болды негізгі бағдарламаның оформим бұл сипаттамалар жеке модулінде GraphObj:

Unit GraphObj;

Interface

{интерфейсная бөлігі модуль құрамында тек қана хабарландырулар объектілерін}

type

TGraphObj = object

……………………………

……………………………

end;

TPoint = object (TGraphObj)

…………………………………………

…………………………………………

end;

TLine = object (TGraphObj)

……………………………………….

……………………………………….

end;

TCircle = object (TGraphObj)

………………………………………..

………………………………………..

end;

TRect = object (Tline)

……………………………..

……………………………..

end;

Implementation

{исполняемая бөлігі құрамында сипаттау барлық объектілік әдістерін}

Uses Graph;

Constructor TGraphObj.Init;

……………………………………….

……………………………………….

end.

Бұл модульдің интерфейстік бөлігі ғана келтіріледі хабарландырулар объектілерін, конденсаторы ретінде сипатталады басқа да деректер типтері, объявляемые модулінде үшін қол жетімді сыртқы бағдарламалық бірлік. Толық объектілік әдістерін орналастырылады орындалатын соло түріндегі бөлігі implementation, егер бұл сипаттау әдеттегі интерфейстік процедуралар мен функциялар. Сипаттау кезінде әдістерін қажетсіз болады қайтадан сипаттамасы атауында параметрлерін шақыру. Егер олардың барлығы бірдей қайталанады, олар дәл сәйкес келуі бұрын объявляемым параметрлері сипаттамада нысанның. Мысалы, тақырып конструктор TGraphObj.Init болуы мүмкін осындай:

Сonstructor TGraphObj.Init;

немесе бұл:

Сonstructor TGraphObj.Init (aX, aY: Integer; aColor: Word);

5. Объектілерін Пайдалану.
Идеясын инкапсуляция өрістер мен алгоритмдерін қолдануға болады ғана емес графикалық объектілер, бірақ және барлық бағдарламасы. Ештеңе де бізге кедергі жасау объектісі-бағдарламасын және «үйрету», оның үш негізгі іс-әрекеті: бастамашылық жасау (Init), орындау негізгі жұмыс (Run), аяқтау (Done). Кезеңінде бастамашылық жасау экран переволится графикалық жұмыс кестесі құрылады және көрсетіледі графикалық объектілері (100 дана TРoint және біреуден TLine, TCircle, TRect). Кезеңінде Run жүзеге асырылады сканерлеу пернетақта және ауыстыру графикалық объектілер. Ақырында, Done кезеңінде экран ауыстырылады мәтін режимі және жұмыс аяқталып келеді барлық.

Деп атайық объектісі-бағдарлама атымен TGraphApp және жариялаймыз, оның модулінде GraphApp (пока не обращайте внимания на нүктелері жабатын, мазмұнды бөлігі модуль кешіктірілмей ұсынылатын болады, оның толық мәтіні):

Unit GraphApp;

Intrface

type

TGraphApp = object

Procedure Init;

Procedure Run;

Destructor Done;

end;

Implementation

Procedure TGraphApp.Init;

……………………………………..

……………………………………..

end;

……………………………………..

……………………………………..

end.

Бұл жағдайда, негізгі бағдарлама барынша қарапайым:

Program Graph_Objects;

Uses GraphApp;

var

App: TGraphApp;

begin

App.Init;

App.Run;

App.Done

end.

Онда біз жалғыз данасы App объектісінің бағдарламаның TGraphApp және жүгінеміз үш оның әдістері.

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

var

App: TGraphApp;

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

App.Init;

App.Ryn;

App.Done;

Ауыспалы объектілік типінің мүмкін статикалық немесе динамикалық, т. е. орналасуы сегментінде деректер (статикалық) немесе куче (динамикалық). Соңғы жағдайда біз пайдалана алар еді осындай бағдарлама:

Program Graph_Objects;

Uses GraphApp;

type

PGrapgApp = ^TGraphApp;

var

App: PGraphApp;

begin

App:= New (PGraphApp, Init)

App^.Run;

App^.Done

end;

Үшін бастамашылық жасау динамикалық айнымалы App қолданылады функцияны шақыру New. Бұл жағдайда бірінші параметрі указываеися аты үлгідегі инициируемой айнымалы, ал екінші жүзеге асырылады шақыру әдісі-конструктор, ол қажет орнату үшін кестелер виртуалды әдістер. Мұндай қабылдау (объектілерді бөлу және динамикалық жад бір мезгілде инициацией олардың ТВМ) тән техника ҚҚТБ.

Төменде ықтимал нұсқа GraphApp модулінің осы оқу прогаммы:

Unit GraphApp;

Interface

Uses GraphObj;

const

NPoins = 100; {нүктелерінің саны}

type

{объектісі-бағдарлама}

TGraphApp = object

Points: array [1..NPoints] of TPoint; {массив нүктелерінің}

Line: TLine; {сызық}

Rect: TRect; {тіктөртбұрыш}

Corcle: TCircle; {шеңбер}

ActiveObj: Integer; {белсенді нысан}

Procedure Init;

Procedure Run;

Procedure Done;

Procedure ShowAll;

Procedure MoveActiveObj (dX, dY: Integer);

end;

Implementation

Uses Graph, CRT;

Procedure TGraphApp.Init;

{Бастама графикалық жұмыс режимі экран. Жасайды және көрсетеді

NPoints дана объектінің TРoint, сондай-ақ объектілер данасы, TLine,

TCircle және TRect}

var

D, R, Err, k: Integer;

begin

{бастамашылық танытпақпыз кесте}

D:= Detect; {режимі автоматты түрде анықтау

типті графикалық адаптер}

InitGraph (D, R, ‘\tp\bgi’); {бастамашылық танытпақпыз графикалық режим.

Мәтіндік жол болуы тиіс сұрақ қою

жол каталог отырып, графикалық

драйверлері}

Err:= GraphResult: {тексереміз жетістігі бастамашылық жасау кестесін}

if Err<>0 then

begin

GraphErrorMsg (Err);

Halt

end;

{жасаймыз нүктелері}

for k:= 1 to do NPoints

Points[k].Init (Random (GetMaxX), Random (GetMaxY), Random (15)+1);

{жасаймыз басқа да объектілер}

Line.Init (GetMaxX div 3, GetMaxY div 3, 2*GetMaxX div 3,

2*GetMaxY div 3, LightRed);

Circ.Init (GetMaxX div 2, GetMaxY div 2, GetMaxY div 5, White);

Rect.Init (2*GetMaxX div 5, 2*GetMaxY div 5, 3*GetMaxX div 5,

3*GetMaxY div 5, Yellow);

ShowAll; {көрсетеміз барлық графикалық объектілер}

ActiveObj:= 1 {бірінші перемещаем тіктөртбұрыш}

end; {TGraphApp.Init}

{—————————————————————————}

Procedure TGraphApp.Run;

{таңдайды объект көмегімен Tab ауыстырады және оны экранда}

var

Stop: Boolean; {белгі басу Esc}

const

D = 5; {қадам ығысу фигуралардың}

begin

Stop:= False;

{цикл сұраныстың пернетақта}

repeat

case ReadKey of {оқимыз коды желіден ажырату сақталған пернелер}

#27: Stop:= True; {басылған Esc}

#9: begin {басылған Tab}

inc (ActiveObj);

if ActiveObj>3 then

ActiveObj:= 3

end;

#0: case of ReadKey

#71: MoveActiveObj (-D-D); {солға және жоғарыға}

#72: MoveActiveObj ( 0, -D); {жоғарыға}

#73: MoveActiveObj ( D-D); {впрво және жоғары}

#75: MoveActiveObj (-D, 0 ); {солға}

#77: MoveActiveObj ( D, 0 ); {оңға}

#79: MoveActiveObj (-D, D); {солға және төмен}

#80: MoveActiveObj ( 0, D); {down}

#81: MoveActiveObj ( D, D); {оңға және төмен}

end

end;

ShowAll;

Until Stop

end; {TGraphApp.Run}

{—————————————————————————}

Destructor TGraphApp.Done;

{жабады графикалық режим}

begin

CloseGraph

end; {TGraphApp.Done}

{—————————————————————————}

Procedure TGraphApp.ShowAll;

{көрсетеді барлық графикалық объектілер}

var

k: Integer;

begin

for k:= 1 to NPoints do Points[k].Show;

Line.Show;

Rect.Show;

Cofc.Show

end;

{—————————————————————————}

Procedure TGraphApp.MoveActiveObj;

{ауыстырады белсенді графикалық объект}

begin

case of ActiveObj

1: Rect.MoveTo (dX, dY);

2: Circ.MoveTo (dX, dY);

3: Line.MoveTo (dX, dY)

end

end;

end.

Бұл объектіні іске асыру TGraphApp пайдаланылады деструктор Done. Ескеру керек, бұл айырмашылығы конструктор жүзеге асыратын параметрді ТВМ, деструктор байланысты емес қандай да бір специфичными іс-әрекеттерімен: компилятора сөздер destructor және procedure — синонимдер. Кіріспе ҚҚТБ деструктор сипатта, негізінен, стилистикалық бағыты — жай рәсімін, разрушающую данасы объектіні деп атайды деструктором. Нақты тәжірибеде ҚҚТБ с деструкторами әдетте байланыстырады рәсімдері ғана емес, жұмысты тоқтатады, объектісі және босатады бөлінген ол үшін динамикалық жады.

Қорытындысында айту керек, бұл формалистика ҚҚТБ іске асыру шеңберінде осы технология в Турбо Паскале барынша қарапайым және лаконична. Кіріспе ғана алты резервтелген сөздерді, олардың шын мәнінде қажетті болып табылады үш (object, constructor, virtual), өте шағын пайдаланғаны үшін қуатты құрал жасау совреммнного бағдарламалық қамтамасыз ету.

Пайдаланылған әдебиеттер тізімі:
Блашкин и. И., Буров а. А. Жаңа мүмкіндіктер Turbo-Pascal 6.0. — Спб.: Изд-во «Макет», 1992.
Бородич Ю. С. және т. б. Паскаль дербес компьютерлер үшін: бағдарламалар, жоспар. пособие/ Ю. С. Бородич, А. Н.Вальвачев, А. И. Кузьмич. — Мн.: Респу. шк.: БФ ГИТМП «НИКА», 1991.
ВасильевП.П. Турбо Паскаль — менің досым: М.: Компьютер, ЮНИТИ, 1995.
Джордейн Р. Справочник программиста дербес компьютерлер үлгідегі IBM PC, XT, AT: Пер. с англ./ Предисл. Н.В.Гайского. — М.: Қаржы және статистика, 1991.
Зуев Е. А. бағдарламалау Тілі Turbo Pascal 6.0. — М.: Унитех, 1992.
Мизрохи. Turbo Pascal және объектілі-бағытталған бағдарламалау. — М.: Финансы и статистика, 1992.
Анықтамалығы бойынша рәсімдер мен функциялары Borland Pascal with Objects 7.0. — Киев: «Диалектика», 1993.
Фаронов в. В. Программирование на персональных ЭВМ в среде Турбо-Паскаль. — М.: Изд-во МГТУ, 1990.
Федоров А. Ерекшеліктері бағдарламалау Borland Pascal. — Киев: «Диалектика», 1994.
Хершель Р. Турбо Паскаль/ 2-е изд., өңдеу — Вологда: МП «МИК», 1991.
POWER PLUS TOOLS. Рәсімдерді қолдау үшін Turbo Pascal 4.0.: Анықтамалық нұсқаулығы. Техникалық құжаттама.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *