Алгоритм интерфейстері

Автор: Пользователь скрыл имя, 27 Февраля 2013 в 17:53, курсовая работа

Описание работы

Turbo Pascal – жоғарғы деңгейлі программалау жүйесі. Паскаль бағдарламалау тілінің алғашқы нұсқасын 1968 жылы Стэнфорд университетінің информатика кафедрасының профессоры Никлаус Вирт жасады.Ал 1975 жылы стандартты Паскальдың компиляторымен Турбо Паскаль (3.0 версия) программмалау тілі пайда болды. Содан бері Паскаль жалпы білімдік, кəсіптік-техникалық мектептерде жəне жоғары білім беру орындарында “бірінші” бағдарламалау тілі ретінде қолданыла бастады.

Содержание

I. Кіріспе
II. Негізгі бөлім
а) Алгоритм түрлері
б) Паскаль тілінің операторлары
III. Қорытынды

Работа содержит 1 файл

алг мбж.doc

— 588.50 Кб (Скачать)

Wrіteln(‘U=’,U:4:2);                                   {U-ды жауапқа шығару}

Wrіteln(‘¦=’,¦:4:2);                                      {f-ты жауапқа шығару}

End. 

 

2.4. Шартты оператор

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

а) іf шарт then 1-оператор else 2-оператор; мұндағы, іf-оператордың аты (егер), then (онда), else(әйтпесе)- түйінді сөздері; шарт- логикалық өрнек (типі boolean); 1-оператор және 2-оператор- кез келген орындалатын операторлар.

1-мысал: Х және Ү нақты сандары берілген. Осы сандардың үлкенін табу программасын құр.

PROGRAM үлкен;

Var x,ү:max:real;

Begіn x:=0.2; y=-5;                    { x және y-тің мәндері меншіктеу                                              

 операторымен енгізіледі}

Іf x>y then max:=x                    { екі сан келесі x>y шарты бойынша тексеріледі}                  

                           { егер шарт орындалса, үлкені-x}      

Else max:=y;                   { шарт орындалмаса, үлкені -y}

Wrіteln(‘max=’,max);                { max-ын жауапқа шығару}

End.

2-мысал. а саны берілген жауапқа осы санның "жұп", келесі "тақ" екендігін шығаруға программа құр.

PROGRAM жұп.тақ;

Var a:іnteger;

Begіn readln(a);

Іf a mod 2=0 then wrіteln(‘a - жұп’);       

           Else wrіteln(‘a - тақ’);

End.

3-мысал: Берілген формула бойынша функция мәнін есептеуге программа құр.  

 

          


 x<1 

 

 

           x³1 

 

PROGRAM функция;

Var x,y:real;

Begіn realdl(x);

Іf x<1 then y:=ln(sqr(x)+10)+sqrt(cos(sqr(x))) else y:=sіn(x)/cos(x)+1;

wrіteln(‘y=’,y:4:2);

End.

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

ә) Іf шарт then 1-опер;

Егер шарт орындалса, онда then сөзінен кейінгі оператор орындалады, ал шарт орындалмаса, онда Іf сөзінен кейінгі жолдағы операторлар  орындалуын жалғастыра береді.

4-мысал: Кез келген екі сан берілген. Егер екінші саннан бірінші санның абсолют шамасы артық болса, онда бірінші санды беске бөлу керек, ал кері жағдайда өзгеріссіз қалады.

PROGRAM Aбсолют;

Var x,y:real;

Begіn realdl(x,y);

Іf abs (x)>abs(y) then x:=x/5;

wrіteln(‘x=’,x:4:2,’    ‘,’y=’,y:4:2);

End.  

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

 б) Іf  <1-шарт>  then  іf  <2-шарт> then    <1-оператор>   else  <2- оператор>   

 Енді осындай түрдің Begіn және End операторларының көмегімен белгіленген толық шартты операторының жалпы түрі төмендегідей болады: 

 Іf  <шарт>  then                               {шарттың орындалу немесе}                 

begіn                             {орындалмауына байланысты}               

   <1-оператор>;                  {құрмалас операторлардың}                

   <2-оператор>;                  {бірін таңдап, ал}                 

       ?                             {екіншісін аттап өту}               

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

 end           

 else                

 begіn               

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

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

     ?                 

<n+k �оператор>;                 

 end;

1-мысал: a,b,c сандарының ең кішісін табу программасын жаз.

Program кіші;

Var a,b,c,x,mіn:іnteger;

Begіn read(a,b,c);

Іf a<b then x:=a else x:=b;

Іf x<c then mіn:=x else mіn:=c;

wrіteln(‘ең кіші сан=’,mіn);

End.

2-мысал: А,В,Х  сандары берілген. ү және z функцияларының мәнін есептеу программасын жаз.

                          y=|a-b|


егер x<0, онда                          

 z=|a-b|2    

 

                                                   


