Си және Паскаль бағдарламалық тілдеріне синтаксистік анализ жасау

Автор: Пользователь скрыл имя, 04 Марта 2013 в 07:51, курсовая работа

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

Паскаль және Бейсик бағдарламалық тілдерінің әрі қарай зерттелінуі Си бағдарламалық тілімен танысуға алып келді. Си бағдарламалық тілі арқылы біз кез-келген бағдарламаны жазып, нәтижесін шығарамыз. Паскаль және Бейсик тілдерінде кейбір мүмкіндіктер шектеулі. Си бағдарламалық тілінің пайда болуы әр түрлі тiлдердің эволюциялық дамуының нәтижесi болып табылады. Эволюция бойынша қолданбалы бағдарламалауда алдымен Алголь, Коболь, Паскаль, Фортран сынды тілдер пайда болса, кейіннен жүйелiк-тiркеулi ассемблерлерден ЭЕМ-нiң тiркеулi архитектураларына негізделген ,трансляторларда жасалған Си тіліне өту кезеңі басталды.

Содержание

Кіріспе…………………………………………………………... 1
1.Си бағдарламалық тілінің Паскаль бағдарламалық тілінен артықшылығы ..2
1.1 Паскаль бағдарламалық тілінің мүмкіншіліктері (математикалық өрнектер, операторлар, циклдар)………………………………………………...7
1.2 Си бағдарламалық тілінің мүмкіншіліктері (математикалық өрнектер, операторлар,циклдар)…………………………………………………………...12
1.3 Си тілінің командаларының кейбір түрлері(масивтер)...............................14
Қорытынды………………………………………………………………………15
Пайдаланылған әдебиеттер тізімі………………………………………………16
Қосымшалар……………………………………………………………………...21

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

Курсовая работа Жарас.doc

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

E1 өрнектін мәні бірінші итерациянын алдында бір ретқана есептеледі – осы кезде санақтауыш-айнымалынын бастапқы мәнін анықтау үшін, егер цикл параметрмен құрылса. E3 өрнегі әр итерациядан кейін есептеледі – ол санақтауыштын мәнін өзгертуге қолданылады. E1, E2, E3 өрнектер болмауыда мүмкін; E2 болмаса «ақиқат» мәніне тиісті. Сондықтан, мысалы, цикл

for ( ; ; ) ;

шексіз деп саналады. Төмендегі бағдарламада қолданылуы көрсетілген:

#include<iostream.h>

#define N 20

main()

{

                  int i,m=1;

                 for(i=1;i<N;i++)

                  {

                                  m=m*i;

                                  cout<<”m=”<<m<<”\n”;

                  }

return(0);

}

 

break, continue, goto нұсқауларымен  циклдарды басқаруға болады. Бірінші  екі нұсқау тек құрамына кіретін циклдарға әсер етеді, goto нұсқауы кіріктірілген циклдардын орындалуын бұзуға қолдануға ыңғайлы. Таңбаланған нұсқау S-тің түрі M: S, мұнда таңба M – бұл атау.

 

             

 1.3Си тілінің командаларының кейбір түрлері(масивтер)

 

 

“\n” -  келесі жолға өту.

“\t” -  тік табуляция

“\v”- көлденең табуляция.

Си тіліндегі [ ] ( )  {} , : ; * = #  & белгілерінің мағыналары:

 

[ ]    массивтердегі элементтер санын көрсетеді.

 

5 элементтен тұратын  бірөлшемді массив мысалы:

int  A[5]= {0, 2, 6, 1, 8};

3x2  өлшемдегі екі  өлшемдегі массив мысалы :

int B=[3][2]={6, 1, 0, 2, -2, 10 }

 

( )  if  шартты операторындағы өрнекті көрсетеді:            if(x<0)      x=-x

( )    Функцияны оның прототипін анықтау үшін қолданылады:

float F(float x, int k)       // функцияны анықтау

 

float F(float , int )      // функция мен прототипін анықтау

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

for(i=0; j=1;i<j;i+=2;j++)

while (i<j)

do while (k=0)

 

{ }   ішкі оператордың немесе блоктың басы мен аяғын көрсетеді.

if(d>x) {d- -;x++;}                         //шартты операторда

 

main ()                                 //программадағы ішкі блок

