Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4444УМК17.11.05каз_Delphi.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
1.42 Mб
Скачать

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

  1. Мәліметтердің қандай типтерi қарапайым болып табылады?

  2. Мәліметтердің қандай қарапайым типтерi реттiк болып табылады?

  3. Мәліметтердің қандай реттiк типтерiн бағдарламалаушы құра алады?

  4. Қандай функциялар реттiк типтiң айнымалылары үшiн қолданылады?

  5. Мәліметтердің қандай бүтiнсанды физикалық типтерi Сiзге мәлiм?

  6. Мәліметтердің қандай бүтiнсанды жалпы типтерi Сiзге белгілі?

  7. Мәліметтердің қандай литерлiк физикалық типтерi Сiзге мәлiм?

  8. Мәліметтердің қандай литерлiк жалпы типтерi Сiзге таныс?

  9. Мәліметтердің қандай логикалық типтерi Сiзге белгілі?

  10. Мәліметтердің қандай нақты типтерiн Сiз білесіз?

  11. Қандай нақты тип жалпы болып табылады?

Дәрiс 6. Delphi тіліндегі мәліметтердің типтері

Алдыңғы дәрiсте көрсетiлгендей бағдарламалаушы енгізетiн мәлiметтер типтерi де бар. Оларға саналымды және интервалды типтер жатады.

Саналымды типтер

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

Ескерту. Саналымды типтiң мәндерi оның аттары болып табылады.

Саналымды типтiң форматы:

Type <Тип аты>=(<1 ат>, ... , < N ат>);

Мысал. Саналымды тип айнымалыларының сипатталуы.

Type Day=(Su, Mo, Th, We, To, Fr, St)

...

Var d1, d2, d3:Day;

Season(Winter, Spring, Summer, Autumn);

Day типi нақтылы сипатталған және оған мәндер анықталған – олар апта күндерi. d1, d2, d3 айнымалылары саналған мәндердiң бiреуiн қабылдай алады. Оларға басқа бiр мәндi белгілесек ол бағдарламалық қатенi туғызады. Екiншi тип анонимдi көрсетiлмеген (аты болмайды) Season айнымалысын хабарлау кезiнде мәндерiн санауда берiледi. Соңғысы да саналымды мәннiң айнымалысы болып табылады және берiлген 4 жыл мезгілдерiн қабылдай алады.

Саналымды типтердiң ерекшелiгi болып оның айнымалылар мәнiн бақылауы мен олардың айнымалыларына алдын-ала саналмаған мәндердi алуына тиым салынған. Оның кемшiлiгi саналымды типтердiң мәндерiн енгiзу және шығару кезiнде белгiлi айнымалылардың аттарын енгiзу/шығару процедураларында беруге болмайды.

Интервалды типтер

Интервалды типтер мәлiметтер типтерiнiң мәндер шекарасын анықтайтын екi тұрақтыны сипаттау жолымен берiледi. Бұл шекаралар мәндердің интервалын (диапазонын) анықтайды. Компилятор интервалды тип айнымалының әр операциясы үшін, егер бұл мүмкiн болса, айнымалы мәнi оған бекiтiлген интервал iшiнде жататындығын тексереді және егер ол диапазон шекарасынан шығып кетсе қате туралы хабарлау шығарады. Бағдарлама орындалған кезде интервалды тип айнымалының мәнi интервал шекарасынан шыққан жағдайда қате туралы хабарлау шықпайды, бiрақ оның мәнi дұрыс емес болып шығады.

Интервалды тек реттiк мәлiметтер типтерiне ғана, яғни нақты типтен басқа кез келген қарапайым типке беруге болады. Интервалды анықтайтын екi тұрақты қарапайым типтердiң бiреуiне жатуы қажет. Бiрiншi тұрақтының мәнi екiншi тұрақтының мәнiнен кiшi болуы керек. Интервалды типтiң форматы:

Type <Тип аты>=< Тұрақты1>..< Тұрақты2>;

Мысал. Интервалды тип айнымалыларының сипаттамасы.

Type Day1_31=1..31;

....

Var day1, day2, day1_31;

Day1, day2 айнымалылары day1_31 типi болады және 1-ден 30-ға дейiнгi диапазон мәнiн ала-алады.

Интервалды типтi шекара диапазонын мәндер арқылы емес, тұрақтылардың аттарын атау арқылы бұдан да универсалды жағдаймен анықтауға болады, мысалы, келесi түрде:

Const min=1; max=7;

...

Type NumberWeekDay=min..max;

...

Var day21, day22: NumberWeekDay;

Day21 және day22 айнымалылары NumberWeеkDay типiне жатады және 1-ден 7-ге дейiнгi мәндердi қабылдай алады.

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

