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

Автор работы: Пользователь скрыл имя, 05 Июня 2015 в 08:33, курсовая работа

Краткое описание

Программа құрылымы
Программа келесі бөлімдерден тұруы мүмкін, бұл бөлімдер (тек соңғыдан басқасы) бір-бірінен нүктелі-үтір арқылы ажыратылады:
программа тақырыбы;
белгілер бөлімі;
тұрақтылар бөлімі;
типтерді сипаттау бөлімі;
процедура мен функцияларды сипаттау бөлімі;
программа денесі;

Содержание

Паскаль тілінің негізгі түсініктері..............2

1.1 Турбо паскаль тілінің операторлары .........4

Негізгі бөлім

1.2 Циклдік құрылымды алгоритмді программалау....5

1.3 Алғы шартты цикл операторы. While операторы ..........6

1.4 Келесі шарт бойынша циклді ұйымдастыру.
Repeat операторы................8

1.5 Параметрлі қайталану операторы.
For операторы.......9

1.6 Күрделі циклдер..............11

1.7 ЭЕМ-де есеп шығару кезеңдері.
Қадам бойынша орындау әдісі......................11

1.8 Мысал есептер..............................12

Қайталау (цикл).................................19

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

2.1 Қайталанған құрылымды алгоритмдерді программалау.....28

Қорытынды
Әдебиеттер тізімі..........................20

Вложенные файлы: 1 файл

турбо паскаль алгоритм.doc

— 243.50 Кб (Скачать файл)

Айнымалылар:

K-санау саны

I-цикл айнымалысы

N-кезекті адамдардың саны

F-қосымша айнымалы

Pol-адам жынысы.

 

9-есеп. 5х-3у=1 Диафонтова теңдеуі арқылы бүтін сандардың жиынын табу керек. Бастапқы тексеруде алдымен бірлік теңдіктері алынады. Одан әрі, егер де 5х-3у>1 болса, онда 1-ге артады, егер 5х-3у>1болса, онда 1-ден х-қа артады.

Program pr9;

Var x,y: byte;

Begin

x :=1; y :=1;

repeat

if (5*x-3*y)>1 then y:=y+1;

if (5*x-3*y)<1 then x:=x+1 until (5*x-3*y)=1;

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

end.

Нәтижесінде: х=2y=3.

10-есеп. Логикалық ұғым бар: not a and b xor c. a,b,c логикалық ұғымдарын ақиқат мәнінде экранға шығару керек. Мен а,b,c мәндерін жұп сандармен сипаттап шығаруды ұсынамын.

Program pr10;

Var a,b,c: Boolean;

Begin

For a:=false to true do

      For b:=false to true do

              For c:=false to true do

If not a and b xor c then;

Begin

Write(‘a=’,a);

Write(‘b=’,b);

Write(‘c=’,c);

End;

End.

Нәтижесінде:

a=False

b= False

c=True

а= False

b= True

c= False

а= True

b= False

c= True

а= True

b= True

c= True

Программа екі күрделі оператордан тұрады: For a:=false to true do, осы операторға тағы екі қосылған For және If операторы. Соңғы then бөлімінің құрамында күрделі оператор бар, олар үш жай оператордан тұрады, Begin және End жақшаларымен қамтылған.

 

 

 

 

 

 

 

 

 

 

 

1.9 Қайталау (цикл)

 

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

     Цикл: Белгілі бір А әрекетін  жүзеге асыру үшін, N рет А1 әрекетін  орындау керек.

    Графикалық блок-схемасын қолданып, оны мына келесі түрде көрсетуге болады:

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

А) Қайталау саны белгілі цикл

     Циклдің бұл түріне  әрекеттің қайталану саны алдын  ала белгілі болатын түрі жатады. Мысалы, денешынықтыру сабағында  мұғалім сіздерге стадионды айнала  үш айналым жасап жүгіруді тапсырды делік. Бұл тапсырманы орындау үшін сіз бір айналымды үш рет қайталауыңыз керек. Басқа мысал,математикадан үйге берілген тапсырмада бес есеп шығару керек болсын. Яғни, мұнда “есепті шығару” әрекетін бес рет орындау керек. Мұндай мысалдарды біз өмірімізден көптеп келтіруімізге болады. Көпшілік жағдайда негізгі әрекетті орындау үшін, орындалатын әрекеттің қайталану саны белгілібола бермейді. Мысалы,”өлең жатау” керек. Бұл жағдайда өлеңді жаттау үшін бір рет оқып есте сақтауға да болады. Ал қарсы жағдайда екі рет және үш рет, төрт рет оқып жаттауға болады, бұл жағдайда сізге өлеңді жаттау үшін неше рет оқу керек екені алдын ала белгісіз.

Б) Алғы шарт циклі

      Циклдің бұл түріне  қайталану саны белгісіз. Бірақ  әрекет орындалу үшін алдын  ала берілген қандай да бір  шарт тексеріліп барып, орындалатын әрекеттер жиыны жатады. Мысалы: Сіз сорпа ішуге дайындалдыңыз. Тарелкадағы сорпаны толығымен ішіп тауысу үшін қасықпен неше рет көсеп алу керек екені бізге алдын ала белгісіз. Ал егер тарелка бастапқыда бос болса, сіз тарелкадан қасықпен сорпа алр ма едіңіз? Әрине жоқ, ол мүмкін емес. Осыдан циклдің бұл түріне мынадай қызықты тұжырым жасауға болады.Ол нөл рет орындалады.

 

