КОММЕРЦИЯЛЫҚ ЕМЕС АКЦИОНЕРЛІК ҚОҒАМЫ
АЛМАТЫ ЭНЕРГЕТИКА ЖӘНЕ БАЙЛАНЫС УНИВЕРСИТЕТІНІҢ
Ақпараттық жүйелер кафедрасы
АҚПАРАТТАНУ. TURBO PASCAL ТІЛІ
Зертханалық
жұмыстарды орындауға арналған әдістемелік
нұсқаулар.
барлық
мамандықтың студенттері үшін)
Алматы 2013
ҚҰРАСТЫРУШЫЛАР: Абсатарова Б.Р., Жумаканова Р.Ж. Ақпараттану. Turbo Pascal тілі: зертханалық жұмыстарды орындауға арналған әдістемелік нұсқаулар барлық мамандықтың студенттері үшін - Алматы: АЭжБУ, 2013. – 54 бет.
Әдістемелік нұсқаулар «Ақпараттану» пәні бойынша компьютерлік сыныптарда зертханалық жұмыстарды орындауға арналған.
Әрбір зертханалық жұмыста оны орындауға арналған, нақты мысалдармен бекітілген және қажетті түсіндірмелер, сонымен қатар тапсырмалар нұсқалары мен бақылау сұрақтары көрсетілген теориялық мағлұматтар беріледі. Қосымшада барлық қажетті материалдар бар.
Без. - 9, кесте - 8, әдебиет. - 9 атау.
Пікір беруші: доцент Калиева С.А.
“Алматы энергетика және байланыс университеті” коммерциялық емес акционерлік қоғамының 2012 жылғы баспа жоспары бойынша басылады.
© “Алматы энергетика және байланыс университеті” КЕАҚ, 2013 ж.
2012 ж. баспа жоспары, реті 211
Кіріспе
Бағдарламалау тілдерін оқыту «Ақпараттану» курсының негізгі бір саласы болып есептеледі. Әрбір ЭЕМ-ді пайдаланушы оны бағдарламалық қамтамасыз етудің негізін білуі керек. Мамандық бойынша іс-әрекет процестерінде пайда болатын есептерді шығару үшін олардың алгоритмін және бағдарламасын құрады. Қазіргі кезде бағдарламалау тілдерінің түрлері өте көп. Солардың ішіндегі информатика курсында негізінен оқытылатыны – Паскаль бағдарламалау тілі.
Паскаль тілі – оқуға, түсінуге жеңіл және үлкен құрылымды бағдарламалар құруға мүмкіндік беретін алгоритмдік тіл. Сонымен қатар, Паскаль тілі компьютерлік сауаттылық пен бағдарламалауды алғашқы кезеңде үйретуде ең қолайлы тіл.
Бұл әдістемелік нұсқаудың мақсаты - Паскаль бағдарламалау тілінің негізгі операторларымен және бағдарлама құру негіздерімен таныстыру. Әдістемелік нұсқауда Паскаль тілінде бағдарламалаудың негізгі принциптері, бағдарлама құрылымы, негізгі операторлар, қосалқы бағдарламалар мен құрылымдық типтер қарастырылған.
Әдістемелік нұсқаудың соңында төрт қосымша берілген. А қосымшада Турбо Паскаль жүйесінде құрылған бағдарламада жіберілетін қателердің түрлері көрсетілген. Турбо Паскаль жүйесінің негізгі мәзірдің пәрмендері В қосымшада, модульдер С қосымшада баяндалған. Турбо Паскаль жүйесінде құрылған бағдарламалар D қосымшада келтірілген.
«Ақпараттану» әдістемелік нұсқауда нақты мысалдарға сұлбасы мен бағдарлама құрылып, талданған.
1 Зертханалық жұмыс №1. Паскаль тіліне кіріспе
Жұмыстың мақсаты: тілдің алфавитімен және стандартты функциялардың Паскаль тілінде жазылуымен танысу.
1.1 Жеке тапсырмалар
Арифметикалық өрнекті Паскаль бағдарламалау тілінде жазыңыз:
;
;
1.2 Әдістемелік нұскаулар
Кез келген тілді үйрену оның алфавитінен басталады. Бағдарламаның элементтерін жазуда қолдануға болатын символдардың жиынын тілдің алфавиті деп атайды.
Паскаль тілі алфавиті:
1) Латын әріптері (баспа және жазба әріптер).
2) Цифрлар (0-ден 9-ға дейін).
3) Арифметикалық амал белгілері: +,-,*,/,div- бүтін санды бүтін санға бөлгендегі бүтін бөлінді, mod-бүтін санды бүтін санға бөлгендегі қалдық.
4) Қатынас белгілері: <, >,=, <=, >=,< >.
5) Логикалық амал белгілері: and (және), or (немесе), not (жоқ).
6) Арнайы символдар: ( ) (жай жақшалар), [ ] (тік немесе индексті жақшалар), { } (жүйелік жақшалар), := (меншіктеу белгісі), нүкте, үтір, - (астыңғы сызық), : (қос нүкте), .. (ауқымдық қос нүкте), ’(апостроф), (Бос орын), ; (үтірлі нүкте), begin,end (операторлық жақшалар).
Қызметші сөздер дегеніміз - мағынасы алдын ала анықталап қойылған, Паскаль тілінде пайдаланылатын сөздер тобы. Қызметші сөздердің тізімі 2.3- кестеде көрсетілген. Атау бір объектіні белгілеуге арналған. Паскаль бағдарламалау тілінде стандартты атаулар және пайдаланушылар атаулары бар. Стандартты атаулар стандартты функцияларды, стандартты бағдарламаларды және т.с.с. белгілеуге арналған. Пайдаланушылар атаулары ретінде әріптен басталатын кез келген әріптер мен цифрлар тізбегі, сөздер, тіпті сөйлемдер алынады. Атауда бос орын болмауы керек. Тұрақты дегеніміз – бағдарламалау барысында мәні өзгермейтін шама.
Стандартты функциялар – дегеніміз негізгі элементар функциялар. Стандартты функциялар математикада қалай аталса, Паскаль тілінде де солай аталады. Паскаль тілінде стандартты функциялардың мәні автоматты түрде есептеледі. Оларды есептеу үшін функцияны дұрыс жазса болды.
1.1 кесте – Стандартты функциялардың Паскаль тілінде жазылуы
Атауы және математикалық белгіленуі |
Паскаль бағдарламасында белгіленуі |
Мәндер типі |
sin x cos x ex ln x lg x tg x ctg x sh x ch x logax arctg x arcctg x arcsin x arcos x
х2
an |
sin(x) cos(x) exp(x) ln(x) ln(x)/ln(10) sin(x)/cos(x) cos(x)/sin(x) (exp(x)-exp(-x))/2 (exp(x)+exp(-x))/2 ln(x)/ln(a) arctan(x) arctan(1/x) arctan(x/sqrt(1-sqr(x))) arctan(sqrt(1-sqr(x))/x) abs(x) sqr(x) sqrt(x) exp(n*ln(a)) |
Real (нақты) Real (нақты) Real (нақты) Real (нақты) Real (нақты) Real (нақты) Real (нақты) Real (нақты) Real (нақты) Real (нақты) Real (нақты) Real (нақты) Real (нақты) Real(нақты) Real (нақты) Real (нақты) Real (нақты) Real (нақты) |
Мысалы:
арифметикалық өрнегін Паскаль тілінде жазыңыз: a*b/c+c/a*b.
2) Паскаль тілінің ережесі бойынша жазылған sqrt(a+b)-cos((х+у)/2) өрнегін математикалық түрге келтіріңіз: .
1.3 Бақылау сұрақтары
1. Алгоритм ұғымы нені білдіреді?
2. Алгоритмдік тіл дегеніміз не?
3. Дұрыс алгоритм қандай қасиеттерге ие болуы тиіс?
4. Қандай бағдарламалау тілдерін білесіз?
5. Тілдің алфавиті дегеніміз не?
6. Белгілі бір атқаратын қызметі алдын ала тағайындалған сөздер қалай аталады?
7. Стандартты функциялар дегеніміз не? Олардың Паскаль тілінде жазылу ерекшеліктері қандай?
8. Паскаль тілінде tgx, ctgx, lgx функцияларын қандай түрде келтіруге болады?
2 Зертханалық жұмыс № 2. Сызықтық құрылымды алгоритмдерді бағдарламалау
Жұмыстың мақсаты: сызықты құрылымды алгоритмдерді құрудың ережелерімен танысу және оны бағдарлама түрінде құру.
2.1 Жеке тапсырмалар
1) Параллелограмның ұзындығы мен ені белгілі, параллелограмм ауданын есептейтін бағдарлама құрыңыз (S=ab).
2) Параллелепипедтің ұзындығы, ені және биіктігі белгілі, параллелепипед көлемін есептейтін бағдарлама құрыңыз (V=abc).
3) Параллелепипедтің ұзындығы, ені және биіктігі белгілі, параллепипед бетінің ауданын есептейтін бағдарлама құрыңыз (S=2(ac+ab+bc)).
4) Куб қабырғаларының ұзындықтары белгілі, кубтың көлемін есептейтін бағдарлама құрыңыз ().
5) Цилиндрдің биіктігі және табанының радиусы белгілі, цилиндр көлемін есептейтін бағдарлама құрыңыз ().
6) Екі санның арифметикалық ортасын есептейтін бағдарлама құрыңыз.
7) Үшбұрыштың биіктігі мен табанының ұзындығы белгілі, үшбұрыш ауданын есептейтін бағдарлама құрыңыз ().
8) Үшбұрыштың екі қабырғасының ұзындығы және олардың арасындағы бұрышының шамасы белгілі, үшбұрыш ауданын есептейтін бағдарлама құрыңыз ().
9) Автомобильмен саяжайға бару және кейін қайту жүрісінің құнын есептейтін бағдарлама құрыңыз. Мыналар қажетті берілгендер болып табылады: саяжайға дейінгі арақашықтық (километрмен), автомобильдің 100 км жүрісіне қажетті бензин мөлшері (литрмен), бір литр бензин құны.
10) Шақырыммен берілген арақашықты километрге айналдыратын бағдарлама құрыңыз (1 шақырым 1066,8 метрге тең).
11) Фунтпен берілген салмақты килограммға айналдыратын бағдарлама құрыңыз (1 фунт 409,5 граммға тең).
12) Салым бойынша түсім мөлшерін есептейтін бағдарлама құрыңыз. Пайыздық үстеме (жылдық пайызбен) және сақтау мерзімі (күнмен) бағдарламаның орындалу барысында беріледі.
13) Минутпен берілген уақыт аралығының мөлшерін сағатпен және минутпен өрнектелген мөлшерге айналдыратын бағдарлама құрыңыз. (Мысалы, 243 минут 4 сағат 3 минут түріне өзгертілуі қажет ).
14) Пернетақтадан енгізілген бөлшек санды ақшалай түрге айналдыратын бағдарлама құрыңыз (Мысалы, 25,05 саны 25 теңге 05 тиын түріне өзгертілуі қажет ).
15) х=9 болғанда функциясының мәнін есептейтін бағдарлама құрыңыз.
16) а = 287,098, b =0,0497, r = 0,98 үшін функциясының мәнін есептейтін бағдарлама құрыңыз.
17) x=16 үшін функциясының мәнін есептейтін бағдарлама құрыңыз.
үшін функциясының мәнін есептейтін бағдарлама құрыңыз.
19) х=2 үшін функциясының мәнін есептейтін бағдарлама құрыңыз.
18) х=2 үшін функциясының мәнін есептейтін бағдарлама құрыңыз.
19) Конустың биіктігі мен табанының радиусы белгілі болса, көлемін есептейтін бағдарлама құрыңыз ().
20) Шардың радиусы белгілі, шар көлемін есептейтін бағдарлама құрыңыз ().
21) х=4 үшін функциясының мәнін есептейтін бағдарлама құрыңыз.
22) а = 2,8, b =0,4, r = 0,98 үшін функциясының мәнін есептейтін бағдарлама құрыңыз.
23) х=1 болғандағы функциясының мәнін есептейтін бағдарлама құрыңыз.
2.2 Әдістемелік нұскаулар
Сызықтық құрылымды алгоритм дегеніміз барлық операторлары көрсетілген ретпен орындалатын алгоритм.
Амалдардың орындалуының осындай реті табиғи рет деп аталады. Сызықтық құрылымды алгоритмде ешқандай шарт болмайды және ондағы операторлар жазылу тізбегімен орындалады. Сызықтық құрылымды бағдарламаларды жазу үшін ақпараттарды енгізу, меншіктеу және есептеу нәтижесін шығару операторлары қажет.
Мысалы: Қабырғалары А, В, С болатын үшбұрыштың биіктіктерін формулалар бойынша есептеу керек.
,
,
,
мұндағы p=(a+b+c)/2.
Есепте бірнеше есептеулерді болдырмас үшін аралық айнымалыларды пайдаланамыз:
сонда
Паскаль тілінде бағдарлама құру үшін келесі белгілеулерді енгіземіз:
Ha=h1; Hb=h2; Hc=h3.
Қалғандары өзгеріссіз қалады.
2.3 Бақылау сұрақтары
1. Оператор дегеніміз не?
2. Паскаль тілінің қандай негізгі операторларын білесіз?
3. Сызықтық құрылымды алгоритм дегеніміз не?
4. Алгоритмдердің орындалуының табиғи реті деген не?
5. Алгоритмді жазуды қандай жолдары бар?
6. Сұлбада қандай фигуралар қолданылады?
7. Меншіктеу операторын сипаттаңыз.
8. Енгізу және шығару операторлары Паскаль тілінде қалай жазылады?
3 Зертханалық жұмыс №3. Тармақталушы құрылымды алгоритмдерді бағдарламалау
Жұмыстың мақсаты: тармақталып құрылған алгоритмдерді құру.
3.1 Жеке тапсырмалар
1) х аргументі h=0,l қадаммен 0£х£1 аралығында өзгергендегі функциясының мәндерін есептейтін бағдарлама құрыңыз.
функциясын есептейтін бағдарлама құрыңыз. x мәні 0£x£1 аралығында h = 0,05 қадаммен өзгереді.
функциясын есептейтін бағдарлама құрыңыз. x мәні - 2 £ х £ 23 аралығында h = 1 қадаммен өзгереді.
функциясын есептейтін бағдарлама құрыңыз. Х аргументі 0,2£х£5 аралығында h=0,25 қадаммен өзгереді.
фукциясын есептейтін бағдарлама құрыңыз. Аргумент х мәні 0 £ х £ 2 аралығында h =1 қадаммен өзгереді.
6) -3£х£1 аралығында 0,1 қадаммен у=х2+5х- функциясын есептейтін бағдарлама құрыңыз.
функциясының мәндерін есептейтін бағдарлама құрыңыз. Аргумент 0£х£4 аралығында 0,1 қадаммен өзгереді.
8) х аргументі - 0,5 х 4 аралығында h = 0,5 қадаммен өзгергендегі y=x sin x функциясының мәнін есептейтін бағдарлама құрыңыз.
9) Енгізілген санға сәйкес ай атын шығаратын бағдарлама құрыңыз.
функциясының мәндерін есептейтін бағдарлама құрыңыз. Мұндағы х аргументі - 1,5 х 2,5 аралығында 0,5 қадаммен өзгереді, b=3, c=l.
функциясын есептейтін бағдарлама құрыңыз. Мұндағы х және у мәндері кез-келген сандар.
12) х аргументі [1,5…2,5] аралығында 0,1 қадаммен өзгергендегі функцияларының мәндерін есептейтін бағдарлама құрыңыз.
13) айнымалысын формуласымен есептейтін бағдарлама құрыңыз. Мұндағы , қадамы 0,5.
мәндерін есептейтін бағдарлама құрыңыз. параметрі [1..12] аралығында 1,0 қадаммен өзгереді.
15) х аргументі [0..1] аралығында 0,1 қадаммен өзгеретін у=ln(3+x), функциясының мәндерін есептейтін бағдарлама құрыңыз.
16) Енгізілген баллға сәйкес студенттің алған бағасын шығаратын бағдарлама құрыңыз.
функциясын 0х1 аралығында 0,1 қадаммен есептейтін бағдарлама құрыңыз.
18) х аргументі [-1..1] аралығында 0,2 қадаммен өзгеретін функциясының мәндерін есептейтін бағдарлама құрыңыз.
19) у=х2sinx функциясының мәндерін есептейтін бағдарлама құрыңыз. х аргументі [1..3] аралығында h=0,l қадаммен өзгереді.
20) h=0,5 қадаммен –1,5х5,5 аралығында
мәнін есептейтін бағдарлама құрыңыз.
22) х аргументі [-2..2] аралығында 0,25 қадаммен өзгеретін функциясының мәндерін есептейтін бағдарлама құрыңыз.
функциясын -1х1 аралығында 0,1 қадаммен есептейтін бағдарлама құрыңыз.
функциясының мәндерін есептейтін бағдарлама құрыңыз. Мұндағы х аргументі -1,5х2,5 аралығында 0,5 қадаммен өзгереді.
функциясын есептейтін бағдарлама құрыңыз. y мәні -2£y£2 аралығында h = 0,5 қадаммен өзгереді.
26) х аргументі [5…25] аралығында 0,7 қадаммен өзгергендегі функциясын есептейтін бағдарлама құрыңыз
3.2 Әдістемелік нұскаулар
Тәжірибеде келтірілген берілгендер немесе аралық нәтижелердің мәндеріне байланысты кейбір операторлары орындалатын, ал қалған операторлары орындалмайтын алгоритмдер кездеседі. Мұндай алгоритмдерді тармақталушы құрылымды алгоритмдер деп атайды. Басқаша айтқанда, алгоритмдік тілде қойылған шартқа байланысты екi немесе екiден де көп тармақтары бар алгоритмді тармақтақталушы құрылымды алгоритм деп атайды.
Осы алгоритмді бағдарламалау барысында көшу операторлары және таңдау операторы қолданылады. Көшу операторлары екіге бөлінеді: шартты көшу операторы және шартсыз көшу операторы.
Шартты көшу операторы жағдайында таңдалынған оператор тек қайсыбір шарт ақиқат болса ғана орындалады. Егер шарт жалған болса, else сөзінен кейінгі оператор орындалады.
Оператордың толық жазылуы:
if <шарт> then <1-оператор> else <2-оператор>
Егер онда әйтпесе
Шартсыз көшу операторы операторлардың орындау тәртібін өзгерту үшін пайдаланады. Бүл оператор бойынша, бүтін сан болып келетін әрбір белгі бағдарлама мәтінінде, белгі қолданылған бөлімде, алдын ала хабарлануы, яғни енгізілуі қажет. Паскаль тілінде олар белгілерді сипаттау бөлімінде үтір арқылы көрсетіледі label 1,2,3.
Белгі – 1-ден 9999-ға дейінгі натурал сан. Ол белгілерді сипаттау бөлімінде сипатталуы қажет.
Шартсыз көшу операторының жалпы жазылуы:
GOTO белгi;
Бұл оператор бойынша, бағдарламаның орындалу реті бұзылып, басқару белгі көрсетілген операторға көшеді.
Мысалы: у=
функциясын есептейтін бағдарлама құрыңыз. Х айнымалысы аралығында 0,4 қадаммен өзгереді.
Бағдарлама басында х айнымалысының бастапқы мәнін және қадамды енгізу қажет. Бастапқы мәнді есептеп, келесі мәнді есептеуге көшу үшін белгіні пайдаланамыз. Белгі бағдарлама атынан соң label қызметші сөзімен сипатталады. Функция айнымалы мәніне байланысты бірнеше тармақпен есептелетіндіктен, шартты көшу операторын пайдаланамыз.
3.3 Бақылау сұрақтары
1. Қандай алгоритмдерді тармақталушы құрылымды алгоритм деп атайды?
2. Тармақталушы құрылымды алгортимнің қандай түрлері бар?
3. Шартты көшу операторы дегеніміз не?
4. Шартсыз көшу операторы қандай жағдайда қолданылады?
5. Белгі деген не? Белгі ретінде кез келген санды қолдануға бола ма?
6. Шартты өту операторы сұлбада қалай көрсетіледі?
7. Тармақталудың толық түрін қысқаша түрін қолдануға түрлендіруге бола ма?
8. Таңдау операторын қолдану қандай жағдайда тиімді?
4 Зертханалық жұмыс №4. Параметрлі қайталау операторлары
Жұмыстың мақсаты: параметрлі қайталау операторларымен танысу.
4.1 Жеке тапсырмалар
Сандық қатарлардың қосындысын есептейтін бағдарлама құрыңыз:
4.2 Әдістемелік нұскаулар
Көп жағдайларда аргументтердің әртүрлі мәндері үшін алгоритмнің белгілі бір бөліктерін немесе операторлар тобын бірнеше рет қайталауға тура келеді. Осындай құрылымды алгоритмдерді ұйымдастыру үшін қайталанушы құрылымды алгоритмдер қолданылады.
Паскаль тілінде қайталанушы құрылымды алгоритмдердің үш түрі бар. Олар: 1) Параметрлі For операторы.
2) Алдын ала берілген шарт бойынща қайталау While операторы.
3) Келесі шарт бойынша қайталау Repeat операторы.
Циклдiк құрылымды алгоритмдi бағдарламалауда, қайталанушы процесс бiр айнымалының мәнiне тәуелдi болса, For операторын қолданамыз. Параметрлі For операторында айнымалы тек бiр қадамға ғана өзгере отырып, циклдi басқарады. Бұл, айнымалы циклдiң параметрi делiнсе, For операторын параметрлi қайталану операторы деп атайды.
Мысалы: алғашқы n бүтін сандардың қосындысын есептейтін бағдарлама құрыңыз. Қосылатын сандар саны бағдарламаның орындалуы барысында енгізілуі қажет.
Қосындыны есептеу үшін бағдарлама басында, енгізу операторынан кейін, қосындыны нөлге теңестіріп жазып кетеміз. Себебі кез келген санға нөлді қосқанда қосынды өзгермейді.
4.3 Бақылау сұрақтары
1. Цикл деген не?
2. Циклдің қандай түрлері бар?
3. Цикл денесі деген не?
4. Цикл операторы деген не?
5. Қандай оператор параметрлі қайталау операторы деп аталады?
6. Параметр деген не?
7. Параметрдің қандай қасиеттері бар?
8. Do операторы мен Downto операторының айырмашылығы неде?
5 Зертханалық жұмыс №5. Кейінгі шартты қайталау операторлары
Жұмыстың мақсаты: кейінгі шартты қайталау операторларымен танысу.
5.1 Жеке тапсырмалар
Бір есепті бірнеше тәсілмен шығару қайталанушы құрылымды алгоритмдердің айырмашылықтары мен ұқсастықтарын меңгеруге көмектеседі. Сондықтан параметрлі қайталау операторымен шығарылған жеке тапсырмаларды кейінгі шартты және алдыңғы шартты қайталау операторларымен шығарып, алынған нәтижелерді салыстыру ұсынылады.
Сандық қатарлардың қосындысын есептейтін бағдарлама құрыңыз:
5.2 Әдістемелік нұскаулар
Бұл оператор көп жағдайда қайталану саны белгісіз болған жағдайда пайдаланылады. Жалпы жағдайда жазылуы:
repeat <оператор> ... until <шарт>;
Repeat және until қызметші сөздерінің аралығында орналасқан операторлар тізбегі кемінде бір рет орындалады.
Қайталау әрбір итерациядан кейін есептелетін булевтік өрнекпен бақыланып отырады. Циклдік есептеу өрнек ақиқат мән қабылдаған сәттен соң аяқталады.
Мысалы: оң сандар тізбегінің қосындысын және арифиметикалық ортасын есептейтін бағдарлама құрыңыз.
5.3 Бақылау сұрақтары
1. Кейінгі шартты қайталау операторы дегеніміз не?
2. Кейінгі шартты қайталау операторы қандай жағдайда қолданылады?
3. Параметрлі цикл деп қандай құбылысты айтады?
4. Қайталау санын есептеу формуласы қандай?
5. Оператор қалай аяқталады?
6. Алғашқы қадамда шарт орындалмаса, қайталану денесі орындалама?
7. Repeat-Until цикл операторы деген не?
8. Көбейтіндіні табу үшін бастапқы мәні қаншаға тең?
6 Зертханалық жұмыс № 6. Алдыңғы шартты қайталау операторлары
Жұмыстың мақсаты: алдыңғы шартты қайталау операторларымен танысу.
6.1 Жеке тапсырмалар
Сандық қатарлардың қосындысын есептейтін бағдарлама құрыңыз:
Қосымша тапсырмалар:
1. Екі санның ең үлкен ортақ бөлгішін табатын бағдарлама құрыңыз.
2. Берілген натурал М санынан үлкен Фиббоначчи санын анықтайтын бағдарлама құрыңыз. (, , )
6.2 Әдістемелік нұскаулар
Алдын ала берілген шарт бойынща қайталау While операторы көп жағдайда қайталану саны белгісіз болған жағдайда пайдаланылады. Алдын-ала берілген шарт бойынша қайталау While операторының жалпы жағдайда жазылуы:
while <өрнек> do <оператор>
Қайталанып отыратын өрнек булевтік типті болуы қажет, оның дұрыстығы әрбір итерация алдында тексеріледі.
Мысалы. -1 х 3 аралығында қадамы 0,2 болатын функциясының мәндерін есептеу және шығару керек.
6.3 Бақылау сұрақтары
1. Паскаль бағдарламалау тілінде цикл операторларының қандай түрлері бар
2. Алдыңғы шартты қайталау операторы туралы не білесіз?
3. Алдыңғы шартты қайталау операторы мен кейінгі шартты қайталау операторының айырмашылығы мен ұқсастығы?
4. Оператор денесінің бірде-бір рет орындалмауы мүмкін бе? Неге?
5. Алдын ала берілген шарт бойынша қайталау While операторы қандай жағдайда пайдаланылады?
6. Заттардың санын табу амалдарының реті қандай?
7. «Кейін» және «дейін» сұлбаларының қандай айырмашылықтары бар?
8. Шексіз қайталау салдары қандай?
№ 7 Зертханалық жұмыс. Бір өлшемді массивтер
Жұмыстың мақсаты: бір өлшемді массивтермен танысу
7.1 Жеке тапсырмалар
векторы берілген. Вектор компоненттерін әуелі барлық теріс, сонан соң барлық оң компоненттер орналасатындай етіп реттеу керек.
массиві элементтерінің алғашқы аi теріс элементіне дейінгі (яғни ол элементтің алдындағы) элементтердің арифметикалық ортасын табу керек.
массивінде теріс элементтерінің қосындысын, оң элементтерінің көбейтіндісін және нөлдік элементтерінің санын есептеу керек.
массивін енгізу керек. [-1; 1] аралығында орналасқан сандардың санын және барлық қалған сандардың қосындысын есептеу керек.
массиві берілген. Элементтері келесі түрде есептелетін жаңа массивін құрыңыз:
массивіндегі теріс элементтерінің санын, оң элементтерінің қосындысын есептейтін бағдарлама құрыңыз.
массиві берілген. Мәні ең кіші bi элементі орнына массив элементтері мәндерінің арифметикалық ортасын жазатын бағдарлама құрыңыз.
массивіндегі k нөлдік элементтер санын және есептейтін бағдарлама құрыңыз.
массиві берілген. Мәні ең үлкен сi элементінен кейін тұрған барлық элементтерді нөлмен алмастыру керек.
массиві берілген. s=a1a2a3a4+a5a6a7a8+…+a21a22a23a24 қосындысын есептеу керек.
массиві берілген. Мәндері 50-ден кіші барлық элементтердің көбейтіндісін тауып, оны мәні 100-ден үлкен элементтердің көбейтіндісіне қосу керек.
және екі массиві берілген. Х массивінің орнына Y массивін, ал Y массивінің орнына X массивін жазыңыз.
13) Пернетақтадан енгізілген массив элементтері кемімейтін тізбек түрінде ме, жоқ па, соны тексеретін бағдарлама құрыңыз.
14) Бойларының ұзындықтары ортадан жоғары студенттер санын анықтайтын бағдарлама құрыңыз.
15) a1,…,an бүтін сандары берілген. Берілген тізбекте бірде – бір жұп сан тақ саннан кейін орналаспаса, онда тізбектің барлық теріс мүшелерін, әйтпесе оң мүшелерін шығару керек.
16) a1,…,an нақты сандары берілген. Тізбектегі реттік нөмірлері төртке еселік болып келетін тізбек мүшелерін өшіру қажет.
17) a1,…,an нақты сандар берілген. Мәні бірдей сандар кездесетінін не кездеспейтінін тексеріп, егер кездессе, олардың сандары мен реттік нөмірлерін анықтайтын бағдарлама құрыңыз.
18) a1,…,an және b1,…,bn векторлары берілген. Компоненттері a1bk,a2bk-1,…,akb1 болып келетін с векторын алу керек.
19) a1,…,an бүтін сандары берілген. Тізбекте қанша санның қайталанбайтынын анықтау керек.
20) m саны және a1,a2,…,a10 тізбегі берілген. Бүтін сандары берілген ai+aj+ak=m болатындай, әрқайсысы оннан аспайтын i, j, к үш натурал санын табу керек. Егер мұндай сандар болмаса, онда ол жөнінде хабарлау қажет.
21) векторы берілген. Вектордың ең үлкен элементін тауып, оның реттік нөмірін анықтайтын бағдарлама құрыңыз.
22) векторы берілген. Вектордың ең кіші элементін тауып, оның реттік нөмірін анықтайтын бағдарлама құрыңыз.
23) векторы берілген. Векторды екі А және С векторларына бөліңіз. Мұндағы А векторы В векторының оң мүшелерінен құрылған, ал С векторы В векторының теріс мүшелерінен құрылған вектор.
24) векторының барлық мүшелерін өсу ретімен орналастыратын бағдарлама құрыңыз.
25) векторының барлық мүшелерін кему ретімен орналастыратын бағдарлама құрыңыз.
7.2 Әдістемелік нұсқаулар
Массив – бұл бір типтегі элементтердің жиынтығын құрайтын берілгендер құрылымы. Берілгендер массивтері біртипті қарапайым айнымалылар тізбегін береді. Әрбір жеке алынған айнымалы массив элементі деп аталады. Массивтің әрбір элементіне бір сандық немесе символдық мән меншіктелуі мүмкін. Массивтің әрбір элементі индексті массив атымен белгіленеді. Паскаль тілінде индекс квадрат жақшаға алынып жазылады А [I].
Массивтер бірөлшемді және көпөлшемді болуы мүмкін.
Егер массивтің әрбір элементі тек бір индексті болса, онда олар бірөлшемді массивтер деп аталады. Бір өлшемді массивті айнымалылар жолы немесе бағаны түрінде көрсетуге болады. Егер массивтің әрбір элементі бірнеше индексті болса, онда олар көпөлшемді массивтер деп аталады. Екіөлшемді массивті элементтері m жолдан және п бағаннан тұратын кесте немесе матрица түрінде көрсетуге болады.
Паскаль тілінде массивтер айнымалыларды сипаттау бөлімінде ARRAУ қызметші сөзімен көрсетіледі және оның типі сипатталады. Массив элементін бүтін типті өрнек ретінде қолдануға болатын массив индексін көрсету жолымен пайдалануға болады. Массивтерді енгізу, шығару және өңдеу үшін циклдерді (for, while, repeat) қолданған ыңғайлы.
Мысалы: массивінің ең үлкен және ең кіші элементін табатын бағдарлама құрыңыз.
Массивтің ең кіші (немесе ең үлкен) элементін табу үшін бағдарлама басында алғашқы элементті ең кіші (немесе ең үлкен) элемент деп белгілеп аламыз. Қалған элементтерді циклдің көмегімен осы элементпен салыстырамыз. Салыстырылған элемент белгіленген элементтен кіші (немесе үлкен) болса, онда сол элементті ең кіші (ең үлкен) деп есептеп, оны келесі элементтермен салыстыруды жалғастырамыз.
7.3 Бақылау сұрақтары
1. Массив дегеніміз не?
2. Массив қандай жағдайда қолданылады?
3. Массивтің қандай түрлерін қолдануға болады?
4. Бағдарламалауда массив қолданудың қандай ерекшелігі бар?
5. Массив элементтерін қалай енгізуге және шығаруға болады?
6. Паскальда массивті енгізудің қандай тәсілдері бар?
7. Бірөлшемді массив немесе вектор дегеніміз не?
8. Индекс типі қандай?
8 Зертханалық жұмыс №8. Екіөлшемді массив
Жұмыстың мақсаты: екіөлшемді массивтермен танысу.
8.1 Жеке тапсырмалар
1) А(15,15) матрицасы мен В(b1,,..., b15) векторының көбейтіндісіне тең векторды есептеу керек.
2) В(10,8) матрицасында әрбір жолының соңғы элементінің орнына осы жолдың алдыңғы элементтерінің қосындысын жазыңыз.
3) С(9,5) матрицасының 0,5сij10,5 шартын қанағаттандыратын барлық элементтерінің арифметикалық ортасын табу қажет.
4) А(7,9) матрицасында mах и min элементтерді анықтап, олардың орындарын алмастыру қажет.
5) А(8,9) матрицасында оң және теріс элементтердің арифметикалық ортасын табу керек.
6) есептеу керек, мұндағы - В(10,10) матрицасының нөлдік элементтерінің саны.
7) А(6,6) матрицасында диагональдық элементтердің бәрін нөлмен алмастыру қажет.
8) D(10,15) матрицасында әрбір жұп жолдардағы элементтердің қосындысы мен әрбір тақ жолдардағы элементтердің көбейтіндісін табу керек.
9) Х(12,4) матрицасының әрбір жолдындағы -10хij10 аралығында жататын элементтердің қосындысын табу керек.
10) Х(7,11) матрицасы берілген. Келтірілген матрицаның барлық элементтерін ең үлкен элементке бөлу жолымен Y(7,11) матрицасын құрастыру керек.
11) А(10,10) матрицасының бас диагональдағы теріс элементтерінің қосындысын табу керек.
12) Х(6,6) матрицасы берілген. Матрицаның бас диагоналіне параллель жатқан сызықтардың бойында орналасқан элементтердің қосындысын есептеу керек.
13) Х(8,8) матрицасының басты диагоналінен төмен, басты диагональ бойында, басты диагональдан жоғары орналасқан элементтердің арифметикалық ортасын табу керек.
14) А(8,12) матрицасы берілген. В(12) векторын құру керек:
15) А(7,7) және В(7,7) матрицалары берілген. Келесі ереже бойынша С(7,7) матрицасын құрастыру керек:
16) А(5,5) матрицасы берілген. i-ші компоненті А матрицасының i-ші жолының оң элементтерінің санына тең болатын B(b1,…,b5) векторын құру керек.
17) n бүтін санды А квадраттық матрица берілген. Матрицаны үшбұрыш түріне келтіре отырып, оның анықтауышын табу керек.
18) 25х4 өлшемді бүтін санды А матрицасы 25 студенті бар топтың 4 емтиханнан тұратын сессиясының нәтижесі жөніндегі мәліметті береді. Барлық бағасы «5» болатын студенттердің саны мен тегін табу керек.
19) 25х4 өлшемді бүтін санды А матрицасы 25 студенті бар топтың 4 емтиханнан тұратын сессиясының нәтижесі жөніндегі мәліметті береді. Ең болмағанда бір «қанағаттанарлық» бағасы бар студенттердің саны мен тегін табу керек.
20) өлшемді бүтін санды А матрицасы студенттердің спартакиадада n факульттердің m спорт түрі бойынша алған орындары жайлы мәліметтерден тұрады. Факультеттерді жалпы командалық сынақта алған орындарының ретімен орналастыру керек.
21) В(4,6) массиві берілген. Мәні ең кіші элементінің орнына массив элементтері мәндерінің арифметикалық ортасын жазатын бағдарлама құрыңыз.
22) C(4,7) массивіндегі k нөлдік элементтер санын және есептейтін бағдарлама құрыңыз.
23) A(3,5) массиві берілген. Мәні ең үлкен элементтен кейін тұрған барлық элементтерді нөлмен алмастыру керек.
24) A(5,6) массиві берілген. шартын қанағаттандыратын барлық элементтердің қосындысын есептеу керек.
25) B(5,5) массиві берілген. Мәндері 50-ден кіші барлық элементтердің көбейтіндісін тауып, оны мәні 100-ден үлкен элементтердің қосындысына бөлетін бағдарлама құрыңыз.
8.2 Әдістемелік нұсқаулар
Егер массивтің әрбір элементі бір индексті болса, онда ол көпөлшемді массив деп аталады. Көпөлшемді массивтер математикада жиі қолданылады, әсіресе екіөлшемді массивтер немесе матрицалар кең таралған.
Мысалы: А(5,6) матрицасы берілген. і-ші компоненті А матрицасының і-ші жолының оң элементтерінің санына тең болатын векторын құру керек.
Бақылау сұрақтары
1. Екіөлшемді массив немесе матрица ұғымы
2. Екіөлшемді массив элементтерін қалай енгізуге және шығаруға болады?
3. Жол және бағана ұғымы жайлы не білесіз?
4. Екіөлшемді массив айнымалыларды сипаттау бөлігінде қалай сипатталады?
5. Квадрат матрицамен жұмыс жасаудың қандай тәсілдері бар?
6. Бірінің ішіне бірі салынған циклдер қандай мақсатта қолданылады?
7. Массивтен ең үлкен элементті іздеу қалай жүзеге асырылады?
8. Массивтің теріс элементтерін есептеу үшін алгоритмде қандай өзгеріс болады?
9 Зертханалық жұмыс № 9. Процедуралар және функциялар
Жұмыстың мақсаты: процедуралар және функциялармен танысу.
9.1 Жеке тапсырмалар
1) Экранға бірдей символдардан тұратын жолды шығаратын процедураны жазыңыз. Жол ұзындығы мен символ процедура параметрлері болып табылады.
2) Цилиндр көлемін есептейтін функцияны құрыңыз. Цилиндрдің биіктігі және табанының радиусы функция параметрлері болуы қажет.
3) Параллелепипедтің көлемін және бетінің ауданын есептейтін процедураны жазыңыз.
4) Аргумент ретінде алынған екі бүтін саның ең үлкенін шығаратын функция жазыңыз.
5) А(10,10) және В(5,7) матрицаларының әрбір бағандарының теріс элементтерінің санын есептеу және шығару қажет.
6) Сессия нәтижесі бойынша топтардың алған балдарының орташа мәнін есептейтін бағдарлама құрыңыз. Топтардың бағалары А(25,5), В(23,5), С(22,5), D(24,5) матрицалары түрінде берілген. Үздік топты анықтаңыз.
7) Дәрежелері n және m болатын екі көпмүшеліктің көбейтіндісіне тең көпмүшеліктің коэффиценттерін табатын процедура құрыңыз.
8) Ұзындықтары әртүрлі үш жол берілген. Дауысты дыбыстары ең көп жолды табыңыз.
9) Ұзындықтары әртүрлі үш жол берілген. Ең ұзын жолды табыңыз.
10) Нақты сандардан тұратын бірнеше квадраттық матрицалар берілген. Диагональ элементтерінің қосындысы ең кіші болатын матрицаны табыңыз
11) m ретті А және В квадраттық матрицалары берілген. АВ-ВА матрицасын алу керек.
12) Пернетақтадан енгізген кез-келген екі нүктенің арақашықтығын есептейтін функция құрыңыз.
13) А(3,4) және В(4,6) матрицалары берілген. А және В матрицаларының ең кіші элементтерінің орындарын ауыстыратын процедура құрыңыз.
14) А(3,4) және В(4,6) матрицалары берілген. А және В матрицаларының ең үлкен элементтерінің орындарын ауыстыратын процедура құрыңыз.
мәнін есептейтін функция құрыңыз. Мұндағы х, у, z – мәні 1-ден кіші оң сандар.
мәнін есептейтін функция құрыңыз.
мәнін есептейтін функция құрыңыз. Мұндағы х пен у мәні 1-ден кіші оң сандар.
18) X[20], Y[20] берілген. Радиусы г, центрінің координаттары (1,1) нүктесінде жататын дөңгелектің ішінде орналасқан барлық нүктелер санын есептеңіз. Нүктелердің дөңгелек центрінен қашықтығын қосалқы бағдарламада анықтаңыз.
19) Аргумент ретінде алынған санды пайызға айналдыратын present функциясын жазыңыз.
20) Пернетақтадан енгізілген кез келген санның факториалын есептейтін функция жазыңыз.
21) Кез келген екі санның қосындысын есептейтін процедура құрыңыз.
22) мәнін есептейтін функция құрыңыз.
есептейтін функция құрыңыз. Мұндағы мен пернетақтадан енгізілетін бүтін оң сандар.
24) Пернетақтадан енгізілген бөлшек санның бүтін бөлігі мен бөлшек бөлігін бөліп көрсететін процедура құрыңыз.
25) Квадраттық теңдеудің түбірлерін табатын процедура құрыңыз.
9.2 Әдістемелік нұсқаулар
Қайсыбір есептеу процесін аяқтауға көмектесетін операторлар тобы процедура деп аталады, мысалы, сызықтық теңдеулер жүйесін шешу, массивтің ең үлкен және ең кіші элементін анықтау, функциональдық қатардың шектеулі санды мүшелерінің қосындысын анықтау, қандай да бір бүтін функцияларды тиімді ету мәселелерін шешу және т.б.
Процедура шақыру мәтінінде қайсыбір өрнекті есептеу кезінде қолданылатын, өзінің орындалуы барысында жалғыз скалярлық мән беретін бағдарлама бөлігі функция деп аталады.
Мысалы: дөңес төртбұрыштың төрт қабырғасы мен диагоналінің ұзындығы белгілі. Дөңес төртбұрыштың ауданын есептейтін процедура құрыңыз.
Дөңес төртбұрышты екі үшбұрыш ретінде қарастыруға болады. Себебі дөңес төртбұрыштың диагоналі оны екі үшбұрышқа бөледі. Үшбұрыштардың барлық қабырғаларының ұзындықтары белгілі болғандықтан, үшбұрыштар аудандарын есептеуге Герон формуласын қолданамыз. Алынған екі үшбұрыштың аудандарын қоссақ, қажетті дөңес төртбұрыштың ауданы шығады.
Program KomPr;
Var AB,BC,CD,DA,AC,S1,S2,SA:real;
a,b,c,p:real;
procedure STR1;
begin
p:=(a+b+c)/2;
S:=sqrt(p*(p-a)*(p-b)*(p-c));
End;
Begin
Read(AB,BC,CD,DA,AC);
a:=AB; b:=BC; c:=AC; STR1; S1:=S;
a:=DA; b:=AC; c:=CD; STR1; S2:=S;
SA:=S1+S2;
Write(‘аудан=’,S:3:3);
End.
9.3 Бақылау сұрақтары
1. Қосалқы (немесе көмекші) бағдарлама дегеніміз не?
2. Қосалқы бағдарламаның қандай түрлері бар?
3. Процедура дегеніміз не?
4. Функцияның процедурадан айырмашылығы неде?
5. Параметр деген не? Оның қанша түрі бар?
6. Процедураны қалай шақырады?
7. Функцияны қалай шақырады?
8. Нақты параметрлердің формальды параметрлерден айырмашылығы неде?
10 Зертханалық жұмыс №10. Жолдар
Жұмыстың мақсаты: жолдық амалдарды қолдану.
10.1 Жеке тапсырмалар
1) Тек цифрлардан тұратын жол берілген. Барлық нөлдерді өшіретін бағдарлама құрыңыз.
2) Қолданушы атын сұрайтын және онымен амандасатын бағдарлама құрыңыз.
3) Пернетақтадан енгізілген жолдың тек дауысты дыбыстарын баспаға шығаратын бағдарлама құрыңыз.
4) Пернетақтадан енгізілген жолдың тек үлкен дауыссыз әріптерін баспаға шығаратын бағдарлама құрыңыз.
5) Ұзындықтары 8 символдан аспайтын жазба латын әріптерінен тұратын әртүрлі сөздер берілген. Бұл сөздерді алфавиттік ретпен шығару қажет.
6) Берілген мәтіннен жақшаға алынған мәтін бөлігін өшіру керек.
7) Берілген мәтіннен ең ұзын сөзді шығаратын бағдарлама құрыңыз.
8) Берілген сөз мәтінде қанша рет кездесетінін табу керек.
9) Берілген мәтіннен ең қысқа сөзді таңдап алатын бағдарлама құрыңыз.
10) Берілген мәтіндегі бос орын символын үтір символына алмастыру қажет.
11) Мәтіндегі сөздер қандай әріптен көбірек басталатынын анықтайтын бағдарлама құру қажет.
12) Мәтін берілген. Егер мәтіндегі алғашқы символ үлкен латын әрпі болса, онда оны өзгеріссіз қалдыру керек. Егер ол кіші латын әрпі болса, онда оны «*» символымен алмастыру керек.
13) Берілген мәтіндегі барлық А1 сөзін А2 сөзіне ауыстыру қажет.
14) Ұзындығы 255 символ мәтін берілген. Мәтінде орыс алфавитінің әртүрлі әріптері қанша рет кездесетінін табу керек.
15) Берілген мәтіндегі әріптер тобы таңбалар тобына қарағанда қаншаға көп екенін анықтаңыз.
16) Берілген мәтінді ұзындығы 15 символдан аспайтын жолдарға бөлетін бағдарлама құрыңыз.
17) Ұзындығы 255 символдан аспайтын мәтін берілген. Мәтінде үтір мен нүкте қанша рет кездесетінін анықтау керек.
18) Берілген мәтіндегі барлық «а» әрпінен басталатын сөздерді таңдап алатын бағдарлама құрыңыз.
19) Енгізілген мәтіндегі барлық символдардың санын анықтайтын бағдарлама құрыңыз.
20) Пернетақтадан енгізілген барлық символдарды бір-бірімен жалғастырыңыз.
21) Енгізілген мәтіндегі бастапқы және соңғы символдары бірдей (мысалы: синус) сөздерді баспаға шығаратын бағдарлама құрыңыз.
22) Берілген мәтіндегі барлық «класс» сөзін «группа» сөзіне ауыстыратын бағдарлама құрыңыз.
23) Мәтінде кездесетін барлық сандарды қиып алып, В векторына меншіктеңіз.
24) Мәтінде кездесетін барлық тік жақшаны жай жақшаға ауыстыратын бағдарлама құрыңыз.
25) Берілген мәтіндегі барлық «к» әрпінен басталатын сөздерді қиып алып, мәтіннің қалған бөлігін баспаға шығаратын бағдарлама құрыңыз.
10.2 Әдістемелік нұсқаулар
Символдық берілгендерді өңдеу үшін Паскаль бағдарламалау тілінде char (character–символ) қызметші сөзін қолданады. Char типтегі айнымалының мәні кез келген жеке символдар, белгілер болады.
Егер бағдарламада мынадай белгілеу болса: a,b:char; - онда меншіктеу операторын a:=’k’; b:=’5’; a:=’*’ және т.с.с. түрінде жазуға болады. Мұндағы ’’ (апостроф) символдық мән екенін білдіреді.
Символдық берілгендер үшін =, <>, >, <, >=, <= қатынас белгілері пайдаланылады. Себебі барлық символдар, белгілер, цифрлар реттеліп орналасқан. Тізімде қай символ бұрын орналасса, келесі символға қарағанда оның коды кіші деп есептеледі. Әріптер алфавит бойынша орналасады. Мысалы: ‘a’<‘c’; ‘y’>‘x’; ‘2’>‘1’;
Әріптерді орналасу реті бойынша параметрлі қайталау операторының көмегімен экранға шығаруға болады:
Program Arip;
Var ar:char;
Begin
For ar:=‘a’ to ‘z’ do
Write(ar);
End.
Ал алфавитті кері ретпен орналастыру керек болса, онда For операторына сәл өзгеріс енгізсе болғаны:
For ar:=‘z’ downto ‘a’ do
Символдық берілгендерді енгізудің төмендегідей ерекшеліктері бар:
1) Бос символ (пробел) Паскаль тілінде символ орнына жүретіндіктен, символдық айнымалылардың мәндері бос орынсыз жазылады және енгізу операторы read көмегімен енгізіледі.
2) Бір айнымалыға бір ғана символ меншіктелінеді.
3) Enter пернесін бос орын символы ретінде қабылдайды.
4) Shift, Рус, Caps, Лат – пернелерін жеке символ ретінде қабылдайды да, мән орнына олардың кодын қабылдайды.
5) Символдық және сандық мәндерді енгізгенде, көбінесе Eoln стандартты функциясын пайдалану қолайлы. Бұл функцияның мәні жолдың соңы немесе мәндер беріліп болғанды білдіретін Enter пернесі басылғанда ғана ақиқат болады да, басқа жағдайда жалған болады.
6) While not eoln do операторының алдында міндетті түрде readln операторы тұру керек.
Мәтіндік мәліметтерді өңдеу
Мәтін деп жолдар тізбегін айтады. Паскаль тілінде жол символдар тізбегінен құралады. Паскаль тілінде жолдық тұрақтыларды да пайдалануға болады. Жолдық тұрақты деп енетін символдарының саны 256-дан аспайтын апостроф ішіне алынған символдар тізбегін айтады. Егер жолдың ішінде апострофты пайдалану қажет болса, онда оны екі апострофпен алмастырады.
Паскаль тілінде де басқа тілдердегі сияқты жолдық айнымалылар пайдаланылады. Жолдық айнымалылардың типін көрсету үшін тік жақша ішінде жолдың максимальды ұзындығы көрсетілген string қызметші сөзін қолданады. Жолдық айнымалының типі бағдарламаның тип бөлігінен кейін қарастырылады немесе тікелей айнымалы бөлігінде бейнеленеді.
Айнымалыларды сипаттау бөлігінде бейнеленуі:
Var <айнымалы аты>:string[жолдың максимальды ұзындығы];
Мысалы: Var text:string[25];
Atay:string[77];
Егер жолдың ұзындығы 256-дан көп болса, компьютер «қате» деп хабар береді.
Жолдық өрнектер. Жолдық өрнектер алгоритмдік тілдегі арифметикалық өрнектерге сәйкес келеді. Жолдық өрнек деп амал белгілері, жолдық тұрақтылар, айнымалылар және функция атауларынан құралған, ұзындығы 256 символдан аспайтын тізбекті айтады. Жолға төмендегі амалдар пайдаланылады:
1) Жалғастыру амалы. Ол қарапайым «+» белгісімен белгіленеді. Бұл амал бірнеше жолдан бір жол құру үшін пайдаланады.
Мысалы: 'Ал'+'ма'+'ты' нәтижесінде 'Алматы'.
2) Салыстыру амалдары. Жол мен жолды салыстыру үшін қолданады. Жол мен жолды салыстыру кезінде солдан оңға қарай біртіндеп символдардың кодтары салыстырылады. Егер жолдық символдары бірдей болса, онда қай жолдың символы көп болса, сол жол үлкен деп есептеледі. Егер жолда салыстыру және жалғастыру амалдары болса, онда ең алдымен жалғастыру амалы орындалады, одан соң салыстыру амалы орындалады.
Мысалы: ‘Tam’=‘Tam’ нәтижесі – true
‘Tam1’>‘Tam2’ нәтижесі – false
3) Меншіктеу амалы. Ол “:=” арқылы белгіленеді. Мұнда меншіктелетін мән ұзындығы типте көрсетілген ұзындықтан артық болса, онда артық символ алынып тасталады.
Мысалы: Егер айнымалыларды бейнелеу бөлігінде a:string[4] болса, онда a:=‘Алматы’ өрнегінің нәтижесі ‘Алма’ болады.
Мысалы: Пернетақтадан енгізілген жолдағы алғашқы бос орынды өшіретін бағдарлама құрыңыз.
Program pri;
var ST:string[80]; {жол}
begin
writeln('жолдағы алғашқы бос орынды өшіру');
write('жолды енгіз');
readln(ST);
while (pos(' ', ST)=1) and (length(ST)>0) do
delete(ST,1,1) ;
write('алғашқы бос орынсыз жол', ST);
readln;
end.
10.3 Бақылау сұрақтары
1. Элементтердің қандай типін литерлік тип деп атайды?
2. Жол дегеніміз не?
3. Жолдың ең ұзыны қанша болады?
4. Жолдарға қандай амалдар қолданылады?
5. Жолдық стандартты функцияларға тоқталыңыз.
6. Қандай жолдық процедураларды білесіз?
7. Жол айнымалылары қалай хабарланады?
8. Жолдың негізгі ерекшелігін атаңыз.
11 Зертханалық жұмыс №11. Графика
Жұмыстың мақсаты: графикалық операторлармен танысу.
11.1 Жеке тапсырмалар
1. Графикалық экранға үйдің суретін шығаратын бағдарлама құрыңыз.
2. Олимпиада ойындарының жалауын экранға шығаратын бағдарлама құрыңыз.
3. Экранға қайық суретін салатын бағдарлама құрыңыз.
4. Графикалық экранға тікұшақ суретін шығаратын бағдарлама құрыңыз.
5. Экранға жұлдыз суретін салатын бағдарлама құрыңыз.
6. Автокөлік суретін салатын бағдарлама құрыңыз.
7. Бағдаршам суретін салатын бағдарлама құрыңыз.
8. Экранға шахмат тақтасының бейнесін салатын бағдарлама құрыңыз.
9. Экранға қолсағат суретін салыңыз.
10. Қызыл түсті жалаудың суретін салыңыз.
11. Паровоздың суретін салыңыз.
12. Кеменің суретін салыңыз.
13. Ай мен күннің суретін салыңыз.
14. Роботтың суретін салыңыз.
15. Экранға маятник суретін салатын бағдарлама құрыңыз.
16. Қолшатыр суретін салатын бағдарлама құрыңыз.
17. Әртүрлі түске боялған төрт дөңгелек пен екі тіктөртбұрыш суретін салыңыз.
18. Конус пен цилиндрдің бейнесін тұрғызыңыз.
19. Бірінің ішіне бірі орналасқан 10 квадрат суретін салыңыз.
20. Экранға раушан гүлінің суретін салатын бағдарлама құрыңыз.
21. Компьютер суретін салыңыз.
22. Боялған алтыбұрыш суретін салатын бағдарлама құрыңыз.
23. Экранға кез келген жануардың суретін салатын бағдарлама құрыңыз.
24. Компьютерлік үстелдің суретін салыңыз.
25. Координаталар жүйесінің суретін салыңыз.
11.2 Әдістемелік нұсқаулар
Паскаль бағдарламалау тілінің өзінде графикалық пәрмендер келтірілмеген. Сондықтан Паскаль графикасын псевдо-графика деп атайды. Графикалық ақпараттармен жұмыс істеу үшін Graph.tpu модулі пайдаланылады. Graph модулінде графикалық ақпараттармен жұмыс жасауға арналған пәрмендерді сүйемелдейтін тұрақтылар, айнымалылар, типтер, процедуралар мен функциялар сипатталады.
Графикалық экранның мүмкіндігі экранға шығарылатын бейненің дәлдігімен анықталады. Паскаль тілінің графикалық экранының өлшемі: х осі бойынша 640 нүкте, у осі бойынша 480 нүкте. Паскаль тілі графикалық режиміндегі палитра 16 түстен құралған. Олар:
0 – қара
1 – сұр
2 – жасыл
3 – көгілдір
4 – қызыл
5 – күлгін
6 – қоңыр
7 – ақсұр
8 – қара сұр
9 – ашық көк
10 – ашық жасыл
11 – ашық көгілдір
12 – алқызыл
13 – қою қызыл
14 – сары
15 – ақ
Алғашқы 8 түс фонның және қарындаштың түсі ретінде, ал қалғандары тек қана қарындаштың түсі ретінде пайдаланылады. Суреттердің түсін өзгерткенде оның экранның түсімен бірдей болмауын ескеру қажет.
Паскаль тілінде сурет салуға арналған графикалық операторлар:
1) PutPixel(x,y,k) – координатасы (x,y) болатын k түсті нүкте салу.
2) GetPixel(x,y) – координатасы (x,y) болатын нүктенің түсін анықтау.
3) Line(x1,y1,x2,y2) – бастапқы нүктесінің координатасы (x1,y1), соңғы нүктесінің координатасы (x2,y2) болатын кесінді салу.
4) Lineto(x,y) – курсор тұрған нүктеден координатасы (x,y) болатын нүктеге дейін кесінді салу.
5) RecTangle(x1,y1,x2,y2) – диагональдарының төбелерінің координаталары (x1,y1) және (x2,y2) болатын тіктөртбұрыш салу.
6) Bar(x1,y1,x2,y2) – ағымдағы түспен боялған, диагональдарының төбелерінің координаталары (x1,y1) және (x2,y2) болатын тіктөртбұрыш салу.
7) Bar3d(x1,y1,x2,y2,h) – ағымдағы түспен боялған, биіктігі h белгілі параллелепипед салу.
8) Circle(x,y,r) – центрінің координатасы (x,y), радиусы r болатын шеңбер сызу.
9) Arc(x,y,α,β,r) – центрінің координатасы (x,y), радиусы r болатын бұрышынан бұрышына дейін доға салу.
Фон түстерін басқаруға және тағайындауға арналған процедуралар мен функциялар:
1) SetPalette процедурасы – берілген бояудағы түстің реттік нөмірі үшін стандартты бояудағы түсті өзгертеді.
2) SetAllPalette процедурасы – бояудағы түстің барлық реттік нөмірін өзгертеді.
3) GetPalette процедурасы – ағымдағы бояудың сипаттамасын береді.
4) GetPaletteSize процедурасы – ағымдағы түстің мөлшерін, кодын береді.
5) GetDefaultPalette процедурасы – стандартты тағайындалған бояудың сипаттамасын береді.
6) SetColor процедурасы – графикалық немесе мәтіндік ақпаратты экранға шығаратын түсті тағайындайды.
7) GetMaxColor процедурасы – ағымдағы түстің реттік нөмірін береді.
8) GetColor процедурасы – ағымдағы түстің ең үлкен нөмірін береді.
9) SetBkColor процедурасы – фонның түсін өзгертеді.
10) GetBkColor процедурасы – ағымдағы фонның түсін береді.
11) GetMaxColor процедурасы – фон түсінің ең үлкен нөмірін береді.
Графикалық экранды басқаруға арналған негізгі пәрмендер:
1) InitGraph – графикалық режимді тағайындау.
2) Detect – графикалық драйверді автоматты түрде анықтау.
3) CloseGraph – графикалық режимді жабу.
4) SetGraphMode – жаңа графикалық режимді тағайындау.
5) ClearDevice – графикалық экранды тазалау.
6) ClearViewPort – терезені тазалау.
7) GetMaxX – х осі бойынша ең үлкен координаталық мәнді анықтау.
8) GetMaxY – у осі бойынша ең үлкен координаталық мәнді анықтау.
Турбо Паскаль жүйесінде дыбыстық эффектілерді басқару үшін Sound, NoSound және Delay процедуралары қолданылады. Дербес компьютердің дыбыстық құралдарын іске қосу процедурасы: Sound(i:word). Мұндағы i-дыбыстың герцпен анықталатын жиілігі. NoSound процедурасы Sound процедурасымен берілген дыбыстық режимді тоқтатады. Delay процедурасы дыбысталу уақытын көрсетеді. Sound, NoSound және Delay процедураларының көмегімен сирена, сағат қоңырауы, құстардың ән салуы, музыкалық шығарма үзіндісі және т.б. дыбыстық эффектілерді шығаруға болады.
Барлық қажетті пәрмендер дәрістік сабақта толықтай баяндалғандықтан және тапсырмалар өте қарапайым болғандықтан, мысал келтірмейміз.
11.3 Бақылау сұрақтары
1. Паскаль тілінің графикасы қалай аталады?
2. Графикалық экранның мүмкіндігі экранға шығарылатын бейне немен анықталады?
3. CRT модулінің атқаратын қызметі.
4. Паскаль тілінде стандартты қанша түс бар?
5. Графикалық экранға нүкте, кесінді, тіктөртбұрыш, шеңбер сызу пәрмендері.
6. Графикалық экраның өлшеме х осі бойынша қанша нүктеден тұрады?
7. Графикалық экраның өлшеме y осі бойынша қанша нүктеден тұрады?
8. Паскаль тілі графикалық режиміндегі палитра қанша түстен құралған.
А қосымшасы
Турбо Паскаль жүйесінде құрылған бағдарламада жіберілетін
қателердің түрлері
А.1 кесте – Құрылған бағдарламада жіберілетін қателердің түрлері
Қате нөмірі |
Қате түрі |
Түсініктемесі |
1 |
Out memory |
Жадының шегінен шығып кету. Бұл жағдайда берілген мәтінді екі немесе бірнеше модульдерге бөлу керек |
2 |
Identifier expected |
Идентификатор көрсетілмеген |
3 |
Unknown identifier |
Идентификатор анықталмаған. Бұл идентификатор айнымалыларды сипаттау бөлігінде сипатталмаған |
4 |
Duplicate identifier |
Идентификатор қайталанып тұр |
5 |
Syntax error |
Синтаксистік қате |
6 |
Error in real constant |
Нақты тұрақты қате берілген |
7 |
Error in integer constant |
Бүтін тұрақты қате берілген |
8 |
String constant exceeds line |
Жолдық тұрақты берілген өлшемнен артық |
9 |
Too many nested files |
Ішкі файлдар өте көп |
10 |
Unexpected end of file |
Файл соңы дұрыс анықталмаған. Бағдарламадағы begin мен end (немесе арифметикалық өрнектегі жақшалар) саны бірдей болуы керек |
11 |
Line too long |
Жол өте ұзын. Жолдың ұзындығы 126 символдан аспауы керек |
12 |
Type identifier expected |
Идентификатор типін көрсету керек |
13 |
Too many open files |
Ашылған файлдар саны өте көп |
14 |
Invalid file name |
Файл аты дұрыс көрсетілмеген |
15 |
File not fond |
Файл табылмады. Көрсетілген бумада ізделінді файл жоқ |
16 |
Disk full |
Диск толық немесе дискіде файл жазуға арналған бос орын жоқ |
17 |
Invalid compiler directive |
Компилятор директивасы дұрыс көрсетілмеген |
18 |
Too many files |
Файлдар саны өте көп |
19 |
Undefined type in pointer definition |
Сілтемені анықтауда анықталмаған тип пайдаланылған |
20 |
Variable identifier expected |
Айнымалы идентификаторы көрсетілмеген |
21 |
Error in type |
Типті анықтауда қате жіберілген |
А.1 – кестесінің жалғасы
22 |
Structure too large |
Құрылым өте үлкен. Құрылымдық типтің ең үлкен өлшемі - 65520 байт |
23 |
Set base type of range |
Жиынның базалық типі шектеуден артық (256-дан артпауы керек) |
24 |
File components may not be files or object |
Файл компоненттері файл бола алмайды |
25 |
Invalid string length |
Жол ұзындығы дұрыс көрсетілмеген (жол ұзындығы 255-тен аспауы керек) |
26 |
Type mismatch |
Типтер сәйкес келмейді |
27 |
Invalid subrange base type |
Тип шектеуінің базалық типі дұрыс емес |
28 |
Lower bound greater than upper bound |
Төменгі шектеу жоғарғы шектеуден көп |
29 |
Ordinal type expected |
Реттік тип талап етіледі. Бұл жағдайда басқа типтерге рұқсат етілмейді. |
30 |
Integer constant expected |
Бүтін тұрақты қажет |
31 |
Constant expected |
Тұрақты қажет |
32 |
Integer or real constant expected |
Бүтін немесе бөлшек тұрақты қажет |
33 |
Pointer type identifier expected |
Идентификатор типін көрсету қажет |
34 |
Invalid function result type |
Функция нәтижесінің мәні жалған. Функция нәтижесінің дұрыс типі ретінде барлық карапайым типтер, жолдық типтер және сілтемелік типтер алынады |
35 |
Label identifier expected |
Белгі идентификаторын көрсету қажет |
36 |
BEGIN expected |
BEGIN сөзін жазу қажет |
37 |
END expected |
END сөзін жазу қажет |
38 |
Integer expression expected |
Өрнектің типі Integer болуы тиіс |
39 |
Ordinal expression expected |
Өрнектің типі саналатын тип болуы тиіс |
40 |
Boolean expression expected |
Өрнектің типі Boolean болуы тиіс |
41 |
Operand types do not match operator |
Операндалар типі операторларға сәйкес келмейді |
42 |
Error in expression |
Өрнекте қате бар |
43 |
Illegial assignment
|
Меншіктелу дұрыс қолданылмаған |
А.1 – кестесінің жалғасы
44 |
Field identifier expected |
Аумақ идентификаторы қажет |
45 |
Object file to large
|
Объектілі файл өте үлкен. Турбо Паскаль 64 Кбайттан жоғары болатын OBJ файлдарын құрастыра алмайды |
46 |
Undefined external |
Сыртқы процедура анықталмаған |
47 |
Invalid object file record |
Объектілі файл дұрыс жазылмаған |
48 |
Code segment too large
|
Код сегменті өте үлкен. Бағдарламалық модульдегі кодтың ең үлкен мөлшері 65520 байтқа тең |
49 |
Data segment too large
|
Сегменттегі мәліметтер өте көп. Бағдарламаның мәліметтер сегментінің ең үлкен өлшемі 65520 байтка тең, оған бағдарламалық модульде пайдаланылатын мәліметтер қосылады. |
50 |
DO expected |
DO операторы қажет |
51 |
Invalid PUBLIC definition |
PUBLIC дұрыс анықталмаған |
52 |
Invalid EXTRN definition |
EXTRN дұрыс анықталмаған |
53 |
Too many EXTRN definition |
EXTRN типі өте көп анықталған |
54 |
OF expected |
OF сөзін жазу қажет |
55 |
INTERFACE expected |
Интерфейстік бөлім қажет |
56 |
Invalid reloctable reference |
Қолдануға болмайтын қатынастың орын ауыстырылуы |
57 |
THEN expected |
THEN сөзін жазу қажет |
58 |
ТО or DOWNTO expected |
ТО немесе DOWNTO сөзі қажет |
59 |
Undefined forward |
Анықталмаған сипаттама |
60 |
Too many procedures
|
Процедуралар шамадан тыс көп. Турбо Паскаль бip модульде 512-ден артық процедура немесе функцияларды ала алмайды |
61 |
Invalid typecast |
Тип дұрыс түрлендірілмеген |
62 |
Division by zero |
Нөлге бөлу |
63 |
Invalid file type |
Файлдық тип дұрыс берілмеген |
64 |
Cannot Read or Write variables of this type |
Берілген типтегі айнымалыны жазу немесе оқу мүмкін емес |
65 |
Pointer variable expected |
Айнымалының типтік көрсеткіші болуы қажет |
А.1 – кестесінің жалғасы
66 |
String variable expected |
Айнымалының типі жолдық тип болуы қажет |
67 |
String expression expected |
Өрнектің типі жолдық тип болуы қажет |
68 |
Circular unit reference |
Модульге циклдік сілтеме |
69 |
Unit name mismatch
|
Бағдарламалық модульдердің атауларында сәйкестік жоқ |
70 |
Unit version mismatch |
Бағдарламалық модульдердің нұсқалары сәйкес келмейді. Бұл бағдарламада пайдаланылған бip немесе бірнеше бағдарламалық модульдер компиляция жасалғаннан кейін өзгерген |
71 |
Duplicate unit name
|
Бағдарламалық модуль аты қайталанады. Бұл бағдарламалық модуль USES операторында көрсетіліп қойылған |
72 |
Unit file format errror
|
Бағдарламалық модуль файлының форматы қате |
73 |
IMPLEMENTATION expected |
Жүзеге асыру бөлімі қажет |
74 |
Constant and case types do not match |
Case операторының тұрақтысының мәні мен өрнегінің типі бip-бipiнe сәйкес келмейді |
75 |
Record variable expected |
Айнымалының типі жазба болуы қажет |
76 |
Constant out of range |
Тұрақты мүмкін болатын аралықтан асып тұр |
77 |
File variable expected |
Айнымалының типі файлдық болуы қажет |
78 |
Pointer expression expected |
Өрнектің типі сілтеме болуы қажет |
79 |
Integer or real expression expected |
Өрнектің мәні Integer немесе real болуы қажет
|
80 |
Label not within current block |
Белгі ағымдағы бөлікте көрсетілмеген
|
81 |
Label already defvned |
Белгі бұған дейін анықталған |
82 |
Undefined label in processing statement part |
Операторлар бөлігіндегі белгі анықталмаған |
83 |
Invalid @ argument |
@ операторының аргументі дұрыс емес |
84 |
Unit expected |
Unit қажет |
85 |
"; "expected |
"; " белгісі көрсетілуі қажет |
86 |
":" expected |
":" белгісі көрсетілуі қажет |
87 |
"," expected |
"," белгісі көрсетілуі қажет |
88 |
"(" expected |
"(" белгісі көрсетілуі қажет |
А.1 – кестесінің жалғасы
89 |
")" expected |
")" белгісі көрсетілуі қажет |
90 |
"=" expected |
"= " белгісі көрсетілуі қажет |
91 |
":=" expected |
":=" белгісі көрсетілуі қажет |
92 |
"["or "(." expected |
"[" немесе "(." белгісі көрсетілуі қажет |
93 |
"]"ог ".)" expected |
"]" немесе ".)" белгісі көрсетілуі қажет |
94 |
"." Expected |
"." белгісі көрсетілуі қажет |
95 |
".."expected |
".." белгісі көрсетілуі қажет |
96 |
Too many variables |
Айнымалылар өте көп |
97 |
Invalid FOR control variable |
FOR айнымалысының басқарушы айнымалысы қате |
98 |
Integer variable expected |
Айнымалының типі Integer болуы қажет
|
99 |
File and procedure types are not allowed here |
Мұнда файлдық және процедуралық типті қолдануға болмайды
|
100 |
String length mismatch
|
Жолдық тұрақтының ұзындығы символдық массив элементтерінің мөлшеріне сәйкес келмейді |
101 |
Invalid ordering of fields |
Өрістердің реті дұрыс емес
|
102 |
String constant expected |
Жолдық типті тұрақты қажет
|
103 |
Integer or real variable expected |
Integer немесе real типті айнымалы болуы тиіс
|
104 |
Ordinal variable expected |
Саналатын тип айнымалы болуы тиіс |
105 |
INLINE error |
INLINE операторында қате бар |
106 |
Character expression expected |
Өрнектің мәні символдық тип болуы тиіс |
107 |
Too many relocation items
|
Орналасатын элементтер шамадан тыс көп. ЕХЕ файлды орналастыратын кесте бөлімінің өлшемі 64 Кбайттан аспауы тиic |
108 |
Overflow in arithmetic operator |
Арифметикалық операция шектеуден асып кеткен |
109 |
No enclosing For, While or Repeat statment |
For, While немесе Repeat операторлары аяқталмаған |
110 |
Debug information table overflow |
Ақпараттық кестенің шегінен (65536-дан) асып кеткен |
111 |
Compilation aborted |
CTRL-Break пернелерінің көмегімен компиляция үзілген |
А.1 – кестесінің жалғасы
112 |
CASE constant out of range |
CASE тұрақтысының мәні мүмкін болатын аралыққа сай келмейді |
113 |
Error in statement |
Оператор қате жазылған |
114 |
Cannot call an interrupt procedure |
Процедураны тоқтату мүмкін емес |
115 |
Must have an 8087 to compile this |
Компиляция үшін сопроцессордың 8087 режимі қажет |
116 |
Target address not found |
Тағайындалған адрес табылған жоқ |
117 |
Include files are not allowed here |
Мұндай жағдайда косылған файлдар жіберілмейді |
118 |
NIL expected |
NIL қажет |
119 |
Invalid qualifier |
Квалификатор дұрыс емес |
120 |
Invalid variable reference |
Айнымалыға жасалынған сілтеме жалған
|
121 |
Too many symbols |
Символдар шамадан тыс көп |
122 |
Statement part too large |
Операторлар бөлімі өте үлкен |
123 |
Files must be var parameters |
Файлдық типтің параметрлері var бөлігінің параметрлері болуы қажет |
124 |
Too many conditional symbols |
Шартты символдар шамадан тыс көп |
125 |
Misplaced conditional directive |
Шартты директив калып қалған
|
126 |
ENDIF directive missing |
ENDIF сөзі қалып калған |
127 |
Error in initial conditional defines |
Бастапқы шартты анықтауда қате бар |
128 |
Header does not match previous definition |
Процедураның немесе функцияның тақырыбы алдыңғы анықтауға сәйкес келмейді
|
129 |
Critical disk error |
Дискіде критикалық қате бар |
130 |
Cannot evaluate this expression |
Бұл өрнекті есептеу мүмкін емес
|
131 |
Expression incorrectly terminated |
Өрнек дұрыс аяқталмаған |
132 |
Invalid format specifier |
Формат спецификаторы жалған
|
133 |
Invalid indirect reference |
Мұндай жанама сілтеме рұқсат етілмейді
|
134 |
Structured variable are not allowed here |
Мұнда құрылымдық айнымалыны пайдалануға болмайды |
А.1 – кестесінің жалғасы
135 |
Cannot evaluate without System unit |
System модулінсіз есептеу мүмкін емес
|
136 |
Cannot access this symbol |
Бұл символға кіруге рұқсат жоқ
|
137 |
Invalid floating-point operation |
Жылжымалы үтірмен орындалмайтын операция |
138 |
Cannot compile overlay to memory |
Жадыда оверлейлерді компиляциялауды орындауға болмайды |
139 |
Procedure or function variable expected |
Айнымалы процедура немесе функция
|
140 |
Invalid procedure or function reference |
Процедураға немесе функцияға мұндай сілтеме жасауға рұқсат етілмейді |
141 |
Cannot overlay this unit |
Бұл модуль оверлейлік модуль ретінде пайдаланыла алмайды |
142 |
Too many nested scopes |
Kөpy нүктелері шамадан тыс көп
|
143 |
Object type expected |
Объектілі тип қолданылуы қажет |
144 |
Local object types are not allowed |
Жергілікті объектілі типті қолдануға болмайды |
145 |
VIRTUAL expected |
VIRTUAL кызметші сөзін көрсету қажет |
146 |
Method identifier expected |
Ереже идентификаторын жазу қажет |
147 |
Virtual constructor are not allowed
|
Виртуалдық конструкторларды қолдануға болмайды. Конструктор epeжeci статистикалық болуы тиіс |
148 |
Constructor identifier expected |
Конструктор идентификаторы қажет
|
149 |
Destructor identifier expected |
Деструктор идентификаторы қажет |
150 |
Fail only allowed within constructors |
Fail процедурасы тек конструкторда ғана шақырылады |
151 |
Division by zero |
Нөлге бөлу |
152 |
Range check error |
Шекараны тексеруде қате бар |
153 |
Stack overflow error |
Стект толық |
154 |
Heap overflow error |
Жадының динамикалық үлестірілген бөлігінің толысуы |
155 |
Invalid pointer operation |
Сілтеме операциясы жалған |
156 |
Floating point overflow |
Бөлшек санмен операция орындалғанда жады толған |
157 |
Floating point underflow |
Бөлшек санмен операция орындалғанда олар ретсізделген |
А.1 – кестесінің соңы
158 |
Invalid floating point operation |
Бөлшек санға қолданылмайтын операция |
159 |
Object not initialized |
Анықталмаған объект |
160 |
Call to abstract method |
Абстрактті әдісті шақыру |
161 |
Stream registration error |
Ағымды тіркеу қатесі |
162 |
Collection index out of range |
Жиын индексі шектеуден артық |
163 |
Collection overflow error |
Жиын толық |
В қосымшасы
Турбо Паскаль жүйесінің негізгі мәзір пәрмендері
В.1 кесте – Негізгі мәзір пәрмендері
Пернелер |
Мәзірдегі эквива-лентті пәрмен |
Атқаратын қызметі |
F1 |
Help |
Анықтамалық жүйені шақыру |
F2 |
Save |
Файлды сақтау |
F3 |
Open (load) |
Файлды ашу |
F4 |
Go to cursor |
Бағдарламаны курсор тұрған жерге дейін орындау |
F5 |
Zoom |
Терезені үлкейту |
F6 |
Next |
Келесі терезені ашу |
F7 |
Trace into |
Бағдарламаны қадам бойынша орындау |
F8 |
Step over |
Бағдарламаны қадам бойынша көмекші бағдарламаға кірмей орындау |
F9 |
Make |
Файлды компиляциялау |
F10 |
|
Мәзір жүйесіне өту |
Alt+F1 |
Previous topic |
Анықтамалық жүйенің алдыңғы терезесін шақыру |
Alt+F3 |
Close |
Терезені жабу |
Alt+F5 |
User screen |
Бағдарламаның шығаратын ақпаратын экраннан көру |
Alt+F9 |
Compile |
Редакторға жүктелген файлды компиляциялау |
Alt+F10 |
|
Локальді мәзір шақыру |
Alt+BkSp |
Undo |
Ағымдағы терезедегі өзгерісті бастапқы қалпына келтіру |
Alt+C |
|
Compile мәзірін шақыру |
Alt+D |
|
Debug мәзірін шақыру |
Alt+E |
|
Edit мәзірін шақыру |
В.1 – кестесінің соңы
Alt+F |
|
File мәзірін шақыру |
Alt+H |
|
Help мәзірін шақыру |
Alt+O |
|
Options мәзірін шақыру |
Alt+R |
|
Run мәзірін шақыру |
Alt+S |
|
Search мәзірін шақыру |
Alt+T |
|
Tools мәзірін шақыру |
Alt+W |
|
Window мәзірін шақыру |
Alt+X |
Exit |
Турбо Паскальдан шығу |
Alt+O |
List |
Ашылған терезелердің тізімін алу |
Ctrl+F1 |
Topic search |
Іздеуді жалғастыру |
Ctrl+F2 |
Program reset |
Бағдарламаның орындалуын тоқтату |
Ctrl+F3 |
Call stack |
Көмекші бағдарлама терезесін шақыру |
Ctrl+F4 |
Evaluate/modify |
Өрнекті есептеу |
Ctrl+F5 |
Size/move |
Терезе көлемін өзгерту |
Ctrl+F7 |
Add watch |
Бақылау параметрін қосу |
Ctrl+F9 |
Run |
Бағдарламаны орындау |
Ctrl+Delete |
Clear |
Бағдарламаның белгіленген бөлігін жою |
Ctrl+Insert |
Copy |
Бағдарламаның белгіленген бөлігін алмастыру буферіне көшіру |
Shift+F1 |
Index |
Анықтама жүйесінің мазмұнын көру |
Shift+F6 |
Previous |
Алдыңғы терезені белсендіру |
Shift+Delete |
Cut |
Бағдарламаның белгіленген бөлігін алмастыру буферіне көшіру |
Shift+Insert |
Paste |
Алмастыру буферіндегі мәліметті терезеге көшіру |
Esc |
|
Мәзір жүйесін жабу |
Find error |
|
Қатені іздеу |
New |
|
Жаңа файл ашу |
Save ass… |
|
Файлды жолын көрсетіп сақтау |
С қосымшасы
Турбо Паскаль жүйесіндегі модульдер
D қосымшасы
Паскаль тілінде құрылған бағдарламалар:
№1. Пернетақтадан енгізілген x айнымалысы үшін функциясының мәнін есептейтін бағдарлама құрыңыз.
Program pr1;
Var x,y:real;
Begin
Write(‘x енгізіңіз’);
Read(x);
y:=ln(x+1)/(exp(1/3*ln(2*x+5))+sqrt(5-2*x));
write(‘y=’,y:3:3);
end.
Жауабы: x=1 болғанда y=0,190.
№2. Кез келген үш санның арифметикалық ортасын есептейтін бағдарлама құрыңыз.
Program pr2;
Var a,b,c,S,SA:real;
Begin
Write(‘a,b,c енгізіңіз’);
Read(a,b,c);
S:=a+b+c;
SA:=S/3;
Write(‘SA=’,SA:2:2);
End.
Жауабы: a=2, b=5, c=7 болғанда SA=4,67.
№3. Енгізілген бөлшек санын тенге мен тиынға айналдыратын бағдарлама құрыңыз.
program pr3;
var n,tg,tn:real;
begin
read(n);
tg:=round(n*100)div 100;
tn:=round(n*100)mod 100;
write('tg=',tg:2:2,' tn=',tn:2:2);
end.
Жауабы: n=54352,7845 болғанда tg=54352, tn=78.
№4. Тоғыз қабатты үйдің әрбір қабатында 4 пәтерден орналасқан. Пернетақтадан енгізілген нөмірлі пәтердің қай подъезде және нешінші қабатта орналасқанын анықтайтын бағдарлама құрыңыз.
Program pr4;
Var n,x,y:integer;
begin
writeln('n=');
readln(n);
x:=(n-1)div 36+1;
n:=n-(x-1)*36;
y:=(n-1)div 4+1;
write('pod=',x,'kabat=',y);
end.
Жауабы: n=56 үшін pod=2, kabat=5.
№5. Енгізілген x мәніне байланысты у функциясын есептейтін бағдарлама құрыңыз.
|
Program pr5;
Var x:integer;
y:real;
Begin
Write(‘x енгізіңіз’);
Read(x);
Case x of
1: y:=x-7;
3: y:=abs(x);
5: y:=5;
8: y:=sqrt(x)
Else y:=sqr(x);
End;
Write(‘y=’,y:2:2);
End.
Жауабы: x=4 болғанда y=16,00.
№6. функциясын -4х1 аралығында h=1 қадаммен есептейтін бағдарлама құрыңыз.
Program pr6;
Label 1;
Var x,y,h:real;
Begin
X:=-4; h:=1;
1: if (x>=-4) and(x<=1) then
begin
y:=3*sqr(x)+8*x-7;
Writeln(‘x=’,x:2:2,‘y=’,y:2:2);
x:=x+h; goto 1;
end;
End.
Жауабы:
x |
y |
-4 |
9 |
-3 |
-4 |
-2 |
-11 |
-1 |
-12 |
0 |
-7 |
1 |
4 |
№7. Пернетақтадан енгізілген бүтін оң санға байланысты фонның түсін анықтайтын бағдарлама құрыңыз.
program pr7;
var tys:integer;
begin
write('tys');
read(tys);
case tys of
0: writeln('қара');
1: writeln('сұр');
2: writeln('жасыл');
3: writeln('көгілдір');
4: writeln('қызыл');
5: writeln('күлгін');
6: writeln('қоңыр');
7: writeln('ақсұр')
else writeln('фон бұл түсті бола алмайды');
end;
end.
Жауабы: tys=2 үшін «жасыл» мәнін береді.
№8. Енгізілген x мәніне байланысты у функциясын есептейтін бағдарлама құрыңыз.
program pr8;
var x,y:real;
begin
write('x=');
read(x);
if x<0 then y:=x+5
else if (x>=0) and (x<=3) then y:=sqr(x)-1
else y:=exp(x-3);
write('y=',y:3:2);
end.
Жауабы:
х |
y |
-1 |
4 |
2 |
3 |
4 |
2,72 |
№9. Берілген бүтін n оң саны үшін есептеңіз.
program pr9;
var i,n:integer;
y:real;
begin
writeln('n=');
readln(n);
y:=0;
for i:=n downto 1 do
y:=sqrt(2*i+y);
writeln('y=',y:3:3);
end.
Жауабы: n=5 үшін y=2,158.
№10. сан қатарының алғашқы 20 мүшесінің қосындысын For операторымен табыңыз.
program pr10;
var summ:real;
i:integer;
begin
summ:=0;
for i:=l to 20 do
summ:=summ+1/i;
write(‘summ=’,sum:3:3);
end.
Жауабы: sum=3,598.
№11. сан қатарының алғашқы 20 мүшесінің қосындысын While операторымен табыңыз.
program pr11;
var summ:real;
i:integer;
begin
summ:=0; i:=1;
while i<=20 do
begin
summ:=summ+1/i;
i:=i+1;
end;
write(‘summ=’,sum:3:3);
end.
Жауабы: sum=3,598.
№12. сан қатарының алғашқы 20 мүшесінің қосындысын Repeat операторымен табыңыз.
program pr12;
var summ:real;
i:integer;
begin
summ:=0; i:=1;
repeat
summ:=summ+1/i;
i:=i+1;
until i>20;
write(‘summ=’,sum:3:3);
end.
Жауабы: sum=3,598.
№13. Пернатақтадан енгізілген санның неше орынды сан екендігін анықтайтын бағдарлама құрыңыз.
program pr13;
var m,n:longint;
k:integer;
begin
writeln('n');
readln(n);
m:=n; k:=0;
while m<>0 do
begin
k:=k+1;
m:=m div 10;
end;
writeln('',n,'-саны ',k,' орынды сан');
end.
Жауабы: 4354546-саны 7 орынды сан.
№14. Берілген бүтін n оң санында қанша цифр бар, цифрларының қосындысы нешеге тең және алғашқы цифрды анықтайтын бағдарлама құрыңыз.
program pr14;
var n:longint;
q:1..10;
S:0..90;
begin
writeln('n=');
readln(n);
q:=1;
s:=n mod 10;
while n>9 do
begin
inc(q);
n:=n div 10;
s:=s+n mod 10;
end;
writeln('barligi ',q,' sifr');
writeln('algashki sifr=',n);
writeln('kosindy=',s);
end.
Жауабы: n=4353654 үшін «barligi 7 sifr, algashki sifr =4, kosindy =30».
№15. Берілген бөлшегінің мәнін есептеңіз.
program pr15;
var bolshek:real;
n:integer;
begin
bolshek:=1/103;
n:=101;
repeat
bolshek:=1/(n+bolshek);
n:=n+2
until n<1;
writeln('bolshek =',bolshek:9:9);
end.
Жауабы: bolshek =0,000030519.
№16. Өзінің соңғы цифрына және 77 санына бөлінетін барлық үш орынды сандарды табыңыз.
program pr16;
uses crt;
var a,b,c,x:integer;
begin
clrscr;
for a:=1 to 9 do
for b:=1 to 9 do
for c:=1 to 9 do
begin
x:=(a*10+b)*10+c;
if(x mod77=0) and (x modc=0)then writeln('x=',x);
end;
end.
Жауабы:231, 385, 462, 693, 847, 924.
№17. Бүтін сандардан құрылған векторы берілген. Вектордағы оң элементтердің арифметикалық ортасын, ал теріс элементтердің санын табыңыз.
program pr17;
var a:array[1..20] of real;
S,SA:real;
I,kt,ko:integer;
begin
for i:=1 to 20 do
begin
write(‘a[‘,I,’]’);
read(a[i]);
end;
S:=0; ko:=0; kt:=0;
for i:=1 to 20 do
if a[i]>0 then begin
S:=S+a[i];
ko:=ko+1;
end
else if a[i]<0 then kt:=kt+1;
SA:=S/ko;
write(‘арифметикалық орта SA=’,SA:3:3);
write(‘теріс элемент саны kt=’,kt);
end.
Жауабы: a={1, -4, 5, 3, -8, 4, 0, -1, 5, 6, 7, -4, -7, 8, 9, -3, 5, 6, 0, 11} үшін арифметикалық орта SA=5,833, теріс элемент саны kt=6.
№18. A(7,7) матрицасының басты диагоналі элементтерінің көбейтіндісін, қалған элементтерінің қосындысын табыңыз.
program pr18;
var a:array[1..7,1..7] of real;
S,P:real;
i,j:integer;
begin
for i:=1 to 7 do
for j:=1 to 7 do
begin
write(‘a[‘,i,’,’,j,’]’);
read(a[i,j]);
end;
S:=0; P:=1;
for i:=1 to 7 do
for j:=1 to 7 do
if i=j then P:=P*a[i,j] else S:=S+a[i,j];
write(‘көбейтінді P=’,P:3:3);
write(‘қосынды S=’,S:3:3);
end.
Жауабы: үшін
көбейтінді P=360.000, қосынды S=142.000
№19. A(5,4) массиві берілген. шартын қанағаттандыратын элементтердің санын есептеңіз.
program pr19;
var a:array[1..5,1..4] of real;
i,j:byte;
k:integer;
begin
for i:=1 to 5 do
for j:=1 to 4 do
begin
write('a[',i,',',j,']');
read(a[i,j]);
end;
k:=0;
for i:=1 to 5 do
for j:=1 to 4 do
if (a[i,j]>=-3) and (a[i,j]<=3) then k:=k+1;
write('k=',k);
end.
Жауабы:
a[1,1] 4
a[1,2]5
a[1,3]6
a[1,4]7
a[2,1]-3
a[2,2]-2
a[2,3]3
a[2,4]1
a[3,1]0.4
a[3,2].5
a[3,3]5
a[3,4]2.5
a[4,1]4
a[4,2]-1.4
a[4,3]5
a[4,4]4
a[5,1].8
a[5,2]5
a[5,3]-4
a[5,4]5
мәндері үшін нәтиже k=9.
№20. Нүктелер координаталары X(10), Y(10) массивтері түрінде берілген. Центрі бас нүкте (0,0) болатын радиусы шеңберінің ішінде жататын нүктелер санын табыңыз. Берілген нүктеден радиусқа дейінгі арақашықтықты көмекші бағдарламада есептеңіз.
program pr20;
var i,k:integer;
a,b:real;
x,y,r:array [1..10] of real;
function rast(a,b:real):real;
begin
rast:=sqrt(sqr(a)+sqr(b));
end;
begin
for i:=1 to 10 do
begin
writeln('x[',i,'],y[',i,']');
readln(x[i],y[i]);
end;
k:=0;
for i:=1 to 10 do
begin
a:=x[i]; b:=y[i];
r[i]:=rast(a,b);
if r[i]<5 then k:=k+1;
end;
write('k=',k);
end.
Жауабы:
x |
1 |
2 |
2 |
3 |
4 |
2 |
3 |
1 |
5 |
4 |
y |
1 |
2 |
2 |
3 |
4 |
3 |
2 |
3 |
6 |
5 |
мәндері үшін нәтиже k=7.
Әдебиеттер тізімі
1. Халыкова К.З. Паскаль тілінде бағдарламалау. – Алматы,2002. - 200 б.
2. Молчанова С.И. Основы программирования. – Москва: «Аквариум» ACT,1999.-222 с.
3. Культин Н. Turbo Pascal в задачах и примерах. - Санкт-Петербург, 2000. -256 с.
4. Хамзина Б., Каниев Г. Курс лабораторных работ по языкам программирования Паскаль и Бейсик. -Алма-Ата,1992. -57 б.
5. Абрамов С.А., Гнездилова Г.Г. - Задачи по программированию.- Москва: «Наука»,1988.-224 б.
6. Абрамов С.А., Зима Е.В. Начала программирования на языке Паскаль.-Москва: «Наука»,1987.
7. Фараонов В.В. Программирование на ПЭВМ в среде Турбо-Паскаль.-Москва: изд-во МГТУ,1990.
8. Костюкова Н.И. Знакомтесь–Паскаль! Методические рекоменда-ции и задачи по программированию. –Новосибирск,2003.
9. Смайлова Ұ.М. Бағдарламалау: Алгоритм құру технологиялары. –Алматы,2011.- 168 б.
Мазмұны
Кіріспе |
3 |
1 Зертханалық жұмыс. №1. Паскаль тіліне кіріспе |
4 |
2 Зертханалық жұмыс №2 Сызықтық құрылымды алгоритмдерді бағдарламалау |
7 |
3 Зертханалық жұмыс №3. Тармақталушы құрылымды алгоритмдерді бағдарламалау |
10 |
4 Зертханалық жұмыс №4. Параметрлі қайталау операторлары |
14 |
5 Зертханалық жұмыс №5. Кейінгі шартты қайталау операторлары |
16 |
6 Зертханалық жұмыс №6. Алдыңғы шартты қайталау операторлары |
19 |
7 Зертханалық жұмыс №7. Бірөлшемді массивтер |
21 |
8 Зертханалық жұмыс №8. Екіөлшемді массив |
25 |
9 Зертханалық жұмыс №9. Процедуралар және функциялар |
28 |
10 Зертханалық жұмыс №10. Жолдар |
31 |
11 Зертханалық жұмыс №11. Графика |
34 |
А қосымша. Турбо Паскаль жүйесінде құрылған багдарламада жіберілетін қателердің түрлері |
38 |
В қосымша. Турбо Паскаль жүйесінің негізгі мәзір пәрмендері |
45 |
С қосымша. Турбо Паскаль жүйесіндегі модульдер |
47 |
D қосымша. Паскаль тілінде құрылған бағдарламалар |
47 |
Әдебиеттер тізімі |
57 |
|
|