Коммерциялық емес акционерлік қоғамы

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

Инженерлік кибернетика кафедрасы 

 

ИНФОРМАТИКА. АЛГОРИТМДЕУ 

050718 –Электр энергетикасы мамандығы бойынша барлық оқу түрінің студенттері үшін зертханалық жұмыстарды орындауға арналған әдістемелік нұсқаулар

 

Алматы 2009 

Құрастырушылар: В. М. Тарасов, С.Ә. Әділғажынова. Информатика. Алгоритмдеу. 050718 – Электр энергетикасы мамандығы бойынша барлық оқу түрінің студенттері үшін зертханалық жұмыстарды орындауға арналған әдістемелік нұсқаулар. -Алматы: АЭжБи, 2009. – 33 б. 

Әдістемелік нұсқауда зертханалық жұмыстарды орындау кезінде сырттай және күндізгі оқу бөлімдерінің студенттері пайдалану үшін жүйелі мағлұматтар мен ұсыныстар берілген. Зертханалық жұмыстарды орындау кезінде студенттер программа құрудың тәжірибесі мен технологиясын меңгереді.

Бұл нұсқау Информатика пәнінің «Алгоритмдеу» бөлімінің 050718 – электр энергетикасы мамандығы бойынша оқитын студенттерге арналған.

 

 Кіріспе 

Pascal тілі жоғарғы деңгейлік тіл болып табылады, өйткені барлық операторлары нақты ағылшын сөздерінен құрылған. Бірақ математикалық мүмкіндіктері шектелген.

Зертханалық жұмысты орындар алдында студент міндетті түрде оның сипаттамасымен, ұсынылған теориялық мәліметпен танысып, (қажет болған жағдайда, қосымша ақпараттар көзіне сүйенген жөн) өз нұсқасы бойынша программаның мәтінін дайындауы қажет. Кезекті жұмысты орындап болған соң студентке келесі сабақ тапсырмасының мақсаты, берілгені, программасы, программаның жұмыс істеу нәтижесі, блок-сұлбасы көрсетілген есеп берілуі қажет, бақылау сұрақтарына жауап беруге дайындалуы тиіс. Тапсырмалар нұсқасын оқытушы береді.

ЭЕМ-де есептерді шығару келесі сатылардан тұрады: есептің математикалық тұжырымдамасын құру, оны шешудің алгоритмін жасау, программаның мәтінін жазу, шығатын нәтижелерді көрсету.

Алгоритм – орындаушыға түсінікті болатын есепті шешу әдісін әртүрлі тізбектерге бөлу арқылы формальді түрде сипаттау. Алгоритм адам үшін графикалық түрде немесе дербес компьютер үшін программа түрінде орындалуы мүмкін. Графикалық алгоритм блок-сұлба түрінде орындалады, яғни геометриялық фигуралардың (блоктар) және келесі әрекеттерді көрсететін көрсеткіштердің жиыны. Блок-сұлбада формулалар математикалық өрнектер арқылы көрсетіледі.

 
№1 зертханалық жұмыс. Сызықты алгоритмді құру

 

Жұмыстың мақсаты: сызықты алгоритмдерді құрудың ережелерімен танысу және оны программа түрінде көрсету.

 

1.1 Сызықты алгоритмді және программаны құру

 

1.1.1 ДК жады және берілгендердің типі

Есептеулердің берілгендері мен нәтижесі оперативті жадының ұяшығында сақталады. Жады ұяшығы байттан немесе бірнеше біріктірілген байттардан тұруы мүмкін. Барлық жады ұяшығы екілік жүйеде нөмірленеді. Оперативтік жадының бөлігін 1.1 суретінде ұяшық нөмірі он алтылық санақ жүйесінде көрсетілген сұлба түрінде ұсынуға болады.

1 СуретДербес компьютердің оперативті жадысының бөлігі

 

Бірақ программашыға сандармен емес жады ұяшықтарының атымен жұмыс істеген қолайлы, сондықтан ұяшықтарға ат қойылады (идентификаторлар). Оның аты әріптен және басқа әріптер, сандар, бірге жазылған символдардан тұруы мүмкін. Латын әріптері қолданылады. Мысалы, Temperatura_vozdukha_v_zdanii. Қысқа программаларда қысқаша аттарды жазуға болады: a, b, bukva, Slovo, X, Y, Max және т.б. Программаның жұмыс істеуі барысында жады ұяшығының ішіндегілері өзгеретін болса, онда оларды айнымалы деп атайды. Айнымалыларға қолданылатын аттар резервтелген сөздермен бірдей болмауы керек.

Pascal тілінде резервтелген сөздер өзгертілмейді, олардың әрқайсысының қатаң тағайындалуы бар. Резервтелген сөздердің тізімі В.1 кестесінде көрсетілген.

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

Тұрақтылардың айнымалыдан айырмашылығы олардың мәні программаның орындалу кезінде өзгермейді.

Берілгендердің типі char. Жады ұяшығы сегіз биттен тұрады. Әрбір битке 0 немесе 1 бүтін сандарын жазуға болады. Сондықтан байтқа 0 ден 255-ке дейін сандарды жазуға болады, барлығы 256 сан. Бұл сандарға символдар кодының мәндерін беруге болады. Мысалы, латын әрпі А-ға 65 коды жазылады. Экранға шығарған кезде 65 коды А символының суреті ретінде шығады.

Берілгендердің типі integer. Жады ұяшығы үшін екі байтты пайдаланатын болса, онда оған 0-ден 65535-ке дейінгі бүтін сандарды жазуға болады, 256*256-1=65535. Осы диапазонды қақ ортасынан бөле отырып, оларға -32768-ден +32767-ға дейінгі бүтін сандарды жазуға болады.

Берілгендердің типі real. Бүтін сандар және бөлшек сандар әртүрлі формада көрсетілуі мүмкін (В.2 кестесі). Программада бөлшек сандар ондық санақ жүйесінде жазылады, тек бөлшек бөлігін бөліп жазу үшін нүкте жазылады: 0, -19, 0.27, 3.1415 және т.б. Бөлшек сандарды көрсеткіштік формада көрсетуге болады, мысалы, бір байтқа дәреженің көрсеткішін жазады да, қалғанын мантиссаға жазады. Бөлшек санды жазу мысалы: 3.1415 = 3.1415*100 = 0.31415*101 = 0.031415*102 = 311.415*10-2. Экранға бұл сан 0.0314150000Е+02 түрінде шығарылады, бұл түрі санның инженерлік форматы деп аталады. Жазылатын сандардың диапазоны ±(2.9E-39÷1.7E+38).

Қабылданған айнымалының типі айнымалыға қолданылатын әрекеттерді де анықтайды.

Бүтін сандарға арифметикалық амалдарды қолданған кезде оның нәтижесі де бүтін болуы қажет, сондықтан бүтін сандарды бөлу мүмкін емес. Символдарды бірінен бірін алу және біріне бірін көбейту мүмкін емес.

Pascal тіліндегі программада  әріптер регистрі, пробел саны және бос жолдар санына мән берілмейді, сондықтан  “writeln(Х)” және  “WRiteLn  (х)” Pascal тілі үшін бірдей жазба болып саналады.

Айнымалыға мәндерді жазу үшін «:=» меншіктеу операторы қолданылады. Мысалы, а:=12; bukva:=’h’; X:=4.234, Slovo:=’Massiv’.

Pascal тіліндегі қарапайым программаның құрылымы Б.1 кестесінде көрсетілген. Сипаттау бөлімінде программаның аты программада қолданылатын белгілер мен тұрақтылар, идентификаторлар мен айнымалының типтері беріледі. Программаның негізгі бөлігі оның орындалу бөлігі болып табылады, яғни компьютер орындайтын нұсқаулықтар тізбегі. Бұл нұсқаулықтарды өрнектер деп атаған жөн.

Күрделі арифметикалық өрнектер арифметикалық операциялардың белгілерімен біріктірілген операндтардан (тұрақтылар мен айнымалылар) құрылады. Сонымен қоса, өрнектерде жақшалар мен енгізілген функциялар (Б.2 кестесі) қолданылуы мүмкін. Арифметикалық өрнектерді құрастырған кезде келесі ережелерді ұстанған жөн:

- екі арифметикалық операция қатар тұрмауы қажет;

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

 

1.1.2 Енгізу және шығару операторлары

 

Айнымалылардың мәнін немесе хабарламаны экранға шығару үшін Writeln() немесе Write() операторлары қолданылады. Ln суффиксі хабарлама шыққаннан кейін курсорды жаңа жолға (Enter батырмасының аналогы) көшіреді. Жақшаның ішінде апострофтардың арасында түсініктеме мәтін (комментарии), экранға шығатын айнымалы мәндерінің аты, шығатын айнымалылардың форматы көрсетіледі.

Мысалы, Х айнымалысында 23.174397534 мәні, Һ айнымалысында 4.6384724913 мәні көрсетілсін.

Онда Writeln (‘Dlina=’,X,’ Vysota=’, h) операторы бойынша экранға  Dlina=2.3147397534E+01   Vysota=4.6384724913E+00 хабарламасы шығады.

Орысша сөздерді aipet.kz сайтында немесе Г қосымшасында көрсетілген арнайы стандартты кодтың көмегімен латын әріптері арқылы жазған жөн.

Айнымалының мәнін, өзімізге түсініктірек, қысқаша түрде шығару операторы Writeln (‘Dlina=’,X:7:2, Vysota=’, h:6:2) арқылы форматты шығаруға  болады. Онда экранға Dlina=     23.15 Vysota=   4.64 хабарламасы шығады. Мұндағы 7 және  6 сандары айнымалылардың мәнін экранға шығару үшін белгі орындарының санын, 2 саны (үтірден кейінгі) бөлшек сандардың санын көрсетеді. Жуықтап шығару автоматты түрде орындалады.

Жұмыс істеп тұрған программада пернетақтаның көмегімен берілгендерді енгізу үшін Readln (Х) немесе Read (х) операторлары қолданылады. Пернетақтадан символдарды тергеннен кейін және Enter батырмасын басқаннан кейін, Readln (Х)  операторы бойынша терілген символдар Х айнымалысында сақталады және курсор жаңа жолға көшеді.

