Практикалық жұмыс №1 Тақырыбы: ет кабинетіндегі техника қауіпсіздігі Теорияға шолу Техника қауіпсіздігі және есептеуіш техника кабинетіндегі тәртіп сақтау ережелері



бет2/3
Дата21.04.2017
өлшемі1,83 Mb.
#14195
1   2   3

Мысал: 2 санның көбейтіндісін есептейтін программа құралық.

Program esep;

Var a,b, kobeitindi: integer;

Begin

Write (‘А бүтін санын енгізіңдер:’);

Readln(a);

Write (‘В бүтін санын енгізіңдер:’);

readln(b);

kobeitindi:=a*b;

write(‘А және В сандарының көбейтіндісі :’,kobeitindi);

end.

Программаға енетін айнымалылар мен тұрақтыларды, сандарды пайдаланып түрлі әрекет (нұсқау, жарлық) орындай алатын сөйлемдерді Паскаль тілінде операторлар, ал алгоритмдік тілде командалар деп атайды. Операторларды қарапайым және күрделі деп екі топқа бөледі. Begin және end түйінді сөздері операторлық жақшалар деп аталады. Сәкесінше, Begin – ашылатын, end – жабылатын жақшалар.



Оператор дегеніміз – алгоритмді жүзеге асыру барысында орындалатын іс-әрекеттерді анықтайтын тілдің қарапайым сөйлемі. Олар жазылу ретіне қарай біртіндеп бірінен кейін бірі тізбектей орындалады. Операторлар бір-бірінен нүктелі үтір (;) арқылы бөлініп жазылады. Бір жолға ораналасатын операторларды құраушы символдар саны 256 символдан артпауы керек.

Қарапайым операторлар деп құрамына басқа операторлар енбейтін (меншіктеу, шартсыз көтеру, процедура шақыру) операторларды айтады.

Құрама операторлар бірнеше операторлардан құралады, оларға: шартты операторлар, таңдау операторы, қайталау операторлары жатады.

Операторлардың жіктелуі

Практикалық жұмыс №8

Тақырыбы: Айнымалылар. Тұрақтылар. Деректер.
Теорияға шолу

Паскаль тілінің қарапайым объектілеріне «сан», «идентификатор», «тұрақты», «айнымалы», «функция» және «өрнек» ұғымдары кіреді. Атау – идентификатор программаны және программадағы тұрақтыларды, типтерді, айнымалыларды, функцияларды, файлдарды т.б белгілеп жазу үшін қажет. Идентификатор – міндетті түрде әріппен басталатын сандар мен әріптердің тізбегінен тұратын атау. Оның ұзындығын өте үлкен етудің қажеті жоқ, өйткені, атауларды теру және кейіннен есте сақтау біраз уақыт пен жады көлемін қажет етеді. Мысалы, x, X1, cymma, DT3.

Идентификатор стандартты және бейстандартты болып бөлінеді. Бейстандартты атауды тұтынушы өзі тағайындайды. Пайдаланушы қойған бейстандартты атауларға қойылатын талаптар:


  1. Атау тек латын әріптермен басталуы тиіс. Тек белгілер атауы ғана цифрдан да әріптенде бастала береді.

  2. Атаудың алғашқыдан кейінгі символдары әріптерден, цифрлардан немесе астын сызу белгісінен тұруы мүмкін.

  3. Қатар орналасқан екі атау арасында кем дегенде бір бос орын белгісі болуы қажет.

  4. Атаудағы символдар саны 127 –ден аспауы қажет.

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

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

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



Const Min=1000; Max=1000000;

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

Var <идентификатор> : <тип> ;

Мысалы:


Var a,b:integer;

Sum, baga: real;

Айнымалылар қарапайым және индексті болуы мүмкін. Қарапайым айнымалылар өз атаулары бойынша жазылады. Мысалы, delta, x, y, resultm, nuber_1. Индексті айнымалыларға массив элементтері жатады.

Программада пайдаланылатын мәліметтердің немесе шамалардың мәндері Паскаль тіліндегі алдын ала келісілген типтердің біріне тән болуы тиіс.

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

Стандартты (скалярлық) типтер:


      • бүтін – INTEGER

      • нақты – REAL

      • логикалық – BOOLEAN

      • символдық – CHAR

      • тіркестік – STRING

Бүтін сан түріндегі типтер. Паскаль тілінде бүтін шамалар үшін бес стандартты тип пайдаланылады, олардың сипаттамасы келесідей:





Типі

Мәндерінің өзгеруі

BYTE

0 – 255

SHORTINT

-127 – +128

INTEGER

-32768 – +32767

WORD

0 – 65535

LONGINT

-2147483648 – +2147483647

Ондық сандар бүтіні мен бөлшегін бөлетін үтірі жылжымалы және тұрақты түрде жазылады. Үтірі математикадағыдай жазылады, бірақ үтір орнына нүкте қойылады. Мысалы, 12.5, 49.89

Нақты сан REAL сөзімен анықталады оның диапазоны: -1.7 *1038 – 1.7 *1038.

Логикалық типтегі шамалар (BOOLEAN) негізінен екі мән ғана қабылдайды: TRUE – ақиқат, FALSE – жалған. Олар компьютер жадында бір байт орын алады.

Символдық типтегі шамалар (CHAR) мән ретінде тек бір таңбаны ғана қабылдай алады. Мәннің символ екендігін көрсету үшін оны апостроф ішіне алып жазады. Мысалы, ‘a’, ‘5’, ‘K’.

Тіркестік типтегі шамалар (STRING) апостроф ішіне алынған символдар тізбегі қабылдайды. Мысалы, ‘MAMA’, ‘fbvv’, ‘654654’.
Практикалық жұмыс №9

Тақырыбы: Арифметикалық операциялар. Өрнектеу
Теорияға шолу

Шамаларға қолданылатын операциялар (амалдар) олардың типтеріне байланысты болады. Бүтін типке мынадай амалдар қолданылады: +, -, *, /, div, mod. Келесі кестеде осы операциялар және олардың операторлары мен нәтижелерінің типтері келтірілген.


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

белгілер

операциялар

Операндтар типі

Нәтиже типі

+

Қосу

Екеуі де бүтін, не біреуі бүтін, біреуі нақты

Бүтін, нақты

-

Азайту

Екеуі де бүтін, не біреуі бүтін, біреуі нақты

Бүтін, нақты

*

Көбейту

Екеуі бүтін немесе екеуінің біреуі нақты

Бүтін, нақты

/

Бөлу

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

Нақты

div

Бүтін бөлу

Бүтін

Бүтін

mod

Бүтін қалдық

Бүтін

Бүтін



Қосу, азайту, көбейту, бөлу амалдары кәдімгі математикадағыдай орындалады, ал қалған екі амалға мысал келтірейік.

5 div 2 = 2 5 mod 2 = 1

8 div 3 = 2 8 mod 3 = 2

7 div 2 = 3 7 mod 2 = 1



Өрнек деп арифметикалық амал таңбаларымен біріктірілген айнымалылардың, функциялардың, тұрақтылардың жиынтығын айтады. Өрнектегі арифметикалық амалдардың орындалуы олардың орналасу реті мен жақшалар арқылы өзгертіледі. Қарапайым жағдайда өрнек тек айнымалылардан, тұрақтылардын немесе функциялардан тұруы мүмкін. Мысалы, (5+7*х)/7.2;

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


Практикалық жұмыс №9 - ға арналған тапсырмалар
Тапсырма №1. Жұмыс дәптеріңе орында.

а) 25 санын 3-ке бөлгендегі бөліндіні табыңдар.

б) 42 санын 5-ке бөлгендегі бүтін қалдықты табыңдар.

Тапсырма №2. Жұмыс дәптеріңе орында.

1- нұсқа 2-нұсқа

37(25+87,5)-17(4,6+1,9) а+2с-3х

2ас . 45,5(5х+2,189)-2а

Практикалық жұмыс №10

Тақырыбы: Стандарттық функциялар
Теорияға шолу

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



