Мои Конспекты
Главная | Обратная связь

...

Автомобили
Астрономия
Биология
География
Дом и сад
Другие языки
Другое
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Металлургия
Механика
Образование
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Туризм
Физика
Философия
Финансы
Химия
Черчение
Экология
Экономика
Электроника

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





Помощь в ✍️ написании работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Интервалды типтер мәл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].

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

  1. Мәліметтердің қандай типтерін бағдарламалаушы құра алады?
  2. ?
  3. Мәліметтердің қандай реттiк типтерiн бағдарламалаушы құра алады?
  4. Қандай функциялар реттiк типтiң айнымалылары үшiн қолданылады?
  5. Мәліметтердің қандай бүтiнсанды физикалық типтерi Сiзге мәлiм?

 

Дәріс 7. Компоненттер палитрасындағы парақтар. Мәтіндік ақпараттарды енгізуге және бейнелеуге арналған компоненттер Деректердің құрылымдық типтері. Массивтер. Жиын.

Құрылымдық типтердің деректері құрылымдықпен қоса басқа типтердің деректерінен тұрады. Құрылымдық типтердің деректеріне жататындар:

· жолдар;

· массивтер;

· жиындар;

· жазбалар;

· файлдар;

· кластар.

Бұл типтерді 7-9 дәрістерде қарастырамыз.

 

Жолдар

Жолдар (жолдық типтер) 2.4 кестесінде көрсетілген үш физикалық және бір жалпы типтермен көрсетілген.

Кесте 2.4- Деректердің жолдық,физикалық типтері

Белгіленуі Символдардың максимал ұзындығы
ShortString
AnsiString Шамамен 2*1031
WideString Шамамен 2*1030

 

ShortString типінің деректері 256 элементтен тұратын – array[0..255] массиві болып табылатын жолды сипаттайды.Бұл массивтің (жолдар) нольдік байты жолдың ұзындығына көрсетеді. Бұрын мұндай жол String типімен сипатталатын. ShortString типі тілдің алдыңғы версияларымен сәйкестендіру үшін енгізілген.

AnsiString және WideString динамикалық массивтерді сипаттайды, олардың максимал ұзындығы компьютердің негізгі жадысының өлшемімен шектелген. AnsiString деректерінің типі ANSI кодында , ал WideString- Unicode кодында кодталады.

String типі ShortString немесе AnsiString типтеріне сәйкес келетін жалпы тип болып табылады.Бұл $H компиляторының директивасы.Келісіммен {$H+} және AnsiString-ке тең String типі қолданылады.Проекттің параметрлер файлында “+” белгі директивасы(және де басқа директивалар) Н=1 жазбасына ,”-” белгісі H=1 жазбасына сәйкес келеді.Шығарушы тип интерпритациясын проект параметрінің терезесі арқылы Huge String жалаушасын іске қосып немесе алып басқарады.

Жолдар фактілі түрде символдар массиві болғандықтан , жолдың бөлек символына үшін жолдың атын және осы символдың позициясын квадратты жақшада көрсету керек, мысалы strName[1].

Қарастырылған типтерден басқа PChar типі бар .Ол нолдік аяқталуы бар аталған жол болып табылады.Оның соңында #0 коды бар.Жолдың максимал ұзындығы компьютердің негізгі жадысының өлшемімен шектелген.

 

Массивтер

Массив деп жалпы бір аты бар біртипті элементтердің тізбектелген жиыны. Массив элементі болып құрылымдықпен қоса әр түрлі типтердің деректері болуы мүмкін.Массивтің әр элементі массив атымен және индекспен(массивтегі элемент номері) немесе егер массив көпөлшемді болса, онда индекстермен анықталады.массивтің бөлек элементіне 111 үшін осы массивтің аты және квадрат жақшаға алынған элемент номері, мысалы arr[1,35] немесе arr[7].

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

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

Array[индекстер типі] of <Элементтер типі>;

Мысал.Статикалық массивтерді хабарлау.

Type tm=Array[1..10,1..100] of real;

Var arr1,arr2:tm;

Arr3:Array[20..100] of char;

Arr4:Array[‘a’..’z’] of integer;