Ескерту! Енгізу операторының алдында Write() операторының көмегімен түсініктеме жазған жөн.

Мысалы: Write (‘Vvedite znachenie dliny ->’); Readln (x);.  Readln операторы ешқандай аргументсіз жазылса, онда ол кезде кез келген батырманы басу немесе программаны тоқтатып, оның нәтижесін көрсету үшін қолданылады.

Меншіктеу операторы айнымалының мәнін өзгертуге мүмкіндік береді. Алдымен ":=" ("меншіктеу") белгісінің оң жағындағы өрнек есептелінеді, шыққан нәтиже меншіктеу операторының сол жағындағы айнымалыға меншіктеледі. Бұл жағдайда, бұрын меншіктелген мәні жоғалады. Мысалы, Р:= 5*10-2 жазбасында, Р айнымалысына 48 мәні жазылады.

Тілдің операцияларының тізімі және қондырылған функциялар Б.2. және В.3 кестелерінде көрсетілген.

 саны Pi функциясы ретінде көрсетілген. Мысалы: X:=Cos(Pi/4).

Программада математикалық өрнектердің жазылу ерекшеліктері:

- өрнек бір жолға жазылады, төменгі және жоғарғы символдар жоқ;

- функцияның барлық аргументтері жақшаның ішінде көрсетіледі;

- өрнекте көбейту белгісі міндетті түрде жазылады. Әйтпесе, өрнек көбейтусіз жазылатын болса, оны Pascal типі көрсетілмеген айнымалының аты деп көрсетіп, қате ретінде көрсетеді.

Программаның мәтінін тездетіп теру үшін А қосымшасында көрсетілген батырмаларды қолданған жөн.

Д қосымшасында программалау кезінде жиі кездесетін қателер тізімі көрсетілген.

Кез келген алгоритм типтік элементтерден синтезделеді: сызықты, тармақталған және циклдық алгоритмдер.

Сызықты алгоритмнің амалдары тізбектеліп бірінен кейін бірі орындалады. 

 

 

1.2 Сызықты алгоритмге мысал және программасы

 

 функциясын есептеу қажет. А және Х айнымалыларының мәнін клавиатурадан енгізу қажет.

Блок-сұлба және программаның мәтіні 1.2 суретінде көрсетілген.

Программаға түсіндірме. Uses Crt арқылы экранды тазалау – ClrScr командасы іске қосылған. Программаның ішінде қолданылатын айнымалылардың барлығы Var бөлімінде сипатталады. Айнымалыларды енгізу комментариимен көрсетілген. Сондықтан, алдымен Write операторы жазылады, сосын Readln операторы жазылады. Шығару форматты шығару әдісімен көрсетілген.

Программаның ішіндегі түсініктеме (комментарий) тік (фигуралық) жақшаның ішінде жазылады. Фигуралық жақшаның ішінде жазылғандарды транслятор өткізеді. Программада үлкен өрнектерді қарапайым бөліктерге бөліп жазған жөн. Мысалы, берілген өрнектің алымын бөлек, бөлімін бөлек есептеу.

 

1.3 Тапсырмалар нұсқасы және бақылау сұрақтары

 

Блок-сұлбасын және функцияны есептеудің программасын құрыңыз. Функцияның мәнін берілген аргументтерінде есептеп, оның жауабын калькулятордың көмегімен немесе Excel-дің көмегімен тексеріңіз. Есептеулерді аргументтердің кез келген мәндерінде есептеңіз. Есептеудің нәтижесін 1.2 суретінде көрсетілгендей етіп көрсетіңіз.

 

Program lin_algoritm;

Uses Crt;

Var A, X, Y,  {енетін және шығатын айнымалылар}

S1, S2, S3, S4 : real;  {аралық мәндер үшін айнымалылар}

Begin  ClrScr;

     Write (' Vvedite A -> ');

     Readln (A);

     Write (' Vvedite X  -> ');

     Readln (x);

     S1:=2*Sqrt(A*A+Sqr(X));

     S2:=2.5*Sin(A+X)/Cos(A+X);

     S3:=Ln(A+x);

     S4:=Sin(x)+Cos(A)*Cos(A);

     Y:=S1+(S2-S3)/S4;

     Writeln (' Otvet Y=',Y:10:3);

     Readln;

End.  {программаның соңы}

 

Программаның жұмысының нәтижесі .

 

 

1.2 Сурет - Блок-сұлба және сызықты алгоритмнің программасы

 

 

 

Тапсырмалар нұсқасы

 

1) ,
x=0, y=1 мәнінде есептеңіз.

2) ,
a=2, b=3 мәнінде есептеңіз.

3) ,
x=1, y=1 мәнінде есептеңіз.

4),
a=2, b=4 мәнінде есептеңіз.

5) ,
a=5, x=5 мәнінде есептеңіз.

6) ,
x=4, y=3 мәнінде есептеңіз.

7) .
х =, a=5 мәнінде есептеңіз.

8) ,
a=1, b=10 мәнінде есептеңіз.

9)         ,
x =9 мәнінде есептеңіз.         

10) ,
x= , a=10, b=3 мәнінде есептеңіз.

11) ,
a= /2, x=5,5, y=4,5 мәнінде есептеңіз.

12) ,
a= /2, x=2 мәнінде есептеңіз.

13) ,
x=10, y=1 мәнінде есептеңіз.

14)  ,
a= , y=3, x=2 мәнінде есептеңіз.

15) ,
a= , x=4, b=1 мәнінде есептеңіз.

16) ,
a= , x=6, y=1 мәнінде есептеңіз.

17) ,
x=, y=5 мәнінде есептеңіз

18) ,
x=, a=3, b=0,5 мәнінде есептеңіз.

19) ,
x=; a=0,5; b=0 мәнінде есептеңіз.         

20) ,
x=; a=3; b=11 мәнінде есептеңіз.

21) ,
x=; a=0,5; b=10 мәнінде есептеңіз.

22) ,
a=5; b=4 мәнінде есептеңіз.

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

1.     Алгоритмге анықтама беріңіз. Оның негізгі қасиеттерін атаңыз.

2.     Қандай алгоритм сызықты деп аталады?

3.     Блок-сұлба деген не? Блок-сұлбаның элементтерін атаңыз.

4.     Программаның құрылымын сипаттаңыз.

5.     Pascal тілінде қолданылатын айнымалылардың типтерін атаңыз.

6.     Pascal тілінде форматты және форматсыз шығару қалай  жазылады?

7.     Арифметикалық өрнектер қалай жазылады?

8.     tg x, ctg x, lg x функциялары қалай есептелді?

 

№2 зертханалық жұмыс. Тармақталған алгоритм. Қайталану.

 

Жұмыстың мақсаты: цикл және тармақталып құрылған алгоритмдерді құру.

 

2.1 Тармақталған алгоритм  және оның программасын құру

 

Тармақталу (тармақталған) алгоритмі дегеніміз қандай да бір шарттарды есептеуге байланысты есептеудің тармақтары деп аталатын алгоритмі екі немесе бірнеше алдын ала қарастырылған бағытта жалғасады. Тармақталу үшін екі оператор - If және Case қолданылады.

Функцияны есептейтін шартты операторға мысал  

If (x<0) then y:=Cos (x) else y:=0;. 2.1 суретінде осы мысалдың блоксұлбасы көрсетілген.

Назар аударыңыз! Else операторының алдында үтірлі нүкте ешқашан қойылмайды.

Егер If операторында then тармағы немесе else тармағы жазылмаса, онда бұл тармақталуды толық емес тармақталу деп атайды. Егер екі бұтағы да жазылатын болса, онда оны толық тармақталу деп атайды.

Подпись: 2.1 Сурет – Тармақталудың блок– сұлбасыШарттарды қою үшін В қосымшасында көрсетілген логикалық функциялар мен қатынастар қолданылады. Шартты есептеудің нәтижесі логикалық тип және екі мәннің біреуін: true (ақиқат) немесе false (жалған) қабылдайды. Блок-сұлбада Иә немесе Жоқ деп жазылады.

If ((X>2) and ((X<5)) – мұнда шарт ақиқат, егер екі шарт бірге орындалатын болса, яғни  Х 2 мен 5 аралығында жатса.

If ((X<2) or ((Y>5)) - мұнда шарт ақиқат, егер шарттың біреуі немесе екеуі де: не Х кіші 2, не Y үлкен 5 немесе X кіші 2 және Y үлкен 5 екеуі де бір уақытта орындалса.

Сызықтық алгоритмде операторлардың орындалу тәртібі программада жазылуымен сәйкес келеді. Егер қандай да бір операторларды айналып өту немесе артқа қарай келетін болса, онда шартсыз өту Goto metka операторы қолданылады, ол блок-сұлбада стрелка түрінде көрсетіледі. Операторда қолданылатын белгі жұмыстың бір бөлігі программаның басқа бөлігі, яғни metka түрінде белгіленген жолдан бастап орындалатынын көрсетеді. Ол Label бөлімінде сипатталуы тиіс.

Назар аударыңыз! Белгіден кейін программада қос нүкте қойылады.

Goto операторы программаның қандай да бір бөлігінде қайталануды (циклды) ұйымдастыру үшін қолданылуы мүмкін. Қайталану саны және қайталану нөмірі айнымалының бүтін типімен бақыланады, мысалы integer. Қайталану программасы (цикл) төменде көрсетілген.

 

i:=1;   {i – қайталану нөмірі}

N:=5; {N – қайталану саны}

Metka1: {Белгіден кейін қос нүкте қоямыз}

          Writeln (‘    Nomer povtoreniya ’, i);

          i:=i+1;

      If (i<N) then Goto Metka1;

End.

Подпись: Nomer povtoreniya 1
Nomer povtoreniya 2
Nomer povtoreniya 3
Nomer povtoreniya 4
Nomer povtoreniya 5.

Осы фрагменттің жұмыс істеу нәтижесі:

2.2 Тармақталып құрылған алгоритмге мысал:

Х айнымалысының мына мәндерінде -2; 0; 0.5; 1; берілген үзілісті функцияны есептеңіз

Алгоритмнің блок-сұлбасы 2.2 суретінде көрсетілген.

Program vetvlenie;

Uses crt;

Label Metka1;

Var i, N: integer;   

            x, y: real;

Begin

         ClrScr;

N:=5;

i:=1;

Metka1:

Write ('  Vvedi X -> ');

Readln (X);

if (x<0) then y:=exp(x);

if ((x>=0) and (x<=1))

then  y:=0;

if (x>1) then y:=sin (x);

writeln (' Otvet Y=' ,y:10:3);

i:=i+1;

if  (i<=N) then goto Metka1;

end.

Программада N – қайталану саны, i – қайталану нөмірі. Тармақталудың барлығы толық емес тармақталумен орындалған, яғни else операторы жоқ. Х-тің мәнін тексеретін If шартты операторының үшеуінің ішінен, Х-тің нақты мәніне сәйкес біреуі ғана жұмыс істейді.

 

Программаның жұмысының нәтижесі 2.3 суретінде көрсетілген.

2.3 CуретНәтиже

Y айнымалысының мәнін шығару форматты түрде орындалған, 10 белгілік орын, 3 орын санның бөлшек бөлігін шығаруға арналған. Программаның қайталану бөлігі үшін (цикл) goto операторы қолданылады. Программаның нәтижесі экраннан Print Screen клавишасы арқылы көшіріліп алынған және графикалық редактордың көмегімен өңделген.  

 

2.3 Тапсырмалар нұсқасы және бақылау сұрақтары

 

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

1)

x

y

2)

