Программалау тілдері. Программалау тілдерінің жіктемесі

Автор работы: Пользователь скрыл имя, 28 Января 2015 в 14:08, курсовая работа

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

С++ бағдарламалау тілі 1980 жылы пайда болды. Оны құрастырған Бьяр Страуструп. Оның атауын ойлап тапқан Рик Масситти деген адам. Бұл Си атты бағдарламалау тілінің Си++ тіліне Эволюциялық түрде көшуін білдіреді. Си++-бұл Си тілінің объектігі бағытталған кеңейтілген түрі.
Си үшін базалық тіл ретінде Си-дің таңдалды,себебі ол:
• көпмақсатты, ықшамды және бір шама төмен деңгейлі;
• жүйелік бағдарламаудың мақсаттарының көбісіне жауап береді;
• UNIX бағдарламалау ортасында жарамды болып табылады;

Содержание

Кіріспе 4
1 Программалау тілдері. Программалау тілдерінің жіктемесі 6
1.1 Программалау технологиялары 7
1.2 С/С++ программалау тілдерінің тарихына қысқаша шолу 8
1.3 С/С++ тілдерінің элементтері.Тұрақтылар 9
1.4 Тілдің элементтері 11
1.5 С/С++ тіліндегі типтер 12
1.6 Тұрақтылар 14
1.7 Глобалды және жергілікті айнымалылар 15
1.8 С++ тіліндегі еңгізу-шығару құралдары 15
1.9 С++ тіліндегі тәні еңгізу-шығару құралдары 17
1.10 С++ тілінде форматтап енгізу және шығару 18
1.11 С++ - тегі форматтап функциялары мен флагтары 20
1.12 С++ тіліндегі айнымалылар 21
2 Тәжрибиелік бөлім... 24
Қорытынды.. 25
Пайдаланылған әдебиеттер тізімі 26

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

Программалау тілдері. Программалау тілдерінің жіктемесі.docx

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

Жоғарғы деңгейлі тілдерден Си тілінің ерекшеліктері:

    • орераторлар түрі өзгеше;
    • көрсеткіштер жиі қолданылады;
    • басқа тілдерге қарағанда синтаксикалық ережелері аз, нәтижесінде компилятор тиімді жұмыс жасау үшін  256 Кб оперативті жады жеткілікті;
    • қызметші сөздерге қарағанда операторлар  мен олардың комбинациялары көп;
    • алғашқыда Си тілінде 27 қызметші сөз ғана болған. Кейін ANSI Си тіліне және Microsoft C тіліне қызметші сөз қосылды, жалпы саны шамамен 50;
    • Көп программалау тілдерінде бар функциялар Си тілінде жоқ;
    • Си тілінде қосалқы енгізу шығару функциялары, математикалық функциялары және жолдармен жұмыс жасау функциялары жоқ,бірақ сол функциялардан және басқа функциялардан тұратын жеке кітапханалардан алу мүмкіндігі қарастырылған;
    • мәлеметтер типін бақылау жеңіл, яғни программаның бір жерінде айнымалыны символ түрінде , екінші бір жерінде осы символдың ASCII коды ретінде қарастыруға болады;
    • Си тілінде қазіргі тілдері секілді барлық басқарушы конструкциялары бар (For ,if , else,. . . );
    • Си тілінде модульдік программалауға болады, яғни программаның әртүрлі бөлігін жеке копиляциялауға болады;
    • Ассемблер тілінде жазылған ішкі программаларды шақыруға болады;
    • Си тілінде барлық массивтер бір өлшемді бірақ Си тілінде бір өлшемді массивтерден тұратын конструкциялар бар, яғни көп өлшемді  массивтер құрылады;
    • Тек қажетті кітапханалар шақырылатын болғандықтан жады тиімді қолданылады;
    • Басқа тілдердегідей қосалқы функциялар;
    • Көптеген мамандандырылған  функциялар кітапханаларының жиынтыгы бар.

Кемшілігі:

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

Мысалы, бір өрнекте  (=) меншіктеу операторы бірнеше рет қолданылуы мүмкін. Сондықтан нәтижесінің типі түсініксіз және қиын анықталады. Бірақ оны қолдану арқылы тілдің қуаты арттылған.

С++ тілі Си тілінің толықтырылғын, яғни объектілі бағытталған программалау(ОБП) құралдарымен толықтырылған жиыны деуге болады.

Си және С++ тілдерінің айырмашылығы:

    • Құрылымдар мен класстар аттары мәлемметтер типтерінің аттары болып табылады. С- де класс түсінігі жоқ.

С/С++ тіліндегі программаның жалпы құрылысы

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

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

Программа құрылымы:

Кез-келген программа комментарийден басталады.Коментарийді Си тілінде <</*>>, <<*/>> белгілеріне алынып жазылған блок түрінде беруге болады.

Содан кейін процессор  дерективасыорналасады. Препроцессор директивасы  берілгенде кітапханалық файлда-  тақырыптық файлда орналасқан кодты программаға қою нұсқасын береді. Мұндағы h кеңеймелі файлдар тақырыптық  файлдар деп аталады. Тақырыптық файлдарда әртүрлі  тұрақты мен таулар сипатталады. Функциялар прототиптері сақталады.

