Программалау тілдері. Программалау тілдерінің жіктемесі
Автор работы: Пользователь скрыл имя, 28 Января 2015 в 14:00, курсовая работа
Краткое описание
Компьютер жұмыс істеу үшін оған керекті программаларды программалаушы адам жасайды. Программалаушы мамандығы дүние жүзіндегі ең бір тапшы мамандықтардың бірі. Программалау мамандығын адам өмір бойы үйренеді. Оқып шығып бірден программалушы бола салатын ешқандай оқу құралы жоқ.
Содержание
Кіріспе 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
/* strlen s жолының ұзындығын
қайтаратын функция мазмұны */
Int strlen (char s[]) {
Int i;
I=0;
While (s[i]!=’\0’)
++I;
return I;}
Жолдарға қолданылатын strien
және басқа функциялар <string.h> стандартты
тақырыптық файлында сипатталған.
‘\0’- null-литер стрингтің ішкі
бейнелеуінде міндетті түрде соңына қойылады.
Ескерту: бір литрден тұратын
литрлік тұрақты мен жол бірдей емес
Саналымды тұрақты. Санау –
ол бүтін тұрақтылар тізімі.
Мысалы,
Enumeration – ағылшын сөзі
, <<санау>> деген сөзді білдіреді.
Enum boolean {NO,YES};
AUG, SEP, OCT, NOV, DEC }; /*FEB 2, MAR 3 т.с.с.
*/
Әртүрлі саналымдарда атаулар
әртүрлі болуы тиіс. Бір саналым ішінде
мәндер қайталануы мүмкін. Enum құралы
тұрақтыларға ыңғайлы аттау беруге
мүмкіндік береді, #define препроцессоры
директивасына қарағанда мұндағы тұрақтылар
мәндері генерациялана береді.
1.7 Глобалды және
жергілікті айнымалылар
Айнымалылар. Программаның
орындалу барысында мәні өзгеретін шамалар
айнымалылар деп аталады.
С/С++ тілінде кез келген айнымалылардың
қасиеттері хабарланады. Ол типтің атынан
және айнымалылар тізбегінен тұрады.
Мысалы,
Int fahr, Celsius;
Int lower, upper, step;
Мұндағы int типі көрсетілген
айнымалылардың мәні бүтін екенін білдіреді,
ал, float бөлшек бөлігі бар мәндер.
С++ тіліндегі енгізу-шығару құралдары
С/С++ тілдерінде 20-дан астам
мәлеметтерді енгізу-шығару тәсілі бар.
Енгізу-шығару стандартты кітапханалық
функциялар файлдармен және әртүрлі
құрылғылармен байланысқан мәлеметтерді
оқуға, немесе жазуға мүмкіндік береді.
С тілінде файлдың қандай да
бір алдын-ала анықталған структурасы
жоқ.Кез-келген мәлімет байттар тізбегі
түрінде қарастырылады.
Жалпы енгізу-шығару функцияларын
негізгі үш категорияға бөледі:
Лектік (потоктық);
Консольдық (консольные);
Төмен деңгейлі (низкоуровневые).
Лектік функциялар: буферлік,
форматталған, форматсыз енгізу –шығару
мүмкіншілігін жүзеге асырады.
Буферлік лектердің мәліметтерді
уақытша жазу – оқу барысында буферде
сақтау мүмкіндігі бар. Дискке тікелей
жазу уақыт алады, ал буферлік аймақты
пайдалану процесті тездетеді.
Лектік функциялар мәліметтерді
символдар легі түрінде қабылдайды. Лектік
файлдар арқылы белгілі бір мөлшердегі
және форматтағы символдар блогымен алмасуға
болады.
Файлды ашқанда лектік функцияны
пайдаланып файлмен FILE типті структура
арасында байланыс орнатылады да программа
сәйкесінше осы структураға сілтемені
алады,ол лек көрсеткіші немесе лек деп
аталады.
Сонымен қатар консоль немесе
порт арқылы енгізу-шығару орындалады
(мысалы, принтер порты арқылы). Бұл жағдайда
сәйкес функциялары мәлемметерді байттап
оқып жазады.
Консольмен жұмыс жасау қосымша
мүмкіндіктер береді. Бұлар мынадай қосымша
мүмкіндіктерді орындайды:
Мысалы, символдың клавиатурадан
енгізілген кезеңін анықтау,т.б.
Төмен деңгейлі категория функциялары
тікелей жүйелік енгізу-шығару құралдарын
пайдаланады,яғни төмен деңгейде файлға
немесе периферийлік құрылғыларға жол
ашады. Төменгі деңгейлі функциялар арқылы
файл ашқанда оның дескрипторы-бүтін сан
қайтарылады да, ол кейін файл идентификаторы
ретінде қолданылады.
Лектік функциялар. <stadio.h>
стандартты кітапханасында лектік функциялар
орналасқан.
Қосымшаны жүктегенде автоматты
түрде 5 стандартты лек ашылады.
Лектер:
енгізу (stdin);
қателер (stderr);
шығару (stdout);
баспаға шығару (stdprn);
сыртқы ғұрылғылар (stdoux);
Автоматты түрде қате, енгізу,
шығару стандартты легі консольмен байланысады.
Лекті көрсететін көрсеткіш аргументті
болатын функцияларда жоғарыдағы көрсеткіштердің
бірін таңдап көрсету керек. Stdin, stderr, stdout,
stdprn, stdoux – тұрақтылар. Getc ( ), putc ( ) – функциялары
gete ( ) функциясы файлдық лектен 1 символды
оқиды.
Жалпы форматы: int getc ( );
Бұл функция буферден оқылған
символдың кодын қайтарады.
getc ( ) функциясы лектен
жаңа символы кездескенге дейін
оқиды.Мысалы, клавиатурадан Enter басу
арқылы ғана жекелеген символдар
енгізілген.
putc ( ) – символды лекке
жазады.
Мысалы, int ix;
Ix=getc (stdin);
putc(ix,stddut);
putc ( ) функциясы қате жіберілгенде
EOF қайтарады. putc, getc функциялары функция
және макрос түрінде де анықталған. Макрос
приоритеті жоғары. Оны өзгерту үшін, яғни
макросты болдырмау үшін:
#undef getc препроцессор директивасы
берілу керек.
С++ тілінде С тіліндегі стандарт
функциялар енгізу-шығаруға қолданылады.
Сонымен қатар С++ тілінде <jostream.h>
тақырыптық файлында анықталған енгізу-шығару
құралдары бар. Лектік енгізу-шығару осы
тақырыптық файлдағы кластар арқылы орындалады.
Мына операторлар: >> - енгізу
және <<- шығару операторы кез-келген
типті мәлеметтермен жұмыс жасауға қолданылады.
С++-те үш лектік класс қарастырылған:
instream -енгізу құралдары;
ostueam – шығару құралдары;
iostream - енгізу-шығару құралдары.
Осы үш класта да <<,>> операторлары
қолданылады. С тіліндегі stdin, stdout, stderr
стандартты лектеріне сәйкес С++ тілінде
cin, cout, cerr, clog-объектіліктері қарастырылған.
Cin istream класының объектісі
istream енгізу легімен, ал ostream класының объектісі
cout шығару легімен байланысты.
Бұл жолдарда С тілінде айнымалылар
арнайы форматтар мен типтері анық көрсетілу
арқылы орындалса, С++ тілінде << -операторы
мәлімет типтің және форматтын таңдайды,ал
>>- операторы қабылдайтын мәннің адресін,форматын
анықтайды.
•<< операторында endl манипуляторы
тіркелуі мүмкін.
Мысалы, << cout<< “бүтін
сан=” <<ia<<endl;
Манипулятор дегеніміз-лекке
қатысты нақты әрекет орындайтын арнайы
функция. endl манипуляторы – жаңа жол символын
қоюмен қатар лек буферін тазартады.
Ал, flush манипуляторы – ( \ n) жаңа
жол литерін шығармайды.
>>-операторы жолды
оқығанда пробель, TAB белгісі, ‘\n’ литері
кездескен бойдан оқу әрекетін аяқтайды,
ал осы таңбалар арқылы сипатталып кездескен
жолды толық оқу ушін cin объектісін get(
) функциясын қолданған дұрыс.
Мысал: #include <iostream.h>
#defaine n 25
void main (void)
{
char span [n];
cout<< “ пән аты - ?”;
cin>>span;
cout<< “\n сабақ, “ <<span;
Орындағанда: Пән аты - ? Математикалық
анализ – түрінде енгізілгенмен, нәтиже
экранға толық шығарылмай былайша бейнелінеді:
Сабақ, математикалық
Сондықтан жолды толық алу үшін
мына әрекеттер ретін орындау қажет:
cin.get(span,h);
cout<< “\n Сабақ, “<<span;
cin объектісінің get( ) функциясында
аргументпен қатар, екі параметрден тәуелді
анықталуы мүмкін, олар ‘\n’ литері және
жолды құрайтын символдардың санына қатысты
параметрлер.
cin.get( ) функциясы шектеуші –
символ кездескенге дейін немесе ‘\n’
литеріне дейін оқиды.
Мысалы:
cin.get (span,n, ‘*’); мұндағы ‘*’-шектеуші
символ болып табылады.
Форматты жол екі тырнақшамен
шектелген (яғни, тексттік константа болып
табылады) және өзінің құрамына кез-келген
текстті, басқару символдарын және формат
спецификаторларын қамти алады. Аргументтер
тізімі келтірілмеуі мүмкін немесе экранға
шығарылатын өрнектерден тұра алады. Мысалы,
printf(“\na=”); операторы (“a=”) текстін
және (\n) басқару символын қамтиды. Текст
жазылған түрінде экранға орналасуына
әсер етеді. Басқарушы символдардың белгісі
ретінде \ беріледі. Төменде олардың тізімі
келтірілген :
\n – жаңа жолға көшіру;
\t – горизонталды табуляция;
\r – курсорды жаңа жолдың
басына қайтару;
\a – қонырау дыбысы;
\b – бір символ кері
қайтару;
\f – жаңа параққа көшу;
\v –вертикалды табуляция.
printv(“\nүшбұрыш ауданы =%f’,s);
операторын қарастырайық.
Аргументтер тізімі бір s айнымалысынан
тұрады. Оның мәні экранға шығарылады.
%f символдар жұбы шығарылатын s айнымалысның
мән форматының спецификациясы болып
табылады. % - формат белгісі, ал f әрпі шығарылатын
санның нақты типті екенін көрсетеді.
Формат спецификаторы шығарылатын
өлшем бірліктің сырт көрінісінің түрін
анықтайды. Кейбір формат спецификаторларын
келтірейік:
%с – символ;
%s – жол;
%d – бүтін ондық сан (типі int);
%u – белгісі жоқ бүтін ондық
сан (типі unsigned);
%f – бекітілген нүкте түріндегі
нақты сандар;
%e – қылқамалы нүкте
түріндегі нақты сандар (мантиссамен,
ретпен берілген)
Мысалы, келесі операторлардың
орындалуынан кейін
Float m,p;
int k ;
m=84.3; k=-12; p=32,15.
printf(“\nm=%f\tk=%d\tp=%e”,m,k,p);
Экранға мына жол шығады:
m=84.299999 k=-12 p=3.21500e+01
Формат спецификаторына сандық
параметрлер қосыла алады; жолдың ені
мен дәлдігі. Ені – өлшемге экранда берілетін
позициялар саны, ал дәлдік – бөлшек бөлігіне
берілетін позициялар саны (нүктеден кейін).
Параметрлер % пен формат символының арасында
жазылады және бір бірінен нүкте арқылы
ажыратылады.
Мысалы,
printf(“\nm=5,2” ,m);нәтижесінде экранға
m=84.30 шығады.
Көрсетілген жолдың еніне шығарылатын
мән симай қалған жағдайда да, өлшем толық
шығарылады.
Формат спецификаторына келесі
түрдегі модификаторлар да қосылуы мүмкін.
%ld – long int шығару;
%hu –short unsigned шығару;
%lf – long double шығару.
Клавиатурадан форматты түрде
енгізу. scanf( )функциясын
шақыру операторы келесі құрылымға ие:
scanf(формат түріндегі жол,аргументтер_тізімі);
Бұл функция клавиатурадан
енгізілген символдардың оқылуын қамтамасыз
етеді. scanf()функциясында формат жолы менаргументтер
тізімі міндетті түрде болуы қажет. Келесі
операторды қарастырайық:
scanf(“%f”,&a);
Мұндағы “%f” – формат жолы,
&a – енізілетін мәндерге сәйкес аргументтер
тізімі. Бұл оператор а айнымалысына сандық
мәннің енгізілуін қамтамасыз етеді.
Клавиатурадан енгізілетін
және skanf( ) функциясыменен қабылданатын
символдық тізбекті кіріс ағымы деп атайды.
Аргументтер тізімі – енгізілетін айнымалылар
және әр айнымалынын алдында & белгісі
койылады.
Формат жолы тырнақшаға алынады
және спецификациялар тізімінен тұрады.
Әр спецификация %белгісінен
басталады. Одан кейін *жолдың_ені модификатор
спецификатор тұруы мүмкін. Соның ішінде
спецификатор міндетті элемент болып
табылады. *белгісі кіріс ағымында белгілі
бір символдар санын жіберуге мүмкіндік
береді.
C++-тегі форматтау функциялары мен флагтар
<josream.h> типті файлдағы
лектік-объектілер жұмысы форматтау
флагтарымен басқарылады:
Флагтар self( ) функциясы көмегімен
орналатылады, unself( ) функциясы арқылы
ажыратылады.
Мысалы,cout <<oct<<ia; cout.self(ios::left);
Флагтар
□ skipws-енгізу барысында пробел
литерлері алынып тасталады;
□ left – шығарылатын мәндер
әріптің сол жақ шетімен тегістеледі,
толықтырғыш символдармен толықтырылады,
□ right – шығарылатын мәндер
өрістің оң жақ шетінен тегістеледі;
□ internal – бұл символдар таңба
символдар мен сан және санау жүйесі префиксі
арасында койылады;
dec –бүтін сан 10-дық
санау жүйесінде шығады;
oct – бүтін сан 8-дік
санау жүйесінде шығады;
□ show base – бүтін санды шығарғанда
санау жұйесінің префиксі шығарылады.
□show point – бөлшек санды шығарғанда
ондық нүктесі қойылады және соңындағы
0-дер тіркеледі;
□ uppercase – 16-лық санау жүйесіндегі
А.., F және E експоненциалдық символы үлкен
әріппен шығады;
□ showpas – оң сандары шығарғанда
+ таңбасы қойылады;
□ scientific – бөлшек сан експонециялдық
түрде жазылады;
□ set presicion ( )- де сол секілді
. Автоматты түрде - 6-ға тең. Бұл функция
аргументсіз шақырылғанда ағымды дәлдік
мәнін анықтайды.
□ width( ) – функциясы шығару
өрісінің енінің ең кіші мәнін анықтайды.
□setw( ) – функциясы да сол секілді
. Аргументсіз функция ағымы мәнді қайтарады.
□ setfill( ), setprecision( ), setw( ) манипуляторлаы
ios класының параметрленген мүшелері болып
табылады, олармен жұмыс жасау үшін <jomanip.h>
тақырыптық файлы қосылуы керек.
Енгізу-шығару бағытын адрестеу.
Қазіргі операциялық жүйе клавиатурамен
экранды файлдық құрылғы ретінде қарастырады.
Клавиатура мәлеметтерді оқып
немесе экранға шығару программасының
бағытын адрестеу үшін жүйеге клавиатураның
орнына нақты файлды, мысалы DAN.
DAT қолдануға нұсқау беріледі.
Мысалы, орындалатын файл аты
– PRIMER.
Нұсқау: 1) primer <dan.dat – файлдан
оқу
2) primer>res.dat – файлға шығару.
Бірге: 3) primer <dan.dat >res.dat.
Стандартты потоктар мен нақты
файл арасында немесе периферийлік құрылғылар
арасында байланыс ұйымдастырудың 2 тәсілі
бар:
Мысалы, proccesl |process2
Мұндағы process 1,2 екі программа.
Тік сызық ( | ) – каналмен байланыстыру
таңбасы.
Байланыстыру жұмысы, яғни екі
програманың енгізу-шығару жұйесінің
операциялық жүйе басқарады.
Си тіліндегі айнымалылар
Айнымалысы int-тің түрі, яғни
char 1байт 4 байттың өлшемін алады. Ол айнымалы
C++ға қалай сол алдында жариялауы керек.
С++ға бағдарламашылар С: void, int, float, double
және charден мәліметтердің бес түрлері
қолдана алады. Сипаттама түр void ешқандай
да түрге сәйкес келмейді int нақты, float
нақтысы өте аз дәлдік, double нақты, екі есе
шығыны дәлдік char болып табылады.