arr1 және arr2 айнымалылары 1000 элементтен - 10 жол және 100 бағаннан тұратын екіөлшемді массив болып табылады. Осы массивтердің әр элементі real типті санды сипаттайды. arr1 және arr2 массивтерін хабарлау үшін tm арнайы типі енгізілген. arr3 және arr4 айнымалылары сәйкес 81 символ және 26 бүтін сан бірөлшемді массиві болып табылады.

Динамикалық массив тек оның элементтерінің типі көрсетілетін, ал массив өлшемі программаның орындалу барысында белгілі болатын массив болып табылады. Динамикалық массив қолдану кезінде динамикалық массивтің типін суреттеу форматы 4 версиясынан бастап мүмкін болды:

Array of<Элементтер типтері>;

Программаның орындалу барысында динамикалық массивтің өлшемін беру SetLength (var S; NewLength:Integer) процедурасы арқылы жүзеге асады.Бұл процедура s динамикалық массивіне NewLength-ке тең жаңа өлшем орнатады.Динамикалық массив және оның элементтерімен операцияларды тек массив өлшемін енгізгеннен соң орындауға болады.

Динамикалық массивтің өлшемін берген соң оның ұзындығын,минимал және максимал элементінің номерін анықтау үшін сәйкесінше Length(), Low() , High() функциялары қолданылады. Динамикалық массивтің номірленуі нолден басталады, сондықтан Low() функциясына ноль мәні қайтарылады.

Мысал. Динамикалық массивті қолдану.

Var n:integer;

m: Array of real;

 

Setlength(m,100);

For n:=0 to 99 do m[n]:=n;

SetLength(m,200);

Нақты сандардан тұратын динамикалық массивті сипаттаған соң 100 элементкке тең массив өлшемі анықталады. Әр элементке массивтегі номеріне тең мән беріледі.Элемент номірленуі нольден басталғандықтан ,соңғысының номері 99-ға тең. Циклдан кейін массив өлшемі 200-ге дейін үлкейеді.

Динамикалық көпөлшемді массивтің типін сипаттау үшін:

Array of array of <Элементтер типі>

конструкциясы қолданылады

Көпөлшемді динамикалық массив үшін SetLength(var S; NewLength1, NewLength2:Integer) процедурасы көмегімен жаңа өлшемдер орнату әр индекс үшін орындалады.

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

Жиындар

Жиын – элементтер алдын-ала анықталған терім мәндерінен алынған жиынтығы. Барлық элементтердің қатарланған типі бар; жиын элементінің саны 256- дан көп болмауы тиіс. Жиындық типтік сипатталуы:

Set of <Элементтер типі >;

Жиындық типтік айнымалысында өз жиынының нолден бастап максимал санға дейін элемент болуы мүмкін. Жиындық типтік мәні квадрат жақшаға алынады.Бос жиын бос вадрат жақшамен белгіленеді- []. Жиындарға жүргізілетін операциялар 2.5 кестесінде көрсетілген:

Кесте 2.5- Жиындарға жүргізілетін операциялар

 

  Аталуы Нәтиже типі Нәтиже
+ Жиындарды қосу жиын 1 және 2 жиынның қайталанбайтын элементтері
- Жиындарды алу жиын 2-ге жатпайтын 1-жиынның элементтері
* Жиындардың қиылысуы жиын Екі жиынға да бірдей элементтер бар
= эквиваленттілік Boolean True,егер жиындар эквивалентті
<> Эквиваленттілік емес Boolean True,егер жиындар эквивалентті емес
<= Кірісін тексеру Boolean True,егер 1-жиын 2-ге кірсе
>= Қосылуын тексеру Boolean True,егер 1-жиын 2-ні қосса

Сонымен қатар in операциясы реттік типті (бірінші операнд) мәннің жиынға(екінші операнд) тиістілігін анықтайды.Операция нәтижесі Boolean типті және True мәні болады егер жиын мәніне қатыстылығы сақталса.

Мысал:Жиынды қолдану.

Type MonthDays= Set of 1..31;

Var Color: Set of(Red,Blue,White,Black);

Day: MonthDays;