Препроцессор дерективасын кейін main  функциясы сипатталған бөлігі орналасады.

Main функциясы барлық программада  міндетті түрде болуы тиіс, одан  программа орындалу басталып, Returm инструкциясышақырылғанда аяқталады.

Main функциясының денесі  фигуралық жақшада орналасады.

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

 

 

 

 

 

 

 

1.4 Тілдің элементтері

Препроцессор директивалары  Си тілінде  жазылған программа текстінде  кездесетін инструкциялар (нұсқаулар) препроцессор директивасы (ПД) деп аталады. Олар программа трансляцияланғанда дейін орындалады және программаның текстін өзгертуге  мүмкіндік береді. Мысалы текстегі кейбір лексемдеуді өзгертуге басқа файлдан  мәтінді қосу, мәтінің қанадай да бір бөлігімен орындауға,трансляциялауға шектеу қою т.б. Барлық процессор директивасы <<#>> таңбасымен басталады және соңынан  нүктелі үтір(;) қойылмайды.

Түрлері:

1)# include директивасы.

Бұл программаға көрсетілген файлдағы мәліметтерді қосады.  Бұл директиваның екі формасы бар:

#include “файл аты”

#include <файл аты>

Мұндағы << Файл аты>> операциялық жүйелер талабына сай көрсетіледі,яғни тек файл атынан немесе оның маршрутымен алынған атауынан тұруы мүмкін. Егер <<файл аты>> тырнақшада берілсе, онда файл сәйкес көрсетілген  маршуртпен анықталатын орыннан, ал ол көрсетілмесе жұмысшы каталогтан ізделеді. Егер файл аты бұрыштама жақшада (<  >) берілсе, онда файл операциялық жүйенің PATH командасы арқылы берілген, стандартты директориясынан ізделеді. #include директивасы іштестірілген болуы мүмкін,яғни қосылатын файлда тағы кездесуі мүмкін. Көбінесе бұл программаға тақырыптық файлдарды қосу үшін қолданылады, яғни стандартты кітапханалық функциялар прототиптерінің тұратын файлдарды қосуға мүмкіндік береді .Сондықтан Си тіліндегі программа осы дериктивадан басталады.

2)#define директивасы.

#defaine - директивасы жиі қолданылатын тұрақтыларды, қызметші сөздерді, операторларды және өрнектерді кейбір идентификаторлармен  ауыстыруға мүмкіндік береді. Сандық немесе текстік тұрақтыларды  ауыстыратын идентификаторларды  атаулы тұрақтылар (именованные константы) деп атайды.

Программа фрагменттерін алмастыратын идентификаторларды (макроопределения) макроанықтамалар деп атайды.

#defaine екі формасы бар:

  • #defaine <идентификатор> <текст>
  • #defaine <идентификатор> (программалар тізімі тексті)

Мысалы, #defaine WIDTH 80

#defaine LENGTH (WIDTH+10)

Бұл директивалар программа текстіндегі әрбір WIDTH сөзін 80 санына,ал  LENGTH сөзін (80+10) өрісіне ауыстырады.

Макро анықтамалардағы жақшалар олардағы алмастырудың орындалу ретін анықтауға мүмкіндік береді. Мысалы, жақша болмасамына өрнек t=length+7 мынадай t=80+10*7 өрнекке ауыстырылады, ал қажетісі t=(80+10)*7 болатын, сондықтан жақша қойған дұрыс.

2-ші формасында формалды параметрлер тізімі көрсетіледі ,мұнда тізім үтір арқылы ажыратылып көрсетіледі, және макроанықтама текстіндегі алатын позициясын анықтайды.

Шақырғанда идентификатордан кейін формалды параметрлер санына сәйкес нақты аргументтер көрсетілуі тиіс.

Мысалы, #defaine MAX(x,y) ((x)>(y))?(x):(y)

