Тақырып. саналушы тип.

Жоспар:

1. Саналатын тип

2. Стандартты типтер

3. Құрылымдық типтер

1.Саналатын тип.Саналатын тип өзі қабылдайтын мәндердің саналуымен беріледі, әрбір мән қандай да бір идентфикаторлармен аталып, тізімде дөңгелек жақшаның ішінде орналасады.

Мысалы

Type

Tuster= (ak,kyzyl,jasyl);

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

Type typeMonth= (jan, feb, mar, apr, may, jun, jul, aug, sep, okt, nov, dec);

Var

Month: typemonth;

Begin

If month= aug then

lbOutput.caption:=”тамаша демалыс!”;

end.

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

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

Кез-келген саналатын типтің айнымалысын алдын- ала сипаттамай- ақ хабарлауға болады, мысалы: var Col(black, white,green);

2. Программада пайдаланылатын мәліметтердің немесе шамалардың мәндері алдын ала келісілген типтердің біріне тән болуы тиіс.

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

Мәліметтердің әр типі тек өзіне ғана сәйкес келетін операциялар жиынын орындата алады. Мысалы, 1 мен 2 мәндері бүтін сандар типіне жатады, оларды қосуға, азайтуға, көбейтуге және бөлуге болады. Ал, «ІВМ» және «РС» мәндері сөз тіркесі типіне жатады, бұларды біріктіріп жазуға ғана болады («ІВМ РС»). Қосуға, азайтуға, көбейтуге, бөлуге болмайды. Кез келген тұрақты, айнымалы функция немесе өрнек өзіне тән бір типпен ғана сипатталады. Паскаль тілінде шамалардың типін көрсету міндетті болып табылады. Сондықтан программа алдына оның сипаттау бөлімінде пайдаланылатын барлық шама атаулары және оның типтері көрсетілуі қажет.

Скалярлық (қарапайым) типке шамалардың стандартты типі және жасанды тип (тағайындалған) жатады. Стандартты типтерге:

• Бүтін - INTEGER;

• Нақты - REAL;

• Логикалық - BOOLEAN;

• Тіркестік - (STRING);

• Мәтіндік (ТЕХТ) тәрізді типтер жатады.

3. Құрылымдық типтері жиымдар - ARRAҮ, жазбалар - RECORD, жиындар - SET және файлдар - FILE түрлеріне бөлінеді.

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

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

болады:

Туре <тип атауы> =<тип мәндері>;

Логикалық шамалар екілік сандар жүйесіне сәйкес «1» және «О» деген мәндерді ғана қабылдайды. Мұндағы «1» тексерілетін белгілі бір шарттың - логикалық тұжырымның орындалатынын, яғни ақиқат екенін, ал «О» сол шарттың орындалмайтынын - тұжырымның жалған екенін көрсетеді. Бұл екі мән программада ағылшын тіліндегі айтылуына сәйкес true (1) және false (О) болып жазылады.

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

Стандартты типтер. Паскаль тілінде төмендегі қарапайым типтер пайдаланылады:

• Бүтін типтер - SHORTINT, INTEGER, LONGINT, ВУТЕ, WORD;

• Нақты тип - REAL, SINGLE, DOUВLE, EXTENDED, СОМР;

• Логикалық - BOOLEAN;

• Симводық - CНAR;

• Ауқымды (диапозонды) тип;

• Саналатын тип;

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

1. Стандартты типтерге қай типтер жатады?

2. Құрылымдық типтерге қай типтер жатады?

3. Integer, real типтерінің мәні қандай?

Шектеулі тип

Жоспар:

1. Типтерге түсінік.

2. Шектеулі тип.

1. Аралық тип өзінің базалық типінің ішкі жиыны болып табылады. Базалық тип ретінде аралық типтен басқа кез келген реттелген тип алдынады.

Аралық тип өзінің ішкі мәндерінің шекаралары арқылы беріледі:

<ең кіші мән>...<ең үлкен мән>

<ең кіші мән>- аралық типтің ең кіші мәні;

<ең үлкен мән>- оның ең үлкен мәні.

Мысалы,

Type

digit = ‘0’.. ‘9’;

dig2 =48..59;

Аралық типті Type бөлімінде сипаттау міндетті емес, айнымалыларды хабарлауда тікелей көрсетуге болады. Мысалы:

Var

Date:1..31;

Month:1..12;

Ichr: ‘A’...‘Z’;

Аралық типтерді анфқтауда төмендегідей ережелердіескерген дұрыс:

· “...” екі символ бір ретінде қарастырылады, сондықтан олардың арасына бос орын қалдыруға болмайды;

· Аралықтың сол жақ шегі оң жақ шегінен аспауы тиіс.

Аралық типке барлық типтің барлық қасиеті тән, бірақ аздаған шектеулері бар. Мысалы, егер айнымалы анықталған болса,

Type

Days =(mo,tu,we,th,fr,sa,su);

Weekend = sa…su;

Var

w:weekend;

begin

….

w:=sa;

….

end.

Онда Ord (w) функциясы 5 мәнін береді, ал Pred(w) функциясы қате жөнінде хабарлайды.

Object Pascal – дың стандартты кітапханасында аралық типтердің жұмысын сүйемелдейтін екі функция бар:

High(x) – x айнымалысы жататын аралық типтің ең үлкен мәнін береді; Low(x) – аралық типтің ең кіші мәнін береді.

Атау – идентификатор программаны және программадағы тұрақтыларды, типтерді, айнымалыларды, функцияларды, файлдарды т.б белгілеп жазу үшін қажет. Идентификатор – міндетті түрде әріппен басталатын сандар мен әріптердің тізбегінен тұратын атау. Оның ұзындығын өте үлкен етудің қажеті жоқ, өйткені, атауларды теру және кейіннен есте сақтау біраз уақыт пен жады көлемін қажет етеді. Мысалы, x, X1, cymma, DT3.

Идентификатор стандартты және бейстандартты болып бөлінеді. Бейстандартты атауды тұтынушы өзі тағайындайды. Пайдаланушы қойған бейстандартты атауларға қойылатын талаптар:

1. Атау тек латын әріптермен басталуы тиіс. Тек белгілер атауы ғана цифрдан да әріптенде бастала береді.

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

3. Қатар орналасқан екі атау арасында кем дегенде бір бос орын белгісі болуы қажет.

4. Атаудағы символдар саны 127 –ден аспауы қажет.

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

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

Тұрақтыларға бейстандарт идентификаторлар атау ретінде берілуі тиіс. Барлық тұрақтылар программаның сипаттау бөліміндегі const түйінді сөзінен басталатын бөлікте көрсетілуі тиіс. Оның жазылу пішімі келесідей:

Const Min=1000; Max=1000000;

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

Var <идентификатор> : <тип> ;

Мысалы:

Var a,b:integer;

Sum, baga: real;

Айнымалылар қарапайым және индексті болуы мүмкін. Қарапайым айнымалылар өз атаулары бойынша жазылады. Мысалы, delta, x, y, resultm, nuber_1. Индексті айнымалыларға массив элементтері жатады.

Программада пайдаланылатын мәліметтердің немесе шамалардың мәндері Паскаль тіліндегі алдын ала келісілген типтердің біріне тән болуы тиіс.

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

Бүтін сан түріндегі типтер. Паскаль тілінде бүтін шамалар үшін бес стандартты тип пайдаланылады, олардың сипаттамасы келесідей:

Типі

Мәндерінің өзгеруі

BYTE

0 – 255

SHORTINT

-127 – +128

INTEGER

-32768 – +32767

WORD

0 – 65535

LONGINT

-2147483648 – +2147483647

Ондық сандар бүтіні мен бөлшегін бөлетін үтірі жылжымалы және тұрақты түрде жазылады. Үтірі математикадағыдай жазылады, бірақ үтір орнына нүкте қойылады. Мысалы, 12.5, 49.89.

Нақты сан REAL сөзімен анықталады оның диапазоны: -1.7 *1038 – 1.7 *1038.

Логикалық типтегі шамалар (BOOLEAN) негізінен екі мән ғана қабылдайды: TRUE – ақиқат, FALSE – жалған. Олар компьютер жадында бір байт орын алады.

Символдық типтегі шамалар (CHAR) мән ретінде тек бір таңбаны ғана қабылдай алады. Мәннің символ екендігін көрсету үшін оны апостроф ішіне алып жазады. Мысалы, ‘a’, ‘5’, ‘K’.

Тіркестік типтегі шамалар (STRING) апостроф ішіне алынған символдар тізбегі қабылдайды. Мысалы, ‘MAMA’, ‘fbvv’, ‘654654’.

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

1. Бүтін типті ата.

2. Нақты типке қандай сандар жатады?

3. Символдық типті ата.

1.8.тақырып.Параметрлі цикл операторы.

Жоспар:

1. Цикл ұғымы.