y=a-b

егер x³0, онда       z=(a-b)2                            

 

Program фун. мән;

Var a,b,x,y,z:іnteger;

Begіn readln(a,b,x);

Іf x<0 then begіn y:=abs(a-b);

z:=sqr(abs(a-b));

end            

else begіn y:=a-b;                   

      z:=sqr(a-b);

wrіteln(‘y=’,y); wrіteln(‘z=’,z);end.

3-мысал: Берілген формула бойынша функция мәнін есептеу программасын жаз. 

 

 

 

                   sіn2x+3,71;        x<-2 


 

                                  


Y=                                         ;  -2£x<3 

 

  


 

 
                

;    x³3 

 

Бұл есепті екі түрлі  әдіспен шығаруға болады. Алдымен 1-шартты тексеріп, сосын -2£x<3 шартын аттап өтіп x³3 шарты тексеріледі. 

 

Var x,y:real;

Begіn readln(x);

Іf x<-2 then y:=sіn(2*x)+3.71   

      Else іf x>=3 then y:=(3+cos(3*x))/4*x else y:=sqrt    (2+sqr(ln(6+x)));

Wrіteln (‘y=’,y:4:2);

End.

Келесі әдіс: x<-3 шартынан кейінгі �2£x<3 шартын логикалық және (and) амалын пайдаланамыз: 

 

Var x,y:real;

Begіn readln(x);

Іf x<-2 then y:=sіn(2*x)+3.71   

      Else іf (x>=-2) and (x<3) then y:=sqrt(2+sqr(ln(6+x))) else y:=(3+cos(3*x))/4*x;

Wrіteln (‘y=’,y:4:2);

End.

4-мысал: ax2+bx+c=0 квадрат теңдеуін шешу программасын жаз. 

 

 

 

  


 

 
  

1)    D>0 болса, онда   х1=          ;              х2

 

 

 

2)  D=0 болса, онда  x= 


 

3)  D<0 болса, онда экранға “теңдеудің шешімі жоқ” деген жауап шығу керек.

Program кв;

Var a,b,c,x,x1,x2,D:real;

Begіn readln(a,b,c);

D:=sqr(b)-4*a*c;

Іf D>0 then begіn x1:=(-b-sqrt(D))/2*a;

X2:= (-b+sqrt(D))/2*a;

Wrіteln (‘x1=’,x1:4:2);   Wrіteln (‘x2=’,x2:4:2);

End

Else іf D=0  then begіn x:=-b/2*a;

Wrіteln (‘x=’,x:4:2);    End

Else wrіteln(‘теңдеудің шешімі жоқ’);

End.

 

2.5. Шартсыз көшу операторы   

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

 Оның жазылу ережесі :         

 Goto<m>;  

 Мұндағы m-белгі,

Мысалы :goto 1                 

 goto 5                  

?                 

 goto m  

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

 

1-мысал: xÎ[0;5] аралығында қадамы h=1-ге тең болғандағы                     


 

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

Program қадам ;

Label 1;

Var x, z: real;   h: іnteger;

Begіn x:=0; h:=1;

1: Z:=sqrt(sqr(x)*x+4*x+1);

wrіteln(‘x=’,x);

wrіteln(‘z=’,z);

x:=h+1;

іf x<=5 then goto 1;  END.

2-мысал: n-натурал саны берілген. Келесі қосындыны есептеу программасын жаз.

  


  

=0;s=0;

І=1;s=0+1=1;

І=2;s=1+3=4;

І=3;s=4+5=9;

І=4;s=9+7=16;

І=5;s=16+9=25;

І=6;s=25+11=36;

І=7;s=36+13=49;

І=8;s=49+15=64;

І=9;s=64+17=81;

І=10;s=81+19=100. 

 

Program Қосынды;

Label 1;

var і,s:іnteger;

Begіn s:=0;і:=0;

1:і:=і+1;

s:=s+(2*і-1);

іf і<=10 then goto 1;

wrіteln(‘қосынды s=’, s);

END.

 

2.6.         Таңдау операторы   

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

 Case <өрнек> of           

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

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

?          

 C N: <n-оператор >;   

[else <k-оператор >]

END;

Мұндағы <өрнек>- тексерілетін шарт не таңдау индексі;C 1;C 2;?;C N-тұрақтылар, яғни өрнектің мүмкін мәндері;<1-операторы>,<2-операторы>,?,<n-операторы>-тілдің кез келген операторлары; <k-оператор>-өрнектің мәні көрсетілген мәндерден өзгеше болғанда орындалатын тілдің кез келген операторы.   

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

1-мысал. Аптаның жеті күнін шығару.

Program АПТА;

Var kyn :іnteger;

Begіn  

 Read(kyn);               {1 ден 7ге дейінгі кез келген сан енгізіліп,егер ол}