Бұл директива t=MAX(I,s[i]); фрагментін t=((i)>(s[i]?(i):(s[i]); фрагментіне ауыстырады.

3)#undef- директивасы

Бұл директива #defaine директивасы қызметін қайтаруға қолданылады.

Яғни, идентификаторларға қолданылатын #defaine  анықтамасы қызметін болдырмайды.

Мысалы,

#undef WIDTH

#undef MAX

Бұл директивалар WIDTH атаулы тұрақтысымен MAX макроанықтамасын болдырмайды.

Тақырыптық файлдар атаулары төмендегідей:

assert.h, float.h, math.h, ctype.h,

limits.h, setjmp.h, errno.h, locale.f,

signal.h, stdarg.h, stddef.h,stdio.h,

stdlib.h, time.h.

 

Кейбір тақырыптық файлдар мазмұны Стандартты кітапханалар ретінде және қарастырылады.

 

1.5 С/С++ тіліндегі типтер

 

С немесе С++ тілдеріне мәндер төмендегідей базалық типтер бірімен бейнеленеді. Олар:

  1. Char – бірлік байт, қолданылатын литерлер жиынтығындағы бір литерді меншіктей алады.
  2. Int – бүтін.
  3. Float-3.4E-38 және 3.4E+38 аралығындағы нақты сандар.
  4. Double – 1.7E-308  -1.7E+308 аралығындағы жылжымалы нүктелі сандар.
  5. Void типті, ешқандай мән қайтармайтын функцияларды қолданылады.
  6. Bool типті айнымалы C++ -те true немесе false мәнін қабылдайды.
  7. Санылымды тип.
  8. Көрсеткіштер.

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

С/С++ тілі машинадан тәуелді тіл болғандықтан аталқан типтерге жадыдан бөлінетін орындар көлемі нақты атап көрсетілмейді. Дегенмен, шамамен сипаттау мүмкіндігі бар.

Сонымен қатар, базалық типтерге қолданылатын бірнеше квалификаторлар бар.

Квалификаторлар short (қышқаша) және long (ұзын) квалификаторы бүтін типтерге қолданылады:

Short int sh;

Long int counter;

Бұндай сипаттамалар int сөзін жазбауға болады. Көбінесе short квалификаторы арқылы сипатталғанбүтінге  16 бит бөлінеді, long квалификаторымен сипатталса – 32 бит, ал int типіне – не 16, не 32 бит бөлінеді.

Signed (таңбалы) және unsigned (таңбасыз) квалификаторларын char типіне және  кез келген бүтін типке қолдануға  болады.

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

Мысалы, char мәніне 8 бит бөлінсе,онда unsigned char 0-ден 255-ке дейінгі дипазондағы мәнге,ал signed char -128-ден  127-ге дейінгі мәнге ие.

Барлық өлшемдегі атаулы тұрақтылар  <limits.h> және <float.h> стандартты тақырыптық файлдарында орналасады.

Сонымен қатар, С тілінде екі кфалификатор бар: Const және Volatile Const-мәні өзгермейтін айнымалыларды , ал Volatile кез келген  уақытта мәні өзгеретін айнымалыларды белгілеу үшін қолданылады.

Const-программа орындалу барысында өзгермейтін айнымалылар – тұрақтылылар деп аталады.

Сипатталуы:

Мысалы.Const float pi=3014159;

Const int imin=1, isale=5;

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

Volatile бұл айнымалының  мәні сыртқы әрекеттер әсерінен  өзгеруі мүмкін екенін білдіреді.

Мысалы, Volatile int EV_time.

Бұл жағдайда EV_time айнымалысы таймер,яғни жүйелік құрылғы арқылы өзгереді.

Бұл квалификаторлар бір уақытта қолданылуы мүмкін, мысалы, Const Volatile Const EV_time;

 

 

 

1.6 Тұрақтылар

 

Программаның орындалу барысында мәні өзгермейтін шама – тұрақты деп аталады.

Бүтін тұрақты, мысалы, 1234, int типімен сипатталады. Long типті тұрақты 1 немесе L әрпімен аяқталады. Мысалы, 123456789L. Таңбасыз тұрақтылар u немесе U әрпімен аяқталады. Ал u немесе UL-мен аяқталатын тұрақтылар типі – unsigned long екенін көрсетеді.

Сонымен қатар, бүтін мән ондық форматта немесе басқа 8-дік немесе  16-лық форматта берілуі мүмкін. Егер тұрақты нөлден басталса , онда ол 8-дік форматта, егер 0х немесе 0Х болса, онда 16-лық форматта көрсетілген.

Мысалы, ондық бүтін , ондық бүтін 31-ді  037 немесе 0Х1F түрінде жазуға болады. 8-дік және 16-лық тұрақтылардың жазылуы L және U әрпімен аяқталуы мүмкін.

Мысалы, 0XFUL тұрақты 15 мәніне және unsigned long типіне ие.

Жылжымалы нүктелі тұрақтылар. Егер тұрақты f немесе F әрпімен аяқталса, онда тип float,ал 1 немесе L болса,онда long double типті болғаны.

Литерлік тұрақтылар. Литерлік тұрақтылар деп апострафқа алынған литер түрінде жазылған бүтін деп айтамыз.

Мысалы, ‘x’. Литерлік тұрақтының мәні ретінде литердің сандық коды алынады.

Мысалы. ‘0’литерлік тұрақты ASCII кодында 48 кодына сәйкес келеді.Бұның 0 мәніне ешқандай қатысы жоқ.Литерлік тұрақтылар көбінесе басқа литерлермен салыстыру үшін қолданғанымен, олар басқа бүтін типтер сияқты сандарға амалдар қолдануға қатыса алады.

Тұрақты өрнек - тек тұрақтылармен ғана өрнектелінетін өрнек.

Мұндай өрнектер компиляциялау барысында есептеледі, сондықтан оларды келген жерде қолдануға болады.

Мысалы:

#define SAN 368

Char line[SAN+1];

Стрингтік тұрақты-нөл немесе қос тырнақшаға алынған литрлер.

Мысалы,

“Бұл жолдық тұрақты”

Немесе “ “ /*бос жол */

Тырнақшалар жолдарға кірмейді, ол тек оның шектеуі ретінде қолданылады.

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

Информация о работе Программалау тілдері. Программалау тілдерінің жіктемесі