Автор работы: Пользователь скрыл имя, 12 Сентября 2013 в 16:47, отчет по практике
С++ тiлi объектi-бағдарланған бағдарламалау тiлi. Ол жоғары деңгейдегi тiлдердiң қатарына кiредi. Көптеген программистер С++ тiлi арқылы қиын есептердiң шешуiн табады. С++ тiлi кеңiнен таралған бағдарламалау тiлi болып саналады. Объектi-бағдарланған бағдарламалау программистке 3 маңызды мүмкiншiлiк бередi:
1. Программалық кодтың оңайлатылуы және оның құрылымын жақсарту. Программаларды оқу және түсiнуге жеңiл.
2. Программалардың модернизациясы өте қарапайым тапсырма болып табылады.
3. Кез-келген класста әртүрлi программаларды көп рет қолдануға болады.
I. КIРIСПЕ……………………………………………………………….3
II. НЕГІЗГІ БӨЛІМ
1. «Манғыстаумұнайгаз» АҚ-ы жайында................................................
1.1 «Манғыстаумұнайгаз» АҚ-ның тарихы
1.2 «Манғыстаумұнайгаз» АҚ-ның жетістіктері
1.3 «Манғыстаумұнайгаз» АҚ өндірістік қызметі
1.4 «Манғыстаумұнайгаз» АҚ қызметінің негізгі түрлері
2. С++ бағдарламалау тілі
2.1 С++ тілінің негізгі түрлері
2.2 С++ тілінің ерекшеліктері
2.3 Массивтердi инициалдау ……………………………………………..
3 Көрсеткіштермен жұмыс ………………………………………………..
3.1 Структуралардың қайтылыуы …..........................................................
3.2 Файлдық құрылым ……………………………………………………..
3.3 fstream.h тақырыптар файлына қосылу ……………………………...
3.4 Файлды ашу …………………………………………………………....
4 Класстармен жұмыс...................................................................................
4.1 Конструкторлар және деструкторлар..................................................
4.2 Функция-мүшелері static және const...................................................
4.3 Мұрагерлік...............................................................................................
4.4 Абстрактты базалық класс....................................................................
4.5 Жады класстары және айнымалыларды қолдану.................................
ҚОРЫТЫНДЫ……………………………………………………………..
Қолданылған әдебиеттер тiзiмi ……………………………………….......
Қосымшалар …………………………………………………………..........
Назар аударыңыз, мұнда шарт жақшаға алынған. Егер шартты тексерi нәтижесiнде true мәнi қайтарылса, онда өрнек орындалады, сонан кейiн басқару программаның келесi жолына берiледi. Егер шарт нәтижесi false болса, онда өрнектен аттап өтедi.
if /else операторы шартқа тәуелдi екi әрекеттiң бiреуiн таңдаулы орындауға мүмкiндiк бередi. Төменде берiлген инструкцияның синтаксисi көрсетiлген:
if (шарт)
өрнек1;
else
өрнек2;
Егер шартты тексеру нәтижесi true болса, онда өрнек1 орындалады, қарсы жағдайда - өрнек2.
While/for/goto операторы
While (өрнек)
оператор
Басында өрнек есептелінеді. Егер де ол ақиқат болса онда ол операторлар орындалады цикл басына қайта өтеді нәтежесінде цикл while оператор жалған болғанша орыналады.Осы нүктеден келесі операторға көшеді.Солар бойынша,оператор бірнеше рет орындалады.
Мысалы оператор While:
int=1,sum=0;
while (I<=10){
sum+=1;
++1
}
Оператор for
For (өрнек 1;өрнек 2;өрнек3)
Оператор.
келесі оператор
Бірінші өрнек 1 есептеледі әдетте өрнек 1 қолданылады айнымалыны инициализациялау үшін циклде пайдаланынады.Содан кейін өрнек 2 есептеледі.Егер де ақиқат болмаса,онда операторлар орындалады, өрнек 3 есептеледі басқару тағыда for циклінің басына көшеді, шығарып тастауға өрнек 1 есептеп өткізеді.Осы интерация жалғаса береді өрнек 2 жалған болғанша осыдан кейін келесі операторларға көшеді.
for(int i=1, sum=0; i<=10; ++1)
sum+=1;
Оператор for бүкіл өрнекте қатыспауындамүмкін,міндетті түрде нүкте үтір қою керек.Егер де өрнек 1 қатыспаса онда цикл бөлімі сияқты қадам орындалмайды.Егер де өрнек 3 қатыспаса цикл бөлімі өсім қадам сияқты орындалмайды. Арнайы ерекшебар егерде өрнек 2 қатыспаса. Осы жағдайда тексерімей нәтеже - әрқашанда ақиқат осыған байланысты цикл for кодта
for(i=1, sum=0; sum+=I++)
cout<<sum<<end1;
шексіз болып келеді.
Оператор Goto
Оператор goto-шартсыз көшу еріктігі белгілеу операторлары функция деп аталады
Тамға-идентификатор
Goto операторы мына формада орындалғанда
goto
тамға;
шартсыз басқару белгіленген операторға беріледі.
Мысалы,
if (d==0.0)
goto error
else
ratio=h/d;
error:cerr<<’’error:division by zero\n’’;
және goto операторы,белгіленгенге сай оператор сол функцияның денесінде болу міндетті.
switch/case операторы
Көбiне айнымалыны тұтас мәндер қатарына теңдiгiн тексеру қажеттiгi туады. Бұны if /else/if конструкциясы көмегiмен орындауға болады, немесе ұқсас switch/case конструкциясының көмегiмег орындауға болады.
Көңiл аударыңыз, switch инструкциясы
Си тiлiнде бiрнеше қатар
switch (бүтiнсанды_өрнек) {
case тұрақты1:
өрнек1;
break;
case тұрақты2:
өрнек2;
break;
case тұрақты -n:
өрнек -n;
break;
default: үнсiз_келiсiм_бойынша_әрекет;
}
Ескерту:break операторы соңғысынан басқа барлық тарамдарда қайталанады. Егер бiрiншi тарамда бұл инструкцияны жоятын болсақ, онда өрнек1-ден кейiн өрнек2 орындалады, ол әрқашан тиiмсiз.
Осылайша, break операторы case тарамдарының бiреуi орындалғаннан кейiн басқа тарамдарынан аттап өтедi.
Массив дегенiмiз – бiр типтi реттелген мәлiметтер жиынын қамтитын айнымалы. Массивтiң әрбiр элементiне оның адресi бойынша қатынас құруға болады. Си және С++ тiлдерiнде массив мәлiметтердiң стандартты типi болып саналмайды.Си және С++ тiлiнде массивтi құру және онымен жұмыс iстеу негiзiнде бiрдей болады.
Төменде массивтiң қасиетiн анықтайтын төрт негiзгi принциптер келтiрiлген:
Массивтi баяндау
Төменде массивтi баяндау мысалдары берiлген:
int array[12]; /* 12 бүтiн саннан тұратын массив */
char carray[20]; /* 20 символдан тұратын массив */
Қарапайым айнымалыларды сипаттағандай массивтердi баяндау, оның
мәлiметтер типiн көрсету арқылы орындалады. Одан кейiн массив аты және екi тiк жақша қою керек. Олар массив размерiн анықтайды. Тiк жақшалар iшiнде тек тұрақтылар тұруы мүмкiн. Компилятор массивке қанша көлем жадыдан бөлу керектiгiн дәл бiлуi қажет. Сондықтан массив размерi алдын ала берiледi және программаның орындалу уақытында өзгертiлуi мүмкiн емес.
Массивтердi инициалдау
Массивтердi инициалдауды 3
тәсiлдiң бiреуiн қолдану
Құру кезiнде массивке тек тұрақты мәндер берiлуi тиiс. Сосын
массивке айнымалылар мәндерiн жазуға да болады. Массивтер көлемiне қарай бiр өлшемдi, екi өлшемдi және көп өлшемдi болады.
Осыған дейiн барлық айнымалылар белгiлi бiр түрге жатты.
Айнымалылардың 2 классын қарастырамыз. Структура және көрсеткiштер.
Структура дегенiмiз - әртүрлi түрлерден тұратын айнымалылар
жиыны.
Структураның жазылу форматы:
struct
{
char autor[25],nazvanie[25];
int god,t;
} book[n];
Шын мәнiнде, структура ешқандай айнымалыны көрсетпейдi. Структураның компоненттерi өз алдына жеке айнымалы бола алмайды. Олар бiр немесе бiрнеше айнымалылардың компоненттерi болуы мүмкiн.
айнымалыларды тұтасымен бередi және атымен тұтас қабылдайды.
Көрсеткiштер дегенiмiз – айнымалылар олар жадыдағы басқа бiр объектiнiң орнын немесе адресiн көрсетедi. Сондықтан да сол көрсеткiш арқылы белгiлi бiр объектiге қатынауға болады.
Структураның қайтылуы
Белгiлi бiр функция арқылы мәндерiн енгiзiп, содан кейiн main()
функциясына return операторы арқылы қайтылуы.
books( )// функцияны осылай белгiлейiк
return (d); // осылай қайтады.
Ескерту: егер структура мәндерi main() функциясына қайтатын болса, онда берiлген функция осы түрде сипатталынады. Функцияның алдына сол түрдi қоямыз.
Файл деп – кейбiр информацияны қамтитын сыртқы жадының аттық облысын айтамыз. Файл түрiндегi информация әдетте сыртқы сақталу құрылғысында сақталынады. Мысалы, магниттiк дискiде. Программа пернетақтадан мәлiметтердi қалай оқыса, солайша дискiлiк файлдан мәлiметтердi оқиды. Программалар мәлiметтердi экранға шығаратындай мәлiметтердi файлға жаза алады.
Мәндердi буфферге жiберу үшiн және одан алу үшiн бағдарлама мен операциялық жүйе арасында байланыстырушы звено болуы керек. Ол звено файлдық құрылым деп аталады. Бағдарлама файлды жұмысқа ашқан кезде ол жадыда белгiлi бiр арнаулы құрылым туғызады.
fstream.h тақырыптар файлына қосылу
fstream.h тақырыптар файлында
С++ стандарттық библиотекасы
Олар кiрiс және шығыс файлдық ағындарды белгiлейдi. С++ тiлiндегi
негiзгi ағындар идеяларымен
сәйкес ifstream мәлiметтер типi кiрiстiк
файлдан келетiн символдар
Файлға мәндердi енгiзу не шығару үшiн файлға көрсеткiш қолданады. Ол сонымен қатар жадыдағы файлды құрылымының көрсеткiшi болып табылады. Көрсеткiш былайша жазылады:
file *файл_аты;
file *inx, *outx;
Файлды ашу
Бағдарлама мен файл арасындағы байланыс fopen() функциясы арқылы iске асады. Бұл функция көрсеткiшке құрылымның адресiн жазады. Функцияның белгiсi бiрiншi параметр файл аты берiледi. Екiншi файлға жету режимi қолданылады. Бұл режим файлмен қандай жұмыс жасайтынын көрсетедi. fopen() функциясы көрсеткiшке құрылымның адресiн меншiктейдi. Файлды ашудың мынадай режимдерi бар:
Сонымен қатар көптеген басқа да түрлерi бар. Файлды оқып, не құрып болғаннан кейiн оны жабу керек. Ол дегенiмiз файл мен бағдарлама арасындағы байланысты үзу.
fclose(file_A);
Жабу дегенiмiз – көрсеткiштiң босатып, басқа файлдармен жұмыс жасау үшiн қажет. Ол көрсеткiш басқа файлмен жұмыс жасауы мүмкiн. Енгiзу және шығару функциялары файлға мәндердi беру және файлдан мәндердi алу үшiн мына функциялар қолданылды:
принтерге жiберу.
С++ және С құрылымдары бар.Олар гетерогенді құрамды типтер пішінін көрсетеді.С++ структураларды анықтайды.С++ түйінді сөздері class және struct типтерді жариялау үшін қолданылады,қолданушылармен анықталған.Мысалы:
Class vect{
private:
int*p;//базалық нұсқағыш
int size;//элементтер саны
public:
//конструкторлар және деструкторлар
vect ( ) {size =10; p=new int[10]} //10 массив құрады
vect(int n);// n массив құрады
vect(vect& v);//vect
vect (int a[ ]. int n);// массивтен инициализациялады
~vect( ){delete [ ] p;}// деструктор
// функция-мүшелері
int ub ( ) {retuun (size –1);}// үстінгі шекара
int& operator[ ] (int i);// шекарада тексерілген элемент
};
public.private және protected түйінді
сөздер мүшелер түрін
2.8 Конструкорлар және деструкторлар.
Конструкторлар - функция-мушелері кластар атыменда келіседі.Ол объекті типтер кластарын құрайды.Бұл инициялизациялау мүшелер –деректкрді жиі қосады, new қолданушы еркін жадыны үлестіреді.Егер инициализация айқындалмаған болса,кластар,конструктор бос тізімді параметрлер аталмыш, конструктор сияқты, бүкіл параметрлер жасырын мәні бар,жариялау массивтерді басқару үшін базалық тип болуы мүмкін.Осындай конструкторлар жасырын конструкторлар деп аталады.
foo::foo( ) {…}// жасырын конструктор
hoo::hoo(int I=0) {…} //жасырын конструктор
Деструктор---аты бар мүшелердің функциясы ~ (тильда) әсер етеді.Оның мақсаты,типтер класының мәнін өшіру.Бұл қарапайым жолмен қолданылады delete.
Конструктор пішімі
mun::mun (CONST mun & x)
бір типтен келесі типтің мәнін көршіру үшін қолданылады.