Арифметикалық функциялар


Математикалық жазылуы

Паскаль тілінде жазылуы


Орындалатын фунция

Функция типі

|x|

abs(x)

Аргументтің абсолюттік шамасы




arctg x

arctan(x)

Аргументтің арктангенсі

Нақты

cos x

cos(x)

Аргументтің косинусы

Нақты

sin x

sin(x)

Аргументтің синусы

Нақты

ex

exp(x)

е санының х дәрежесі

Нақты




frac(x)

х санының бөлшек бөлігі

Нақты

[x]

int(x)

х санының бүтін бөлігі

Нақты

ln x

ln(x)

х санының натуралдық логарифмі

Нақты

π

pi

Пи санының мәні (3,14159265)




x2

sqr(x)

х санының квадраты






sqrt(x)

х санының квадрат түбірі

Нақты

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



Round(x) – нақты санды бүтін санға дөңгелектейді.

Trunс(x) – нақты санның бүтін бөлігі.

Odd(x) – х мәнін жұп немесе тақ сан екенін анықтайды. Егер х мәні жұп болса, онда функция нәтижесі – false, ал егер сан тақ болса, онда функция нәтижесі – true болады.

Мысалы, келесі функция берілген.


Осы функцияны Паскаль тілінде жазайық.

Y:= sqrt ((2*sqr(x))/ (exp(x)*ln(x)));

Егер х санының квадраты емес, кубын табу керек болса, оның бірнеше жолы бар:

х3 - sqr(x) * x;

х3 - exp(3*ln(x));

Яғни, санның кез келген дәрежесін соңғы әдіспен есептеуге болады.

ху -> exp(y*ln(x));

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





Практикалық жұмыс №11
Тақырыбы: Меншіктеу операторы
Теорияға шолу

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

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

<айнымалы атауы> : = <өрнек>;

Мұндағы <айнымалы атауы> - айнымалы идентификаторы,

: = – меншіктеу белгісі, яғни айнымалының мәні өрнектің есептелген сан мәнін қабылдайды,

<өрнек> - арифметикалық өрнек немесе сан.

Бұл оператор екі міндет атқарады:



  1. Айнымалылардың белгілі мәндері бойынша арифметикалық өрнектің сандық мәнін есептейді.

  2. Табылған мән айнымалы атауына меншіктеледі, яғни анықталған мән сол айнымалыға сәйкес компьютер жады ұяшығына орналасады.

Мысалы:

I:=I+1;


X:=3.56;

X1:=(-b+4.63)/46*a;

N:=’mama’;

Res:=true;

Y:=sqrt(5)+1;


Практикалық жұмыс №12
Тақырыбы: Деректерді енгізу және шығару
Теорияға шолу

Паскаль тілінде мәліметтерді енгізу және шығару үшін, яғни адам мен компьютер арасында мәлімет алмасу мақсатында алдын ала анықталатын Input, Output файлдары қолданылады. Программа берілген мәндерді Input файлынан алады да, алынған нәтижені Output файлына орналастырады. Стандартты енгізу файлы болып пернетақта, ал шығару файлы болып дисплей экраны саналады. Ол үшін енгізу операторы пайдаланылады.

Паскаль тілінде мәлімет енгізетін READ операторының жалпы пішімі төмендегідей:

READ (A1, A2, …, AN);

READLN(A1, A2, …, AN);

READLN;

Мұндағы, A1, A2, …, AN – айнымалы атаулары, оларды енгізу операторының параметрлері деп атайды. Оператордың параметрлері біреуден көп болса, олардың арасын бос орын қалдыру арқылы енгізу керек.

READLN алдыңғы оператордағыдай пернелерден мәндер енгізілгеннен кейін курсорды келесі қатарға көшіріп жібереді. Ешқандай параметрсіз енгізу операторы READLN ешбір мән енгізбейді, тек курсорды келесі қатарға көшіруді ғана атқарады. Енгізілетін айнымалылардың мәндері integer, real, char немесе string типтеріне жатуы мүмкін. Логикалық айнымалылар мәндері енгізілмейді. Мысалы:

Var

I: real;

J: integer;

K: char;

Begin

Read (I, J, K);

..

Егер осы программаны іске қосатын болсақ, келесі мәндерді пернетақтадан енгізсек болады:

214.25 59 ‘р’

Бүтін айнымалыға бүтін, нақты айнымалыға нақты мәндер берілуі қажет.

Паскаль тілінде нәтижені экранға шығару үшін WRITE (жазу) операторы қолданылады. Оның жазылу пішімі:

WRITE (A1, A2, …, AN);

Мұндағы жақша ішіндегі жай айнымалылар немесе апострофтармен қоршалған символдар тобы болуы мүмкін. Мысалы, экранға А-ны мәні = 13.26 дегенді шығару үшін келесідей команда жазамыз:



WRITE( ‘A-ның мәні=’ , A);

Шығарылатын параметрлер бір-бірімен үтір арқылы ажыратылады. Паскаль тілінде нақты сандарға шығару операторын қолданғанда оларды компьютер экспоненциалды түрде шығарып көрсетеді. Алдыңғы мысалда экранда келесідей жазу шығады:



A-ның мәні=1.326Е+01

Бұл деген 1.326 *101

Пайдаланушыға түсінікті болу үшін оны қалыпты түрге келтіруге болады.

WRITE( ‘A-ның мәні=’ , A:4:2);

А : 4 : 2 дегендегі 4- нәтижеге берілген барлық орын, 2 – үтірден соңғы бөлшек бөлігіне берілетін орындар саны.



Мысал: функциясын есептейтін программа құру қажет. x – тің мәнін пернетақтадан енгізіледі.

Program esep2;

Var

x:integer;

y:real;

begin

writeln(‘х санын енгізіңіз:‘);

read(x);

y:=sqrt(x);

writeln(‘y=’, y:5:2);

end.

Практикалық жұмыс №13
Тақырыбы: Сызықты алгоритмді программалау
Теорияға шолу

Сызықтық алгоритм программасы тізбектеле орналасқан командалардан тұрады. Сызықтық программа құру үшін енгізу-шығару және меншіктеу операторларын білу жеткілікті. Мысалдар:



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

Program esep1_1; {программаның аты}

Var {айнымалыларды сипаттау бөлімі}

n1,n2 : Integer; {n1 және n2 – бүтін сандарын анықтау}

х : Real; {бөлінді нәтижесі x – нақты сан}

BEGIN {программа басы}

Write( 'n1 = '); { n1 санын енгізу туралы ақпаратты экранға шығару}

ReadLn (n1) ; { n1 – ді енгіземіз}

Write ( 'n2 = '); { п2 санын енгізу туралы ақпаратты экранға шығару}

ReadLn (n2); { п2 – ні енгіземіз}

x := n1/n2; {бөліндіні есептейміз, оны х айнымалысына меншіктеу}

WriteLn('n1/n2 =',х); {нәтижені экранға шығарамыз}

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

Бағдарламаны іске қосамыз (F9 пернесін басамыз). Егер бағдарлама дұрыс, синтаксистік қатесіз болса, экранда



n1 =

деген ақпарат көрініп тұрады. n1-ге кез келген бүтін санды енгіземіз. Мысалға:



n1 = 55

Enter пернесін басамыз, сонда келесі мәнді (n2 =) енгізу қажеттігі туралы мәлімет шығады, ол экранда келесідей тұрады:



n1 = 55

n2 =

n2 айнымалысына мән береміз, мысалы: 5 мәні



n1 = 55

n2 =5

Enter пернесін басамыз, сонда программа есептеулер жүргізіп (n1/n2), нәтижені экранға шығарады:



n1 = 55

n2 =5

n1/n2 = 11
Есеп 2. (2-деңгей-орташа). A = (x+y/(5+x))/|y-sinx+x|+5arctgx функциясын есептейтін программа құру.

Program esep1_2;

Var {айнымалыларды сипаттау бөлімі}

x,y: Real; {х және у – нақты сандар}