Қосалқы (көмекші) программа дегеніміз – жеке программа ретінде бөлек жазылған, қажет кезінде оған оралып, пайдалануға болатын негізгі программаның арнайы бөлігі. Қосалқы программаға автоматты түрде енуге және одан шығуға болады. Қосалқы программаны қолдану мынадай мүмкіндіктер береді:

  1. Негізгі программаның көлемі кішірейеді;

  2. Негізгі программада пайдаланылған айнымалыларды қосалқы программада да пайдалануға болады;

  3. Қосалқы программаға берілген жады ұяшықтарын ол орындалмай тұрғанда бос ұяшық ретінде (бос айнымалы ретінде) пайдалануға болады;

  4. Қосалқы программаны пайдалану құрылымдық программалауға мүмкіндік береді.

Әрбір қосалқы программаға қатынас жасау үшін оның аты болады. Паскаль тілінде қосалқы программаларды құру және қолдану принциптері басқа жоғары деңгейлі программалау тілдеріне ұқсас.

Паскаль тілінде басқа алгоритмдік тілдер сияқты қосалқы программаның екі түрі бар: процедура және функция.

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

Қайсыбір есептеу процесін аяқтауға көмектесетін операторлар тобы процедура деп аталады, мысалы, сызықтық теңдеулер жүйесін шешу, массивтің ең үлкен және ең кіші элементін аңықтау, функциональдық қатардың шектеулі санды мүшелерінің қосындысын анықтау, қандай да бір бүтін функцияларды тиімді ету мәселелерін шешу және т.б.

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

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

Процедуралар синтаксистік деп аталатын арнайы ереже бойынша жазылады. Процедура тақырыбы procedure қызметші сөзінен және Паскаль тілінің ережесімен бейнеленген атауынан тұрады

procedure prod (<қызметші ақпарат - параметрлер>);

Айнымалыларды бейнелеу бөлігі мен қызметші ақпарат жазылмауы мүмкін, ал операторлар бөлімі міндетті түрде begin сөзімен басталып, end сөзімен аяқталады

procedure p;

begin

end.

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

Процедура шақыру нұсқауындағы әрбір нақты параметрдің (тұрақты немесе айнымалы) типі функция берілгенде көрсетілген сәйкес формальды параметр типімен сәйкестенуі тиіс. Егер процедураны хабарлау нұсқауында формальды параметр атының алдында var сөзі болмаса, онда процедура шақыруда формальды параметр орнына сәйкес типті тұрақты немесе айнымалыны қолдануға болады. Егер нұсқауда var сөзі бар болса, онда формальды параметр етіп тек айнымалыны ғана тағайындауға болады.

Параметрлер төрт типте болуы мүмкін:

  • параметр- мән;

  • параметр- айнымалы;

  • параметр- процедура;

  • параметр- функция.

Егер формальды параметрлердің бастапқы бөлімінде var қызметші сөз болмаса, онда формальды параметрлер параметр-мәндер болып табылады. Бұл жағдайда нақты параметрлер өрнек болуы қажет. Егер де формальды параметрлер бөлімінде қандай да бір параметрлер тобының алдында var қызметші сөзі тұрса, онда бұл топ параметр-айнымалылардан тұрады. Бұл жағдайда нақты параметрлер айнымалылар болуы қажет. Параметр-процедура ретінде қолданылатын процедура параметрлері тек параметр-мән болуы мүмкін.

Мысал: Экранға жұлдызшалардан тұратын жолды шығаратын процедура жазу керек. Жол ұзындығы (жұлдызшалар саны) функция параметрлері болып табылады.

procedure SL(Len:integer);

var n integer;

begin

for i:=1 to n do

write ('*');

end;

Функциялар

Функция дегеніміз – мәнді қайтарушы қосалқы программа. Процедура шақыру мәтінінде қайсыбір өрнекті есептеу кезінде қолданылатын, өзінің орындалуы барысында жалғыз скалярлық мән беретін программа бөлігі функция деп аталады.

Сипаттамасы:

function аты (формальды параметрлер тізімі)

{локальды айнымалыларды сипаттау бөлімі}

begin

{функция денесі}

end;

Берілгендерді функцияға енгізу үшін тек параметрлер қолдану қажет. Функциядан тыс берілген айнымалыларды қолдану ұсынылмайды. Функцияны шақыру нұсқауында әрбір нақты параметр (тұрақты немесе айнымалы) типі функция берілуінде көрсетілген сәйкес формальды параметрі сияқты болуы керек.

Функция берілуінде формальды параметр атының алдында var сөзі болмаса, онда процедура шақыру нұсқауында формальды параметр ретінде сәйкес типті тұрақтыны немесе айнымалыны қолдануға болады. Егер var сөзі нұсқауда бар болса, онда формальды параметр етіп тек айнымалыны ғана тағайындауға болады.

Мысал: аргумент ретінде алынған екі санның ең үлкенін шығаратын функция жазу керек.

function max(a,b:integer):integer;

begin

if a>b then max-a

else max=b;

end;

Беттерi көрсетiлген негізгі әдебиеттер

1. [Б. 872]

2. [Б. 207-210]

3. [Б. 50].

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]