x

y

-5

-3

0

1

4

-17,00

-13,00

10,00

-7,00

-28,00

-3,14 0

1

1,57

6

2,00

2,00

0,54

0,00

6,00

3)

x

y

4)

 

x

y

-2

0

1

3,14

5

4,80

5,00

2,54

1,00

2,28

-3,14

-1,57

0

1,57

5

-0,42

0,63

0,00

-0,78

0,99

5)

x

y

6)

x

y

-3,14

0

1

2

5

-1,00

1,00

2,00

4,00

10,00

-5

-2

0

2

9

10,44

5,00

1,00

1,48

2,00

7)

x

y

8)

 

x

y

-4

-3,14

0

3,14

6

0,35

0,01

2,00

3,58

3,01

-3

-0,78

0

3,14

7

0,65

-26,58

-1,00

-3,00

-1,25

9)

x

y

10) ,

x

y

-2

0

5

6

10

-8,00

2,00

27,00

41,00

69,00

-1

0

1

4

5

6,00

12,00

8,00

9,00

13,73

11)

x

y

12)

x

y

-2

-1

0

3,14

16

-2,83

-1,73

0,00

0,00

12,00

-3,14

0

3,14

5

6,3

1,00

1,00

1,00

25,00

0,03

13)

x

y

14)

x

y

-5

-2

0

0,78

3,14

5,00

5,00

0,00

0,99

0,00

-2

-1

0

1

2

-8,00

-3,00

1,41

3,00

8,00


15)

x

y


16)

x

y

-5

-3

0

1,57

3

5,66

4,00

0,00

0,00

-0,99

-3

-2

0

1

9

9,50

13,00

-7,00

3,00

21,00

17)

x

y

18)

x

y

5

3

0

-1,6

-4

1,15

1,00

0,00

1,00

-0,76

-9

-2

0

1,57

3,14

1,00

0,48

0,00

3,00

2,00

19)

x

y

20)

x

y

-1,57

0

1,57

10

15

-1,00

0,00

1,00

1,00

1,18

-0,78

0

0,78

8

9

0,01

1,00

1,09

7,00

8,00

21)

x

y

22)

 

x

y

-1

-0,5

0

2

3

49,00

16,00

1,00

3,87

4,58

0

1

2

5

6

5,00

8,00

2,45

5,48

6,48

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

 

1. Pascal тілінде қандай логикалық қатынастар қолданылады?

2. Шартты өту операторы қандай функцияларды орындайды?

3. Тармақталу операторларының толық және толық емес формаларының айырмашылығы неде?

4. Шартты өту операторы блок-сұлбада қалай көрсетіледі?

5. And, Or логикалық функциялары жөнінде айтып беріңіз.

 
№3 зертханалық жұмыс. Таңдау операторымен құрылған алгоритм

 

Жұмыстың мақсаты: тармақталып құрылған алгоритмдерді программалаудың ерекшеліктерімен танысу.

 

3.1 Таңдау операторымен алгоритм құру

 

Таңдау операторы әрекеттердің бірнеше нұсқасының ішінен біреуін ғана таңдап программалауды рұқсат етеді.

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

Төменде Case операторының көмегімен құрылған калькулятордың программасы көрсетілген.

Metka:

   Writeln ('Variant  ',i);

   Write ('Vvedite 1-e chislo -> ');   readln (X1);

   Write ('Vvedite matemat deystvie -> ');readln (Znak);

   Write ('Vvedite 2-e chislo -> ');   readln (X2);

   Case Znak of

            '+' :   Rez:=X1+X2;

            '-' :   Rez:=X1-X2;

            '/' :   Rez:=X1/X2;

            '*' :   Rez:=X1*X2;

        else  begin    Writeln ('Нет такого математического действия! ');

Goto metka; {Дұрыс емес символды енгізуден қорғау}

         end; {else блогының соңы}

        end; {Сase блогының соңы}

       

Мұндағы else операторынан кейін тұрған begin және end операторлары символды дұрыс енгізбеген жағдайда операторлар блогына көрсетеді.

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

        Write (' Vvedite god (1700-2000) -> ');   Readln (god);

        Case god of

             1701..1799  :   Writeln (' 18 vek');

             1801..1899  :   Writeln (' 19 vek');

             1901..1999  :   Writeln (' 20 vek');

             1700, 1800, 1900  :   Writeln (' Nachalo veka');

             2000            :   Writeln (' Nachalo nashego veka');

        else    writeln (' God vne diapazona!');

        end;

Программаның мәтінінің жазылуына назар аударыңыз. Мұндай құрылым программаны оқуды неғұрлым жеңілдетеді.

3.2 Тапсырмалар нұсқасы және бақылау сұрақтары

 

Таңдау операторын пайдаланып, есепті шешудің программасын құрыңыз. Goto операторының көмегімен 5-6 айнымалының мәнін енгізу үшін қайталануды (циклды) құрыңыз.

1)  1 немесе 2 санын енгізіңіз. 1 енгізілсе «Pascal файлының аты 8 символдан тұрады», 2 енгізілсе «Word файлының аты 256 символдан тұрады», басқа сандар үшін «Енгізуді қайталаңыз» хабарламасы шығуы қажет.

2)  Сан енгізіңіз. 1 енгізілсе «Айнымалының аты 75 символдан тұрады», 2 енгізілсе «Файлдың аты 8 символдан тұрады», 3 енгізілсе «Pascal файлының кеңейтілімі pas», басқа сандар енгізілсе «Енгізуді қайталаңыз» хабарламасы шығуы қажет.

3)   Енгізілген айдың нөміріне сәйкес жылдың кварталын анықтау керек. Егер сәйкес келмейтін нөмір енгізілсе, онда «Енгізуді қайталаңыз» хабарламасы шықсын.

4)  «Сөйлесу тілін көрсетіңіз орысша (о), ағылшын (а), қазақша (қ)» сұрағына жауап енгізу. Сөйлесу тіліне сәйкес олардың сәлемдесу сөздерін көрсетіңіз. Басқа әріптер үшін «Енгізуді қайталаңыз» хабарламасы шығу қажет.

5)  1-ден 5-ке дейін бүтін сандарды енгізіңіз. Енгізілген санға сәйкес операциялық жүйелердің стандартты программаларының аттарын енгізіп отыру қажет. Басқа жағдайларда «Енгізуді қайталаңыз» хабарламасын шықсын.

6)  0-ден 9-ға дейінгі бүтін сандар енгізіледі. Егер 0 енгізілсе, «қанағаттанарлықсыз». Егер 1, 2, 3 немесе 4 енгізілсе «қанағаттанарлық». Егер 5, 6, 7 немесе 8 енгізілсе «жақсы». Егер 8 немесе 9 енгізілсе, онда «өте жақсы» хабарламасы шықсын. Басқа сандар үшін «Мұндай баға жоқ» хабарламасы шықсын.

7)  0-ден 6-ға дейінгі сандар енгізіледі. Енгізілген санға байланысты «Класта ... компьютер бар» деген мәтін шығуы қажет. Басқа сандар үшін «Енгізуді қайталаңыз» хабарламасы шықсын.

8)  Енгізілген сан бойынша локалды желі топологиясының сұлбасының атын көрсететін: 1- жұлдызша. 2 - сақина. 3 - магистраль. 4 – аралас, басқа сандар үшін «Сұлба анықталмаған» хабарламасы шықсын.

9)  1-ден 5-ке дейінгі сандар енгізілгенде дербес компьютердің құрылғыларының аттары: процессор, монитор, пернетақта, тышқан (манипулятор), стабилизатор деп шығуы қажет. Басқа сандарды енгізгенде "Құрылғы анықталмаған" хабарламасы шықсын.

10)            Ай аттарының нөмірі енгізілгенде, жылдың қай мезгілі екені: қыс, көктем, жаз, күз деп шығуы қажет. Сәйкес келмейтін сандарды енгізгенде "Жыл мезгілі анықталмаған" хабарламасы шықсын.

11)             Енгізілген санға сәйкес ай аттарын шығарыңыз. Егер сәйкес келмейтін сандар енгізілсе, онда «Енгізуді қайталаңыз» хабарламасы шығарылсын.

12)             1-ден 5-ке дейінгі сандар енгізіледі. Әр санға Word  редакторында құрылатын файлдардың типін: txt, doc, html, rtf, dot деп көрсетіңіз. Басқа сандар үшін «Енгізуді қайталаңыз» хабарламасы шықсын.

13)             19 ғасырдың жылы енгізілсін. Жылдың нөмірі бойынша он жылдықты анықтау қажет. Жыл дұрыс енгізілмесе, «Бұл 19 ғасыр емес» хабарламасы шығуы керек.