A: real; {А функциясы – нақты сан}

BEGIN {программа басы}

Write( 'x = '); { x санын енгізу туралы ақпаратты экранға шығару }

ReadLn (x) ; { x – ті енгіземіз}

Write ( 'y = '); {y санын енгізу туралы ақпаратты экранға шығару}

ReadLn (y); { y – ті енгіземіз}

A:= (x+y/(5+x))/abs(y-sin(x)+x)+5* arctan(x);

{А функциясының мәнін есептейміз}

WriteLn('A =', A:5:3); {нәтижені экранға шығарамыз}

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

Есеп 3. (3-деңгей - жоғарғы). F= функциясының мәнін табу
программасын құру. Мұндағы, x, y – бүтін сандар, z = x3 + .

Program esep1_3;

Var {айнымалыларды сипаттау бөлімі}

x,y: Integer; {х және у – бүтін сандар}

z, F: real; {z және F – нақты сандар}

BEGIN {программа басы}

Write( 'x = '); { x санын енгізу туралы ақпаратты экранға шығару }

ReadLn (x) ; { x – ті енгіземіз}

Write ( 'y = '); {y санын енгізу туралы ақпаратты экранға шығару}

ReadLn (y); { y – ті енгіземіз}

z:= Sqr(x)*x + Sqrt(y); { z - ті формула бойынша есептеу}

F:=sqrt(2)*sin(x)/arctan(5*y) + cos(z)/exp(z);

{ F функциясының мәнін есептейміз}

WriteLn('z =', z:5:3, ‘F=’, F:5:3); {нәтижені экранға шығарамыз}

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

Практикалық жұмыс №14

Тақырыбы: Символдық шамалармен сызықты программалар құру
Теорияға шолу

Символдық мәліметтерді өңдеу символдық типті анықтайтын CHAR түйінді сөзі арқылы жүзеге асырылады. Символдық айнымалыға компьютер жадынан бір байт орын беріледі.

Символық типтегі мәлімет үшін төмендегідей стандартты функциялар қолданылады.

Chr(x)- byte типіндегі х өрнегін символға түрлендіреді.

Ord(ch) – с символын оның byte типіндегі сәйкес кодына түрлендіреді.

Pred(ch) – ch –тың алдыңғы кодына сәйкес символды береді.

Succ(ch) – ch-тан кейінгі кодына сәйкес символды береді.

Upcase(ch) - кіші латын әріптерін бас әріптерге айналдырады, басқа символдарға әсер етпейді.

Символдық шамаларды енгізу READ операторы көмегімен жүзеге асырылады. Паскальда бос орын ‘_’ таңбасы символ орнына жүретіндіктен, символдық айнымалылардың мәндері бос орынсыз жазылады. Бір айнымалыға бір ғана символ меншіктеледі. Мысал:

………………..

Var a,b,c :char;

…………………

READ (a,b,c);



………………..

Егер пернетақтадан SND енгізсек, онда айнымалылар сәйкесінше,

a:=’S’, b:=’N’, c:=’D’ мәндерін қабылдайды. Егер мәндерді S N D түрінде берсек, онда a:=’S’, b:=’ ’, c:=’ N’ мәндерін қабылдайды, соңғы екі таңба ешқайда енгізілмейді. Тағы бір ерекшелік – ENTER пернесі басылса да бос орын символы болып есептеледі.

Символдық мәндерді енгізгенде EOLN стандартты функциясы қолданылады. Бұл функция мәні «жолдың соңы болды» немесе «мәндер беріліп болды» дегенді білдіретін ENTER пернесі басылғанда ғана ақиқат болады да, қалған жағдайлардың барлығында жалған болады. Бұл функция көбінесе циклдік операцияларда пайдаланылады.

Мысалы: енгізілген “ibm” әріптерін бас әріппен шығаратын программа құру.

Program esep;

Var a,b,c:char;

Begin

Read (a,b,c); {символдарды енгізу}

a:= Upcase(a); {бас әріпке түрлендіру}

b:= Upcase(b); {бас әріпке түрлендіру}

c:= Upcase(c); {бас әріпке түрлендіру}

Writeln(a,b,c); {нәтижені шығару}

End.

Практикалық жұмыс №15

Тақырыбы: Тармақтық алгоритмді программалау
Теорияға шолу

Тармақталу процесстері бар алгоритмдерді ұйымдастыру үшін шартты операторлар пайдаланылады. Тармақталу белгілі бір шарттың орындалуы немесе орындалмауына тәуелді атқарылады. Шарт ретінде логикалық өрнектің мәні пайдаланылады. Паскальда екі шартты оператор бар: if және саse.

If операторының толық жазылу пішімі:

IF <шартты өрнек>

THEN <1-оператор>

ELSE <2-оператор>;

немесе қысқартылған түрі



IF <шартты өрнек>

THEN <1-оператор>;

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



Мысал:

Х = a / b - 1, егер a < b;

X = 25 - a, егер a = b;

X = b - 5, егер a > b.



program esep2_1;

var

a,b,x: real;

begin

writeln(' a және b сандарын енгіз:');

readln(a,b);

if (a < b) then x:= (a / b)-1;

if (a = b) then x:= 25 - a;

if (a > b) then x:= ((b - 5) / a);

writeln('X = ',x);

end.

Практикалық жұмыс №16

Тақырыбы: IF … THEN тармақталу операторлары
Теорияға шолу

Есеп 1.

функциясының мәнін есептейтін программа құру.

Program esep2_2;

Var {айнымалыларды сипаттау бөлімі}

x: Integer; {х – бүтін сан}

А: real; {А нәтиже – нақты сан}

BEGIN {программа басы}

Write( 'x = '); { x санын енгізу туралы ақпаратты экранға шығару }

ReadLn (x) ; { x – ті енгіземіз}

If (x<-1) Then A:= x + sin(x)

{ егер х саны (-1)- ден кіші болса, А= функциясы орындалады}

Else A:= 3* sqrt(x+1); {әйтпесе (х>-1 болса), А= функциясы орындалады }

WriteLn('A =', A:5:3); {нәтижені экранға шығарамыз}

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

Есеп 2. Кез келген 3 бүтін сан берілген: X, Y және Z. Осы сандарды кему реті бойынша орналастыратын программа құру қажет.

Program esep2_3;

Var

x,y,z,n: integer; {x,y,z – енгізілетін сандар, n – уақытша буфер}

begin writeln('Бүтін сандарды енгіз: X, Y және Z');

readln(x,y,z); { x,y,z бүтін сандарын енгізу}

if (x < y) then { егер х– у санынан кіші болса}

begin

n:=x; { n – буферіне х –тің мәнін меншіктейміз}

x:=y; { х –ке у –тің мәнін меншіктейміз}

y:=n; { у –ке n – буферіндегі мәнді меншіктейміз}

end;

if (y < z) then { егер y–z санынан кіші болса}

begin

n:=y; { n – буферіне y –тің мәнін меншіктейміз}

y:=z; { y –ке z –тің мәнін меншіктейміз}

z:=n; { z –ке n – буферіндегі мәнді меншіктейміз}

end;



if (x < y) then

begin

n:=x;

x:=y;

y:=n;

end;



if (y < z) then

begin

n:=y;

y:=z;

z:=n;

end;



writeln('Сандар кему реті бойынша орналастырылды:',x,' ',y,' ',z);

end.
Практикалық жұмыс №17

Тақырыбы: Таңдау операторы
Теорияға шолу

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

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

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

Case <селектор-өрнек> of

<1-тұрақты>: <1-оператор> ;

<2-тұрақты >: <2-оператор > ;

………..



: ;

Else ;

End;