В) Соңғы шарт циклі.

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

 

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

      Алғы шарт циклінің  соңғы шарт циклінен айырмашылығы  циклдің бірнеше түрінде әрекет  ШАРТ=АҚИҚАТ да орындалады. Ал  екінші түрінде ШАРТ =АҚИҚАТ болғанда  цикл әрекет жұмысын тоқтатады.

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

    

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

Тілдердің алфавиті

 

Qbasic   тілінде

Pascal   тілінде

1

2

Латын  алфавитінің бас және кіші әріптері: A,B,…,Z; a,b,…,z  қазақ , орыс алфавитінің әріптері.

2. Араб  цифрлары: 0,1,2,..,9

3. Өрнек таңбалары: + қосу, - азайту, 

* көбейту, / бөлу, ^ дәрежелеу.

4. Қатынас таңбалары:

= тең не меншіктеу белгісі ,> улкен, >= үлкен не тең , < кіші , <= кіші не тең , <> тең емес.

5.  Арнайы символдар:

.  нүкте

,  үтір

;  нүктелі үтір

:  қос нүкте

''  '' бос орын

( , ) ашу,жабу жақшалары

“ , ”  ашу, жабу тырнақшалары

!  леп белгісі

?  сұрақ белгісі

#  нөмір

'  дәйекшк – апостроф

_  астын сызу белгісі

% процент

$  ақша бірлігінің белгісі

&  амперсенд

1.Латын алфавитінің бас және  кіші әріптері:қазақ, орыс алфавитінің  әріптері.

2. Араб цифрлары: 0,1,2,...,9

3. Өрнек таңбалары: + қосу, - азайту, * көбейту, / бөлу,дәрежелеу  санды өзіне - өзін көбейту арқылы  беріледі.

4. Қатынас таңбалары:  тең не меншіктеу белгісі, үлкен, үлкен не тең, кіші, кіші не тең, тең емес.

5. Арнайы символдар:

.   нүкте 

,   үтір 

;   нүктелі үтір

:   қос нүкте

'  ' бос орын

( , ) ашу,жабу жақшасы

‘ , ’ ашу, жабу тырнақшалары

!  леп белгісі

?  сұрақ белгісі

#  нөмір

'   дәйекше – апостроф

_  астын сызу белгісі

%  процент

$   ақша бірлігінің  белгісі

&  амперсенд


 

 

 

Qbasic  және  Pascal  программалау  тілдерінің стандартты функциялары

 

 

Qbasic тілінде

Pascal  тілінде

Түсініктеме

SIN(x)

COS(x)

ATN(x)

LOG(x)

EXP(x)

X^2

SQR(x)

ABS(x)

FIX(x)

CINT(x)

INT(x)

PI

RND(x)

 

SGN(x)

 

 

TAN(x)

Sin(x)

Cos(x)

arctan(x)

In(x)

exp(x)

sqr(x)

sqrt(x)

abs(x)

trunc(x)

round(x)

int(x)

Pi(x)

Rnd(x)

 

Sgn(x)

 

-

 

Х-радиандық  өлшем

X-радиандық  өлшем

Argtgx(- )

Inx (x>0)

Көрсеткіштік  функция (e )

Х-тің  квадрат дәрежесі

Х-тің квадрат түбірі (x 0)

Х-тің абсолют  шамасы

Санның бүтін бөлігі

Санды бүтінге дейін дөңгелектеу

Санның бүтін бөлігі

 санының мәні ( = 3.1415… )

(0;1) аралығындағы өндірілетін  кездейсоқ нақты сан

Сан таңбасы. Оның қабылдайтын мәндері: +1 (x>0), 0 (x=0 үшін ), -1(x<0 үшін)

Tgx(x радиандық өлшемде)


 

 Ескерту:

1) егер  х аргументі   INTEGER  типіне  жататын  болса,  онда  sqr (x),  abs(x)  функциялары да  INTEGER   типті;

2) Round,  Trunc  функциялары   REAL  типті  мәндерді   INTEGER   типіне  өзгертеді, ал  Int – REAL  типін  қалдырады;

3) стандартты  скалярлық  функциялар  қатарына  жатпайтын  тригонометриялық  функция  мәнін  есептеу  үшін  алдымен  оны  стандартты  функциялар  арқылы  өрнектейді;

4) негізгі оң  сан  болатын   х   дәрежесін  ln(x)  және  exp(x)   функцияларын  пайдаланып  есептеуге  болады (x>0), яғни 

х

=exp(n*ln(x))

 

Паскаль  тіліндегі  стсндартты  функциялар:

1.  Ord(‘x ’) – ‘x ’  символының  кодын анықтайды.

     Мысалы,  ord(‘A’)=65;

2.  Chr(n) – коды бойынша  символды  анықтайды.

     Мысалы, chr (66)= ’B’;