14)             1-ден 4-ке дейінгі сандар енгізіледі. Әр енгізілген сан үшін экранға графикалық редакторда құрылған файлдардың типі - bmp, gif, jpg, npg шығарылсын. Басқа сандар үшін «Енгізуді қайталаңыз» хабарламасы шықсын.

15)             1-ден 3-ке дейінгі сандар енгізіледі. Әр сан үшін экранға орындалатын файлдар com, exe, bat тізімін шығарсын. Басқа сандар үшін «Енгізуді қайталаңыз» хабарламасы шықсын.

16)             1-ден 5-ке дейінгі сандар енгізіледі. Әр сан үшін экранға «Pascal», «Basic», «Delphi», «C++», «Fortran» жазбалары шықсын. Басқа сандар үшін «Енгізуді қайталаңыз» хабарламасы шықсын.

17)             1-ден 5-ке дейінгі сандар енгізіледі. Әр сан үшін экранға айнымалылардың типін көрсететін «integer», «real», «char», «longint», «shortint» жазбалары шықсын. Басқа сандар үшін «Енгізуді қайталаңыз» хабарламасы шықсын.

18)             1-ден 4-ке дейінгі сандар енгізіледі. Әр сан үшін Pascal тілінде қолданылатын циклдық операторлардың аттары:  For, While, Until, Goto Metka шығарылсын. Басқа сандар үшін «Енгізуді қайталаңыз» хабарламасы шықсын.

19)             1-ден 7-ге дейін енгізілген сан бойынша күн аттарын шығарыңыз. Егер басқа сан енгізілсе, онда «Енгізуді қайталаңыз» хабарламасы шықсын.

20)             Енгізілген сандар (2, 8, 10, 16) бойынша санақ жүйесінің аттарын көрсетіңіз. Басқа сандар үшін «Енгізуді қайталаңыз» хабарламасы шықсын.

21)             1-ден 5-ке дейінгі енгізілген сандар бойынша АЭжБИ факультеттерінің біреуінің: 1 - ЖЭФ, 2 - ЭЭФ, 3 - ФРТС, 4 - ФЗО и ПС, 5 – ФДП аты көрсетілсін. Басқа сандар үшін «Енгізуді қайталаңыз» хабарламасы шықсын.

22)             Енгізілген 1-ден 3-ке дейінгі сандарға логикалық функциялардың аты: And, Or немесе Xor жазылуы керек. Басқа сандар үшін «Енгізуді қайталаңыз» хабарламасы шықсын.

 

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

 

1. Символдардың коды жөнінде айтып беріңіз.

2. Мәтіндік файл терминін түсіндіріңіз.

3. Case операторындағы айнымалылардың мәнін көрсетудің әдістері.

4. Блок-сұлбада шартты өту операторы қалай көрсетіледі?

5. Программада қайталану қалай құрылады?

6. Таңдау операторының қандай ерекшеліктері бар?

7. And, Or және Xor логикалық функциялары жөнінде айтып беріңіз.

 
 

№4 зертханалық жұмыс. Циклдық алгоритмдер

 

Жұмыстың мақсаты: циклдық алгоритмнің ерекшеліктерімен танысу.

 

4.1 Циклдық алгоритмдер мен оның программасын құру

4.1.1 Массивтердің қажеттілігі

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

Осындай есептерді шешу үшін арнайы айнымалы типі массив енгізілген. Дербес компьютер жадына жады ұяшықтар блогын құрады, олардың аты басқа, ал массивтің ұяшықтары нөмірленген (индекстелген), (4.1 суретін қараңыз). Массивтің әрбір ұяшығына бір типтес берілгендерді жазуға болады: бүтін немесе бөлшек сандар, символдар.

Нақты бір ұяшықты қарастыру үшін массивтің аты мен ұяшықтың индексін (нөмірін) көрсеткен жөн, сөйтіп оның мәнін көрсете аламыз. Мысалы, Ves[1]=10, Ves[5]=13. Циклда ұяшықтың индексін 1-ден 5-ке дейін өзгерте отырып, барлық ұяшықтарға мүмкіндік ала аламыз. Циклдар және массивтермен жазылған программа шағын болып келеді.

1-ден 5-ке дейінгі индексі бар бүтін санды массив Var бөлімінде сипатталады: Ves: array [1..5] of integer;”. Егер программада бір типтес бірнеше массив болатын болса, онда оларды типтік атын көрсетіп, Type бөлімінде сипаттап,  Var бөлімінде олардың нақты аттарын көрсетуге болады:

“Type T= array [1..20] of integer;   Var   Ves, A, B, C : T;”

 

4.1.2 Массивтерді өңдеу

 

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

Pascal тілі үш циклдық оператордан – For, While, Repeat тұрады. Циклдық оператор үш негізгі бөлігін көрсететін синтаксистік құрылымнан тұрады: циклдың тақырыбы, циклдың денесі, қорытынды жол.

Егер қайталану саны алдын ала белгілі болса (қайталануға дейін), онда For – to немесе For – downto параметрлі циклдық операторын қолданған жөн (қайталану саны белгілі циклдық оператор). Басқа жағдайларда While – do немесе Repeat – until циклдық операторларын қолданған жөн.

4.1 суретінде циклдық оператор  For - to  программасы мен блок-сұлбасы көрсетілген. I санауышы өзінің мәнін m1-ден m2-ге дейін, +1 қадаммен өзгертеді, әрине, m1 m2-ден кіші.


for – downto циклдық операторының программасы мен блок-сұлбасы осыған ұқсас, онда i санауышы m1-ден m2-ге дейін, -1 қадаммен өзгереді, әрине, m1 m2-ден үлкен.

Циклда қайталанатын командалар операторлық жақшалар begin мен end-тің арасында жазылады.

Параметрлі (санауышты) оператор циклінің келесі шектеулері бар:

- i, m1, m2  айнымалылары тек бүтін типті болуы мүмкін;

- i циклда бір қадаммен ғана өзгереді;

- i параметрін анауышын) циклдың денесінің ішінде өзгертуге болмайды.

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

4.2 суретінде циклдық оператор Whiledo көрсетілген.

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

Назар аударыңыз! While және Repeat циклдық операторын қолданған кезде, программаны тексермес бұрын, қатаң түрде,  егер кездейсоқ цикл параметрінің өзгеруі қарастырылмаса,  программаны сақтап алған жөн.



4.2.1 For циклын қолдану мысалы

 

Әрбір бүтін К үшін Y=A/K2 функциясының мәндерін есептеп, К-ның мәні 1-ден 10-ға дейін +1 қадаммен өзгереді, табылған функцияның мәндерін D массивіне жазу керек.

 

Program for_to;

var k: integer; a, y: real;

         D: array {1..20] of real;

begin

    write(‘ Vvedite A ->’); readln (a);

    for k := 1 to 10 do    

    begin

               y := a / sqr(k); D[k]:=y;

               writeln(’K=’, k:2, ’Y=’, y:8:3);

    end;

end.

Цикл параметрі k-ның бастапқы мәні 1 және соңғы мәні 10 циклдың ішінде көрсетілген. k-ның мәні 1 ден 10-ға дейін барлық мәндерін қарастырмай цикл тоқтатылмайды. Әрбір k-ның мәні үшін функцияның мәні есептелініп, есептелінген мәні массивке жазылады.

 

 

4.2.2 While-do циклын қолдану мысалы

 

A(10) массивінің бесінші элемент пен оныншы элемент аралығында бірінші теріс элементін тауып, оны экранға шығару.

 

{Программаның фрагменті}

I:=5;  N=10;

While ((A[i]>=0) and (i<=N)) do

Begin  

       Writeln (‘ Ind=’ , I , A[i]:8:2;);

        i:=i+1;     

End;

If  I <= N

then  Writeln (‘Otritsat element=’ ,
                  A[i]:4:1;)

else  Writeln (‘Otritsat elementa net’);

(A[i]>=0 and (i<=N)) шарты орындалғанша цикл жалғаса береді. Циклдың қайталану саны массивке байланысты және оны алдын-ала анықтай алмаймыз. Циклдан шыққаннан кейін іздеу нәтижесі баспаға шығады.

Pascal массивтің шегінен шығып кетуін қадағалай алмайды. Сондықтан, программада асты сызықпен сызылған операндтар массивте теріс элементтер болмаған жағдайда қажет болады.

 

4.2 Тапсырмалар нұсқасы және бақылау сұрақтары

 

1) А(10) массивінде 5-ші элементінен 10-шы элементіне дейін теріс элементтерінің саны мен қосындысын тап. Минимумын және оның позициясын (орнын) тап.

2) А(10) массивінде 3-ші элементінен 8-ші элементіне дейін оң элементтерінің саны мен қосындысын, максимумы мен оның позициясын тап.

3) А(10) массивінде 4-ші элементінен 9-шы элементіне дейін оң және теріс элементтерінің санын тап. Минимумы және оның позициясын тап.

4) А(10) массивінде 2-ші элементінен 7-ші элементіне дейін теріс элементтерінің санын тап. Минимумы және оның позициясын тап.

5) А(10) массивінде 5-ші элементінен 10-шы элементіне дейін теріс жұп элементтерінің санын тап. Оң элементтерінің орташа мәнін тап.

6) А(10) массивінде 3-ші элементінен 8-ші элементіне дейін оң тақ элементтерінің санын тап. Максимумы мен оның позициясын тап.

7) А(10) массивінде 4-ші элементінен 9-шы элементіне дейін теріс элементтерінің санын тап. 3тен үлкен элементтерінің орташасын тап.

8) А(10) массивінде 5-ші элементінен 10-шы элементіне дейін 2-ден үлкен элементтерінің санын тап. Оң элементтерінің орташа мәні.

9) А(10) массивінде 2-ші элементінен 7-ші элементіне дейін 5-тен кіші элементтерінің қосындысы мен санын тап. Минимумы мен оның позициясын тап.

10) А(10) массивінде 3-ші элементінен 8-ші элементіне дейін теріс жұп элементтерінің санын тап. Максимумы мен оның позициясын тап.

11) В(10) массивінде 5-ші элементінен 10-шы элементіне дейін теріс тақ элементтерінің санын тап. Элементтерінің орташа мәнін тап.