Таңдау командасы былай орындалады. Алдымен, селектор-өрнек мәні есептеледі де, ол тұрақтылармен салыстырылады. Егер өрнектің мәні 1-тұрақтыға тең болса, онда 1-оператор орындалады, ал өрнектің мәні 2-тұрақтыға тең болса, онда 2-оператор, 3-тұрақтыға тең болса, онда 3-оператор т.б. тізімдегі тек бір ғана оператор орындалады да, таңдау командасы осымен аяқталады. Егер селектор-өрнектің мәні ешбір тұрақты мәніне тұрақты мәніне сәйкес келмесе, онда else сөзінен кейін тұрған оператор орындалады. Кейде оператор құрамында else қатары болмайды, ондайда end сөзінен кейінгі тұрған жол орындалады.

CASE операторын қолданғанда, келесі ережелерді ұстанған жөн:


  1. CASE сөзінен кейінгі өрнек мәні дискретті типке жатуы тиіс; бүтін санды тип үшін ол integer болады;

  2. Операторлар алдындағы тұрақтылар типі селектор-өрнек типімен бірдей болуы керек.

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

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

Program gyl1; {программа тақырыбы}

Var gyl: integer; { gyl айнымалысын сипаттау}

Begin {программаның басы}

Write (‘Керекті жылды енгізіңдер:’);

Readln(gyl); {жылды енгізу қатары}

Write(gyl:4, ‘жыл’);

Case (gyl mod 12) of {таңдау операторы}

{gyl айнымалысының бүтін қалдығын анықтау}

0: write(‘мешін’);

1: write(‘тауық’);

2: write(‘ит’);

3: write(‘доңыз’);

4: write(‘тышқан);

5: write(‘сиыр’);

6: write(‘барыс’);

7: write(‘қоян’);

8: write(‘ұлу’);

9: write(‘жылан’);

10: write(‘жылқы’);

11: write(‘қой’);

End; {таңдау операторының соңы}

Writeln(‘жылы болады’);

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

Практикалық жұмыс №18

Тақырыбы: Циклдік алгоритмді программалау.

For циклдік операторы
Теорияға шолу

Көп жағдайда аргументтерінің әр түрлі мәні бойынша алгоритмнің белгілі бір бөліктерін бірнеше рет қайталауға тура келеді. Осындай процесстерді ұйымдастыру үшін циклдік құрылымды алгоритмдер – қайталау операторлары қолданылады. Олар әр түрлі заңдылық негізіндегі ереже бойынша қолданылады.

Паскаль тілінде қайталау процессін жүзеге асыратын циклдік операторлардың 3 түрі бар: арифметикалық цикл - FOR, шартын алдын ала тексеретін цикл – WHILE және шартты соңынан тексеретін цикл – REPEAT.

Егер шартын алдын ала тексеретін циклдегі операторды неше рет қайталау керек екендігі белгісіз болып, оның тек қайталану шарты берілсе, онда WHILE, REPEAT операторлары пайдаланылады. Ал FOR операторы қайталану саны алдын ала белгілі болған кезде қолданылады.

FOR операторын параметрлі цикл операторы деп те аталады, өйткені, қайталау саны функция аргументі сияқты циклдің параметрі қызметін атқаратын басқару айнымалысы арқылы беріледі.

FOR операторының екі түрі бар:



FOR <айнымалы>:= to do <оператор>;

FOR <айнымалы>:= downto do <оператор>;

Мұндағы, S1 және S2 – цикл параметрінің алғашқы және соңғы мәндерін анықтайтын өрнектер; for…do – цикл тақырыбын анықтайтын түйінді сөздер; <оператор> - цикл тұлғасы.

FOR – ҮШІН, TO – ДЕЙІН, DO – ОРЫНДАУ деген мағынаны беретін түйінді сөздер. Паскаль тілінде цикл параметрі міндетті түрде бүтін немесе реттелген типтегі айнымалы болуы қажет. Параметрдің өзгеру қадамына байланысты операторда TO немесе DOWNTO (DOWN – төмен, TO – дейін, DOWNTO - кері қарай) түінді сөздері пайдаланылады. Егер қадам +1 ге тең болса, онда операторда TO, ал қадам -1 –ге тең болса, онда DOWNTO сөзі қолданылады.

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




FOR операторының блок-схемасы

Мысал: 1 мен 100 аралығындағы сандар қосындысын есептейтін программа құру.

(for операторын қолдану арқылы)

Program esep3_1;

Var {айнымалыларды сипаттау бөлімі}

N, S:Integer; ,y – бүтін сандар }

BEGIN {программа басы}

S:=0;

Цикл денесі

For N:=1 to 100 do { цикл 100 рет айналады}

S:=S + N; { қосындыны есептеу}

Writeln(‘S=’, S); { нәтижені экранға шығару }

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

Программа нәтижесі:

S=__________.

Практикалық жұмыс №19

Тақырыбы: Repeat циклдік операторы
Теорияға шолу

REPEAT қайталау операторы WHILE операторына ұқсас, айырмашылығы – қайталану шарты цикл соңында тексеріледі, сондықтан ол кем дегенде бір рет орындалатын болады. Екінші өзгешелігі – цикл тұлғасы шарт жалған болғанда қайталанып, ол ақиқат болған кезде циклді орындау доғарылады.

Бұл оператор REPEAT және UNTIL түйінді сөздерін пайдаланып орындалады. Жазылу пішімі:

REPEAT

<оператор 1>;

<оператор 2>;

…………


<оператор n>;

UNTIL <шарт>;

Бұл жерде операторлар REPEAT және UNTIL сөздерінің арасына орналасқандықтан, мұнда BEGIN және END сөздері жазылмайды.

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

Мысал. 1 кг ірімшік 300 тг. тұрады. Ірімшіктің 100, 200, 300, ..., 1000 граммына төленетін теңгені анықтайтын және есептің жауабын кесте түрінде шығаратын программа құру. Қадам – 100 –ге тең.

Program esep3_3;

Var {айнымалыларды сипаттау бөлімі}

m: Integer; {m – бүтін сан }

z:real; { z – нақты сан }

BEGIN {программа басы}

m:=100; { m-нің бастапқы мәні}

repeat {цикл басы}
z:=(300*m)/1000; {төленетін теңгені есептеу}

WriteLn(m, ' | ',z , ' тг.'); {нәтижені экранға шығару}

m:=m+100; {m мәнін 1 қадамға жоғарылату}

until m>1000; {цикл шарты}

readln;

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

Программа нәтижесі:



  1. | 30 тг.

  1. | 60 тг.

  1. | 90 тг.

  1. | 120 тг.

500 | 150 тг.

....................

...................

1000 | 300 тг.

Практикалық жұмыс №20

Тақырыбы: WHILE циклдік операторы
Теорияға шолу

Алдын ала берілген шарт бойынша қайталауды жүзеге асыратын оператор WHILE және DO түйінді сөздері қолданылып орындалады. Жазылу пішімі:



WHILE <қайталану шарты> DO <цикл тұлғасы>;

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



WHILE <шарт> DO

BEGIN

<1-оператор;>

<2-опреатор;>

…….



опреатор;>

END;

Мысал. x-тің х= 1, 2, 3, 4, 5, 6 мәндерінде у= функциясының мәнін табу программасын құру.

Program esep3_2;

Var {айнымалыларды сипаттау бөлімі}

x,y: Integer;,y – бүтін сандар }

BEGIN {программа басы}

x:=1; {х-тің бастапқы мәні}

while (x<=6) do

{егер х-тің мәні 6-дан төмен немесе тең болғанда, цикл денесі орындалады}

begin {цикл басы}

y:=exp(x)+2*sqrt(x); {у функциясын есептеу}

WriteLn('x =', x, ' | y =', y); {нәтижені экранға шығарамыз}

x:=x+1; {х мәнін 1 қадамға жоғарылату}

end; {цикл соңы}

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

Программаны іске қосқанда келесі нәтижелер шығуы міндет:



х=1 | у=1

х=2 | у=4

х=3 | у=9

х=4 | у=16

х=5 | у=25

х=6 | у=36

Егер бір цикл тұлғасында басқа циклдік құрылым бар болса, онда олар қабатталған циклдер деп аталады. Құрамына басқа цикл кіретін цикл сыртқы болып саналады да, сыртқы цикл тұлғасына кіретін цикл ішкі болып есептеледі.

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