3.  Succ (x) –REAL- дан  басқа  типтегі  мәндер  тізімінде  соңғы  мәнді    

     анықтайды. Мысалы,  succ (46)= 47; succ (‘a’) = ‘b’ ;                                                        

4.  Pred (x) – succ (x) –ке  кері  функция.

     Мысалы, pred (47)= 46; pred (‘b’)=’a’.

Программалау  тілдерінде  енгізу  мен  шығаруды ұйымдастыру.

Операторлар форматтары

 

     Паскаль  тілінде  енгізу  операторының  жазылуының  жалпы  үлгісі:

READ (x1,x2,…,xn)

мұндағы x (k=1,2,…,n)  ендірілетін  мәндерді  сәйкес  түрде қабылдайтын  айнымалылар  (read - оқу).

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

     READ операторының алдында  мәндерді жадқа ендірілуі тис  айнымалыларды write операторы арқылы  экранда көрсетіп қойған дұрыс. Мысалы,  begin write (‘a,b,h = ?’); readln (a,b,h);

                  S:= (a+b)*h/2; write (‘s = ’, s:5:2);        

                  End.

Кейде  write, read – операторларының соңына ln жалғауын қосып, writeln, readln түрінде жазуға болады. Мысалы, readln(a,b,h); writeln(x:5:2);

Мұндай операторлар орындалған соң курсор экранда өзінің тұрған орнынан келесі жолдың басына ауыстырылады да, кезекті оператордың орындалуы экранда осы жерден бастап көріне бастайды.Егер келесі жолды бос күйінде тастап кету қажет болса,программаға соңғы орындалатын ln жалғауы оператордан соң парыметрсіз writeln операторын енгізсе жеткілікті.

 

Тармақталу командасы.Шартты операторлар

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

      Тармақталу алгоритмі  алгоритмдік тілінде  егер командасы  арқылы жүзеге асырылатындығын  белгілі.Тармақталу командасының толық және толық емес түрі бар. Олар  мыналар:

 

 

Qbasic тілінде

Pascal тілінде

а) if <шарт> then S1 else S2;

 

ә) If <шарт> then S;

a) IF<шарт> then <оператор1> else <оператор2>;

 

ә) If <шарт> then <оператор>;


 

Құрама шарттардың жазылуы:

 

Математикада

0<x<1, x=0 немесе x 5

Бейсик тілінде

x>0 and x<1, x=0 or x<>5

Паскаль тілінде

(x>0) and(x<1), (x=0) or (x<>5)


 

       Программалау тілдерінде шартты өту операторы – IF. Бейсик тілінде шартсыз өту операторы бар, ол – GOTO. Шартсыз өту операторы GOTO есептеуді одан әрі жалғастыруда программаның келесі кезекте орындалатын операторын көрсету үшін,яғни программаның қандай да бір бөлігін орап өту үшін қолданылады.Оператордың жазылу үлгісі: GOTO k. Мұнда к – қатар нөмері; GOTO (өту) – оператордың аты; k – GOTO операторынан соң орындалатын операторлық қатардың нөмері.Осылайша GOTO операторы программаның табиғи реттілікпен орындалуын бұзады.Кейде бір жолға нөмер қою керек болады. Ол GOTO операторы үшін керек. Мұнда ұқсастық, тармақталу командасының жазылу үлгісі QBASIC және PASCAL  тілдерінде бірдей.Құрама шарттардың жазылуы да ұқсас. Тек PASCAL тілінде шарттар жақшаға алынып жазылады.


 

Qbasic , Pascal тілдерінде таңдау  командасы.

SELECT – CASE  операторы

 

       Qbasic тілінде таңдау  командасы үшін арналған ыңғайлы, құрылымдық SELECT – CASE операторы бар. (Select – таңдау, Case – жағдай).

             Жазылу үлгісі:

 

      SELECT CASE <айнымалы> 
CASE<1-мән>: <1-блок>

CASE<2-мән>: <2-блок> 

 

                                           


                                                  END SELECT

     

        Жалпы жағдайда Case қызметші сөзінің параметрлері IS (IS - болу) сөзінін басталатын өрнек. Таңдау командасын SELECT – CASE операторын  пайдаланып жазу программаны  құрылымдық түрде жазу талабына сәйкес келеді.

        Паскаль тілінде  таңдау командасы END қызметші сөзінен  аяқталатын Case m of  операторы арқылы  беріледі де, END операторынан соң  нүктелі үтір қойылады. Мұндағы Case (жағдай) – деген қызметші сөз, m  үшін Real типінен басқа кез келген скалярлық типте берілген айнымалы немесе  өрнекті алуға болады.Оны сұрыптаушы деп атайды. Of (бойынша) – деген мағынасын білдіретін қызметші сөз.Яғни, Case  - m  сұрыптаушысы бойынша таңдау операторы. m  айнымалының мәнін жадқа осы оператордың орындалуынан бұрын енгізілуі тиіс. Мұндағы m – Integer не 1..3 шектеулі типті айнымалы.Мысалы:

Информация о работе Сызықты және тармақты құрылымды алгоритмдерді программалау