12) В(10) массивінде 5-ші элементінен 10-шы элементіне дейін теріс элементтерінің саны мен қосындысын тап. Теріс элементтерінің орташа мәнін тап.

13) В(10) массивінде 3-ші элементінен 8-ші элементіне дейін оң элементтерінің саны мен қосындысын тап. Максимумы мен минимумының айырмасын тап.

14) В(10) массивінде 4-ші элементінен 9-шы элементіне дейін оң элементтерінің санын тап. Оң элементтерінің орташа мәнін тап.

15) В(10) массивінде 2-ші элементінен 7-ші элементіне дейін 5-тен үлкен теріс элементтерінің санын тап. Элементтерінің орташа мәнін тап.

16) В(10) массивінде 5-ші элементінен 10-шы элементіне дейін теріс жұп элементтерінің санын тап. Минимумы мен максимумының қосындысын тап.

17) В(10) массивінде 3-ші элементінен 8-ші элементіне дейін оң тақ элементтерінің санын тап. Минимумы мен максимумының айырмасын тап.

18) В(10) массивінде 4-ші элементінен 9-шы элементіне дейін  теріс элементтерінің санын тап. Теріс элементтерінің орташа мәнін тап.

19) В(10) массивінде 5-ші элементінен 10-шы элементіне дейін 2-ден үлкен элементтерінің санын тап. Элементтерінің орташа мәнін тап.

20) В(10) массивінде 2-ші элементінен 7-ші элементіне дейін 5-тен кіші элементтерінің саны мен қосындысын тап. Минимумы мен максимумының қосындысын тап.

21) В(10) массивінде 3-ші элементінен 8-ші элементіне дейін теріс жұп элементтерінің санын тап. Теріс элементтерінің орташа мәнін тап.

22) В(10) массивінде 5-ші элементінен 10-шы элементіне дейін теріс тақ элементтерінің санын тап. Минимумы мен максимумының орташа мәнін тап.

 

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

1. Цикл дегеніміз не?

2. For  циклының санауышы берілгендердің қай типіне жатады?

3. Pascal тілінде циклдардың қандай түрлері бар?

4. For to және Fordownto циклдық операторларына салыстырмалы түрде мінездеме беріңіз.

5. While циклдық операторы дегеніміз не?

6. Қосындыны жинау немесе көбейтінді қалай орындалады?

 
№5 зертханалық жұмыс. Циклдық алгоритмдерді қолдану.

5.1 Циклдарды қолдану

 

Циклдарды әртүрлі есептеулерде жиі қолдануға болады. 5.1 суретінде функцияның графигі көрсетілген. Х аргументі -1-ден 5,2-ге дейін 0,2 қадаммен өзгереді. Әрбір Х-тің мәні үшін функцияның мәндері есептелінген.

5.1 СуретФункцияның графигі

 

 

 

Стандартты есептер әдетте келесі есептеулерден тұрады:

- функцияның барлық мәндерін табу;

- Х-тің қандай мәнінде функцияның максимумы мен минимумы байқалады;

- функцияның амплитудасы (максимумы мен минимумының айырмасы);

- Х-тің қандай да бір кескінінде функцияның орташа мәні;

- Х-тің берілген кескінінде функцияның интегралы;

- берілген диапазонда функцияның мәндерінің қосындысы.

Аргументтің мәндері бөлшек сан болғандықтан, While циклдық операторын қолданған жөн. Төменде Х диапазонында -0.4-тен 2 аралығында функцияның мәндерін есептеу программасы көрсетілген. Программада функцияның максимумы байқалатын Х-тің мәні, Y-тің оң мәндерінің интегралы және Y-тің оң мәндерінің орташа мәні есептелінген.

Program funkstiya;

Uses Crt;

Var x, y, a, b, shag, max,  integral, sred, X_max, sum: real;

       k: integer;

 begin clrscr; sum:=0; integral:=0; k:=0; a:=-0.4; b:=2; shag:=0.2; x:=a;

      max:=-100000; min:=100000;

      Writeln; Writeln (' Funkstiya Y=2SinXSinX+XX/15-1');

      While (x<=(b+shag/2)) do

     begin

           Y:=2*sqr(Sin(x))+x*x/15-1;

           Writeln('  X:=',x:4:1,'  Y=',Y:4:2);

           If (max< y) then begin max:=Y; X_max:=X; end;

           if (Y>0) then begin  Sum:=sum+y; k:=k+1; end;

           if (Y>0) then integral:=integral+shag*y;

           x:=x+shag;

      end;

      Writeln('  Kol_vo polozh y=',k);

      Writeln('  Srednee polozh. Y=', (sum/k):4:2);

      Writeln('  Max=',max:5:2,' pri X=', X_max:5:2);

      Writeln('  Integral=',integral:8:5);

end.

 

Программаға түсіндірмелер

 

While циклының орындалу шартында (x<=(b+shag/2)) b айнымалысының мәні артады, өйткені Х айнымалысы b=2 мәнінде алуы керек. Егер олай жазбаса Х=2 мәні Real типтес айнымалының жуықтап алынған мәні үшін циклға енбей қалуы мүмкін.

Айнымалылардың тағайындалуы олардың атынан-ақ түсінікті. 5.2 суретінде программаның нәтижесі көрсетілген. Шыққан мәндер бойынша программаның дұрыс жұмысын тексеру оңай.

5.2 Сурет Есептеулердің нәтижесі

 

5.2 Тапсырмалар нұсқасы және бақылау сұрақтары

Х пен Y-тің барлық мәндері экранға шығуы керек, Х-тің қандай мәндерінде Max және Min мәндері байқалатынын және олардың мәндерін анықтау.

5.1 КестеТапсырмалар нұсқасы

Функция

 [a, b] Интервалы

h қадам

Есептеп, экранға шығару

1

Y=CosX+0,7

[-1, 4]

0,5

Max- Min айырмасы, Xmax-Xmin

2

Y=CosX+X/10

[-1, 1]

0,2

Max, Y-тің оң мәндерінің қосындысы

3

Y=SinX+X2/30

[0, 2]

0,2

Max, Y-тің оң  мәндерінің қосындысы

4

Y=SinX-X2/15

[3, 5]

0,2

Min, Y-тің теріс мәндерінің қосындысы

5

Y=Cos2X-0.3X

[-1, 1]

0,2

Max, Y-тің орташа мәні

6

Y=SinX-X2/15

[4, 6]

0,2

Min, Y-тің теріс мәндерінің қосындысы

7

Y=CosX+0,3Х

[-1, 5]

0,5

Max- Min айырмасы, Xmax-Xmin

8

Y=CosX-X2/15

[-1, 1]

0,2

Max, Y-тің орташа мәні

9

Y=SinX+0.7

[1, 3]

0,2

Max, Y-тің оң  мәндерінің қосындысы

10

Y=CosX-0,3X

[1, 4]

0,5

Max- Min айырмасы, Xmax-Xmin

11

Y=CosX+X2/10

[1, 5]

0.5

Min, Y-тің теріс мәндерінің қосындысы

12

Y=cosX+0,7

[2, 4]

0,2

Min, Y-тің теріс мәндерінің қосындысы

13

Y=SinX-X2/15

[0, 6]

0,5

Max- Min айырмасы Xmax-Xmin

14

Y=CosX+0,3Х

[2, 4]

0,2

Min, Yтің теріс мәндерінің қосындысы

15

Y=CosX+0,7

[-1, 5]

0,5

Max, Y-тің теріс мәндерінің қосындысы

16

Y=CosX-0,3X

[-1, 1]

0,2

Max, Y-тің оң  мәндерінің қосындысы

17

Y=SinX+0,7

[3, 5]

0.2

Min, Y-тің теріс мәндерінің қосындысы

18

Y=CosX-X2/15

[-1, 4]

0,5

Max- Min айырмасы, Xmax-Xmin

19

Y=CosX+X2/10

[1, 4]

0.5

Max- Min айырмасы, Xmax-Xmin

20

Y=Cos2X+0,3X

[3, 5]

0.2

Max, Y-тің оң  мәндерінің қосындысы

21

Y=SinX+X2/30

[1, 6]

0.5

Max- Min айырмасы, Xmax-Xmin

22

Y=Cos2X-0.3X

[1, 3]

0,2

Min, Y-тің теріс мәндерінің қосындысы

 

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

1. Цикл дегеніміз не?

2. For  циклының санауышы берілгендердің қай типіне жатады?

3. Pascal тілінде циклдардың қандай түрлері бар?

4. Математикалық функциялар қалай есептеледі? 

5. Элементтердің жұп және тақ екендігі қалай анықталады?

6. Қосындыны жинау (интеграл) қалай орындалады?

 

6 зертханалық жұмыс. Ішкі программа – функция

 

Жұмыстың мақсаты: математикалық есептеулерде ішкі программа-функцияны қолдануды үйрену.

6.1 Ішкі программа – функцияны құру

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

Ішкі программа негізгі программаның құрылымынан тұрады: тақырыбы, сипаттау бөлігі, орындалу бөлігі. 

Ішкі программа-функцияның тақырыбы келесі түрде жазылады:

Function функцияның аты (формальді параметрлерінің тізімі): функцияның типі;

Функцияның тақырыбының мысалы: Function Max ( i: integer; x, у: real): real;

Функцияның формальді параметрлері тек қана берілгендерді енгізетін болса, ал шығатын параметрлері функцияның аты болады, сондықтан тақырыбында функцияның типін міндетті түрде көрсету қажет (integer, real). Ішкі программаның сипаттау бөлігінде функцияның тақырыбында сипатталмаған қарапайым әдіспен айнымалылардың типі анықталады. Ішкі программа end; операторымен аяқталады.

Құрылған функцияны, бас программада формальді параметрлерінің орнына нақты параметрлерін қоя отырып,  математикалық формулалардағы  қарапайым функция ретінде қолданады.

Жазылу мысалы: Y:= Tg(x);.

Тақырыбынан кейін Var бөлімінде ішкі программаның ішінде сипатталған, яғни функцияның ішінде ғана болатын айнымалылар локальді. Олар басқа ішкі программалар үшін және бас программа үшін қол жеткісіз (берілмейтін). Локальді айнымалылар әртүрлі ішкі программаның айнымалылары және бас программаның айнымалылары бірдей аттарға ие болмауына мүмкіндік береді.  Сондықтан, бір рет жазылған ішкі программаны, оның мәтінін көшіріп алып, басқа да программаларда қолдануға болады.