Мысал 2. (While, For операторын қолдану арқылы)

z=x+2y функциясының мәнін есептеу, мұндағы х=2, 4, 5, 6, 8, 10 және у=5, 6, 7, 8, 9



Program esep3_1;

Var

z,x,y:integer;

begin

while (x<=0) do

begin

for y:=5 to 9 do

begin

z:=x+2*y;

writeln(‘x=’, x,’| y=’, y, ‘| z=’, z);

x:=x+2;

end;

end;

readln; end.

Практикалық жұмыс №21

Тақырыбы: Графиктік объектілерді программалау.

Графикалық процедуралар мен функциялар
Теорияға шолу

Қазіргі компьютерлерде символдардан бөлек әр түрлі суреттер, графиктер салуға болады. Ол үшін Паскаль тілінде әр түрлі графикалық процедуралар пайдаланылады. Графикалық процедуралар мен функциялар GRAPH модулінде орналастырылған. Оларды пайдалану үшін сипаттау бөлігінде



USES GRAPH;

түйінді сөзін пайдалану керек.

Графиктермен жұмыс істеу алдында оған сәйкес келетін монитор режимін орнату керек. Паскальда алдын ала бекітілген драйверлер саны бар, олардың әрқайсысы үш түрлі режимнің бірінде жұмыс істей алады. Драйверлер типі мен оның режимі санмен немесе тұрақты түрінде беріледі.

GRAPH модулі іске қосылысымен, оның ішіндегі процедуралар мен функцияларды пайдалана беруге болады.

Графикалық режимді алғашқы рет іске қосу үшін InitGraph процедурасы қолданылдаы, оның жазылуы:

InitGraph (DriverVar, ModeVar:integer, Gol:string);

Мұндағы DriverVarграфикалық адаптердің типі; ModeVarоның жұмыс режимі; GolGRAPH модулінің маршрутын көрсетеді.

Программаның бас жағына мынадай жолдар жаза аламыз:

Uses graph;

Var

d, m: integer;

begin

d:=detect;

initgraph(d,m,’’);

Геометриялық объектілерді құру процедуралары.

PutPixel(x,y : integer; color : word); - нүкте салу операторы.

x,y – нүкте координаталары, color оның түсін анықтайды. Мысалы: for i:=1 to 60 do PuPixel(I,1, red); операторы бірінші қатарға 60 қызыл нүктеден тұратын сызық салады.



Line(x1,y1,x2,y2: integer); - түзу сызық салу процедурасы.

Ағымдағы түс бойынша координаталары x1, y1, нүктесінен x2,y2 нүктесіне дейін кесінді сызылады, мысалы, – Line (1,1,600,1);

Бастапқы нүкте көрсетілмесе, онда мына процедура:

LineTo (x,y:integer); - курсор тұрған орыннан бастап координаталары x,y болатын нүктеге дейін түзу сызық сызады.

SetLineStyle(t,p,th:word); - сызық қалыңдығы мен стилін орнату, t – сызық түрі, p – сызық үлгісі, th – сызық қалыңдығы.

Сызық стилдері

Тұрақты Оның Сипаттамасы

мәні

solidLn 0 үздіксіз сызық

dottedLn 1 нүктелерден тұратын сызық

ctnterLn 2 нүктелер мен тиреден тұратын сызық

dashedLn 3 штрихті пункитрлі сызық

userBitLn 4 орындаушы тағайындайтын сызық типі
Түрлі түстер

Тұрақты Нөмірі Экран түсі

Black 0 қара

Blue 1 көк

Green 2 жасыл

Cyan 3 көгілдір

Red 4 қызыл

Magenta 5 күлгін

Brown 6 қоңыр

LightGray 7 боз

LightBlue 57 көкшіл

LightCyan 59 ақшыл көк

LightRed 60 қызғылт қоңыр

LightMagenta 61 қызғыш

LightYellow 62 сары

LightWhite 63 ақ

Сызық салу кезінде оның түсі алдыңғы орнатылған түспен беріледі, оны өзгерту үшін:



SetColor(color:word); - процедурасы қолданылады, мұндағы color – жаңадан орнатылатын түрінің аты немесе нөмірі. Мысалы, SetColor(7); - сызық түсі боз болады.

SetВкColor(color:word); - процедурасы экран түсін, яғни рең түсін өзгертеді, мұндағы color – жаңадан орнатылатын түрінің аты немесе нөмірі. Мысалы, SetВкColor(4); - экран түсі қызыл болады.

Rectangle (x1,y1,x2,y2:integer); - сол жақ жоғарғы (х1,у1) және оң жақ төменгі төбелерінің координаталары (х2,у2) бойынша төртбұрыш сызады.

Bar (x1,y1,x2,y2:integer); - мұнда ағымдағы түспен іші боялған тіктөртбұрыш сызылады. Бояу түсін SetFillStyle процедурасы көмегімен енгізуге болады.

SetFillStyle (Patter,color:word); - объектінің ішін бояйды, толтыру стилі мен түсін өзгертеді, мұндағы Pattern – толтыру стилі, ол тұрақты немесе нөмір арқылы беріледі; color – толтыру стилі.

Floodfill(x,y:integer; bor:word); - таңдалған стиль бойынша тұйық фигураның ішін бояйды. Мұндағы x,y – фигураның ішінде жатқан кез келген нүктенің координатасы, bor – шекара сызығының түсі.

Circle(x,y:integer;r:word); - шеңбер сызу процедурасы, мұндағы x,y – центрдің координатасы, r – пиксель арқылы берілген шеңбердің радиусы.

Ellipse (x,y:integer; b1,b2,rx,ry); - эллипс доғасын сызады, мұндағы x,y – центр координаталары, b1,b2 – алғашқы және соңғы доғаның бұрыштары, rx, ry – эллипстың жатық және тік радиустары.

FillEllipse(x,y:integer; xr,yr:word); - іші боялған эллипс сызу, мұндағы x,y – центрдің координаталары, xr,xy –эллипстің жарты осьтері.

Outtext(text:string); - процедурасы арқылы берілген орнынан бастап экранға мәтін жолын шығаруға болады.

Outtextxy(x,y:integer;tex:string); процедурасы. Мұндағы x,y – мәтін жазылатын жолдың алғашқы басталатын орнының координаталары, tex – мәтін, ол апостроф ішіне жазылады.

Мысал:

Program tortbyrish; {программа тақырыбы}

Uses graph; { graph модулін іске қосу}

Var d,m:integer; { d және m бүтін айнымалыларын сипаттау}

Begin {басы}

D:=detect; initgraph(d,m,’’); {графикалық режимді инициализациялау}

Setbkcolor(1); {фон түсін орнату}

Rectangle(150,150,300,320); {тіктөртбұрыш сызу}

Setfillstyle(8,6); {бояу стилін орнату}

Floodfill(160,200,15); { ішін бояу }

Setfillstyle(1,3); {бояу стилін орнату}

Bar(350,150,500,320); {төртбұрыш сызу}

Readln;

Closegraph; {графикалық режимді жабу}

End. {соңы}

Программа нәтижесінде әр түрлі стильмен сызылған 2 төртбұрыш экранда пайда болады.



Практикалық жұмыс №22
Тақырыбы: Символдық мәліметтермен жұмыс
Теорияға шолу

Символдық немесе литерлік айнымалыға компьютер жадынан бір байт орын беріледі. Символдық айнымалылар CHAR типті болады.



Мысалы: ағылшынның алфавитін экранға шығарып беретін программа құралық.

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

Var c: char; {с символдық айнымалыны сипаттау}

Begin {программаның басы}

For c:=’a’ to ‘z’ do {параметрлі цикл операторы}

Write(c); {цикл денесі: с айнымалысын баспаға шығ.}

End. {соңы}

Мұның нәтижесінде дисплей экранында abcd….z символдары көрінеді. Ал алфавитті кері тәртіпте бейнелеу қажет болса, онда FOR операторының алғашқы жолын басқаша мынадай түрде жазу керек.