2. Параметрі бар цикл.

3. Цикл ішіндегі цикл.

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

Есеп. 1-ден 8-ге дейінгі бүтін сандардың квадраттары мен кубтарын есептеп шығару . (a-дан b-ға дейін).

Ерекшелігі: бірдей амалдар 8 рет орындалады.

Қайталану саны алдын-ала белгілі болған кезде for операторы қолданылады. Бұл оператор параметрлі цикл операторы деп те аталады, себебі қайталау саны функция аргументі (айнымалы) сияқты циклдің параметрі қызметін атқаратын Параметр өзінің алғашқы мәнінен соңғы мәніне дейін бірлік қадаммен өзгеру барысындациклге кіретін бір немесе бірнеше операторды қайталап орындауды атқарады. Оператор For сөзінен басталатын тақырыбынан және цикл тұлғасынан тұрады.

Егер қадамның мәні 1-ге тең болса, онда қадам қызметші сөзін жазбауға болады.

1) for X:=Xбас to Xсоң do қадам X = 1-ге тең

begin

цикл денесі

end;

2) for X:=Xбас downto Xсоң do қадам X = -1-ге тең

begin

цикл денесі

end;

мұндағы Xбас , Xсоң – цикл параметрінің бастапқы және соңғы мәндерін

анықтайтын өрнектер;

for ... do - цикл тақырыбын анықтайтын түйінді сөздер;

for – үшін, to - дейін , do – орындау, downto – кері қарай деген мағынаны береді.

Басқару айнымалысы арқылы беріледі.

2. Цикл– белгілі бір әрекеттер тізбегінің бірнеше рет қайталанып орындалуы.

• қайталану саны алдын-ала белгілі цикл

• қайталану саны алдын-ала белгісіз цикл (шартты циклдер)

Программада цикл for, while, repeat көмегімен жүзеге асырылады.

1. FOR – параметрлі циклдік оператор;

2.WHILE – алдын – ала циклдің орындалу шартын тексеретін оператор;

3.REPEAT – соңында циклдің тоқтау шартын тексеретін оператор.

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

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

Диаграммағасәйкес оның жазылуы екі түрде болады:

for <айнымалы >:=<S1>to <S2>do <оператор>;

for <айнымалы >:=<S1>downto <S2>do <оператор>;

Мұндағы S1 және S2- цикл параметрінің алғашқы және соңғы мәндерін анықтайтын өрнектер; for...do-цикл тақырыбын анықтайтын түйінді сөздер;

<оператор>-цикл тұлғасы. FOR-үшін, To-дейін, Do-орындалу деген мағынаны беретін түйінді сөздер. Параметрдің өзгеру қадамына байланысты операторда To немесе Downto (Down-төмен, To-дейін, Downto-кері қарай) түйінді сөздері пайдаланылады. Егер қадам +1-ге тең болса, онда операторда To, ал қадам -1-ге тең болса, онда Downto сөзі қолданылады.

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

1-мысал. 1-ден 100-ге дейінгі натурал сандардың қосындысын табу қажет.

program cymma;

var i,S:integer;

begin

S:=0;

for i:= 1 to 100 do S:=S+i;

writeln('қосынды=',S:6);

END.

Цикл ішіндегі циклдер

Бағдарламалау тілінде бір циклдің ішінде екінші цикл, оның ішінде үшінші цикл тағыда сондай сондай бір біріне қабаттастырып ұйымдастыруға болады. Егер бір циклдің денесінің құрамында басқа бір циклдер болса,ондай циклді сыртқы цикл дейді. Ал цикл басқа бір циклдің құрамында болса, ондай циклді ішкі цикл дейді. Сыртқы және ішкі циклдерді ұйымдастыру тәртібі жай циклдерді ұйымдастыруға ұқсайды. Тек қана мынадай ережені есте сақтаған жөн: Ішкі циклдердің барлық операторлары сыртқы циклдің денесінде болуы шарт.

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

1. Цикл деген не?

2. Циклдер неше топқа бөлінеді?

3. Қайталау саны белгілі цикл қандай?

4. Қайталау цикл қандай?

1.10. тақырып. Итерациялық типтегі цикл операторлары.

Жоспары:

1. Итерациялық тип операторларына түсінік.

2. While … Do операторы.

3. Repeat .. until операторы.

1. Итерациялық тип операторларына түсінік. Программада цикл for, while, repeat көмегімен жүзеге асырылады.

1. FOR – параметрлі циклдік оператор;