Color:=[Blue];

Color:= Clor-[Blue,Red,White];

Color:=Color+[Black];

Color:=Color+[Black];

Day:=[];

Day:=Day-[1];

Day:= [2-4];

Day:=Day+[5,12,1];

Day:=Day-[1];

Келтірілген мысалда MonthDays жиындық типі қарастырылады, және Color мен Day жиындық типтік айнымалылары хабарланған.Бұлардың үстінен қосу және алу операциялары орындалған.Төртінші қосу операторында Color жиынына Black мәні қосылған.Мұндай қосу тура, бірақ бұл кезде жиын мәні өзгермейді.Алтыншы қосу операторында Day бос жиынынан элемент алынады; бұл оператрды орындау нәтижесінде жиын мәні өзгермейді.

Delphi-де жиындық типтер ,мысалы, TborderIcon терезесіндегі батырма типін немесе TfilterOptions фильтр параметрінің типін сипаттау үшін қолданылады.

Type TborderIcon=(biSystemMenu, biMinimize,biMaximize,biHelp);

TborderIcons= set of TBorderIcon

Type Tfilteroptions=(foCaseInsensitive,foNoPartialCompare);

TfilterOptions=set of TfilterOptions

Келтірілген тип сипаттамалары бастапқы модульдерде сақталған.

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

Массивтің әрбір элементі индексті массив атымен белгіленеді. Паскаль тілінде индекс тік жақшаға алынып жазылады А[I]. Сондықтан, массивтің кез-келген элементіне қатынас жасауға болады. Берілген массивтің бірінші элементіне қатынас жасау үшін массив атауынан кейін бірінші индексті көрсету қажет: А[1]; массивтің екінші элементіне қатынас алу үшін: А[2].

Индекс өрнек, айнымалы немесе тұрақты болып берілуі мүмкін. Сондықтан да көп жағдайда массивті индексті айнымалылар деп те атайды. Базалық типті айнымалыларға қандай амалдар қолданса, массив элементтеріне де сондай амалдар қолданылады.

 

Бірөлшемді массив. Екіөлшемді массив немесе матрица

 

Массивтер бірөлшемді және көпөлшемді болуы мүмкін.

Егер массивтің әрбір элементі тек бір индексті болса, онда олар бірөлшемді массивтер деп аталады. Бір өлшемді массивті айнымалылар жолы немесе бағана түрінде көрсетуге болады. Егер массивтің атауында бірнеше индекс болса, онда оны көпөлшемді массив деп атайды. Екі өлшемді массивті элементтері m жолдан және п бағаннан тұратын кесте немесе матрица түрінде көрсетуге болады.

Егер программада массив пайдаланылатын болса, онда ол айнымалы (Var) бөлігінде немесе тип (Type) бөлігінде бейнеленуі қажет. Паскаль тілінде массивтер айнымалыларды сипаттау бөлімінде ARRAУ қызметші сөзімен көрсетіледі және оның типі сипатталады:

Var массив аты: Array[индекс типі] of элемент типі;

Мұндағы Array (массив), of (одан) - қызметші сөз.

Массивтердің типтер (type) бөлімінде хабарлануының жалпы түрі:

type Массив типі атауы=array[индекс типі]of элемент типі;

var массив атауы: массив типі атауы;

Массив типі атауы – массив элементтерінің жиынын сипаттайды; индекс типі – тізбектелген немесе шектелген типтерді көрсету; элемент типі – массив элементтерінің типін көрсету.

Берілген массивтің кез-келген элементтеріне арифметикалық операцияларды, салыстыру және меншіктеу операторларын қолдануға болады. Сонымен қатар, массивтерге Turbo Pascal программалау тіліндегі айнымалы типіне сәйкес келетін барлық стандартты процедуралар және функциялар қолданылады. Массивтің кез-келген бір элементіне нәтиже беру үшін меншіктеу операторы қолданылады.

 

Массив элементтерін енгізу жолдары

 

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

1. Пернетақтадан енгізу:

For I:=1 to 10 do

Begin