For c:=’z’ downto ‘a’ do

Символдық және сандық мәндерді енгізгенде, көбінесе EOLN (жол соңы) стандартты функциясын пайдалану қолайлы болады. Бұл функцияның мәні «жолдың соңы болды» немесе «мәндер беріліп болды» дегенді білдіретін ENTER пернесі басылғанда ғана ақиқат болады да, қалған жағдайлардың барлығында жалған болады. Бұл оператор көбінесе циклдік операторларда қолданылады.



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

Program sanau; {программа тақырыбы}

Var a,i:integer; { a және i бүтін айнымалыларын сипаттау}

Begin {басы}

I:=0; { i есептегішінің бастапқы мәнін 0-ге теңестіреміз}

Readln;

While not eoln do {қатардың соңында Enter пернесін басқанша}

Begin {цикл денеісі}

Read(a); {а айнымалысын енгізу}

I:=I+1; {енгізілген санды есепке алу}

End; {цикл соңы}

Writeln; {келесі қатарға меңзерді өткізу}

Writeln(‘I=’, I); {нәтижені экранға шығару}

End. {соңы}

Практикалық жұмыс №23
Тақырыбы: Мәтіндік деректермен жұмыс
Теорияға шолу

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

Тіркестік айнымалының типі программаның типтерді сипаттау бөлімінде немесе тікелей айнымалыны сипаттау бөлімінде де орналаса береді. Оның айнымалы бөлімінде сипатталуы:

Var

<айнымалы аты, ...>; string [жолдың ұзындығы];

Мысал:


Var

Tex1 : string[29];

Atj : string[40];

Atau : string[200];

A : string;
Егер жолдың ұзындығы (символ саны) сипаттау кезінде көрсетілмесе (А айнымалысы), онда оның ұзындығы 256 символ деп қабылданады.

Тіркестік өрнектерде біріктіру және салыстыру амалдары пайдаланады. Біріктіру немесе конкатенация амалы, ол қарапайым «+» белгісімен белгіленеді. Бұл амал бірнеше символдардан немесе сөз тіркесінен жаңа мәтін жолын құру үшін пайдаланылады. Мысалы:

Ауыл’ + ‘шаруашылығы’ = ‘Ауыл шаруашылығы’

S1:=’Ас’; S2:=’тана’; S3:= S1+S2;

Нәтижесі: S3:=’Астана’;

Салыстыру амалдары, олар: +, <>, >, >=, <, <= белгілерімен белгіленеді. Сөз тіркестерін салыстыру олардың символдарының кодтарын солдан оңға қарай біртіндеп бір-бірімен салыстыру арқылы жүзеге асырылады. Егер тіркестің алғашқы символдары бірдей болса, онда қай жолдың символы көп болатын болса, сол үлкен деп есептеледі. Егер өрнекте біріктіру мен салыстыру амалдары болса, ең алдымен біріктіру амалы, содан соң салыстыру амалы орындалады. Сөз тіркесінің салыстыру амалының нәтижесі логикалық шама болады. Мысалдар:

өрнек нәтиже

‘MS-DOS’ < ‘MS-Dos’ true

‘program’ < ‘PROGRAM’ true

‘SAM’ = ‘SAM’ true

‘SAM’ > ‘SAM’ true

‘BBB’ < ‘BB’ false

‘TAM1’ > ‘TAM2’ false

‘100’ < ‘110’ true

Мәтін ұзындығын анықтайтын операциясы – LENGTH (x).

Length (‘ABCD’) = 4. Length (‘a f 5 1’) = 7.



Copy (St, Poz,N) – St сөз тіркесінің Poz нөмірлік символынан бастап қатар тұрған N символ көшіріліп алынады. St – тіркестік айнымалы, Poz, N – бүтін сандар. Егер сөз тіркесі ұзындығынан N артық болса, нәтиже бос символ болады.

Concat(s1, s2,…,sn) – жақша ішіндегі тіркестік айнымалылар мәндерін орналасқан орындары бойынша біріктіреді.

Upcase(ch) – латын алфавитінің кіші әріптерін сәйкесінше бас әріптерге ауыстырады.

Delete(S,Poz,N) – S сөз тіркесі символдарының Poz нөмірінен бастап, N символды өшіреді де нәтижені қайта S мәні ретінде жазады, мұнда Poz<255.

Insert(S1,S2,Poz) – S1 сөз тіркесін S2 тіркесінің Poz нөмірінен бастап кірістіріп орналастырады да, нәтижені S2 мәні ретінде жазады.

Str(I,S) – I санын сиволдар тіркесіне ауыстырады да, нәтижені S мәні ретінде жазады. I атауынан кейін шығару пішімін ( I:2) көрсетуге болады.

Val(S,I,god) – S сөз тіркесі ретінде берілген сандық мәнді бүтін немесе нақты санға ауыстырады да, нәтижені I айнымалысының мәні ретінде жазады. God – бүтін типтегі айнымалы, егер түрлендіру кезінде қате болмаса, сod = 0 – нәтиже дұрыс, ал cod <> 0 болса, онда нәтиже қате, оның мәні алғашқы қате кеткен орын нөмірін көрсететін санға тең болады да, мұндайда I – дің мәні анықталмаған болып саналады.

Мысал: «Студент» сөзі берілген. Стандартты тіркестік процедуралар мен функцияларды пайдаланып, төмендегі тапсырмаларды орындау керек:

    1. сөздің ұзындығын табу;

    2. сөзге «пін» жалғауын жалғау;

    3. сөзден «ден» үзіндісін кесіп алу;

    4. сөзден «ент» үзіндісін алып тастау;

    5. сөз алдына «Мен» тұрақтысын кіргізу;

    6. сөз ішіндегі «е» әрпінің орналасу нөмірін табу:

program student;

var

a1: string [7]; a2: string [3];

a3: string [10]; a4: char;

b1,b6:integer; b2: string [10];

b3: string [3]; b4: string [4];

b5: string [11];

begin

writeln;

a1:=’студент’; a2:=’пін’;

a3:=’Мен’; a4:=’е’;

b1:=length(a1); {ұзындығын анықтау b1=7}

b2:=concat(a1,a2); { a1 және a2 –ні қосу}

b3:=copy(a1,4,3); {а1 тіркесінің 4-ші позицисынан 3 символды бөліп алу}

b4:=copy(a1,5,3); { а1 тіркесінің 5-ші позицисынан 3 символды бөліп алу }

b5:=concat(a3,a1); { a3 және a1 –діі қосу }

b6:=pos(a4,a1); {5}

write(‘сөз ұзындығы:’,b1,’’:2,b2,’’:2,b3,’’:2,b4);

writeln(b5,’’:2, b6);

end.

Практикалық жұмыс №24

Тақырыбы: Массивтер (жиымдар). Бір өлшемді массивтер
Теорияға шолу

Жиым-бұл бір атаумен (жиым идентификаторы) белгіленіп біріктірілген біртекті элементтер жиыны. Жиымдардың негізгі параметрлеріне оның типі (сандық,символдық,логикалық), өлшемі (бірөлшемді,екіөлшемді т.с.с) және көлемі (жиымдардың әрбір өлшемдегі элементтерінің саны) жатады.

Жиымды сипаттау үшін array of сөз тіркесі қолданылады.

Оның жазылу пішімі:

type <тип аты> = array[<индекс типі>] of <элемент типі>;

var <идентификатор, ...> : <тип аты>;

мұндағы array (жиым),of (-дан,-ден,-тан,-тен)-түйінді сөздер;

[<индекс типі>]-real,integer базалық типтерінен өзге кез келген стандартты тип, яғни индекстің типі ретінде шектеулі саналатын, логикалық және литерлік типтер пайданылады; <элемент типі> - құраушылар (элементтер) типі, яғни Паскаль тілінде пайдалануға болатын жиым элементтерінің типі.

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

Жиым типтер бөлігінде көрсетілмей, бірден айнымалылар бөлігінде былай да анықтала береді:

var <идентификатор,…>:array [< индекс типі>] of

[< элемент типі>];

Мысалдар:

type

Klass =(K1,K2,K3,K4);

Znak =array[1..255] of char;

Var

M1:Znak; {Znak типі типтер бөлігінде анықталған}

M2:array [1..60] of integer;{М2 жиымын тікелей сипаттау}

M3:array[1..4]of Klass;

Mas:array [1..4] of integer;

Lit:array [char] of real;

Ogr:array [5..15] of char;

Bol:array[boolean] of integer;

A:array[1..5] of real;

Aj:array[қаңтар,...,желтоқсан] of integer;


Бірөлшемді жиымды көбінесе сызықтық жиым дейді.





Мысал 1: 13 бүтін саннан тұратын тізбектің арифметикалық ортасын табатын программа құралық.
PROGRAM ORTA;

Var

X:array [1..13] of integer; {массивті сипаттау}

I:integer;

S:real;

Begin

S:=0;

Writeln(‘бос орын арқылы 13 сан енгізіңдер:’);

For i:=1 to 13 do

Begin

Read(x[i]); {массив элементтерін енгізу}

S:=s=x[i]; {массив эл-нің қосындысын есептеу}

End;

S:=s/13; {арифметикалық ортасын есептеу}

Writeln(‘s=’,s:8:4); {нәтижені баспаға шығару}

End.

Мысал 2: n элементтен тұратын нақты сандар жиымының элементтерін өсуі бойынша реттеп орналастыру программасын құралық.

Program ret;

Var

A:array[1..50] of real; {А массивін сипаттау}

K,I,j: integer;

M:real;

Begin

Write (‘элементтер саны n-ді (n<50) енгізіңдер: ’ );

Readln(n); {массив өлшемін енгізу}

For k:=1 to n do {цикл ішінде массив элем-рін енгізу}

Begin

Write(k, ‘-элементті енгізіңдер:=’);

Readln(a[k]);

End;

For k:=1 to n do

begin

i:=k; {массивтің 1-ші индексін сақтап қою}

for j:=k+1 to n do {екінші цикл ашу}

if a[j] {ең үлкен элементті анықтау}

begin

i:=j; m:=a[k]; a[k]:=a[i]; {элементтер орнын ауыстыру}

a[i]:=m;

end;

write(‘’, a[k]:6:2); {баспаға шығару}

end;

end.

Практикалық жұмыс №25

Тақырыбы: Екіөлшемді массивтер
Теорияға шолу

Егер жиым атауында бір ғана индекс болса, онда ол жиымды бірөлшемді, ал екі индекс болса – екіөлшемді және т.с.с n индекс болса, n - өлшемді жиым дейді. Бірөлшемді жиым вектор элементтері, ал екіөлшемді жиым матрица болып табылады. Мысалы:


ұяшық A[3,4]



Типтер бөлігінде екіөлшемді жиым былай есептеледі:



Type atau = array [1..n, 1..m] of <элементтер типі>;

Var a,b: atau;

Екіөлшемді жиымды көбінесе айнымалы бөлігінде былай сипаттау жиі қолданылады:



Var

B: array [1..n, 1..m] of <элементтер типі>;

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



For i:=1 to n do

For j:=1 to m do

Read(b[I,j]);

немесе экранға шығару үшін:



For i:=1 to n do

begin

writeln;

For j:=1 to m do

write(b[i,j]);

end;

Мысал 1: Екіөлшемді а және b матрицаларының қосындысы болып табылатын s матрицасын табу керек.

Program kosu;

Var

A,b,s:array[1..3, 1..3] of real; {a,b және s матрицаларын сипаттау}

i,j:integer;

begin

writeln(‘а жиымы элементтерін босорын арқылы енгізіңдер:’);

for i:=1 to 3 do

for j:=1 to 3 do read(a[i,j]); {а матрицасын енгізу}

writeln;

writeln(‘b жиымы элементтерін босорын арқылы енгізіңдер:’);

for i:=1 to 3 do

for j:=1 to 3 do begin

read(b[i,j]); {b матрицасын енгізу}

s[I,j]:=a[I,j] + b[I,j]; {а және b матрицасына қосып, s матрицасына меншіктеу}

end;

writeln(‘қосынды жиымның элементтері:’);

for i:=1 to 3 do begin

for j:=1 to 3 do write(s[I,j]); {жаңа құрылған матрицасының элем-рін баспаға шығару}

writeln;

end;

end.

Мысал 2: Өлшемі 4 х 4 нақты сандардан тұратын матрица берілген. Матрицаның ең кіші элементін табатын программа құралық.

Program matrissa;

Const n=4;

Var

A:array [1..n, 1..n] of real; {а матрицасын сипаттау}

Min,res:real;

I,j,k1,k2:integer;

Begin

Writeln(‘Матрица элементтерін босорын арқылы енгізіңдер:’);

For i:=1 to n do

Begin

For j:=1 to n do read(a[I,j]); {А матрицасын енгізу}

Writeln;

End;

Min:=a[1,1]; {1-ші элементті ең кіші деп сақтап қоямыз}

k1:=1; k2:=1; {1-ші элементтің индекстерін сақтап қою}

For i:=1 to n do

For j:=1 to n do begin

If min>a[I,j] then begin {ең кіші элементті анықтау шарты}

Min:=a[I,j]; {егер ағымдық эл.кіші болса,min-ді ауыстырамыз }

K1:=I; k2:=j; {сәйкесінше, индекстеріде ауысады}

End;

End;

Writeln(‘ең кіші элемент=’, min:6:2,’, ол’, k1:2,’- жолда және’,k2:2,’-бағанада орналасқан’); {минимальды эл.баспаға шығару}

End.

Практикалық жұмыс №26

Тақырыбы: Функция және процедуралар
Теорияға шолу

Компьютерде шығарылатын есептердің күрделіленуіне байланысты программалардың көлемі өсіп, оларды жазу, оқу, түзету күннен-күнге қиындап барады. Осыған байланысты программа құруды, түсінуді, өзгертуді жеңілдететін тәсілдер жасалған, олар құрылымдық программалау деп аталады.

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

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

Процедураны сипаттаудың жазылу пішімі:

Procedure <аты> (көрсетпелі параметрлер тізімі);

Const ….;

Type …..;

Var …..;

Begin

<опреаторлар>;

End;

Функцияның жазылу пішімі:



Function <аты> (формальды параметрлер тізімі):<нәтиже типі>;

Const ….;

Type …..;

Var …..;

Begin

<опреаторлар>;

End;

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



Мысал: Кез келген екі санның үлкенін анықтайтын, maxi функциясын пайдаланып, берілген төрт санның үлкенін анықтайтын программа құру қажет.

Program maxmax;

Var

A,b,c,d,e,f, m1,m2,m3 : real;

Function maxi(a,b:real):real; {функцияны сипаттау}

{функция денесі}

Begin {функцияның басы}

If a>b then maxi:=a else maxi:=b; {екі санның үлкенін анықтау}

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

BEGIN {программа басы}

Write(‘4 сан енгізіңдер:’);

Readln(c,d,e,f);

m1:=maxi(c,d); {функцияны шақыру}

m2:=maxi(e,f); {функцияны шақыру}

m3:=maxi(m1,m2); {функцияны шақыру}

writeln(‘максималды сан=’, m3:5:3);

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

Осы мысалды процедураны пайдаланып, шығарып көрелік.



Program maxmax;

Var

z,a,b,c,d,e,f, m1,m2,m3 : real;

Procedure maxi(a,b:real; var z:real); {процедураны сипаттау}

{процедура денесі}

Begin {процедура басы}

If a>b then z:=a else z:=b; {екі санның үлкенін анықтау}

End; {процедура соңы}

BEGIN {программа басы}

Write(‘4 сан енгізіңдер:’);

Readln(c,d,e,f);

maxi(c,d,m1); {процедураны шақыру}

maxi(e,f,m2); {процедураны шақыру}

maxi(m1,m2,m3); {процедураны шақыру}

