Турбо Паскальдағы бір өлшемді масивтер
: Турбо Паскальдағы бір өлшемді масивтер
Мамандық: 3707002 Ақпараттық жүйелер (қолдану облыстары
бойынша)
Студент: Жақып Дархан Нұрлыбек-ұлы
Оқу тобы: ИС 21-0
Жетекші: Мырзаева Мөлдір Сабырханқызы
Көкшетау, 2011
Мазмұны
Кіріспе ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ... ... ... ... ... ... ... ...3
1. Мәліметтер
типтері ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ... 4
1.1. Карапайым типтер ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . ... 4
1.2.Құрылымды
типтер ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..8
2. Бір өлшемді
масивтер ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... .12
2.1.Масивтерді іріктеу
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ... ...14
2.2.Масивте берілген элементті
іздеу ... ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ..16
3.Екі өлшемді
масивтер ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ..19
Қорытынды ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ... ... ... ... ... ... 21
Қолданылған
әдебиеттер ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ..22
Бағдарламалардың листингтері
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
.23
Кіріспе
Турбо Паскальда кез келген мәліметтер, константалар, айнымалылар,
функциялар мәндері немесе өрнектер өз типтерімен сипатталады. Тип, қандай
да бір объекті қабылдай алатын мүмкін мәндердің көптігін, және де оған
қолданылатын мүмкін операциялардың көптігін анықтайды. Сонымен бірге, тип,
компьютер жадысындағы мәліметтердің ішкі берілу форматын анықтайды. Турбо
Паскаль мәліметтер типтерінің тармақталған құрылымымен сипатталады. Турбо
Паскальдағы типтер қарапайым (реттік, заттық) және құрылымды (массивтер,
жазбалар, көптіктер) типтерге бөлінеді. Және де жаңа мәліметтер типтерін
жасау механизмі қарастырылған, бұның арқасында бағдарламада қолданылатын
типтердің жалпы саны қажетіне қарай көп болуы мүмкін. Бұл курстық жұмыста
Турбо Паскальда қолданылатын массивтер құрылымды типі сипатталады. Және де
оларды қолдану тәсілдері берілген.Қарапайым типтер қатарына жататын
стандарты (Integer, real) және қолданушылар (тізбектелген тип) типтерінде
бір айнымалы сақтау үшін, негізінен копьютер жадысының бір ғана ұяшығы
қолданылады. Бірақ көптеген программалау есептерінің шешімін табу
барысында әрбір элементтің деректерін жеке айнымалыға сақтау орнына, оларды
тізбектеп бір жерде сақтау анағұрлым тиімді болып табылады. Қарапайым
Паскальды өндеудегі А.Хейлсбергтің үлкен енбегінің нәтижесінде Turba
Pascal Қазіргі заман талабына сай, қуатты программалау жүйесіне айналды.
Turbo Pascal – жоғарғы деңгейлі программалау жүйесі. Оның логикалық
құрылымы әр түрлі есептерді дәл шешуге көмегін тигізеді. Сондықтан,
оқушылар мен студенттерге программалаудың негізін Turbo Pascal тілін оқытып-
үйретуден бастап, программалаудың қыр-сырын меңгертудің манызы зор.
1. Мәліметтер типтері
Турбо Паскальдағы типтер, қарапайым және құрылымды типтерге
бөлінеді.
1. Қарапайым типтер
Қарапайым мәліметтер типтеріне реттік және заттық типтер жатады.
Реттік типтердің ерекшелігі болып, олардың әр қайсысы мүмкін
мәндердің шектеулі санын қабылдай алады. Бұл мәндерді нақты түрде реттеуге
болады, сондықтан олардың әр қайсысымен қандай да бір бүтін санды – реттік
нөмірді салыстыруға болады.
Заттық типтер, нақты айтқанда, заттық санның ішкі берілу форматымен
анықталатын мәндердің шектеулі санын қабылдай алады. Бірақ бұл сан өте
үлкен болуы мүмкін, сондықтан олардың әр қайсысын бүтін санмен (оның
нөмірімен) салыстыруға мүмкін емес.
Реттік мәліметтер типтері. Реттік типтерге бүтін типтер, логикалық
және символдық типтер, аралық және санап шығу типтері жатады. Бұл типтердің
реттік тип деп аталуының себебі, олардың мүмкін мәндері, белгілі ретпен
орналасқан элементтердің шектеулі санынан тұратын тізбекті береді. Реттік
тип элементінің әрқайсысының, оның алдында және одан кейін орналасатын
элементтері болады. Мысалы, 2000 бүтін мәннің алдынғы элементі (1999 мәні)
және кейінгі элементі (2001 мәні) бар. Реттік тип элементтерін белгілі
ретпен орналастырып, мысалы өсуі бойынша, нөмірлеуге болады. Реттік типтің
кез келгеніне X өрнегі мәнінің реттік нөмірін қайтаратын ord(X) функциясын
қолдануға болады. Бүтін типтер үшін ord(X) функциясы X-тың өз мәнін
қайтарады, басқаша атйқанда кез келген бүтін типке жататын X үшін ord(X) =
X мәнін. Ord(X) функциясын логикалық және символдық типтерге, және де
тізбелеу типтеріне қолданғанда, логикалық типтер үшін 0 ден 1-ге дейнгі
аралықтағы, символдық типтер үшін 0 ден 255-ке дейінгі аралықтағы және
тізбелеу типі үшін 0 ден 65535-ке дейнгі аралықтағы оң бүтін санды береді.
Аралық типі негізгі реттік типтің барлық қасиеттерін сақтайды, сондықтан
оған ord(X) функциясын қолданғандағы нәтижесі осы типтің қасиеттеріне
байланысты болады.
Бүтін типтер мәнінің мүмкін аралығы, бір, екі немесе төрт байтты
қабылдайтын олардың ішкі берілуіне тәуелді болады. Төменде бүтін типтердің
атаулары, олардың байтпен берілген ішкі көрсетілуінің ұзындығы және мүмкін
мәндердің аралығы беріледі.
Атауы Ұзындығы, Мәндердің аралығы Типтің құаты
байтпен
Byte 1 0 ден 255 ке дейін 256
ShortInt 1 –128 ден +127-ге дейін 256
Word 2 0 ден 65535-ке дейін 65536
Integer 2 –32768 ден +32767-ге дейін 65536
LongInt 4 –2147483648 ден +2147483647 4294497296
дейін
Бүтін санды типтерге қолданылатын стандартты процедуралар мен
функциялар келесі кестеде берілген. Кестеде b, s, w, i, l әріптерімен
сәйкес Byte, ShortInt, Word, Integer және LongInt типтері берілген, x – бұл
типтердің кез келгенінің өрнегі; vb, vs, vw, vi, vl, vx әріптерімен сәйкес
типті фйнымалылар белгіленген. Тік бұрыш жақшалардың ішінде қажетті емес
параметр көрсетіледі.
Үндеу Нәтиже типі Әрекеті
abs(x) x х модулін қайтарады
chr(b) Char Оның коды боынша символды қайтарады
dec(vx[,i]) – vx мәнін i-ға, ал i болмаса 1-ге
inc(vx[,i]) – кемітеді
vx мәнін i-ға, ал i болмаса 1-ге
Hi(i) Byte үлкейтеді
Hi(w) Byte Аргументтің үлкен байтын қайтарады
Lo(i) Byte Аргументтің үлкен байтын қайтарады
Lo(w) Byte Аргументтің кіші байтын қайтарады
odd(l) Boolean Аргументтің кіші байтын қайтарады
Егер аргумент тақ сан болса, True
Random(w) Параметрдегідей қайтарады
0 ден (w–1)-ге дейінгі аралықтағы
біргелкі орналастырылған кездейсоқ санды
sqr(x) x қайтарады
swap(i) Integer Арументтің квадратын қайтарады
swap(w) Word Сөздегі байттардың орынын ауыстырады
Сөздегі байттардың орынын ауыстырады
Логикалық типтің мәндері ретінде адын ала жарияланған False (жалған)
немесе True (ақиқат) константалардың бірі бола алады. Оларға келесі
ережелер тура болады:
ord(False) = 0;
ord(True) = 1;
False True;
succ(False) = True;
pred(True) = False.
Логикалық тип реттік типтерге жататындықтан, оны есептік типті
операторда қолдануға болады, мысалы:
var
l: Boolean;
begin
for l := False to True do ...
Символдық типтің мәні ретінде компьютердегі барлық символдардың
көптігі болады. Әрбір символға 0 ден 254-ке дейінгі аралықтағы бүтін сан
жазылып қойылады. Бұл сан символдың берілуінің ішкі коды қызметін атқарады,
оны ORD функциясы қайтарады. Кодтау үшін ASCII коды қолданылады.
Char типіне қатынас операциялары және кіріктірілген функциялар
қолданылады:
▪ chr(B) – Char типті функция; Byte типті B өрнегін символға өзгертеді
және оны өзінің мәнімен қайтарады.
▪ UpCase(CH) – Char типті функция; егер CH жолдық латын әрпі болса,
жазбаша әріпті қайтарады, кері жағдайда CH символының өзін қайтарады,
мысалы:
var
c1,c2: Char;
begin
c1 := UpCase(‘s’);
c2 := UpCase(‘ф’);
WriteLn(c1, ‘’,c2)
end.
Заттық мәліметтер типтері. Заттық типтер, заттық сандарды (бүтін және
бөлшек бөлігі бар сандар) көрсетеді. Паскальда заттық типтердің бес түрі
бар. Заттық типтер, олармен байланыстағы мәндердің аралығымен және
дәлдігімен ажыратылады.
Заттық типтер келесі кестеде келтірілген:
Ұзындығы, Атауы Мәнді сандар саны Ондық ретті аралық
байт
4 Single 7...8 –45...+38
6 Real 11...12 –39...+38
8 Double 14...16 –324...+308
10 Extended 19...20 –4951...+4932
8 Comp 19...20 –2x1063+1...+2x1063–1
Айтылғандай, Паскаль заттық типтердің мол гаммасымен сипатталады,
бірақ Singl, Double және Extended типтеріне кіру тек компиляцияның ерекше
режимдерінде ғана мүмкін болады. Өйткені, бұл типтер жылжымалы нүктелі
арифмктиканың аппараттық қолдауына негізделген және оларды тиімді қолдану
үшін компьютер құрамына арифметикалық сопроцессоры кіру керек. Турбо
Паскаль компиляторы кез келген компьютерлерде (сопроцессоры болса да,
болмаса да) жұмыс істейтін және кез келген заттық типті қолданатын
бағдарламаларды құрастыруға мүмкіндік береді.
Арифметикалық сопроцессор сандарды әрқашан Extended форматында
өңдейді. Real типі сопроцессорсыз жұмыс істеуге оңтайландырылған. Comp
типі, Турбо Паскальда экспоненциалды және бөлшек бөлігі жоқ заттық сан
түрінде беріледі.
Заттық мәліметтермен жұмыс істеу үшін төмендегі кестеде берілген
кіріктірілген математикалық функциялар қолданылуы мүмкін. Кестедегі Real
заттық типті білдіреді, ал Integer кез келген бүтін типті білдіреді.
Үндеу Параметр Нәтиже Ескертпе
типі типі
abs(x) Real, Аргумент Аргумент модулі
Integer типі
ArcTan(x) Real Real Арктангенс (радандар мәні)
cox(x) Real Real Косинус, радианмен берілген бұрыш
exp(x) Real Real Экспонента
frac(x) Real Real Санның бөлшек бөлігі
int(x) Real Real Санның бүтін бөлігі
ln(x) Real Real Натуралды логарифм
pi – Real π = 3,141592653
Random – Real 0...[1] аралығында біргелкі
орналастырылған кездейсоқ сан
Random(x) Integer Integer 0...(х–1) аралығында біргелкі
орналастырылған бүтін кездейсоқ сан
Randomize – – Кездейсоқ сандардың генераторының
инициациясы
sin(x) Real Real Синус, радианмен берілген бұрыш
sqr(x) Real Real Аргументтің квадраты
sqrt(x) Real Real Квадратты түбір
2. Құрылымды типтер
Құрылымды типтердің кез келгені (Турбо Паскальда олар төртеу:
массивтер, жазбалар, көптіктер және файлдар) осы типті құрайтын
элементтердің көптігімен сипатталады, басқаша айтқанда құрылымды типтің
айнымалысы немесе константасы әрдайым бірнеше компонентті қамтиды. Әрбір
компонент, өз кезегінде құрылымды типке жатуы мүмкін, бұл типтердің кірігуі
жайлы айтуға мүмкіндік береді. Турбо Паскаль типтердің кірігу тереңдігінің
еркін болуын рұқсат етеді, бірақ олардың кез келгенінің ішкі көрсетілімдегі
қосылған ұзындығы 65520 байттан аспау керек.
Стандартты Паскальмен сәйкестіріліп Турбо Паскальда құрылымды типті
жазу алдында, компиляторға құрылымды типті объектілерге арналған жадыны
мүмкіндігінше үнемдеуге бұйрық беретін packed резервтелген сөзін қоюға
рұқсат етілген; бірақ компилятор нақты алғанда бұл нұсқауды елемейді: Турбо
Паскальда мәліметтердібуып-тию мүмкіндігінше автоматты түрде орындалады.
Жазбалар. Жазба – жазба өрістері деп аталатын, компоненттердің
белгіленген санынан тұратын мәліметтер құрылымы. Массивтерге қарағанда
жазба компоненттері (өрістері) кез келген (аралас) типті болуы мүмкін.
Жазбаның қандайда бір компонентіне сілтеме алу үшін өрістерге ат беріледі.
Жазба типін жариялау құрылымы келесі түрде болады:
тип аты = record өрістер тізімі end
Мұнда: тип аты – дұрыс идентификатор; record, end – резервтелген сөздер
(жазу, соңы); өрістер тізімі – арасында нүктелі үтір қойылатын жазбалар
бөлімдерінің тізбегін білдіретін өрістер тізімі.
Жазбаның әрбір бөлімі бір бірінен үтірмен ажыратылатын бір немесе
бірнеше өрістердің идентификаторларынан тұрады.
Массивтегідей, жазба типінің айнымалы мәнін ұқсас типтегі басқа
айнымалыға меншіктеуге болады, мысалы:
a := b;
Жазбаның әрбір компонентіне қол жеткізуге болады, егер құрамды атауды
қолданатын болсақ, б.а. айнымалының атын, содан кейін нүктені және өріс
атын белгілеу керек:
a.day := 27;
b.year := 1939;
Жазба өрістеріне кіруді жеңілдету үшін, with біріктіру операторы
қолданылады:
with айнымалы do оператор
Мұнда: with, do – түйінді сөздер; айнымалы – жазба типі айнымалысының
аты, оның артынан кіріктірілген өрістер тізімі жүруі мүмкін; оператор –
Турбо Паскальдың кез келген операторы
Турбо Паскальда вариантты деп аталатын өрістері бар жазбаларды
қолдануға болады, мысалы:
tupe
Forma = recoed
Name: String;
case Byte of
0:(BirthDay: String [40]);
1:(Country: String [20];
EntryPort: String [20];
EntryDate: 1..31;
ExitDate: 1..31)
end;
Вариантты бөлікті ашатын case...of сөйлемі сәйкес таңдау операторына
сырттай ұқсас келеді, бірақ шынында тек вариантты бөліктің басын
белгілейтін өзіндік қызметті сөз ролін ғана атқарады. Сондықтан вариантты
бөліктің соңына case...of сөйлеміне тіркес ретінде end түйінді сөзін қоймау
керек, өйткені вариантты бөлік ылғи жазбаның соңында тұрғаныдқтан, оның
аяғында end сөзі бәрібір тұрады, бірақ тек record сөзінің тіркесі ретінде.
Case...of сөйлеміндегі таңдау кілтін компиялтор иелемейді: Турбо Паскаль
кілтке бір ғана талап қояды – қандай да бір стандартты немесе алдынала
жарияланған реттік типті анықтау. Және бұл типтің өзі ары қарай орналасқан
вариантты өрістердің санына да, таңдау константаларының сипатына да еш
қандай ықпал жасамайды. Стандартты Паскальда таңдау кілті ретінде реттік
типті айнымалыны көрсету қажет, және де бағдарламаның орындалатын бөлігінде
бұл айнымалыға мән тағайында арқылы, өрістер таңдауына ықпал ажасуға
болады. Турбо Паскальда бұдан басқа, таңдау кілтінің өрісінде реттік типті
айнымалыны көрсетуге болады және бағдарламада оған мән тағайындауға болады,
бірақ бұл өрісті таңдауға ықпал жасамайды.
Өрістердің аттары, олар жарияланған жазба аралығында бірегей болу
керек, бірақ егер жазбаларда өріс-жазбалары болса, басқаша айтқанда бірінің
ішінде бірі орналасатын болса, кірігудің әр деңгейінде аттардың қайталануы
мүмкін.
Көптіктер. Көптіктер – бұл, логикалық тұрғыдан бір бірімен
байланысқан біртипті объектілер жиынтығы. Объектілер арасындағы байланыс
сипаты тек бағдарламаушымен жобаланып, Турбо Паскальмен қадағаланбайды.
Көптікке кіретін элементтер саны 0 ден 256-ға дейінгі аралықта ауысуы
мүмкін (элементтері жоқ көптікті – бос деп атайды). Өзінің элементтер
санының тұрақсыздығымен көптіктер массивтер мен жазбалардан ерекшеленеді.
Екі көптік эквивалентті болып, тек олардың барлық элементтері бірдей
болғанда ғана саналады, сонымен бірге көптіктегі элементтердің орналасу
реті қандай болса да бәрібір. Егер бір көптіктің барлық элементтері басқа
көптікке де кіретін болса, онда бірінші көптік екінші көптікке қосылуы
жайлы айтылады. Бос көптік кез келген басқа көптікке кіруі мүмкін.
Көптік типінің сипатталуы келесі түрде болады:
тип аты = set of негізгі тип
Мұнда: тип аты – дұрыс идентификатор; set, of – резервтелген сөздер;
негізгі тип – көптіктің элементтерінің негізгі типі, олардың ретінде
Word, Integer, LongInt басқа кезкелген реттік тип қолданылуы мүмкін.
Көптіктермен келесі операцияларды жасауға болады:
▪ Көптіктердің қиылысуы (*) – нәтиже екі көптікке де жалпы болатын
элементтерді қамтиды, мысалы, жоғарыдағы мысалдағы s4*s6 [3] қамтиды,
s4*s5 – бос көптік.
▪ Көптіктерді біріктіру (+) – нәтиже, жетпейтін элементтер екінші
көптіктен толықтырлған бірінші көптіктің элементтерін қамтиды,
жоғарыдағы мысалдағы s4+s5 [0,1,2,3,4,5,6] қамтиды, ал s5+s6 –
[3,4,5,6,7,8,9] қамтиды.
▪ Көптіктердің айырмасы (–) – нәтиже, екінші көптікке жатпайтын
бірінші көптіктің элементтерін қамтиды, жоғарыдағы мысалда s6–s5
[3,6,7,8,9] қамтиды, ал s4–s5 [0,1,2,3,6] қамтиды.
▪ Эквиваленттігін тексеру (=) – егер екі көптік эквивалентті болса
True-ді қайтарады.
▪ Эквивалент еместігін тексеру () – егер екі көптік эквивалент
болмаса True-ді қайтарады.
▪ Бірінші көптіктің екінші көптікке кіруін тексеру (=) – егер бірінші
көптік екіншісіне кірсе, True-ді қайтарады.
▪ Екінші көптіктің біріншісіне кіруін тексеру (=) – егер екінші
көптік біріншісіне кірсе, True-ді қайтарады.
Жолдар. Турбо Паскальдағы String (жол) типі мәтіндерді өңдеу үшін кең
қолданылады. Ол array[0..N] of Char символдарының бір өлшемді массивына
ұқсас келеді, бірақ массивтен ерекшелігі жол-айнымалысындағы символдар саны
0 ден N-ға дейінгі аралықта ауысуы мүмкін, мұндағы N – жолдағы символдардың
максималды саны. N мәні String[N] типін жариялаумен анықталады және 255-тен
аспайтын реттік типтің кез келген константасы бола алады. Турбо Паскаль N-
ді көрсетпеуді рұқсат етеді, бұл ... жалғасы
Мамандық: 3707002 Ақпараттық жүйелер (қолдану облыстары
бойынша)
Студент: Жақып Дархан Нұрлыбек-ұлы
Оқу тобы: ИС 21-0
Жетекші: Мырзаева Мөлдір Сабырханқызы
Көкшетау, 2011
Мазмұны
Кіріспе ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ... ... ... ... ... ... ... ...3
1. Мәліметтер
типтері ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ... 4
1.1. Карапайым типтер ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . ... 4
1.2.Құрылымды
типтер ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..8
2. Бір өлшемді
масивтер ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... .12
2.1.Масивтерді іріктеу
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ... ...14
2.2.Масивте берілген элементті
іздеу ... ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ..16
3.Екі өлшемді
масивтер ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ..19
Қорытынды ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ... ... ... ... ... ... 21
Қолданылған
әдебиеттер ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ..22
Бағдарламалардың листингтері
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
.23
Кіріспе
Турбо Паскальда кез келген мәліметтер, константалар, айнымалылар,
функциялар мәндері немесе өрнектер өз типтерімен сипатталады. Тип, қандай
да бір объекті қабылдай алатын мүмкін мәндердің көптігін, және де оған
қолданылатын мүмкін операциялардың көптігін анықтайды. Сонымен бірге, тип,
компьютер жадысындағы мәліметтердің ішкі берілу форматын анықтайды. Турбо
Паскаль мәліметтер типтерінің тармақталған құрылымымен сипатталады. Турбо
Паскальдағы типтер қарапайым (реттік, заттық) және құрылымды (массивтер,
жазбалар, көптіктер) типтерге бөлінеді. Және де жаңа мәліметтер типтерін
жасау механизмі қарастырылған, бұның арқасында бағдарламада қолданылатын
типтердің жалпы саны қажетіне қарай көп болуы мүмкін. Бұл курстық жұмыста
Турбо Паскальда қолданылатын массивтер құрылымды типі сипатталады. Және де
оларды қолдану тәсілдері берілген.Қарапайым типтер қатарына жататын
стандарты (Integer, real) және қолданушылар (тізбектелген тип) типтерінде
бір айнымалы сақтау үшін, негізінен копьютер жадысының бір ғана ұяшығы
қолданылады. Бірақ көптеген программалау есептерінің шешімін табу
барысында әрбір элементтің деректерін жеке айнымалыға сақтау орнына, оларды
тізбектеп бір жерде сақтау анағұрлым тиімді болып табылады. Қарапайым
Паскальды өндеудегі А.Хейлсбергтің үлкен енбегінің нәтижесінде Turba
Pascal Қазіргі заман талабына сай, қуатты программалау жүйесіне айналды.
Turbo Pascal – жоғарғы деңгейлі программалау жүйесі. Оның логикалық
құрылымы әр түрлі есептерді дәл шешуге көмегін тигізеді. Сондықтан,
оқушылар мен студенттерге программалаудың негізін Turbo Pascal тілін оқытып-
үйретуден бастап, программалаудың қыр-сырын меңгертудің манызы зор.
1. Мәліметтер типтері
Турбо Паскальдағы типтер, қарапайым және құрылымды типтерге
бөлінеді.
1. Қарапайым типтер
Қарапайым мәліметтер типтеріне реттік және заттық типтер жатады.
Реттік типтердің ерекшелігі болып, олардың әр қайсысы мүмкін
мәндердің шектеулі санын қабылдай алады. Бұл мәндерді нақты түрде реттеуге
болады, сондықтан олардың әр қайсысымен қандай да бір бүтін санды – реттік
нөмірді салыстыруға болады.
Заттық типтер, нақты айтқанда, заттық санның ішкі берілу форматымен
анықталатын мәндердің шектеулі санын қабылдай алады. Бірақ бұл сан өте
үлкен болуы мүмкін, сондықтан олардың әр қайсысын бүтін санмен (оның
нөмірімен) салыстыруға мүмкін емес.
Реттік мәліметтер типтері. Реттік типтерге бүтін типтер, логикалық
және символдық типтер, аралық және санап шығу типтері жатады. Бұл типтердің
реттік тип деп аталуының себебі, олардың мүмкін мәндері, белгілі ретпен
орналасқан элементтердің шектеулі санынан тұратын тізбекті береді. Реттік
тип элементінің әрқайсысының, оның алдында және одан кейін орналасатын
элементтері болады. Мысалы, 2000 бүтін мәннің алдынғы элементі (1999 мәні)
және кейінгі элементі (2001 мәні) бар. Реттік тип элементтерін белгілі
ретпен орналастырып, мысалы өсуі бойынша, нөмірлеуге болады. Реттік типтің
кез келгеніне X өрнегі мәнінің реттік нөмірін қайтаратын ord(X) функциясын
қолдануға болады. Бүтін типтер үшін ord(X) функциясы X-тың өз мәнін
қайтарады, басқаша атйқанда кез келген бүтін типке жататын X үшін ord(X) =
X мәнін. Ord(X) функциясын логикалық және символдық типтерге, және де
тізбелеу типтеріне қолданғанда, логикалық типтер үшін 0 ден 1-ге дейнгі
аралықтағы, символдық типтер үшін 0 ден 255-ке дейінгі аралықтағы және
тізбелеу типі үшін 0 ден 65535-ке дейнгі аралықтағы оң бүтін санды береді.
Аралық типі негізгі реттік типтің барлық қасиеттерін сақтайды, сондықтан
оған ord(X) функциясын қолданғандағы нәтижесі осы типтің қасиеттеріне
байланысты болады.
Бүтін типтер мәнінің мүмкін аралығы, бір, екі немесе төрт байтты
қабылдайтын олардың ішкі берілуіне тәуелді болады. Төменде бүтін типтердің
атаулары, олардың байтпен берілген ішкі көрсетілуінің ұзындығы және мүмкін
мәндердің аралығы беріледі.
Атауы Ұзындығы, Мәндердің аралығы Типтің құаты
байтпен
Byte 1 0 ден 255 ке дейін 256
ShortInt 1 –128 ден +127-ге дейін 256
Word 2 0 ден 65535-ке дейін 65536
Integer 2 –32768 ден +32767-ге дейін 65536
LongInt 4 –2147483648 ден +2147483647 4294497296
дейін
Бүтін санды типтерге қолданылатын стандартты процедуралар мен
функциялар келесі кестеде берілген. Кестеде b, s, w, i, l әріптерімен
сәйкес Byte, ShortInt, Word, Integer және LongInt типтері берілген, x – бұл
типтердің кез келгенінің өрнегі; vb, vs, vw, vi, vl, vx әріптерімен сәйкес
типті фйнымалылар белгіленген. Тік бұрыш жақшалардың ішінде қажетті емес
параметр көрсетіледі.
Үндеу Нәтиже типі Әрекеті
abs(x) x х модулін қайтарады
chr(b) Char Оның коды боынша символды қайтарады
dec(vx[,i]) – vx мәнін i-ға, ал i болмаса 1-ге
inc(vx[,i]) – кемітеді
vx мәнін i-ға, ал i болмаса 1-ге
Hi(i) Byte үлкейтеді
Hi(w) Byte Аргументтің үлкен байтын қайтарады
Lo(i) Byte Аргументтің үлкен байтын қайтарады
Lo(w) Byte Аргументтің кіші байтын қайтарады
odd(l) Boolean Аргументтің кіші байтын қайтарады
Егер аргумент тақ сан болса, True
Random(w) Параметрдегідей қайтарады
0 ден (w–1)-ге дейінгі аралықтағы
біргелкі орналастырылған кездейсоқ санды
sqr(x) x қайтарады
swap(i) Integer Арументтің квадратын қайтарады
swap(w) Word Сөздегі байттардың орынын ауыстырады
Сөздегі байттардың орынын ауыстырады
Логикалық типтің мәндері ретінде адын ала жарияланған False (жалған)
немесе True (ақиқат) константалардың бірі бола алады. Оларға келесі
ережелер тура болады:
ord(False) = 0;
ord(True) = 1;
False True;
succ(False) = True;
pred(True) = False.
Логикалық тип реттік типтерге жататындықтан, оны есептік типті
операторда қолдануға болады, мысалы:
var
l: Boolean;
begin
for l := False to True do ...
Символдық типтің мәні ретінде компьютердегі барлық символдардың
көптігі болады. Әрбір символға 0 ден 254-ке дейінгі аралықтағы бүтін сан
жазылып қойылады. Бұл сан символдың берілуінің ішкі коды қызметін атқарады,
оны ORD функциясы қайтарады. Кодтау үшін ASCII коды қолданылады.
Char типіне қатынас операциялары және кіріктірілген функциялар
қолданылады:
▪ chr(B) – Char типті функция; Byte типті B өрнегін символға өзгертеді
және оны өзінің мәнімен қайтарады.
▪ UpCase(CH) – Char типті функция; егер CH жолдық латын әрпі болса,
жазбаша әріпті қайтарады, кері жағдайда CH символының өзін қайтарады,
мысалы:
var
c1,c2: Char;
begin
c1 := UpCase(‘s’);
c2 := UpCase(‘ф’);
WriteLn(c1, ‘’,c2)
end.
Заттық мәліметтер типтері. Заттық типтер, заттық сандарды (бүтін және
бөлшек бөлігі бар сандар) көрсетеді. Паскальда заттық типтердің бес түрі
бар. Заттық типтер, олармен байланыстағы мәндердің аралығымен және
дәлдігімен ажыратылады.
Заттық типтер келесі кестеде келтірілген:
Ұзындығы, Атауы Мәнді сандар саны Ондық ретті аралық
байт
4 Single 7...8 –45...+38
6 Real 11...12 –39...+38
8 Double 14...16 –324...+308
10 Extended 19...20 –4951...+4932
8 Comp 19...20 –2x1063+1...+2x1063–1
Айтылғандай, Паскаль заттық типтердің мол гаммасымен сипатталады,
бірақ Singl, Double және Extended типтеріне кіру тек компиляцияның ерекше
режимдерінде ғана мүмкін болады. Өйткені, бұл типтер жылжымалы нүктелі
арифмктиканың аппараттық қолдауына негізделген және оларды тиімді қолдану
үшін компьютер құрамына арифметикалық сопроцессоры кіру керек. Турбо
Паскаль компиляторы кез келген компьютерлерде (сопроцессоры болса да,
болмаса да) жұмыс істейтін және кез келген заттық типті қолданатын
бағдарламаларды құрастыруға мүмкіндік береді.
Арифметикалық сопроцессор сандарды әрқашан Extended форматында
өңдейді. Real типі сопроцессорсыз жұмыс істеуге оңтайландырылған. Comp
типі, Турбо Паскальда экспоненциалды және бөлшек бөлігі жоқ заттық сан
түрінде беріледі.
Заттық мәліметтермен жұмыс істеу үшін төмендегі кестеде берілген
кіріктірілген математикалық функциялар қолданылуы мүмкін. Кестедегі Real
заттық типті білдіреді, ал Integer кез келген бүтін типті білдіреді.
Үндеу Параметр Нәтиже Ескертпе
типі типі
abs(x) Real, Аргумент Аргумент модулі
Integer типі
ArcTan(x) Real Real Арктангенс (радандар мәні)
cox(x) Real Real Косинус, радианмен берілген бұрыш
exp(x) Real Real Экспонента
frac(x) Real Real Санның бөлшек бөлігі
int(x) Real Real Санның бүтін бөлігі
ln(x) Real Real Натуралды логарифм
pi – Real π = 3,141592653
Random – Real 0...[1] аралығында біргелкі
орналастырылған кездейсоқ сан
Random(x) Integer Integer 0...(х–1) аралығында біргелкі
орналастырылған бүтін кездейсоқ сан
Randomize – – Кездейсоқ сандардың генераторының
инициациясы
sin(x) Real Real Синус, радианмен берілген бұрыш
sqr(x) Real Real Аргументтің квадраты
sqrt(x) Real Real Квадратты түбір
2. Құрылымды типтер
Құрылымды типтердің кез келгені (Турбо Паскальда олар төртеу:
массивтер, жазбалар, көптіктер және файлдар) осы типті құрайтын
элементтердің көптігімен сипатталады, басқаша айтқанда құрылымды типтің
айнымалысы немесе константасы әрдайым бірнеше компонентті қамтиды. Әрбір
компонент, өз кезегінде құрылымды типке жатуы мүмкін, бұл типтердің кірігуі
жайлы айтуға мүмкіндік береді. Турбо Паскаль типтердің кірігу тереңдігінің
еркін болуын рұқсат етеді, бірақ олардың кез келгенінің ішкі көрсетілімдегі
қосылған ұзындығы 65520 байттан аспау керек.
Стандартты Паскальмен сәйкестіріліп Турбо Паскальда құрылымды типті
жазу алдында, компиляторға құрылымды типті объектілерге арналған жадыны
мүмкіндігінше үнемдеуге бұйрық беретін packed резервтелген сөзін қоюға
рұқсат етілген; бірақ компилятор нақты алғанда бұл нұсқауды елемейді: Турбо
Паскальда мәліметтердібуып-тию мүмкіндігінше автоматты түрде орындалады.
Жазбалар. Жазба – жазба өрістері деп аталатын, компоненттердің
белгіленген санынан тұратын мәліметтер құрылымы. Массивтерге қарағанда
жазба компоненттері (өрістері) кез келген (аралас) типті болуы мүмкін.
Жазбаның қандайда бір компонентіне сілтеме алу үшін өрістерге ат беріледі.
Жазба типін жариялау құрылымы келесі түрде болады:
тип аты = record өрістер тізімі end
Мұнда: тип аты – дұрыс идентификатор; record, end – резервтелген сөздер
(жазу, соңы); өрістер тізімі – арасында нүктелі үтір қойылатын жазбалар
бөлімдерінің тізбегін білдіретін өрістер тізімі.
Жазбаның әрбір бөлімі бір бірінен үтірмен ажыратылатын бір немесе
бірнеше өрістердің идентификаторларынан тұрады.
Массивтегідей, жазба типінің айнымалы мәнін ұқсас типтегі басқа
айнымалыға меншіктеуге болады, мысалы:
a := b;
Жазбаның әрбір компонентіне қол жеткізуге болады, егер құрамды атауды
қолданатын болсақ, б.а. айнымалының атын, содан кейін нүктені және өріс
атын белгілеу керек:
a.day := 27;
b.year := 1939;
Жазба өрістеріне кіруді жеңілдету үшін, with біріктіру операторы
қолданылады:
with айнымалы do оператор
Мұнда: with, do – түйінді сөздер; айнымалы – жазба типі айнымалысының
аты, оның артынан кіріктірілген өрістер тізімі жүруі мүмкін; оператор –
Турбо Паскальдың кез келген операторы
Турбо Паскальда вариантты деп аталатын өрістері бар жазбаларды
қолдануға болады, мысалы:
tupe
Forma = recoed
Name: String;
case Byte of
0:(BirthDay: String [40]);
1:(Country: String [20];
EntryPort: String [20];
EntryDate: 1..31;
ExitDate: 1..31)
end;
Вариантты бөлікті ашатын case...of сөйлемі сәйкес таңдау операторына
сырттай ұқсас келеді, бірақ шынында тек вариантты бөліктің басын
белгілейтін өзіндік қызметті сөз ролін ғана атқарады. Сондықтан вариантты
бөліктің соңына case...of сөйлеміне тіркес ретінде end түйінді сөзін қоймау
керек, өйткені вариантты бөлік ылғи жазбаның соңында тұрғаныдқтан, оның
аяғында end сөзі бәрібір тұрады, бірақ тек record сөзінің тіркесі ретінде.
Case...of сөйлеміндегі таңдау кілтін компиялтор иелемейді: Турбо Паскаль
кілтке бір ғана талап қояды – қандай да бір стандартты немесе алдынала
жарияланған реттік типті анықтау. Және бұл типтің өзі ары қарай орналасқан
вариантты өрістердің санына да, таңдау константаларының сипатына да еш
қандай ықпал жасамайды. Стандартты Паскальда таңдау кілті ретінде реттік
типті айнымалыны көрсету қажет, және де бағдарламаның орындалатын бөлігінде
бұл айнымалыға мән тағайында арқылы, өрістер таңдауына ықпал ажасуға
болады. Турбо Паскальда бұдан басқа, таңдау кілтінің өрісінде реттік типті
айнымалыны көрсетуге болады және бағдарламада оған мән тағайындауға болады,
бірақ бұл өрісті таңдауға ықпал жасамайды.
Өрістердің аттары, олар жарияланған жазба аралығында бірегей болу
керек, бірақ егер жазбаларда өріс-жазбалары болса, басқаша айтқанда бірінің
ішінде бірі орналасатын болса, кірігудің әр деңгейінде аттардың қайталануы
мүмкін.
Көптіктер. Көптіктер – бұл, логикалық тұрғыдан бір бірімен
байланысқан біртипті объектілер жиынтығы. Объектілер арасындағы байланыс
сипаты тек бағдарламаушымен жобаланып, Турбо Паскальмен қадағаланбайды.
Көптікке кіретін элементтер саны 0 ден 256-ға дейінгі аралықта ауысуы
мүмкін (элементтері жоқ көптікті – бос деп атайды). Өзінің элементтер
санының тұрақсыздығымен көптіктер массивтер мен жазбалардан ерекшеленеді.
Екі көптік эквивалентті болып, тек олардың барлық элементтері бірдей
болғанда ғана саналады, сонымен бірге көптіктегі элементтердің орналасу
реті қандай болса да бәрібір. Егер бір көптіктің барлық элементтері басқа
көптікке де кіретін болса, онда бірінші көптік екінші көптікке қосылуы
жайлы айтылады. Бос көптік кез келген басқа көптікке кіруі мүмкін.
Көптік типінің сипатталуы келесі түрде болады:
тип аты = set of негізгі тип
Мұнда: тип аты – дұрыс идентификатор; set, of – резервтелген сөздер;
негізгі тип – көптіктің элементтерінің негізгі типі, олардың ретінде
Word, Integer, LongInt басқа кезкелген реттік тип қолданылуы мүмкін.
Көптіктермен келесі операцияларды жасауға болады:
▪ Көптіктердің қиылысуы (*) – нәтиже екі көптікке де жалпы болатын
элементтерді қамтиды, мысалы, жоғарыдағы мысалдағы s4*s6 [3] қамтиды,
s4*s5 – бос көптік.
▪ Көптіктерді біріктіру (+) – нәтиже, жетпейтін элементтер екінші
көптіктен толықтырлған бірінші көптіктің элементтерін қамтиды,
жоғарыдағы мысалдағы s4+s5 [0,1,2,3,4,5,6] қамтиды, ал s5+s6 –
[3,4,5,6,7,8,9] қамтиды.
▪ Көптіктердің айырмасы (–) – нәтиже, екінші көптікке жатпайтын
бірінші көптіктің элементтерін қамтиды, жоғарыдағы мысалда s6–s5
[3,6,7,8,9] қамтиды, ал s4–s5 [0,1,2,3,6] қамтиды.
▪ Эквиваленттігін тексеру (=) – егер екі көптік эквивалентті болса
True-ді қайтарады.
▪ Эквивалент еместігін тексеру () – егер екі көптік эквивалент
болмаса True-ді қайтарады.
▪ Бірінші көптіктің екінші көптікке кіруін тексеру (=) – егер бірінші
көптік екіншісіне кірсе, True-ді қайтарады.
▪ Екінші көптіктің біріншісіне кіруін тексеру (=) – егер екінші
көптік біріншісіне кірсе, True-ді қайтарады.
Жолдар. Турбо Паскальдағы String (жол) типі мәтіндерді өңдеу үшін кең
қолданылады. Ол array[0..N] of Char символдарының бір өлшемді массивына
ұқсас келеді, бірақ массивтен ерекшелігі жол-айнымалысындағы символдар саны
0 ден N-ға дейінгі аралықта ауысуы мүмкін, мұндағы N – жолдағы символдардың
максималды саны. N мәні String[N] типін жариялаумен анықталады және 255-тен
аспайтын реттік типтің кез келген константасы бола алады. Турбо Паскаль N-
ді көрсетпеуді рұқсат етеді, бұл ... жалғасы
Ұқсас жұмыстар
Пәндер
- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.
Ақпарат
Қосымша
Email: info@stud.kz