{

int  a=5, b=2, c;

c=a+b;

return (0);

}

{ } массив элементтерін анықтауда қолданылады:               int  A[5]= {0, 2, 6, 1, 8};

;      әрбір операторды аяқтап отырады.

*      көбейту,  көрсеткіштерді анықтау                                  int *point;  

#     ішкі процессордың  директивасын көрсетеді.               #include<iostream.h>

 

Қатыстық операциялар:

= = тең

<= кіші немесе тең

>= үлкен немесе тең

!=  тең емес

 

Логикалық операциялар:

 

| | -   немесе  Нәтижесі 0(жалған), 1(ақиқат)

&& -   және . Нәтижесі 0(жалған), 1(ақиқат)

 

Қатыстық, логикалық  операцияларды қолданатын программа  мысалы:

 

# include<iostream.h>

void main ()

{

cout<<”\n 3<5=”<<(3<5);

cout<<”\n 3>5=”<<(3>5);

cout<<”\n 3= =5=”<<(3= =5);

 

cout<<”\n 3!=5=”<<(3!=5);

 

cout<<”\n 3!=5 | | 3= =5=”<<(3!=5 | | 3= =5);

 

cout<<”\n 3+4>5 && 3+5>4 && 4+5>3 =”<<(3+4>5 && 3+5>4 && 4+5>3 );

}

 

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

3<5 нәтижесі 1 (ақиқат)

3>5 нәтижесі 0 (жалған)

3= =5 нәтижесі 0 (жалған) т.с. с

 

Си тіліндегі массивтер:

Бір өлшемді массивтерді  енгізу:

Массив аты [индекс, өлшемі]={элементтер орналасады}

Массивтердің элементін  алдын- ала беруге болады. Мысалы: int  A[5]= {0, 2, 6, 1, 8};

 

Өлшемін анықтап  кейін қара  экранда беруге болады.Мысалы:

# include<iostream.h>

#define N 10          // тұрақтыны анықтау

main ()

{int A[N];             //10 өлшемдегі массивті енгізу

cin>>A[N];

return(0);

}

 

Көп өлшемді массивтер:

Массив аты [жол саны][баған саны]={элементтер орналасады}

Мысалы: Int ARRAY[2][3]         //   6 элементтен тұратын массив

 

Массивтердің  әр типте берілуі:

Char CH[]={‘A’,’B’,’C’,’D’};                              //   4 элементті массив

Int IN[6]={10, 20, 30, 40, 50, 60};    //   6 элементті массив

Char STR[]= “ABCD”;       //       5 элементті массив

 

 

 

 

                           

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

                            Қорытынды

 

 

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

      Қазіргі уақытта әр текті копьютерлерге арналған сан түрлі Си тілінде бағдарламалау жүйелері бар.  Жаңа бағдарлама жасау жұмысын жеңілдететін модульдер библиотекалары, өңдеп, нәтижесін шығаратын құрылымдық жүйелер ойластырылып     шығарылған. Си тіліндегі бағдарламалар мобилизацияланғандықтан еш өзгеріссіз әр типті машиналарға көшіріліп, орындала береді. Оқу жобаларының негізінде конвертор деп аталатын бағдарламалық жүйе іске асырылды. Бұл жүйе Паскаль тілінде жазылған бағдарламаны Си тіліне көшіру кезіндегі процессті автоматтандыруға мүмкіндік береді. Конверторға ену кезінде Паскальда синтаксистік жағынан дұрыс жазылған бағдарлама  берілсе, шығу кезінде Си тіліне эквивалентті бағдарлама құрылады.

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

Мәліметтер базасын  жобалау қадамдары, мұнда біз мәліметтер базасының негіздерімен танысамыз және де мәліметер базасын жобалау қадамдарын қарастырдық.

 Курстық жұмыстың нәтижесі Си , Паскаль программалау ортасымен жете танысу.

1. Си , Паскаль  программалау  тілдеріне қысқаша түсүнік.

2. Праграммалау ортасымен танысу ;

 

 

 

 

 

Пайдаланылған әдибеттер тізімі

 

1 Ю.Ю.Громов, С.И.Татаренко програмирование на языке си- Тамбов, 1994 г.

2 Г. Майерс. Надежность программного обеспечения. - М.: Мир, 1980.

3 В. Турский. Методология программирования. - М.: Мир, 1981.