Writeln(‘массив элементінің мәнін енгізіңіз');

Readln(a[I]);

End;

 

2. Кездейсоқ сандармен енгізу:

For I:=1 to n do

A[I]:=random(n);

{элементтердің саны n алдын-ала берілуі керек}

 

3. Формула бойынша енгізу:

For I:=1 to 10 do

A[I]:=sin(i)-cos(i);

 

 

Екі өлшемді A[2,3] массивін пернетақтадан енгізу:

For I:=1 to 2 do

For j:=1 to 3 do

Begin

Write(‘a[‘,I,’,’,j,’]элементінің мәнін енгізіңіз’);

Read (a[I,j]);

End.

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

Бірөлшемді массивпен шығарылатын стандартты есептерге тоқталайық:

1. ең үлкен (ең кіші) элементті табу;

2. элементтердің қосындысын есептеу (шартты және шартсыз);

3. берілген шартты қанағаттандыратын элементтерді санау;

4. берілген элементті іздеу;

5. элементтің орналасқан жерін анықтау;

6. элементті өшіру;

7. элементтерді кездойсоқ жолмен таңдау;

8. екі реттелген массивті реттелген массивке біріктіру;

9. массивтерді сұрыптау және т.б.

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

1. [C.868,874,883-887]

2. [C.115-122,131-170]

3. [C.52-55]

Сұрақтар

1. Деректердің құрылымдық типі нені көрсетеді?

2. Сізге қандай деректердің құрылымдық типі белгілі?

3. Сізге қандай физикалық жолдық тип белгілі?

4. Деректердің жалпы жолдық типінің қандай түрлері бар?

5. Массивтер дегеніміз не?

6. Массивтердің қандай типтерін білесіз?

7. Жиын дегеніміз не?

8. Бос жиын дегеніміз не?

9. Жиынға қандай операцияларды қолдануға болады?

 

 

Дәріс 8. Ақпараттардың басқа түрлерін бейнелеуге арналған компоненттер

Деректердің структуралық типі. Жазбалар. Файлдар. Жазбалар.

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

 

Record

<өріс1 аты>:<өрістің типі>;

<өріс1 аты>:<өрістің типі>;

End;

 

Нұсқалық жазба жалған жазбаға ұқсайды, өрістің соңғы сандарынан құралады, алайда өрістермен қамтылған жадының облыстарын әртүрлі пайдалана алады. Жазбаның барлық нұсқалары жадының бір жерінде орналасып оларға әртүрлі аттармен қатынауға мүмкіндік береді. «Нұсқалық жазба» термині «нұсқалық тип» терминімен ортақ ештеңесі жоқ. Нұсқалық жазбаның хабарлану форматы келесідей:

Record

Case<белгі>:<белгінің типі> of

<нұсқа1>:<нұсқа1 сипаты>

<нұсқа N >:<нұсқа N сипаты>

End;

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

Мысалы. Жазбаны қолдану.

Var Man:record;

Name:String;

Note:String;

end;

...

Man.Name:='Иванов М.П.';

Man.Salary:=500;

Man айнымалысы – жалған жазба, оның атының (Name), жалақысының (Salary) және ескертуінің (Note) жазбалары болады, олардың әрқайсысының типтері бар.

Программалаушы сипатталған типтердің барлық жазбаларын қолдана алады, мысалы:

Type Point =Record

X:Longint;

Y:Longint;

End;

Trect = record

Case integer og

0:( Left, Top, Right, Bottom:Integer);

1:( TopLeft, BottomRight:Tpoint);

End;

Мұндағы Tpoint типі жалған жазба болып саналады, Trect типі – нұсқалық жазба.

0 нұсқасында жазба Integer типті жеке-жеке төрт өрістен құралады, ал 1 нұсқасында – Tpoint типті екі өрістен.

Файлдар

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

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

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

 

 

9 дәріс. Тақталар және сыртқы әрлеуге арналған компоненттер. Жүйелік диалогтар

Қосалқы программа ұғымы

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

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

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

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

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

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

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

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

 

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

Өрнектер: 1 операндтардан;

2 операция белгілерінен;

3 дөңгелек жақшалардан құралады.

Қарапайым жағдайда өрнек 1 айнымалы немесе тұрақтылардан тұруы мүмкін. Өрнек мәнінің типі орындалатын операциялардың құрамы мен операндтар типімен анықталады.

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

Операнд операцияға жүргізілетін әрекеттерді анықтайды. Операциялар унарлы және бинарлы болуы мүмкін. Унарлы операция бір операндқа тиісті және оның белгісі операнд алдынан жазылады, мысалы, –X. Бинарлы операция екі операциялар арасындағы қатынасты өрнектейді және оның белгісі операндтар арасына жазылады, мысалы, X+Y.

Дөңгелек жақшалар операциялар орындалуының ретін көрсету үшін қолданылады.

Операция типіне қарай өрнектер арифметикалық, логикалық және жолдық болады.

 

Арифметикалық өрнектер

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

Арифметикалық өрнектің мәнінің типі операнд және операциялар типімен анықталады. Егер операцияларда бүрін санды операндтар қатысса, онда операция нәтижесі бүтін санды тип болады. Егер операндтың біреуі нақты типке жатса, онда нәтиже нақты болады..

2.6. кесте – Бинарлы арифметикалық операциялар

 

Операция Белгілеу Операндтар типі Нәтиже типі
+ Қосу Бүтін санды Нақты Бүтін санды Нақты
- Алу Бүтін санды Нақты Бүтін санды Нақты
* Көбейту Бүтін санды Нақты Бүтін санды Нақты
/ Бөлу Бүтін санды Нақты Бүтін санды Нақты

 

Унарлы арифметикалық операциялар + ( белгіні сақтау) және – ( белгіні терістеу) сан белгісіне жатады және сан типін өзгертеді.

System ,Sys Utils, Math модульдерінде сандық деректермен жұмыс істеу үшін көп функциялар бар. Оларды арифметикалық өрнектерде қолдануға болады. Келесі функцияларды белгілейік:

• Abs(x) – x – абсолют мәні;

• Sqrt(x) – x – квадрат түбірі;

• Sqrt(x) – x квадраттау;

• Ln(x) – x натуралды логорифм;

• Exp(x) – санды х дәрежесіне шығару;

• Sin(x) – радианда берілген х бұрышының синусы.

Sin функциясынан басқа да тригонометриялық функциялар бар.

Функция аргументі болып сан, айнымалы, константа немесе өрнек болады.

Мысал, арифметикалық өрнектер

X+12.3)/30*sin(2*aipha)

Y+X

Exp (3)

Бүтін санды тип айнымалыларымен келесі арифметикалық операциялар жүргізуге болады.

• Div – 2 санды бөлгенде бүтін бөлігі;

• Mod – 2 санды бөлгендегі қалдық..

Мысал: Бүтін санды операндтарға арифметикалық операцияларды қодану a, b, d бүтін санды (integer) және оларға а: = 10; b:=7; d:= -56. Онда арифметикалық операциялар орындалу нәтижесінде келесі мәндер алынады:

A+7 17

56-8 48

5*d -280

56/b 8.0

56 div b 8

40 div 13 3

40 mod 13 1

Бүтін санды тип деректеріне келесі биіктік (разрядты) операциялар орындауға болады:

• Shl – солға ығысу;

• Shr – оңға ығысу;

•And –ЖӘНЕ (арифметикалық көбейту)

• Or – НЕМЕСЕ (арифметикалық қоу)

• Xor – НЕМЕСЕ арифметикалық алым

•Not – ЕШ (арифметикалық жоққа шығару).

Биттік операциялардың разряд бойынша орындалуы келесі кестеде 2.7.

 

 

Операция Сипатталуы Бит 1 Бит 2 Бит нәтижесі
Not Арифметикалық терістеу  
And Арифметикалық көбейту
Or Арифметикалық қосу
Xor Арифметикалық жою НЕМЕСЕ

 

Мысал, Биттік операцияларды қолдану.

a және b айнымалылары бүтін санды (integer) болып сипатталсын және оларға a:=186; b:=99. мәндері берілсін. Онда келесі битті операциялар нәтижесінде мынадай мәндер алынады:

Not a -187

a Or b 251

a And b 34

a Xor b 217