writeln(‘максималды сан=’, m3:5:3);

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

Практикалық жұмыс №27
Тақырыбы: Модельдер. Модель түсінігі. Модельдеу тәсілдері
Теорияға шолу

Модель дегеніміз - нақты объектіні, процессті немесе құбылысты ықшам әрі шағын түрде бейнелеп көрсету.

Модельдеу – объектілерді, процесстерді немесе құбылыстарды зерттеу мақсатында олардың моделін (макетін) құру.

Біздің өміріміздегі модельдер:





Модель – көрнекі түрде жазбаша жоспар, сызба ретінде жасалуы мүмкін. Мұндай модель барлық уақытта біздің ойымызда бейнеленетін прототип пайда болғанға дейін жасалады. Бір объект үшін әр түрлі модель жасалуы мүмкін. Модельдің жасалуы зерттеу мақсатына және прототип жөнінде жинақталған мәліметтердің көлеміне тәуелді болады. Мысалы, жуық арада басқа қалаға қыдырып баратын болдық делік. Ол қала туралы өзіміз білетін мәліметтерді жинақтап, ойымызды қорытып, қиялымызда сол қаланың моделін жасай бастаймыз. Мұндағы мақсатымыз – басқа қаламен танысу. Қаланы аралап келгеннен соң, толық мәлімет алғандықтан, ойымыздағы модель өзгеруі мүмкін. Ал сол қаланың сеулетші жасаған моделі мүлде өзгеше болады. Өйткені, оның мақсаты – үйлер мен ғимараттардың үйлесімді орналасуы, құрылысы және оларды көркейтіп қайта жаңарту болып табылады.
Түпнұсқа және модельдер:






Бір түпнұсқаға бірнеше модельдер сәйкес келуі мүмкін.

Модельдерді қасиеттеріне қарай мынадай топтарға жіктейді:



  1. Қолдану аймағы.

  2. Модельде уақыт факторын ескеру.

  3. Білім саласына қарай топтау.

  4. Модельді көрсету тәсіліне қарай топтау.

Қолдану аймағына қарай модель не үшін және қандай мақсатқа қолданылады деген сұраққа жауап беру мақсатында оқу, тәжірбиелік, ғылыми-техникалық, ойын, имитациялық тәрізді топтарға жіктеледі.

Оқу моделі – көрнекі оқу құралдары, әр түрлі машықтандырушы, үйретуші программалар түрінде болуы мүмкін.


Тәжірбиелік модель – жобалау объектісінің кішірейтілген немесе өте майда объектілер үшін олардың үлкейтілген көшірмесі болып табылады.

аэродинамикалық труба қауызда тәжірбие жүргізу


Ғылыми-техникалық модельдер – процесстер мен құбылыстарды зерттеу мақсатында құрылады. Оған мысал ретінде электрондардың жылдамдығын үдеткіш – синхротрон, найзағайдың разрядын бақылаушы құрал және теледидар тексеруге арналған стендтерді айтуға болады.

Күн сәулесінің имитаторы космостық зерттеулер вибростенд НПО «Энергия»

Институтының вакуумдық камерасы

Ойын модельдеріне - әскери, экономикалық, спорттық ойындар жатады. Бұл модельдер әр түрлі жағдайда объектіні бақылауға жаттықтырады. Ойын модельдері адамдарға әр түрлі жағдайда психологиялық көмек көрсетеді.

Имитациялық модель – шын мәніндегі нақты объектіні өте жоғары дәлдікпен бейнелей алады. Тәжірбие нақты объектіні зерттеу, бағалау мақсатында бірнеше рет қайталанады немесе бір мезгілде әр түрлі жағдайда бірнеше ұқсас объектілермен қатар жүргізіледі. Дұрыс шешім таңдаудың мұндай тәсілі байқау және қатенің әдісі деп аталады.

Модельді уақыт факторына байланысты динамикалық және статистикалық деп екі топқа жіктеуге болады.



Статистикалық модель деп объект жөнінде алынған ақпараттың белгілі бір уақыт бөлігіндегі үзіндісін айтуға болады.

Динамикалық модель – уақыт барысындағы объектінің қасиеттерінің өзгерісін көрсету мүмкіндігін береді.

Модельдерді көрсетілу әдісіне қарай материалдық және ақпараттық болып екі топқа жіктеледі.



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


Ақпараттық модельді қолмен ұстап, көзбен көре алмаймыз. Себебі, олар тек ақпараттарға ғана құрылады. Мұндай модельдер қоршаған ортаны ақпараттық жағынан зерттеуге мүмкіндік береді. Ақпараттық модель дегеніміз – объектінің, процесстің, құбылыстың қасиеттері мен күйін сипаттайтын ақпарат жиынтығын және сыртқы әлеммен өзара байланыс болып табылады.

Ақпараттық модельге вербальдік модель жатады. Вербальдік модель дегеніміз – ойша немесе әңгіме түрінде жасалған ақпараттық модель.



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

Геометриялық модель – графикалық пішіндер мен көлемді конструкциялар.

Ауызша модель – иллюстрацияны пайдаланып, ауызша және жазбаша сипаттаулар.

Математикалық модель – объект немесе процесстің әр түрлі параметрлерінің байланысын көрсететін математикалық формулалар.

Құрылымдық модельдер – схема, графиктер мен кестелер т.б.

Логикалық модель – ой қорытындысы мен шарттарды талдау негізге алынған іс-әрекеттерді таңдаудың әр түрлі нұсқалары көрсетілген модельдер.

Арнайы модельдер – ноталар, химиялық формулалар.

Кез келген жұмысты қолға алмас бұрын, берілгені мен соңғы нәтиже және орындалатын іс-әрекет кезеңдерін айқындап алу қажет. Модельдеу кезінде бастапқы зерттелетін объект – прототип болады. Модельдеудің соңғы кезеңі шешім қабылдау болып табылады. Модельдеу арқылы зерттелген модельдің жаңа объектісін құруға, бар объектіні жақсартуға немесе қосымша ақпарат алуға болады. Модельдеудің негізгі кезеңдері есептің қойылу шарты мен мақсатына қарай анықталады.



1-кезең. Есептің қойылымы. Бұл кезеңде берілген бастапқы мәліметтермен қатар мақсатын анықтау және объектіні немесе процесті талдау анық көрсетілуі қажет.

2-кезең. Модель құру. Ақпараттық модель. Бұл кезеңде элементар объектілердің қасиеттері, күйі және басқа да ерекшеліктері кез келген пішінде, яғни ауызша түрде, схема немесе кесте арқылы да анықталады. Бастапқы объектіні құрайтын элементар объектілер жөнінде толық мағлұмат, яғни ақпараттық модель жасалады. Бұл кезең модель құрудың бастапқы бөлімі болып саналады.

3-кезең. Компьютерлік эксперимент. Жаңа конструкторлық жұмыс, техникалық шешімдерді өндірісте пайдалану және жаңа идеяларды тексеру үшін эксперимент жасау қажет. Компьютерлік тәжірбие жүргізу екі кезеңнен тұрады: модельдеу жоспарын құру және модельдеу технологиясы. Модельдеу жоспары модельмен жасалатын жұмыстың ретін анық көрсетуі қажет. Модельдеу технологиясы дегеніміз – пайдаланушы адамның компьютерлік модельмен орындайтын мақсатты іс-әрекеттерінің жинағы.

4-кезең. Модельдеу нәтижесін талдау. Модельдеудің соңғы мақсаты – шешім қабылдау болып табылады. Модельдеу нәтижесін талдау шешуші кезең болып табылады. Себебі, бұдан кейін модельдеуді жалғастыру немесе тоқтату керек. Егер қате жіберілсе, модельдеуді қайта қарап, алдыңғы кезеңге қайта оралу қажет. Бұл процесс модельдеу мақсатына сай болғанға дейін қайталана береді. Жіберілген қатені табудың өзі нәтиже болып таб



Достарыңызбен бөлісу:
1   2   3




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет