Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Joqari darejeli programmalastiriwda C++ Last

.pdf
Скачиваний:
8
Добавлен:
03.12.2023
Размер:
2.03 Mб
Скачать

ÓZBEKISTAN RESPUBLIKASÍ JOQARÍ HÁM ORTA ARNAWLÍ

BILIMLENDIRIW MINISTRLIGI

ÓZBEKISTAN RESPUBLIKASÍ INFORMACIYALÍQ TEXNOLOGIYALARÍ HÁM KOMMUNIKACIYALARÍN RAWAJLANDÍRÍW MINISTRLIGI

MUHAMMED AL-XOREZMIY ATÍNDAǴÍ

TASHKENT INFORMACIYALÍQ TEXNOLOGIYALARÍ UNIVERSITETI

NÓKIS FILIALÍ

R.I.Oteniyazov, N.J.Tatlımuratov, Sh.A.Yadgarov

С++ te programmalastíríw

Joqarı oqıw orınlarınıń injenerlik qánigelikleri

ushın oqıw qollanba

TOSHKENT

«ALOQACHI»

2018

DK: R.I.Oteniyazov, N.J.Tatlımuratov, Sh.A.Yadgarov

BBK: С++ te programmalastíríw

(Joqarı oqıw orınlarınıń injenerlik qánigelikleri ushın oqıw qollanba) – TOSHKENT: «ALOQACHI» 2018-j. 222 bet.

«C++ te programmalastırıw» páninen tayarlanǵan oqıw qollanba joqarı oqıw orınları «Kompyuter injiniringi», «Dásturiy injiniring», «IKT tarawında kásiplik tálim», «Informaciyalıq texnologiyalar», «Telekommunikaciya texnologiyaları» hámde «Ámeliy matematika hám informatika», «Informatika oqıtıw metodikası» bakalavr baǵdarı hám TITU Nókis filialınıń barlıq baǵdarı studenlerine arnalǵan.

«C++ da dasturlash» fanidan tayyorlangan o’quv qo’llanma oliy o’quv yurtlari “Kompyuter injiniringi”, “Dasturiy injiniringi”, “AKT sohasida kasbiy ta’lim”, “Axborot xavfsizligi”, “Telekommunikatsiya texnologiyalari” hamda “Amaliy matematika va informatika”, “Informatikani o’qitish metodikasi” bakalavr yo’nalishi va TATU Nukus filialining barcha yo’nalish talabalarga mo’ljallangan.

Учебная пособие, подготовленное по предмету «Программирование на

C++» предназначено для студентов «Компьютер инжиниринг», «Программный инжиниринг», «Профессиональные образование в сфере ИКТ», «Информационные безопасность», «Телекоммуникационные технологии» и «Прикладное математики и информатики», «Методика преподавание информатики» и студентов Нукусского филиала ТУИТ по всем специальностям.

The text book prepared for the subject "Programming in C ++" is intended for students of Computer Engineering, Software Engineering, Professional Education in ICT, Information Security, Telecommunication Technologies and Applied Mathematics and Informatics, Methods of teaching computer science and students Nukus branch of the TUIT in all specialtie.

B.Sh. Aytmuratov
M. Pirnazarova
Sh. Eshmuratov
M.Allambergenova

Arnawlı redaktor:

Texnika ilimleri kandidatı, Muhammed Al-Xorezmiy atındaǵı TITU Nókis filialı «Informaciyalıq texnologiyalar» kafedrası baslıǵı

- Muhammed Al-Xorezmiy atındaǵı TITU Nókis filialı «Informaciyalıq texnologiyalar» kafedrası assistenti

Pikir bildiriwshiler:

Texnika ilimleri kandidatı, Berdaq atındaǵı QMU dıń «Ámeliy matematika» kafedrası docenti

Pedagogika ilimleri kandidatı, Ájiniyaz atındaǵı Nókis mámleketlik pedagogikalıq institutı “Informatikanı oqıtıw metodikası” kafedrası docenti

Oqıw qollanba Muhammed Al-Xorezmiy atındaǵı TITU Nókis filialı keńesiniń qararı (__.__.2017-jılǵı __-sanlı protokolı) menen baspaǵa usınılǵan.

ISBN

©«ALOQACHI» baspası, 2018-j.

©R.I.Oteniyazov, N.J.Tatlımuratov, Sh.A.Yadgarov.

3

SÓZ BASÍ

Keyingi jıllarda ámeliy dástúrshilerge júdá kóp integraciyalıq programma dúziw ortalıǵı usınıs etilip atır. Bul ortalıqlardıń ol yamasa bul múmkinshilikleri birbirinen parıqlanadı. Ayrım programmalastırıw ortalıqlarınıń fundamental tiykarı C++ programmalastırıw ortalıǵına baylanıslı bolıp qalmaqta. C++ programmalastırıw tili B.Straustrup tárepinen jaratılǵan. Amerika milliy standartlar instituti (American National Standards Institute – ANSI) basshılıǵı astındaǵı

Standartlardı akkreditivlew komiteti (Accredited Standards Committee) tárepinen

C++ programmalastırıw tiliniń xalıq aralıq standartı dúzip shıǵılǵan.

C++ programmalastırıw standartı házirgi kúnde ISO – International Standards

Organization (Standartlaw boyınsha xalıq aralıq shólkem) standartı dep te ataladı. Informaciyalıq kommunikaciya-texnologiyaları (IKT) rawajlanıwı menen

dástúrshiler aldına qoyılǵan máseleler ózgerip barmaqta. IKT tarawında erterekte programmalar úlken kólemdegi maǵlıwmatlardı qayta islew ushın dúzilgen bolsa, bunda programmanı jazıwshı hámde onıń paydalanıwshısı da IKT tarawında tiyisli bilim hám kónlikpelerge iye bolıwı talap etilgen. Házirgi kúnde IKT tarawında kóplegen ózgerisler júz berip atır. Kompyuter menen kóbirek onıń apparatlıq

(Hardware) hám programmalıq támiynatı (Software) haqqında túsiniklerge iye bolmaǵan paydalanıwshılar islep atır. Kompyuter adamlar tárepinen onı tereń úyreniw quralı emes, al kóberik ózleriniń aldılarına qoyılǵan máselelerdi sheshiw quralı sıpatında qollanbaqta.

Joqarı dárejeli programmalastırıwda C++ tili oqıw qollanbasınıń maqseti – teoriyalıq hám ámeliy bilimlerdi bekkemlew, strukturalı hám obektke baǵdarlanǵan programmalar jaratıw hámde qollanıw kónlikpelerin úyretiwden ibarat.

Oqıw qollanba programmalastırıwdıń tiykarǵı túsiniklerin, yaǵnıy ózgeriwshiler, ańlatpalar, operatorlar hámde sonıń menen birge funkciyalar, massivler, qatarlar, strukturalar, birlespeler, fayllar menen islesiwdi úyretiwge arnalǵan. Oqıw qollanba texnika tarawındaǵı barlıq joqarı oqıw orınları studentleri ushın arnalǵan.

4

Programmalastırıwǵa bolǵan talaptıń ózgeriwi programmalastırıw tilleriniń ózgeriwine sonday-aq onıń jazıw texnologiyasınıń ózgeriwine alıp kelmekte. Programmalastırıw evolyuciyası tariyxında kóplegen etaplar bolıwına qaramastan biz usı oqıw qollanbada proceduralı hám strukturalı programmalastırıwdı qaraymız. Oqıw qollanba joqarı dárejeli C++ programmalastırıw tilin úyretiwge arnalǵan. Bunda C++ programmalastırıw tiliniń tiykarǵı túsiniklerin, yaǵnıy ózgeriwshiler, ańlatpalar, operatorlar hámde sonıń menen birge funkciyalar, massivler, qatarlar, strukturalar, birlespeler, fayllar menen islesiwdi úyretiwge arnalǵan. Oqıw qollanba 12 baptan ibarat bolıp C++ programmalastırıw tili ushın kerekli bolǵan kónlikpelerdi iyelew múmkinshiligine erisedi.

Usı oqıw qollanbanı oqıǵan joqarı oqıw orınları studentleri kompyuterde C++ programmalastırıw tilinde programmalardı óz betinshe, biymálel jarata baslaydı degen pikirdemiz.

5

I Bap. C++ tili hám onıń leksikalıq tiykarı

1.1. С++ tilinde programma dúzilisi hám onıń kompilyaciyası

Bizge belgili, programma mashina kodlarınıń sonday izbe-izligi bolıp, anıq bir esaplaw quralınıń ámel qılıwın basqaradı. Programma támiynatın jaratıw processin ápiwaylastırıw ushın kóplegen programmalastırıw tilleri jaratılǵan. Barlıq programmalastırıw tillerin eki tipke ajıratıw múmkin:

-Tómen dárejedegi programmalastırıw tilleri;

-Joqarı dárejedegi programmalastırıw tilleri.

Tómen dárejedegi programmalastırıw tillerine Assembler tipindegi tiller kiredi. Bul tiller salıstırmalı qısqa hám tez orınlanıwshı kodlardı jaratıw múmkinshiligin beredi. Bıraq, Assembler tilinde programma dúziw mashaqatlı hámde uzaq dawam etetuǵın process esaplanadı. Buǵan qarama-qarsı túrde joqarı dárejedegi tiller jaratılǵan bolıp, olarda tábiyiy tildiń (inglis tiliniń) sheklengen korinisinen paydalanǵan halda programma dúziledi. Joqarı dáreje tillerindegi operatorlar, berilgenlerdiń tipleri, ózgeriwshiler hám programma jazıwdıń túrli usılları tildiń táriyplew múmkinshiligin asıradı hám programmanıń «oqıwǵa qolaylı» bolıwın támiynleydi. Dáslepki joqarı dáreje tillerine misal retinde Fortran, PL/1, Prolog, Lisp, Basic, Pascal, C hám basqa tillerdi keltiriw múmkin. Kompyuter arxitekturasınıń rawajlanıwı, kompyuter tarmaǵınıń rawajlanıwına sáykes túrde joqarı dárejedegi programmalastırıw tilleriniń jańa versiyaları payda bola basladı hámde ayırım tillerdiń joǵalıwına alıp keldi. Hazirgi kúnde keń tarqalǵan tillerge

Object Pascal, C++, C#, Php, Java, Asp tilleri kiredi. Sonday-aq, C tiliniń rawajlanǵan variantı sıpatında C++ tilin alıwımız múmkin. 1972 jılda Denis Rich hám Brayan Kernegi tárepinen C tili jaratılǵan. 1980 jılda Byern Straustrup C tiliniń áwladı C++ tilin jaratadı, onda strukturalı hám obyektke baǵdarlanǵan programmalastırıw texnologiyası bazasında programma jaratıw múmkinshiligi tuwıldı.

C++ tilinde programma jaratıw bir neshe basqıshlardan ibarat boladı. Dáslep, tekst redaktorında (ádette programmalastırıw ortalıǵınıń redaktorında) programma

6

teksti teriledi, bul fayldıń keńeytpesi «.cpp» boladı. Keyingi basqıshta programma teksti jazılǵan fayl kompilyatorǵa uzatıladı, egerde programmada qátelikler bolmasa, kompilyator «.obj» keńeytpeli obyekt modul faylın payda etedi. Aqırǵı adımda komponovka (jıynawshı) járdeminde «.exe» keńeytpeli orınlanıwshı fayl - programma payda boladı. Basqıshlarda júzege keletuǵın fayllardıń atları baslanǵısh tekst faylınıń atı menen birdey boladı.

Kompilyaciya processiniń ózi de eki basqıshtan ibarat boladı. Dáslep preprocessor isleydi, ol teksttegi kompilyaciya direktivaların orınlaydı, sonday-aq

#include direktivası boyınsha kórsetilgen bibliotekalardan C++ tilinde jazılǵan modullerdi programma quramına kiritedi. Keyinirek keńeytilgen programma teksti kompilyatorǵa uzatıladı. Kompilyator ózi de programma bolıp, C++ tilinde jazılǵan programma teksti onıń ushın kiriwshi maǵlıwmat bolıp esaplanadı. Kompilyator programma tekstin leksema (atomar) elementlerge ajıratadı hám onı leksikalıq, keyin bolsa sintaksislik analiz etedi. Leksikalıq analiz processinde ol tekstti leksemalarǵa ajıratıw ushın «probel ajıratıwshısın» isletedi. Probel ajıratıwshısına - probel belgisi (‘ ’), ‘\t’ - tabulyaciya belgisi, ‘\n’- keyingi qatarǵa otiw belgisi, basqa ajıratıwshılar hám kommentariyalar esaplanadı.

Programma teksti túsinikli bolıwı ushın kommentariyalar isletiledi.

Kommentariyalar kompilyator tárepinen «ótkerilip» jiberiledi hám olar programma orınlanıwına hesh qanday tásir etpeydi.

C++ tilinde kommentariyalar eki koriniste jazılıwı múmkin.

Birinshisinde “/*” hámde “*/” belgiler aralıǵında jaylasqan barlıq belgiler izbe-izligi kommentariya esaplanadı, ekinshisi «bir qatarlı kommentariya» dep ataladı hám “//” belgilerden baslanǵan hám qatar aqırına shekem jazılǵan belgiler izbe-izligi boladı. Kommentariyanıń birinshi korinisinde jazılǵan kommentariyalar bir neshe qatar bolıwı hám olardan keyin C++ operatorları dawam etiwi múmkin.

Mısal.

int main()

{

//bul qatar kommentariya esaplanadı

7

int a = 0; //int d; int c;

/* int b = 15 */

/* - kommentariya baslanıwı a = c;

kommentarıya tamamlanıwı */ return 0;

}

Programmada d, b ózgeriwshiler járiyalanıwları esapqa alınbaydı hám a = c

ámeli orınlanbaydı.

Tómende C++ tilindegi ápiwayı programma teksti keltirilgen.

#include <iostream.h>

//baslama fayldı qosıw

int main ()

//bas funkciya anıqlaması

{

//blok ashılıwı

cout << ”Sálem dúnya!\n”;//qatardı shıǵarıw

return 0;

//funkciya qaytaratuǵın mánis

}

//blok jabılıwı

Programma orınlanıwı nátiyjesinde ekranǵa “Salem dunya!” qatarı shıǵarıladı.

Programmanıń 1-qatarında #include preprocessor direktivası bolıp, programma kodına aǵımlı oqıw/jazıw funkciyaları hám onıń ózgeriwshileri járiyalanıwı jaylasqan «iostream.h» baslama faylın qosadı. Keyingi qatarlarda programmanıń jalǵız, tiykarǵı funkciyası - main() funkciyası anıqlaması keltirilgen.

Sonı aytıp ótiw tiyis, C++ programmasında álbette main() funkciyası bolıwı shárt hám programma sol funkciyanı orınlaw menen óz jumısın baslaydı.

Programma denesinde konsol rejiminde belgiler izbe-izligin shıǵarıw ámeli qollanılǵan. Maǵlıwmatlardı standart aǵımǵa (ekranǵa) shıǵarıw ushın tómendegi format isletilgen:

cout << ańlatpa;

Bul jerde <ańlatpa> sıpatında ózgeriwshi yamasa sintaksisi tuwrı jazılǵan hám qandayda bir mánis qabıl etiwshi til ańlatpası keliwi múmkin.

Máselen:

8

int ózg = 324;

cout << ózg;

//pútin san shıǵarıladı

Berilgenlerdi standart aǵımnan (ádette klaviaturadan) oqıw tómendegi formatta ámelge asırıladı:

cin >> ózgeriwshi;

Bul jerde <ózgeriwshi> mánis qabıl etiwshi ózgeriwshiniń atı.

Mısal:

int Jas;

cout << ”Jasıńızdı kiritiń_”;

cin >> Jas;

Pútin tiptegi Jas ózgeriwshisi kiritilgen mánisti ózlestiredi. Kiritilgen mánistiń ózgeriwshi tipine sáykes keliwin tekseriw juwapkershiligi programma dúziwshige júklenedi.

Bir waqıttıń ózinde probel járdeminde bir neshe hám hár qıylı tiptegi mánislerdi kiritiw múmkin. Mánis kiritiw <enter> túymesin basıw menen tamamlanadı. Eger kiritilgen mánisler sanı ózgeriwshiler sanınan kóp bólsa, «artıqsha» mánisler bufer yadına saqlanıp qaladı.

#include <iostream.h> int main()

{

int x, y; float z;

cin >> x >> y >> z;

cout << ”Oqılǵan mánisler\n”;

cout << x << ’\t’ << y << ’\t’ <<z; return 0;

}

Ózgeriwshilerge mánis kiritiw ushın klaviatura arqalı

10 20 3.14 <enter>

háreketi ámelge asırıladı. Sonı aytıw tiyis, aǵımǵa mánis kiritiwde probel ajıratıwshı esaplanadı. Háqıyqıy sannıń pútin hám bólshek bólekleri ‘.’ belgisi menen ajıratıladı.

9

1.2. C++ tili alfaviti

C++ tili alfavitine tómendegiler kiredi:

-Úlken hám kishi latın alfaviti háripleri;

-cifrlar - 0,1,2,3,4,5,6,7,8,9;

-arnawlı belgiler:“ { } | [ ] ( ) + - / % \ ; ‘ : ? < = > _ ! & ~ # ^ . *

Alfavit belgilerinen tildiń leksemaları qáliplestiriledi: identifikatorlar; gilt

(xızmetshi yamasa rezerv) sózler; turaqlılar; ámeller belgileniwleri; ajıratıwshılar.

1.3. Identifikatorlar hám gilt sózler

Programmalastırıw tiliniń áhmiyetli bazalıq túsiniklerinen biri - identifikator túsinigi esaplanadı. Identifikator degende úlken hám kishi latın háripleri, cifrlar hám astınǵı sızıq (‘_’) belgilerinen dúzilgen hám cifrdan baslanbaytuǵın belgiler izbe-izligi túsiniledi. Identifikatorlarda háriplerdiń registrları (úlken yamasa kishiligi) esapqa alınadı. Mısal ushın, RUN, run, Run - bul hár qıylı identifikatorlar esaplanadı. Identifikator uzınlıǵına shegara qoyılmaǵan, bıraq olar kompilyator tárepinen tek basındaǵı 32 belgisi menen párıqlanadı.

Identifikatorlar gilt sózler, ózgeriwshiler, funkciyalar, metkalar hám basqa obyektlerge at beriwde isletiledi.

C++ tiliniń gilt sózlerine tómendegiler kiredi:

asm, auto, break, case, catch, char, class, const, continue, default, delete, do, double, else, enum, explicit, extern, float, for, friend, goto, if, inline, int, long, mutable, new, operator, private, protected, public, register, return, short, signed, sizeof, static, struct, swith, template, this, throw, try, typedef, typename, union, unsigned, virtual, void, volatile, while.

Joqarıda keltirilgen identifikatorlardı basqa máqsette isletiw múmkin emes.

Processor registrların belgilew ushın tómendegi sózler isletiledi:

_AH, _AL, _AX, _EAX, _BH, _BL, _BX, _EBX, _CL, _CH, _CX, _ECX, _DH, _DL, _DX, _EDX, _CS, _ESP, _EBP, _FS, _GS, _DI, _EDI, _SI, _ESI, _BP, _SP, _DS, _ES, _SS, _FLAGS.

Bulardan basqa «__» (eki astınǵı sızıq) belgilerinen baslanǵan identifikatorlar

bibliotekalar ushın rezervlengen. Sol sebepli ‘_’ hám «__» belgilerdi

10