Мысалы, And операциясының орындалу нәтижесі келесідей:

10111010 186

01100011 99

------------------

00100010 34

Ескерту. And, Or, Xor, Not биттік операцияларынан басқа логикалық тип деректеріне қолданылатын логикллық операциялар қолданылады.

Object Pascalдәрежеге шығару операциясы жоқ. Бүтін дәрежеге шығаруды осы санға көп рет көбейту циклінде орындауға болады. Х санын оң нольдік емес дәрежеге шығару Exp(A*ln(x)) арқылы орындалады..

Және де бүтін санды типке Odd (x): Boolean функциясы қолданылады. Бұл Х өрнегінің дұрыстығын талдайды (анализ).

 

Логикалық өрнектер.

Логикалық өрнектің нәтижесі болып True немесе False логикалық мағыналары болады. Мұндай өрнектер шарты және цикл операторларында қолданылады.

Логикалық өрнектің құрамында :

• Логикалық константалар True, False;

• Boolean типті логикалық айналмалылар;

• Салыстыру операциялары (қатынастар);

• Логикалық операциялар;

• Дөңкелек жақша.

Екі мән, берілген өрнектер, айнымалылар немесе константалар арасындағы қатынасты орнату үшін келесі салыстыру операциялар қолданылады:

= - тең;

< - кіші;

> - үлкен;

<= - кіші немесе тең;

>= - үлкен немесе тең;

<> - тең емес.

Салыстыру операциялары сәйкес өрнектерді есептегеннен кейін орындалады. Операция нәтижесі False мәнін қабылдайды, егер сәйкес қатынастың орны болмаса және True егер сәйкес орны болса.

Ескерту.Логикалық операциялардың анықтығы операциялардан жоғары. Сондықтан салыстыру операциялар бар логикалық өрнек логикалық операцияның операнды болса, оны дөңгелек жақшаға жазу керек.

Логикалық операцияның орындалу нәтижесі 2.8. кестесіне сәйкес келеді және оларды логикалық өрнектерге ( логикалық тип операнды) логикалық тип болады (Boolen). And, Or, Xor логикалық операциялары бинарлы, Not – унарлы. Еске түсірейік, Object Pascal бүтін сандардың биттеріне разрядты әрекет орындайтын бір атты лог-қ операциялар бар.

Операциялар Сипаттамалар Операнд 1 Операнд 2 Нәтиже
Not Терістеу False True True False
And Логикалық ЖӘНЕ False False True True False True False True false false false true
Or Логикалық НЕМЕСЕ False False True True False True False True false true true true
Xor Жою НЕМЕСЕ False False True true False True False true False True True False

 

2.8. кесте. Логикалық операциялар

 

 

Мысал. Логикалық өрнектер.

X<10

X+17>=y

(x>a) and (x<b)

x, a, b, y айнымалылары мысалы, сандық немесе жолдық тип болуы мүмкін.

Жолдық өрнектер.

Жолдық типтің орындалу нәтижесі болып символдар жллы болып табылады. Жолдар үшін <<+>> -2 жолды қосу оперрациясын және келесі функцияларды қолдануға болады:

• Length (S): integer – S жолының ұзындығын анықтау.

• Copy(S; Index, Count: integer): String –S жолынан Count ұзындықты символды жолды шығару. Жол бағыныңқы Index позициясында символдан басталады.

• Concat (S; Index, Count: integer): String – sl, …, sn. жолдарын біріктіру

• Pos (Substr: String; S: String): integer – S жолына кіретін Substr жолбағыныңқы бастап символ позициясын анықтау, осы кезде бірінші кіріс ізделінеді. Егер жолбағыныңқы табылмаса, ноль қайтарылады.

Функциялардан басқа жолдық айнымалыларға келесі процедуралар қолданылады:

• Insert (Source: String; var S: String; Index: Integer) – Index позициясынан бастап, Source жолын S жолына енгізу.

• Delete (var S :String; Index, Count: Integer)- Index позициясынан бастап,S жолынан Count ұзындықты жолбағыныңқыны алып тастау.