Егер олар ішкі программаға дейін программаның тақырыбынан кейін сипатталса немесе олар бас программаның орындалу бөлігіне дейін (begin алдында) сипатталған болса, бас программада сипатталған айнымалылар глобальді немесе локальді болуы мүмкін.

Назар аударыңыз! Глобальді айнымалылар, яғни барлық ішкі программаларға берілетін айнымалылардан аулақ болған жөн, өйткені ондай программалар жұмыс істемейді.

 

6.1.1 Қарапайым функцияны құрудың мысалы

 

Program Function_kub;           {Бас программаның тақырыбы}

                                                                                                           {Глобальді айнымалылары жоқ}

Function Kub(x: real): real;   { Kub атты функцияның басы}

var Y: real;                {Функция үшін локальді айнымалылары}

begin 

Y:=x*x*x;        {Функцияның есептелу бөлігі}

       kub:=y;          {Функцияның атына міндетті түрде мән беріледі}

end;                               {функцияның соңы}

 

{glavnaya programma}

var X,Y: real;                  {бас программаның локальді айнымалылары}

begin  

      X:=4;  

      y:=Kub(x);                         {Құрылған функцияны мәнге жазамыз}

      Writeln ('  x=', X:4:2,'  X^3=', y:6:2);

end.

 

6.2 Тапсырмалар нұсқасы және бақылау сұрақтары

Берілген мәндері үшін және өзіңіз мән беріп, Pascal тілінде құрылмаған функцияларды (tg, ctg, lg, xy) құрып,  есептеңіз.

1)
x=, a=0.5, b=10 (у=0.5).

2)

y= , x=1 (z=1).

3)
a=2, b=3 (P=2).

4)
x=
, y=9 (Z=3).

5)
x=1, y=1 (Z=0.5).

6)
a=2, b=4 (P=2)
.

7)     
a=5, x=5 (Y=10)
.

8)

a= 3, x=/4, N=4 (Y=81).

9)     
х =, a=5 (Y=-1).

10)

x=, y=5 (P=-0.5).

11)      
x =9 (Y=10).

12)
x= , a=10, b=3 (Y=2).

13)
a= /2, x=5.5, y=4.5 (Z=1).

14)
a=1, b=10 (P=0.67)
.

15)
x=10, y=1 (Z=1)
.

16)     
a=4, b=7, c=2  (P=-1).

17)

a= , x=4, b=1  (P=2).

18)

a= , x=6, y=1 (Z=3).

19)     Y=aN Tgx 
a= 3, x=
/4, N=4  (Y=81).

20) Y=aN Cosx

a= 2, x=0, N=4 (Y=16).

21)
 
x=, a=0.5, b=0 (Y=0.5).

22)
x=, a=3, b=11 (P=-4.5).

 

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

1.     Ішкі программаның тағайындалуы.

2.     Ішкі программаның түрлері.

3.     Функцияны шақыру.

4.     Локальді және глобальді (жергілікті және ауқымды) айнымалылар.

5.     Функцияның құрылымын сипаттау.

 

№7 зертханалық жұмыс. Символдық және жолдық ақпараттар

 

Жұмыстың мақсаты: символдық және жолдық ақпараттарды өңдеу. Символдардың кодын пайдалану.

7.1 Символдарды өңдеу

Символдық айнымалылар бір символ char айнымалысында, символдар жиынтығы (жол) String айнымалысында сақталады. Жол – кодтың көмегімен жазылған символдар тізбегі. Мысалы, “ABBA” символдарының орнына компьютердің жадына осы символдардың коды «65 66 66 65» жазылады. Pascal тілінде қолданылатын ASCII кодтар кестесі Ж қосымшасында берілген.

Жолдық типтегі айнымалыларды сипаттау үшін стандартты идентификатор string қолданылады, квадрат жақшалардың ішінде жолдың ұзындығының мәні көрсетіледі. Егер программаның жұмыс жасау кезінде жолдың ұзындығы толып кетсе, онда жол бос болып қалады. Егер жолдың ұзындығы көрсетілмесе, онда оның ұзындығы 255 байт (символ) болады. Жолдық айнымалыны хабарлау форматы төмендегідей болады:

var slovo: string[12];   stroka: string; simvol: char;.

Жолдық типті массив деп қарастыруға да болады, сондықтан жолдың әрбір символын оның индексі бойынша көрсетуге болады, мысалы, егер slovo =’ledokol’, онда slovo[2]=’e’.

Жол үшін келесі әрекеттер мүмкін болады:

- жолдық айнымалының мәндерін қатынас операцияларын қолдана отырып  <, >, <=, >=, =, < > салыстыруға болады. Екі жолдық айнымалының мәнін салыстыру символдарын тізбектеп, бірінші сәйкес келмейтін символына дейін салыстырады. Бірінші сәйкес келмейтін символдың коды үлкен болса, сол жол үлкен деп саналады. Бұл қасиет берілгендерді алфавит бойынша сұрыптау кезінде қолданылады;

- жолдық айнымалылардың мәнін пернетақтадан енгізу стандартты процедура read (имя) немесе readln (имя) арқылы жасалынады;

- жолға мән беру үшін  меншіктеу операторы қолданылады, мысалы slovo:='Ledokol'.

Жолдарға әртүрлі әрекеттерді қолдану үшін төменде көрсетілген, енгізілген функциялар мен процедуралар жиынтығы бар.

Осы функцияларды қолдану мысалдары 7.1 кестесінде көрсетілген.

 

7.1 Кесте жолдық функциялар мен процедуралардың жұмыс істеу мысалы

Оператор

Нәтижесі

Kod:=Ord(‘A’);

Kod=65

Simvol:=Chr(65);

Simvol=’A’

St1:=’Ledokol 5’;  St2:=Copy(St1,5,3);

St2=’kol’

St1:=’Led’;  St2:=’kol’;  St3:=Concat(St1,’o’,St2);

St3=’Ledokol’

St1:=’Ledokol 5’;  N:=Length(St1);

N=9

St1:=’Ledokol 5’; Pod_St2:=’kol’; N:=Pos(Pod_St2,St1);

N=5

St1:=’Ledokol 5’;  Delete (St1, 4, 3);

St1=’Led 5’

St1:=’Ledkol’;  St2:=’o’;  Insert (St2, St1, 4);

St1:=’Ledokol’

Chislo:=8;  Str (Chislo, St);

St=56. 8 санының коды.

M:=2;  N:=0;  St:=’8’; {St да 8 санының 56ға тең коды бар

Val (St, N, Cod);   M:=M+N;

M=10

 

Функция Ord (Sim: Char): Longint. Sim символдық айнымалысына жазылған кодтың символын қайтаратын функция.

Функция Chr(Cod: integer): Char. Көрсетілген кодқа сәйкес символды қайтаратын функция.

Функция Copy (St, Poz, N): String. St жолынан N символы бар, Pоz позициясынан басталатын жолды ерекшелейді. Мұндағы Poz және N – бүтін санды мәндер.

Функция Concat (Stl, St2, . . ,Stn: String): String. Параметрлер тізімінде көрсетілген ретпен жолды тізбектеп жинақтауды орындайтын функция. Нәтижесінде шығатын жол 255 байттан аспауы қажет.

Функция Length (St: String): Integer. St жолының ұзындығын есептейтін функция, яғни көрініп тұрған символдар саны.

Функция Pos (Pod_St, St1: String): Byte. St1 жолындағы Pod_St қосалқы жолының пайда болуын көрсетеді. Нәтижесі бүтін санды тип болады және St1 жолындағы Pod_Stl қосалқы жолының бірінші символының позициясының нөміріне тең. Егер қосалқы жол болмаса нәтижесі нөлге тең болады.

 Процедура Delete (Var St: string, Poz: Integer, N: Integer). St жолындағы Poz параметрінің мәнімен анықталған позициясынан басталатын N символды өшіретін процедура. Егер Poz мәні 255-тен үлкен болса, онда үзіліс туындайды.

 Процедура Insert (Stl: string, Var St2: string, Poz: Integer). Poz позициясынан басталатын Stl жолын St2 жолына қоятын процедура.

Процедура Str (Chislo: Integer, Var St: string). Chislo айнымалысына жазылған бүтін санды мәтінге өзгертеді және нәтижесін St жолына жазады. Яғни, St жолдық айнымалысындағы сандардың орнына олардың коды жазылады. Мысалы, 87 санының орнына 8 және 7 сандарының коды  «56» және «55» жазылады.

Процедура Val (St: string, Var Chislo, Var Cod: Integer). Егер цифрлардың коды жазылған болса, онда St жолдық айнымалысының мәнін бүтін санға түрлендіреді және нәтижесін Chislo айнымалысына орналастырады. St мәні басында және соңында қажет емес бос орындардан тұрмауы қажет. Егер түрлендірулер кезінде қателер кездеспесе, онда Cod бүтін санды айнымалының мәні нөлге тең болады. Мысалы, егер литерлік мәнді сандық мәнге ауыстыру кезінде қате табылса (мысалы, бос орын (пробел)), онда Cod бірінші қате символдың позициясын, нөмірін, ал Chislo айнымалысының мәні анықталмаған болады.

Егер оларға форматсыз көрсетілген символдардың коды жазылса, файл немесе жол мәтіндік деп аталады.

Str және Val процедуралары үшін 7.1 кестесінде бүтін сандарды түрлендіру формасы көрсетілген.

7.1.2 Символдық ақпаратты өңдеу мысалы

Есептің шарты. Клавиатурадан символдарды енгізу. Клавиатурадан «А» символынан бастап соңғы символға дейін символдар мен оның кодын енгізу. Енгізілген символдарды жолға біріктіруді орындау. Программаның талап етілген нәтижесі 7.1 суретінде көрсетілген.  


Program Simvoly; Uses Crt;

Var       Sim: char;          {Символдық айнымалы}

   Stroka, Str1, Str2: String;  {берілгендердің жолдық типі 256 символ}

   K, N: Integer;

Begin  ClrScr;  Writeln; Stroka:='';  {Бос жол}

Str1:='  Rezultat =  ';

Write('   Vvedi zaglavnyu lat. bukvu->'); Readln(Sim);

k:=ord(Sim);   {Әріптің кодын (нөмірін) анықтаймыз}

For n:=65 to k do

begin                                {А-дан ... дейінгі символдарды басамыз}

    Write('   ',Chr(n));   {Символдар бірігіп кетпес үшін пробелдер жазылған}

     Stroka:=Stroka+Chr(n);        {Символдарды жолға жинақтаймыз}

end;

Writeln; {Жаңа жолдың басы}

For n:=ord('A') to (ord(Sim)+5) do Write('  ',ord(n));         {Кодтарды баспаға шығару}

Writeln;

Str2:=Concat(Str1,Stroka); {Жолдық айнымалыларды біріктіру}

Writeln('  ', Str2);

Writeln (‘   Kod simvola “1”=’, Ord(‘1’));

readln;  

end.

7.2 Тапсырмалар нұсқасы және бақылау сұрақтары

Тапсырмаларды орындау кезінде, 0-ден 9-ға дейінгі сандардың коды сәйкесінше  48-ден 57-ге дейін, ал жолды массив түрінде қарастырған жөн.

1) Символдардан тұратын бастапқы бірнеше символдары бірдей 2 жол енгізілген. Қай жол үлкен және қай жол кіші екенін анықтау қажет. Екі жол үшін де оның ұзындығын анықтаңыз. Жолдарды біріктіріңіз.

