КОММЕРЦИЯЛЫҚ ЕМЕС АКЦИОНЕРЛІК ҚОҒАМЫ

АЛМАТЫ ЭНЕРГЕТИКА ЖӘНЕ БАЙЛАНЫС УНИВЕРСИТЕТІНІҢ

Ақпараттық жүйелер кафедрасы

 

АҚПАРАТТАНУ. 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