• Val (S; var V; var Code: Integer)- S жолын V санына түрлендіру. Нәтиже типі санның жолда өрнектелуіне байланысты. Code параметрі операция нәтижемінің кодын қайтарады, егер операция жақсы орындалса, кері жағдайда ноль мәні қайтарылады.

• Str (x [Width [: Decimals ]]; var S)- x сандық мәнінің s жолына түрлендіру.

Белгіленген программалардан басқа да жолдармен жұмыс жасауға арналған көптеген процедуралар мен функциялар SysUtilsмодулінде бар. Кейбіреулерін көрсетейік:

• IntToStr (Value: Integer) : String –Value бүтін өрнегінің жолға түрленуі.

• StrToInt (const S: String): Integer – S жолының бүтін санға түрленуі.

• FloatToStr (volue: Extended): String- Value нақты орынның мәнісінің жолға түрленуі

• StrToFloat (const S:String):Extended- S жолының нақты санға түрленуі

• DateToStr (Date:TDate Time): String- Date өрнегінде күн мәнінің жолға түрленуі

• TimeToStr (Time: TDate Time): String- Time өрнегінде уақыт мәнінің жолға түрленуі.

• StrToDateTime (const S: String): TDate Time – S- жолының күн белгісінің форматына түрленуі.

• StrToTime (const S : String): TDate Time – S жолының уақыт белгісінің форматына түрленуі.

• Upper Case(const S: String): String – S жолдық символының жоғарғы регистр жол символына түрленуі

• Lower Case(cosnt S:String):String – S жолдық символдарының төменгі регистр жол символдарына түрленуі.

• Trim Left(cosnt S:String): String – S жолының басында пробелдер мен басқару символдарын жою.

• Trim Right(cosnt S:String): String- S жолының алдыңғы пробелдер мен басқару символдарын жою.

Ескертейік, уақыт пен күнді көрсететін айнымалылармен жұмыс жасау үшін TDateTime типі және Now(), Date(),Time(), функциялары қолданылады.

Мысал: Жолдық өрнектер.

`abcdk`+s

`мөлшер тең`+FloatToStr(x)

S айнымалысы жолдвқ тип, ал x- нақты тип.

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

1. [833-838]

2. [67-69, 115-122]

3. [C.62-68].

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

1.Өрнек неден тұрады?

2. Операнд нені білдіреді ?

3. Қандай операцияларды білесіңдер ?

4. Қандай өрнек типтерін білесіз ? Мысал келтір.

 

10 дәріс. Қолданушының графиктік интерфейсін жобалау Қарапайым операторлар.

 

Өз ішінде операторлары жоқ операторлар қарапайым операторлар деп аталады. Оларға жататындар:

- меншікті операторы;

- көшу операторы;

- бас оператор;

- процедурены шақыру операторы.

Меншіктеу операторы (МО)

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

<Оператор аты>:=<Өрнек>;

Айнымалы атының орнына массив элементтік немесе жазбаны көрсетуге болады. Меншіктеу белгісі “:=”теңдік“=”белгісін өзгеше екенін ескертейік. Меншіктеу белгісі өрнек мәнінің бірінші есептеліп, содан соң айнымалыға меншіктеледі. Сондықтан Х сандық айнымалы және белгілі мәні бар шарт кезінде келесі құрылым дұрыс:

x:=x+l;

Меншіктеу операциясының мысалдары:

var x, y: real;

n: integer;

stroke: string;

…………

n: = 17*n-l;

stroke:= `Дата`+DateToStr(Date);

x:= -12.3*sin(pi/4);

y:=23.789E+3;

Көшу операторы (КО).

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

Көшу операторының форматы: goto <Метка>;

Көшу операциясын қолдану мысалы:

Label ml;

…………

goto ml;

………….

Ml: <оператор>;

Көшу операторының көмегімен басқаруды көшу операторына дейін немесе кейін орналасқан операторларға беруге болады. Структураланған операторлар ішінде басқаруды беруге тиым свлынады және де басқа блокта орналасқан операторларға тыйым салынады.

Доверь свою работу ✍️ кандидату наук!
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой



Поиск по сайту:







©2015-2020 mykonspekts.ru Все права принадлежат авторам размещенных материалов.