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

Жоспар:

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 операторын пайдаланан олайлы жне оны таырыбы алай жазылады?