4 Э. Дейкстра. Заметки по структурному программированию / У. Дал, Э. Дейкстра, К. Хоор. Структурное программирование. - М.: Мир,1975.- С. 7 -97

5 М. Фаулер, К. Скотт. UML в кратком изложении. - М.: Мир, 1999.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Қосымша А

 

 

 

 Цикл операторлары: for, While, do-While

Шартты операторлар:if, else

  1. for операторы – итерациялық циклдарды беру.

for (алғашқы мәнін беру; шарт; итерация)

Мысалы:       for (i=0;i<N;i++)

Программа арқылы мысалын көрсетсек:

#include<iostream.h>

#define N 20

main()

{

int i,m=1;

for(i=1;i<N;i++)

{  m=m*i;

cout<<"m="<<m<<"\n";

}

return(0);

}

 

Осы цикл арқылы матрицалардың элементтерін қара экранда былайша енгізуге болады:

#include<iostream.h>

#define N 10

main()

{ int i,a[N];

cout<<"массив элементтерін енгіз"<<"\n";

for(i=1;i<N;i++)

{

cin>>a[i];

}

return(0);

}

If(шарт)  оператор;

 

if - цикл операторларында  шарт тексеріліп, дұрыс болған  жағдайда одан кейінгі оператор  орындалады.

Мысалы:

#include<iostream.h>

#define N 10

main()

{

int i,b,x;

cin>>i;

cin>>b;

if(i<0) x=i*b;

cout<<"x="<<x<<"\n";

return(0);

}

If(шарт)  оператор1;

else оператор2;

Мұнда if - цикл операторларында  шарт тексеріліп, дұрыс болған жағдайда одан кейінгі 1- ші оператор орындалады, ал шарт орындалмаған жағдайда 2- ші оператор орындалады.

Мысалы:

#include<iostream.h>

#define N 10

main()

{

int i,b,x;

cin>>i;

cin>>b;

 

if(i<0) x=i*b;

else x=i-b;

cout<<"x="<<x<<"\n";

return(0);

}

If(шарт 1)  оператор1;

еlse If(шарт 2)  оператор2;

еlse If(шарт 3)   оператор3;

       Мұнда if - цикл операторларында 1-ші шарт тексеріліп, дұрыс болған жағдайда одан кейінгі 1- ші оператор орындалады, ал 1-ші шарт орындалмаған жағдайда  2-ші шарт тексеріліп,дұрыс болса 2- ші оператор орындалады. Осылай ақиқат болғанша жалғаса береді.

#include<iostream.h>

#define N 10

main()

{

int i,b,x;

cin>>i;

cin>>b;

if(i<0) x=i*b;

else if(i>0) x=i-b;

else if (i==0) x=i;

cout<<"x="<<x<<"\n";

return(0);

}

 

 

 

 

 

 

 

 

 

 

 

Қосымша Б

 

Мысалы

 

#include <iostream.h>

#include <conio.h>

#include <stdio.h>

 

main ()

{

char poezd[3][10], marka[3];

char stansia[2][10];

float clooc[3];

 

clrscr();

for (int i=0; i<3; i++)

{

cout<<"Vividite kakoi poezd"<<i+1<<"  ";

cin>>poezd[i];

cout<<"Vividite marka poezda "<<i+1<<"  ";

cin>>marka[i];

cout<<"Vividite stansia"<<i+1<<"  ";

cin>>stansia[i];

cout<<"Vividite bremia otprablenia "<<i+1<<"  ";

cin>>clooc[i];

cout<<"-------------\n";

}

clrscr();

printf("|-----------------------------------------------------------------------|\n");

printf("|Invarmatsionnaia system jeleznodorojni bogzale                         |\n");

printf("|-----------------------------------------------------------------------|\n");

printf("|  Poezd             |marka       | Stansia        |  Bremia otpravleni |\n");

printf("|-----------------------------------------------------------------------|\n");

for (i=0; i<3; i++)

{

printf("|%-20s|%-12c|%-16s|%9.2f|\n",poezd[i],marka[i],stansia[i],clooc[i]);

printf("|-----------------------------------------------------------------------|\n");

}

getch();

return 0;

}


Информация о работе Си және Паскаль бағдарламалық тілдеріне синтаксистік анализ жасау