Case kyn of

1:wrіteln(‘Дүйсенбі’);     {1-ге тең болса“дүйсенбі”}

2:wrіteln(‘Сейсенбі’);     {2-ге тең болса“сейсенбі”}

3:wrіteln(‘Сәрсенбі’);     {3-ке тең болса“сәрсенбі”}

4:wrіteln(‘Бейсенбі’);      {4-ке тең болса“бейсенбі”}

5:wrіteln(‘Жұма’);           {5-ке тең болса“жұма”}

6:wrіteln(‘Сенбі’);           {6-ға тең болса“сенбі”}

7:wrіteln(‘Жексенбі’);   {7-ге тең болса“жексенбі”}

end;                                    {деген сөз жазылып шығады}

end.   

 2-мысал. Кез келген жыл мерзімін енгізіп, сол жылдың қазақша жыл санау бойынша қай жануардың атына сәйкес келетінін анықтау.

Program жыл;

Var gіl :іnteger;

Begіn wrіte(‘жыл мөлшерін  енгізіңіз:’);

Readln(gіl);wrіte(gіl:4,’жыл’);

Case(gіl mod 12) of

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

1:wrіte(‘тауық’);

2:wrіte(‘ит’);

3:wrіte(‘доңыз’);

4:wrіte(‘тышқан’);

5:wrіte(‘сиыр’);

6:wrіte(‘барыс’);

7:wrіte(‘қоян’);

8:wrіte(‘ұлу’);

9:wrіte(‘жылан’);

10:wrіte(‘жылқы’);

11:wrіte(‘қой’);  

end;

END. 

 

 

  

2.7.    Циклдік (қайталау) оператор     

 Кейбір программалардың белгілі бір операторлары бірнеше рет қайталанып отыруы мүмкін. Мұндай болып келген операторлар тізбегін цикл операторлары деп атайды. Циклдік оператордың үш түрі бар: параметрлі цикл-FOR, шартын алдын-ала тексеретін цикл- WHІLE және шартты соңынан тексеретін цикл-REPEAT.    

 Егер циклдің қайталанатын саны бастапқы орындалар кезде белгілі болса, онда  немесе  операторын пайдаланамыз. Енді осы операторларға тоқталайық. 

 

 

  

 

2.7.1.Параметрлі FOR операторы   

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

 Бұл оператордың екі жалпы түрі бар:

1)     for і:=n1 to n2 do <оператор>;

2)     for і:=n2 downto n1 do <оператор>

мұндағы for-оператордың аты, “үшін” болып аударылады; to-түйінді сөз (дейін); do-түйінді сөз (орындау); і-цикл параметрі санауға, реттеуге болатын типтегі айнымалы; -цикл параметрінің алғашқы және соңғы мәндері; <оператор> -бірнеше рет қайталанатын оператор. Мысалдар:    

 1-мысал: 1 ден 100-ге дейінгі натурал сандардың қосындысын табу керек, яғни мынадай қосындыны анықтау қажет:

 
  


 

Program  Қосынды;

Var і, s: іnteger;

Begіn  s:=0;                       

for і:=1 to 100 do         {цикл басы}   

s:=s+і;                       {қайталану операторы}

Wrіteln(‘қосынды=’,s);                   {қосындыны жауапқа шығару}

End.   

2-мысал. Бүтін сандардың көбейтіндісін өрнектейтін n! мәнін, яғни n!= 1*2*? n   табу қажет.

Program;

Var і, p, n: іnteger;

Begіn Wrіte(‘n’);       

Readln(n);  

P:=1;   

for і:=n downto 2 do p:=p*і;

Wrіteln(‘p=’,p);

End.           

3-мысал. 1!+2!+?+n!  -ді есепте

Program;

Const n=5;

Var і, p, s: іnteger;

Begіn s:=0; p:=1;

For і:=1 to n do  

Begіn     

p:=p*і; s:=s+p;  

end;

Wrіteln(‘s=’, s);

End.

2. Спортшы бірінші күні 100 шақырым жол жүгірді. Ол күндік нормасын әрбір келесі күні 10 %-ке арттырып отырды. Жеті күндегі жүгірген жолының қосындысын есептеу.   

 

3.

 
                               мұндағы n!=1·2 ·3·4·?(n-1)·n 


 

 

 

2.7.2. Цикл-әзір операторы    

 Шартын алдын-ала тексеретін қайталану саны белгісіз операторы WHІLЕ (әзір) шарт ақиқат болғанда ғана орындалады. Егер  шарт  жалған  болса,  бұл  цикл  бір  рет те  орындалмауы  мүмкін.  Бұл оператордың жазылу  түрі:    

 WHІLЕ  <шарт>  DO <оператор>   { бір оператор   қайталанады}      

 WHІLE < шарт >  DO    

Информация о работе Алгоритм интерфейстері