2) Фамилиясы және оқуға түскен жылы көрсетілген символдардан тұратын жол енгізілген. Жылды бүтін санды айнымалыға түрлендіріп, оған 4 қосып, «Институтты ... жылы бітірді» деп нәтижесін экранға шығарыңыз.

3) Күні мен аптаның аты көрсетілген символдардан тұратын жол енгізілген. Күнді анықтап, оған 7 санын қосып, нәтижесін шығарыңыз. Мысалы, «8 сәрсенбі» «15 тағы сәрсенбі».

4) Екілік жүйеде санның ұзындығы 2 байттан тұратын символдық жол енгізілген. Екі байтты әрбір жолға бөлек жазыңыз. Үлкен жолды табыңыз.

5) Екілік жүйеде ұзындығы бір байттан тұратын символдық жол енгізілген. Жарты байттарды орындарымен ауыстырыңыз.

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

7) Символдардан тұратын жол енгізілген. Жолдағы бос орындар санын анықтаңыз.

8) Жадының ұяшығының адресі бір жолға жазылған екі байттан тұрады. Екі байтты да ерекшелеңіз. Кіші жолды табыңыз.

9) Циклда латынның бас әрпінен басталатын 10 символын жазыңыз.

10) Символдар жолы енгізілген. Жолдағы сөздер санын анықтаңыз. Көп символдан тұратын сөзді анықтаңыз.

11) Бас әріптен тұратын  латын әріпін енгізіңіз. Циклда енгізілген әріптен бастап Y символына дейін символдардың кодын жазыңыз.

12) Екі символ енгізілген. Осы символдардың арасындағы латын алфавитінің бөлігін баспаға шығарыңыз.

13) Екі символды енгізіңіз. Осы символдардың арасындағы латын алфавитінің бөлігін керісінше жазып шығыңыз.

14) Циклда 10 символды енгіз, символдан бастап керісінше ретпен жазыңыз.

15) Цифрлары бар символдар жолы енгізілген. Жолдағы цифрлар санын анықтаңыз.

16) Фамилиясы және туған жылы көрсетілген символдар жолы енгізілген. Жылды бүтін санды айнымалыға түрлендіріп, 50 қосып «50 жылдық мерейтой ... жылы болады» деп нәтижесін шығарыңыз.

17) Циклда латынның бас әріпінен бастап енгізілген 10 символдың кодын жазыңыз.

18) 65-тен 76-ға дейінгі сандарды енгізіңіз. Экранға осы енгізілген сандар бойынша 10 символды шығарыңыз.

19) Енгізілген мәтіндегі үш сөздің бірінші сөзін ең соңына қойыңыз.

20) Сөздерді аударып жазатын программа құрастырыңыз. Егер енгізілген сөз "dog" болса, онда нәтижесі "god" сөзі болуы керек.

21) Символдардан тұратын жол енгізілген. Осы жолдағы ‘b’ және ‘B’ әріптерінің санын анықтау қажет.

22) Мектепке түскен жылы мен фамилиясы көрсетілген символдардан тұратын жол берілген. Жылды бүтін санды айнымалыға түрлендіріп, оған 10 қосып, нәтижесін «Мектепті ... жылы бітірді» деп шығару қажет.

 

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

1. Дербес компьютердің жадына символдар қалай жазылады?

2. Символдық айнымалылар.

3. Жолдық айнымалылар.

4. Жолдық айнымалылармен жұмыс істейтін функциялар.

5. Жолдық айнымалылармен жұмыс істейтін процедуралар.

6. Жолдық айнымалылардың массивтерге ұқсастығы.

7. Жолдық айнымалыларды салыстыру және олардың ұзындығы.

 

A Қосымшасы
Блок-сұлбаның элементтері

 

А.1 Кесте

Белгіленуі

Тағайындалуы

 

Алгоритмнің басы мен соңын белгілеуге қолданылады

 

Берілгендерді енгізу және шығару операторлары үшін қолданылады

Берілгендердің кез-келген түрін өңдеуді бейнелейтін функция.

Меншіктеу операциясын белгілеу үшін қолданылады.

 

Циклдық For операторын белгілеу үшін қолданылады.

Тармақталу кезінде немесе циклдық  While немесе Repeat логикалық шартты тексеру үшін қолданылады.

 

Ішкі программаны белгілеу үшін қолданылады.

 

Алгоритмнің тармақтарын біріктіретін нүкте.

 

 

 

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

 

Клавиатура

 

Pascal тілі DOS операциялық жүйесінде жұмыс істеуге арналған. Төменде Pascal тіліндегі клавишалардың тағайындалуы көрсетілген (дәлірек айтқанда DOS-тағы).

Insert – курсордың формасын өзгерту, басу кезінде символдарды қоюдан ауыстыруға өткізеді және керісінше.

Home  - курсорды жолдың басына көшіреді.

End – курсорды жолдың соңына көшіреді.

BackSpace (Bs)– курсордың сол жағындағы символды өшіреді.

Delete – Курсордың үстіндегі символды өшіреді (windows-та курсордың оң жағындағы).

Tabпрограммада курсордың орнын бір рет жылжытады.

Shift + курсордың орнын ауыстыратын көрсеткіштер мәтінді ерекшелеу.

Ctrl + Insertерекшеленген мәтінді алмастыру буферіне көшіру.

Shift + Insertауыстыру буферінің ішіндегіні курсор тұрған жерге қояды.

Shift + Delete – ерекшеленген мәтінді ауыстыру буферінің ішіне көшіреді және оны экраннан өшіріп тастайды (Вырезать командасы).

Alt + Bs – мәтіннің өшірілген фрагменттерін қайтару, мүмкін көп рет басу.

 

Б Қосымшасы
Программаның құрылымы және енгізілген функциялары

Б.1 К е с т еҚарапайым программаның құрылымы

Бөлігі

Бөлімі

Программада белгіленуі

Сипаттау

Программаның тақырыбы

Program  Primer;

Белгілерді хабарлау

Label   vyhod, metka1;

Тұрақтыларды хабарлау

Const  a=3.5; b=5;

Айнымалыларды хабарлау

Var  y,z: real; i: integer;

Орындалуы

Орындалу бөлігінің басы

Begin

{Берілгендерді енгізу};

{Берілгендерді өңдеу};

{Нәтижелерді шығару};

Программаның соңы

End.

Б.2 К е с т е – Pascal тілінің кейбір енгізілген функциялары

Математикалық жазбасы немесе оның тағайындалуы

Pascal тілінде жазылуы

Sin x немесе Cos x, (x радианмен берілген)

Sin(x) немесе Cos(x)

Arctg y

Arctan(y)

Ln x – х>0 үшін натурал логарифмнің мәні

Ln(x)

ex немесе exp(x)

Exp(x)

 - хтің абсолютті мәні

Abs(x)

, x>=0 үшін

Sqrt(x)

х2

Sqr(x)

Бүтін бөлігі алынып тасталынған х санының бөлшек бөлігі.

Типтің нәтижесі Real.

Frac(x)

Бөлшек бөлігі алынып тасталынған х санының бүтін бөлігі.

Бүтін типтің нәтижесі longint.

Trunc(x)

Бөлшек бөлігі алынып тасталынған х санының бүтін бөлігі.

Типтің нәтижесі Real.

Int(x)

Бүтін бөлігіне дейін жуықтап алынған Х санының бүтін бөлігі.

Бүтін типтің нәтижесі longint.

Round(x)

0-ден x-1-ге дейінгі бүтін кездейсоқ сан. Типі аргументімен бірдей.

Random(x)

(1> x ≥ 0) диапазонындағы кездейсоқ сан.

Random

Егер х бүтін саны тақ болса, онда мәні True болады.

Odd(x)

 

Дәрежеге шығару үшін  xY = eYLnХ тепе-теңдігі қолданылады, яғни  өрнегі қолданылады.

Ондық логарифмді есептеу үшін Lg(x)=Ln(x)/ln(10) өрнегі қолданылады.

Кестеде көрсетілмеген тригонометриялық функциялар белгілі тригонометриялық формулалар Cos және Sin арқылы есептелінеді.


В Қосымшасы
Turbo Pascal тілінің негізгі элементтері

В.1 К е с т е – Резервтелген сөздердің тізімі

Absolute

Downto

In

Or

Then

And

Else

Inherited

Packed

To

Array

End

Inline

Private

Type

Asm

External

Interface

Procedure

Unit

Assembler

Far

Interrupt

Program

Until

Begin

File

Label

Public

Uses

Case

For

Mod

Record

Var

Const

Forward

Near

Repeat

Virtual

Constructor

Function

Nil

Set

While

Destructor

Goto

Not

Shl

With

Div

If

Object

Shr

Xor

Do

Implementation

Of

String

 

 

В.2 К е с т еКейбір айнымалылардың типтері

Бүтін сандар

Нақты сандар

Форматы

Мәндерінің диапазоны

Форматы

Мәндерінің диапазоны

shortint

-128 ¸ 127

real

±(2.9E-39 ¸1.7E+38)

integer

-32768 ¸ 32767

single

1.5E-45 ¸3.4E+38

longint

-2147483648 ¸ 2147483647

double

±(5.0E-324 ¸1.7E+308)

Символдар

Жолдар

Char

Кодтар кестесіне сәйкес

String

256 символға дейін

B.3 К е с т е Кейбір операциялардың тізімі

Операциялар

Амалдар

Шығатын нәтиженің типі

 

 

Арифметикалық

+, -, *

Қосу, азайту, көбейту

Бүтін немесе нақты

 

/

Бөлу

Нақты

 

Div

Бүтін санды бөлгендегі бүтін бөлігі

Бүтін

 

Mod

Бүтін санды бөлгендегі қалдығы

Бүтін

 

Салыстыру операциялары

=

Теңсіздік

 

 

Логикалық (false, true)

 

<> 

Теңсіздік

 

Кіші

 

Үлкен

 

<=

Кіші немесе тең

 

>=

Үлкен немесе тең

 

Логикалық

Not

Теріске шығару

 

Логикалық (false, true)

 

Or

Дизъюнкция (НЕМЕСЕ)

 

And

Конъюнкция (ЖӘНЕ)

 

Xor

Болдырмайтын ИЛИ


Г Қосымшасы

Орыс әріптерін латын алфавиті арқылы жазу

 

Pascal тілінде орыс сөздерінің әріптерін кестеде көрсетілген Translit стандартты кодының көмегімен ауыстыруға рұқсат етіледі. Бұл код электрондық поштада да қолданылады, өйткені басқа елдерде кириллицамен барлық компьютерлер жабдықталмаған. Internet-те көптеген тегін Рус – Lat  және Lat - Рус ауыстыру кодировкалары бар.

Г.1 К е с т е

Алфавит

Мысалдар

Алфавит

Мысалдар

орыс

латын

орыс

латын

а

a

Абай  à  Abay

р

r

РаушанàRaushan  

б

b

АманбаевàAmanbayev

с

s

Сайран à Sayran

в

v

Валерий  à Valeriy

т

t

ТатьянаàTatyana

г

g

Галия   à Galiya

у

u

Улжан à Ulzhan

д

d

Джубаны àDzhubany

ф

f

Фёдор  à Fyodor

е

e, уe

Ержан  à Erzhan

х

Kh, h

Хамит à Khamit

ё

yo

СоловьёвàSolovyov

ц

ts

Цезарь à Tsezar

ж

zh

Жанара  àZhanara

ч

ch

Чингис à Chingis

з

z

Зарема   à Zarema

ш

sh

Шынар à Shynar

и

i

Иванов  à Ivanov

щ

chsh

Щукин à Chshukin

й

y

Алексей à Aleksey

ъ

Апостроф

Съезд   à S'ezd

к

k

КенжегульàKenzhegul

ы

y

ЫрысжанàYryszhan

л

l

Людмилаà Lyudmila

ь

Жазыл-майды

Цезарь à Tsezar

м

m

Мальков à Malkov

э

e

Эльмираà Elmira

н

n

Италия   à Italiya

ю

yu

Юрий  à Yuriy

о

o

Ольга   à  Olga  

я

ya

Январь  à Yanvar

п

p

Петров  à  Petrov

 

 

 

 

Ерекше жағдайлар

 

ЫЙ және ЙЫ әріптерінің жазылуы

Кайырхан   à  Kaiyrkhan

Беспалый   à   Bespalyi

Е әріпі және қатаң әріптердің жазылуы

Тулеев        à   Tuleyev

Галиев      à   Galiyev

Д Қосымшасы

Программаларда жиі кездесетін қателер

Егер компилятор синтаксистік қатені көрсетсе, онда курсорды сол қатеге қойып, қатені сипаттайды.

 

Д.1 Кесте

Қатені сипаттау

Қатенің себебі

Error 3: Unknown identifier.

Айнымалының белгісіз түрі. Егер айнымалы Var бөлімінде сипатталмаса немесе айнымалының аты дұрыс жазылмаса туындайды. Математикалық өрнектерді жазған кезде «*» символы жазылмаса жиі туындайды.

Error 8: String constant exceeds line.

Шығару операторында екі апострофтың біреуі жазылмаса туындайды.

Error 85: “;” expected.

Курсормен көрсетілген жерде, көрсетілген (;) символы жетіспесе. Себептері: алдыңғы жолдағы өрнектің соңында «;» символы жазылмаса, ашылған операторлық жақшалар саны begin жабылған операторлық жақшалар саны end-мен тең болмаса. Қатені түзету алдында алгоритмді тексерген жөн.

Error 94: “.” expected.

Курсормен көрсетілген жерде файлдың соңын көрсетпейтін символдың жетіспеуінен. begin сөзінің саны end-ке қарағанда аз болса.

Error  89: “)” expected.

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

Error 205: Floating point over low.

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

Error 26: Type mistakes.

Айнымалылардың типі ауыстырылған. Мысалы, бөлудің нәтижесінде бүтін санды алу әрекеті немесе айнымалыға массивтің мәнін меншіктеу әрекеті жасалса.

Error 200: Division by zero.

Курсор санды нөлге бөлу әрекеті кезіндегі жолдың қатесін көрсетеді. Берілгендерді өзгертіңіз.

Error 106: Invalid numeric format.

Курсор қатесі бар жолды көрсетеді. Санның орнына символ көрсетілуі мүмкін.

Error 35: Label identifier expected.

Goto операторынан кейін белгі қойылмаған.

Error 82: Undefined label in preceding statement.

Белгі Label бөлімінде сипатталмаған.


Е Қосымшасы

Кейбір символдардың ASCII коды

 

Қосымшада ASCII символдарының американдық стандартты коды 47-ден 126-ға дейін берілген. Орыс әріптері үшін DOS-та бірнеше кодировка, ал Windows үшін жаңа кодировка шығарылған. Сондықтан, орыс әріптерін (кириллицаны) экранға немесе қағазға шығарған кезде кейбір қиындықтар кездеседі.

 

К.1 Кесте

Код

Символ

Код

Символ

Код

Символ

Код

Символ

47

/

67

C

87

W

107

k

48

0

68

D

88

X

108

l

49

1

69

E

89

Y

109

m

50

2

70

F

90

Z

110

n

51

3

71

G

91

[

111

o

52

4

72

H

92

\

112

p

53

5

73

I

93

]

113

q

54

6

74

J

94

^

114

r

55

7

75

K

95

_

115

s

56

8

76

L

96

 

116

t

57

9

77

M

97

a

117

u

58

:

78

N

98

b

118

v

59

;

79

O

99

c

119

w

60

80

P

100

d

120

x

61

=

81

Q

101

e

121

y

62

82

R

102

f

122

z

63

?

83

S

103

g

123

{

64

@

84

T

104

h

124

|

65

A

85

U

105

i

125

}

66

B

86

V

106

j

126

~

 

Әдебиеттер тізімі 

1.     Аляев Ю.А., Козлов О.А. Алгоритмизация и языки программирования Pascal, C++, Visual Basic: Учебно-справочное пособие. – М.: Финансы и статистика, 2004.

2.     Культин Н.Б. Turbo Pascal в задачах и примерах. – СПб.- БХВ – Петербург, 2005.

3.     Фаронов В.В. Turbo Pascal 7.0. Начальный курс: Учебное пособие.- М: Нолидж, 1999.

4.     В.М. Тарасов. Информатика. Алгоритмизация. Методические указания

к выполнению лабораторных работ для студентов всех форм обучения специальности 050718 - электроэнергетика

5.     Дереккоз: http://info/aipet.kz/Правила пользования информационными ресурсами/ Кириллица әріптері және латын алфавиті әріптерінің сәйкестік кестесі.

 

Мазмұны 

Кіріспе

3

№1 зертханалық жұмыс. Сызықты алгоритмді құру.

3

1.1 Сызықты алгоритмді және программаны құру.

3

1.2 Сызықты алгоритмге мысал және программасы.

6

1.3 Тапсырмалар нұсқасы және бақылау сұрақтары.

7

№2 зертханалық жұмыс. Тармақталған алгоритм. Қайталану.

7

2.1 Тармақталған алгоритм  және оның программасын құру.

7

2.2 Тармақталып құрылған алгоритмге мысал

10

2.3 Тапсырмалар нұсқасы және бақылау сұрақтары

11

№3 зертханалық жұмыс. Таңдау операторымен құрылған алгоритм
13

 

3.1 Таңдау операторымен алгоритм құру

13

3.2 Тапсырмалар нұсқасы және бақылау сұрақтары

14

№4 зертханалық жұмыс. Циклдық алгоритмдер

17

4.1 Циклдық алгоритмдер мен оның программасын құру

17

4.2 Тапсырмалар нұсқасы және бақылау сұрақтары

20

№5 зертханалық жұмыс. Циклдық алгоритмдерді қолдану.

22

5.1 Циклдарды қолдану

22

5.2 Тапсырмалар нұсқасы және бақылау сұрақтары

23

6 зертханалық жұмыс. Ішкі программа – функция

25

6.1 Ішкі программа – функцияны құру

25

6.2 Тапсырмалар нұсқасы және бақылау сұрақтары

26

№7 зертханалық жұмыс. Символдық және жолдық ақпараттар

27

7.1 Символдарды өңдеу

27

7.2 Тапсырмалар нұсқасы және бақылау сұрақтары

30

A Қосымшасы. Блок-сұлбаның элементтері

33

Б Қосымшасы. Программаның құрылымы және енгізілген функциялары

35

В Қосымшасы. Turbo Pascal тілінің негізгі элементтері

37

Г Қосымшасы. Орыс әріптерін латын алфавиті арқылы жазу

38

Д Қосымшасы. Программаларда жиі кездесетін қателер

39

Е Қосымшасы. Кейбір символдардың ASCII коды

40

Әдебиеттер тізімі

41