2.WHILE – алдын – ала циклдің орындалу шартын тексеретін оператор;

3.REPEAT – соңында циклдің тоқтау шартын тексеретін оператор.

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

Қайталау (цикл) операторлары белгілі бір операторды немесе операторлар тобын бірнеше рет орындау мүмкіндігін ұйымдастыруға қолданылады. Қайталанатын операторлар тобы циклдің денесін құрайды. Паскаль цикл ұйымдастырудың үш түрі бар: While (әзір), Repeat (дейін), For (параметрлі цикл). While Repeat операторлары қайталау саны белгісіз, бірақ циклге кіру немесе циклден шығу шарттары белгілі жағдайда қолданылады. Егер қайталау саны белгілі болса, онда параметрлі циклді пайдаланған жөн.

2. While … Do операторы.

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

Жазылу: While <шарт> do <циклдің денесі>;

Цикл денсін әрбір қайталау алдында шарт тексеріледі. Шарт ақиқат болаған жағдайда, цикл денесі орындалады, әйтпесе программа келесі операторға көшеді. Егер шарт алғаш тексерілгенде, жалған болса, цикл денесі бір рет те орындалмастан программа цикл соңына шығады.

Енді While-Do операторының жұмыс схемасы түрінде көрсетейік.

Мысалы: а, в (а>1) сандары берілген. Экранда 12Р°1,Р°2,Р°3'> ... шексіз тізбегінің берілген в санынан кіші мүшелерін азайту керек.

Бұл программаның орындалу барысында с айнымалысы 12Р°1,Р°2,Р°3'>... мәндерін біртіндеп қабылдайды, с-ның мәні в-ге ең не артық болғанша өзгеріп отырады да, соған сәйкес болса, экранға еш нәтиже шықпайды. Мұнда цикл денесі құрмалас оператор болғандықтан операторлық жақша begin, end қолданылады.

3.Repeat – Unit операторы. Repeat қайталау операторы While операторына ұқсас, айырмашылығы - қайталану шартты цикл соңында тексеріледі, сондықтан ол кем дегенде бір рет орындалатын болады. Екінші өзгешелігі – цикл тұлғасы шарт жалған болғанда қайталанып, ол ақиқат болған кезде циклді орындау доғарылады.

Мұндағы цикл денесі і>10 шарты орындалмаса, қайталана береді. Программадағы Repeat Until операторының жұмысы суретте көрсетілгендей. Цикл денесінен Goto оның операторы арқылы шығуға болады.

FOR-DO, FOR-DOWNTO

FOR-DO циклдік операторы қайталау саны алдын ала белгілі болған жағдайда қолданылады. Бұл оператор екі түрлі беріледі.

Жазылуы:

For<циклдік параметр>:=<алғашқы мән>to<соңғы мән>do<циклдің денесі>;

For< циклдік параметр >:=<соңғы мән >downto<алғашқы мән>do<циклдің денесі>;

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

Циклдік оператор орындалғанда, бірінші өрнектің мәні есептеліп, FOR-DO (FOR-DOWNTO) операторында циклдік параметрге алдымен алғашқы мәнді меншіктейді. Басқару айнымалысының мәні 1-ге тең қадаммен біртіндеп өзгеріп отырады DO қызметші сөзінен кейінгі цикл денесі басқару параметрінің әрбір мәні үшін бір реттен орындалып отырады. Егер басқару айнымалысының алғашқы мәні соңғы мәнінен артық немесе кем болса, онда цикл денесі бір рет те орындалмайды. Параметрлі циклдің жұмысын анық көреміз.

Мысалы: параметрлі циклдердің көмегімен бізге жиі кездесетін n! Мәнін есептеу программасын екі түрмен көрсетейік:

procedure TForm1.Button1Click(Sender: TObject);

var

Num, i : Integer;

Res : Integer;

begin

Num := StrToInt(Edit1.Text);

Res := 1;

for i := 2 to Num do Res := Res * i;

Label1.Caption := IntToStr(Num) + '! = ' + IntToStr(Res);

end;

end.

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

1. Қандай алгоритмдер циклдік деп аталады?

2. Қайталау командасы қалай жазылады және қалай орындалады?

3. WHILE операторының жазылу ережесі қандай?

4. WHILE және REPEAT операторының бір-бірінен өзгешелігі неде?

5. Цикл ұйымдастыру үшін қандай жағдайда FOR операторын пайдаланған қолайлы және оның тақырыбы қалай жазылады?

Наши рекомендации