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

2-LEKCIYA

.docx
Скачиваний:
3
Добавлен:
27.11.2023
Размер:
85.11 Кб
Скачать

2-LEKCIYA. PROGRAMMALASTÍRÍW TILLERINIŃ STRUKTURASÍ. SÍZÍQLÍ ALGORITMLERDI DÚZIW HÁM ALGEBRALÍQ AŃLATPALARDÍ MATEMATIKALIQ KITAPXANA FUNKCIYALARI JÁRDEMINDE ESAPLAW.

C++ tili hám strukturası. C++ programmalastırıw tili - hár qıylı qosımsha islengen bibliotekalar jıynaǵına iye universal programmalastırıw tili bolıp tabıladı. C++ tili sistemalı programmalastırıwda da keń qollanıladı. Bul tilde joqarı nátiyjeli programmalardı, sonıń ishinde operaciyalıq sistemalardı, drayverlerdi jazıw múmkin. C++ universal programmalastırıw tili bolıp, hár qıylı dárejedegi máseleler ushın sheshim tabıw múmkin.

C++ programmalastırıw tilin 1979-85 jıllar aralıǵında daniyalı kompyuter injeneri Byarne Straustrup islep shıqqan. Anıǵıraq aytsaq, Straustrup C tiline uqsaytuǵın, artıqsha imkaniyatlarǵa iye, iykemli hám kúshli programmalastırıw tilin islep shıǵıwdı qáledi. Hám ol óz niyetine jetip, kópshilikke tanımal tildi islep shıǵıp IT álemine úlken jetiskenlik alıp keldi.

Ne ushın C++?

C++ ónimliligi joqarı qosımshalardı islep shıǵarıwǵa arnalǵan imkaniyatı kóp programmalastırıw tili. Ol IT qánigelerge sistemalı resurslar menen yadtı basqarıwǵa ayrıqsha imkaniyat beredi. Biz biletuǵın, paydalanatuǵın programmalardıń kópshiligi mine usı tilde jazılǵan hám kóplegen zamanagóy tillerdiń islewine C++ sintaksisi túrtki bolǵan.

Tez. C++ programmalastırıw tilinde kodtıń orınlanıw tezligi joqarı, sol sebepten IT tarawında bárqulla talapqa iye. Ulken maǵlıwmatlar yamasa bir neshe ónimlilikti talap etetuǵın procesler menen jumıs islewde C++ tilin itibarǵa alǵan maqul.

Universal. Haqıyqatında da C++ qollanılmaytuǵın baǵdarlamalastırıw tarawı kemde-kem. Robototexnika, mikrokontrollerler, IoT, kompyuter hám mobil qollanbalar, oyınlar menen modellestiriw sistemaları, neyronlı tarmaqlardaǵı statistikanı qayta islew tarawında C++ tilisiz kóz aldımızǵa keltiriw múmkin emes.

Aktual. C++ bárqulla jańalanıp, jetilistirip barıladı. Zamanagóy tendenciyalarǵa ere alıwı - normal jaǵday.

Áhmiyetli. Java, JavaScript, С# sıyaqlı kóplegen programmalastırıw tilleri C++ principlerine tiykarlanǵan. Kóplegen IT universitetleriniń oqıw baǵdarlamasında C++ kursı minnetli esaplanadı. Jámiyette “C++ programmalastırıw tilin biletuǵın qánige ózge tillerdi ańsat meńgerip ketedi” degen pikir qáliplesken.

Talapqa iye. Joqarıda kórsetilgen argumentlerge súyenetuǵın bolsaq, C++ programmalastırıw tilin biletuǵın qánigelerge jumıs jetkilikli.

C++ tiliniń jáne bir áhmiyetli tárepi, bul ANSI standartı talapları tiykarında jaratılǵan. C++ tiliniń tiykarǵı túsinikleriniń biri klasslar bolıp tabıladı. Klass – bul paydalanıwshı tárepinen jaratılǵan (ańlatılǵan) til. C++ tilinde C tiliniń derlik barlıq imkaniyatları saqlanǵan. Buǵan tiykarǵı sebep, C++ tili payda bolıwı menen bir waqıtta, kóplegen paydalanıwshılar tárepinen C tilinde bir qansha programmalar jaratılǵan edi. Bunday tayar túrdegi programmalarǵa qayta ózgeris kiritkende de C++ kompilyatorı programma tekstinen hesh qanday qátelik tappaydı, yaǵnıy, bunda programmanı hár eki tilden de paydalanıp dúziwge boladı.

C++ tilin jaratıw dawamında kóplegen tillerden kerekli tárepleri (qásiyetleri) alınǵan. Atap aytqanda, Simila 67 tilinen klasslar koncepciyası, Algol-68 tilinen operatsiyalardı júklew hám ózgeriwshilerdi programmanıń qálegen jerinde táriyplew h.t.b. qásiyetleri alınǵan.

C++ tili alfaviti

Hár bir tildegi ańlatpalardı ańlatıwda belgili bir simvollar jıynaǵınan

paydalanıladı. Máselen: inglis tilinde jazılǵan kitapta 26 latın háripleri, 10

arab cifrları hám de bazı bir irkilis belgileri - kombinaciyalarınan paydalanadı.

Tap sonday, C++ tilide latın alfavitiniń 26 kishi háribinen: abcdefghijklmnopqrstuvwxyz, latın alfavitiniń 26 bas háriplerinen:

ABCDEFGHIJKLMNOPQRSTUVWXYZ

on arab cifrlarınan: 0123456789

hám tómendegi arnawlı belgilerden:

= - * / = , . _ : ; ? ” ' ~ | ! # % $ & ( ) [ ] { } ^ @

ibarat.

Arnawlı simvollar bir-birinen probel (bos orın) menen ajıralıp turadı. Probel menen ajıratılmaǵan bazı bir simvollar izbe-izligi de bir simvol mánisin beredi.

Mısalı:

++ -- == && || << >> >= <= += -= /= ?: :: /* */ //

Identifikatorlar

Programmada paydalanılatuǵın ózgeriwshiler, konstantalar hám de funkciyalardı simvolikalıq belgilew (at beriw) ushın identifikatorlar yamasa,

ańlatpalar paydalanıladı. C++ tilinde identifikatorlar - háriplerden baslanıwshı belgilerdiń izbe-izligi. C++ tilinde de basqa algotirmik tillerde bolǵan sıyaqlı bir qatar sózler óz aldına qásiyetke iye, sonlıqtan bunday sózlerdi identifikator ornında paydalanıwǵa bolmaydı. Bunday ajıratılǵan sózler - xızmetshi sózler dep ataladı. Xızmetshi sózlerge keyinrek óz aldına toqtalıp ótemiz. C++ tilinde háripler registrı “sezgir” bolıp tabıladı. Basqasha aytqanda, kompilyatorda jaylasqan bas hám kishi háripler bir-birinen parqlı simvollar boladı. Máselen NAME hám Name identifikatorları bir birinen basqasha, yaǵnıy, bularǵa yad qurılmasınan hár qıylı yacheyka ajıratıladı. Tómendegi berilgen identifikator atları jaramsız ekenligin tekserip kóriwińizge boladı.

1st_year;

#social_sec;

Not_Done!;

Birinshi identifikator cifrdan baslanǵanı ushın jaramsız bolıp tabıladı. Ekinshi identifikator # simvolı menen baslanǵanı ushın, al úshinshi identifikator jaramsız simvol menen tamalanǵanı ushın jaramsız identifikatorlar bolıp tabıladı.

Funkciyalardıń atların jazıwda da C++ tili kompilyatorınıń “sezgir”ligin umıtpawımız kerek. Máselen, programmada egerde main() xızmetshi sóziniń ornına Main() sózin qollansaq, onda kompilyator belgisiz identifikator ekenligi haqqında xabar beredi.

Sońǵı eskertiw retinde identifikatorlardıń ataması xızmetshi sózler menen birdey bolmawı kerekligin aytıp ótiw zárúr bolıp tabıladı.

Turaqlılar.

C++ tilinde turaqlılardı (konstantalar) paydalanıwdıń eki túrli usılın qollanıwǵa boladı. Turaqlı – bul programma orınlanıw barısında mánisin ózgertpeytuǵın identifikator bolıp tabıladı.

1. const kvalifikatorı járdeminde turaqlılardı tómende berilgen

mısaldaǵıday etip paydalanamız.

Mısalı:

const float pi=3.14159; const int iMin=1, iSale=25;

2. #define direktivası járdeminde turaqlılardı paydalanıw tómendegishe:

#define Sales_Team 10

Bul jerde Sales_Team turaqlınıń ataması, 10 onıń mánisi.

Ańlatpalar

C++ tili bay operaciyalıq toparǵa iye. Ańlatpalardıń járdemi menen ózgeriwshilerdiń mánisi ózgerip hám jańa mániske iye boladı. Endi operaciyalardı qay jerde paydalanıwdı túsindirip ótemiz.

Tómendegi operaciyalar dizimin qarasaq:

Operator Orınlanuǵın ámeli

[ ] Massiv elementin shaqırıw

( ) Funkciyanı shaqırıw

++ Inkrement (mánisin asırıw)

-- Dekrement (mánisin kemitiw)

* Kóbeytiw

/ bóliw

% Modul boyınsha bóliw

+ Qosıw

- Alıw (ayırıw)

< Úlken

> Kishi

<= Úlken yamasa teń

>= Kishi yamasa teń

== Teń (logikalıq)

!= Teń emes

! Logikalıq biykarlaw (emes)

&& Logikalıq hám

|| Logikalıq yamasa

?: Shártli ańlatpa

*= Kóbeytiw menen teńlew

/= Bóliw menen teńlew

%= Modul boyınsha bóliw menen teńlew

+= Qosıw menen teńlew

-= Ayırıw menen teńlew

Operaciyanıń mazmunı operandlar sanına baylanıslı boladı. Unarlı & operaciyası adresti alıwdı ańlatadı, al binarlı & - bul “hám” logikalıq operaciya. Operaciya mazmunı operandlardıń túrine de baylanıslı boladı:

  • + ańlatpası a+b haqıyqıy tiptegi qosındını ańlatadı – egerde operand float tipinene tiyisli bolsa;

  • al pútin qosındı boladı, egerde int tipine tiyisli bolsa.

Operaciyalardı júklegende de tip ushın operaciyalardı anıqlaǵanday etip, tiykarǵı hám jasalma tipler ushın aldınnan anıqlanǵan mánisin joǵaltpastan túsindiriledi.

C++ tilinde = menshiklew operaciyası bar, al basqa tillerdegi sıyaqlı menshiklew operatorı emes. Solay etip, menshiklew kontekstte kútilmegen jerlerde de ushırasıwı múmkin, mısalı, x=sqrt(a =3*x). Bul biz ushında paydalı. a=b=c bul c ob'ektin b ǵa, al keyin a ǵa menshikleniwin ańlatadı. Menshiklew operaciyasınıń basqa da qásiyetleri, yaǵnıy kóplegen binarlı operaciyaları menen birge qosa atqarıladı. Mısalı, x[i+3]*=4 bul x[i+3]=x[i+3]*4 ekenligin ańlatadı, bunda artıqsha operaciya shıǵarıp taslanǵan, yaǵnıy x[i+3] ańlatpası tek bir márte esaplanıladı. Bul kompilyatorǵa operaciyalar arasındaǵı qatnasın optimallastırıwda joqarı dárejege erisewin támiynlep beredi. Sebebi bunda operaciyalar qısqa beriledi.

C++ tilinde standart funkciyalardıń jazılıwı

Funkciya

Ańlatılıwı

Funkciya

Ańlatılıwı

Sin x

sin(x)

sqrt(x); pow(x,1/2.)

Cos x

cos(x)

abs(x) yoki fabs(x)

Tg x

tan(x)

Arctan x

atan(x)

ex

exp(x)

Arcsin x

asin(x) ?

Ln x

log(x)

Arccos x

acos(x) ?

Lg x

log10(x)

pow(x,2/3.)

xa

pow(x,a)

Log2x

log(x)/log(2)

Mısalı: → (-b + sqrt(b*b-4*a*c)/(2*a); yoki

(-b+pow(b*b-4*a*c,1/2.)/(2*a);

e sin x + tg2(x+3) → exp(sin(x)) + pow(tan(x+3),2);

k=(m*5)+((7 % n) / (9+x));

C++ tilindegi programma tómendegishe quramnan ibarat:

  1. Direktivalar – # include <file.h> direktiva – instrukciya degendi bildiredi. C++ te programmanıń dúzilisine, mútájligine qarap kerekli direktivalar qollanıladı. Olar <> belgisi arasında jazıladı. Ulıwma direktivalardıń dizimi tómendegilerden ibarat (barlıǵı 32):

  • #include <stdio.h> - ápiwayı kirgiziw/shıǵarıw programması ushın. Bunda std - standart, i – input, o - output degendi ańlatadı.

  • #include <iostream.h> - C++ te kirgiziw/shıǵarıw ushın, ápiwayı ámeller orınlansa.

  • #include <math.h> - standart funkciyalardı qollanıw ushın.

  • #include <conio.h> - programmanıń sırtqı kórinisin qáliplestiriw ushın.

  • #include <string.h> - qatar tipindegi ózgeriwshiler boyınsha ámeller orınlaw ushın.

  • #include <stdlib.h> - standart kitapxana faylların shaqırıw ushın.

  • #include <time.h> - kompyuter ishindegi saat mánislerin paydalanıw ushın.

  • #include <graphics.h> - C++ tiliniń grafikalıq múmkinshiliklerinen paydalanıw ushın.

Bul fayllar arnawlı kitapxananıń járiyalawshı faylları esaplanıp, olar óz aldına INCLUDE dep atalǵan papkada saqlanadı. Házirgi waqıtta C++ kitapxanası jańalandı hám ondaǵı fayllardıń atlarınan .h (head - baslı mánisinde) keńeytpesi alıp taslandı hám aldına c háribi qosıldı. Direktivalar programmanı onı kompilyaciya qılınıwdan aldın tekserip shıǵadı.

C++ TE JUMÍSTÍ BASLAW

C++ tilin paydalanıwdı baslaw ushın sizge eki nárse zárúr:

  • C++ kodın jazıwǵa arnalǵan Bloknot sıyaqlı tekstli redaktor

  • C++ kodın kompyuter túsinetuǵın tilge awdarıw ushın GCC sıyaqlı kompilyator.

Bul GNU Kompilyatorlar toplamı. Yaǵnıy GCC - biypul baǵdarlamalıq qural, onı GNU GPL hám GNU LGPL shártleri boyınsha Free Software Foundation taratadı hám GNU qurallar dizbeginiń tiykarǵı komponent bólegi bolıp tabıladı. Wikipedia

Tańlaw ushın kóplegen tekstli redaktorlar menen kompilyatorlar bar. Bul sabaq barısında biz IDE qollanamız.

C++ IDE ornatıw

IDE (Integrated Development Environment) kodtı qayta islew hám dúziw ushın paydalanıladı.

Keń tarqalǵan IDE-ge Code::Blocks, Eclipse, Visual Studio h.t.b kiredi. Bulardıń barlıǵı biypul hám olardı C++ kodın redaktorlaw hám qayta islew ushın paydalanıwǵa boladı.

Eskertiw: veb-ke tiykarlanǵan IDE-ler de jumıs isley aladı, biraq funkcionallıǵı sheklewli.

Biz sabaǵımızda Code::Blocks qollanamız. Codeblocks baǵdarlamasınıń sońǵı versiyasın http://www.codeblocks.org/ saytınan taba alasız. mingw-setup.exe Tekstli redaktordı kompilyator menen ornatatuǵın fayldı júklep alıń.

C++ te dáslepki kod jazıwdı baslaw

Birinshi C++ faylımızdı jaratamız.

Codeblocks tı ashıń File > New > Empty File. tańlań.

Keyin C++ kodıń jazıń hám fayldı keyingi kóriniste saqlań. myfirstprogram.cpp (File > Save File as):

myfirstprogram.cpp

#include <iostream> using namespace std; int main() {   cout << "Hello World!";   return 0; }

Házirshe joqarıdaǵı kodtı (programmanı) túsinbewińizde múmkin - biz onı keyingi adımda tolıǵı menen talqılaymız. Házirshe kodtı iske qosıw qatarına itibar beriń. Codeblocks ishinde ol tómendegishe bolıwı kerek:

Sonnan keyin baǵdarlamanı iske qosıw (orınlaw) ushın Build > Build and Run punktine ótiń. Nátiyje tómendegishe boladı:

Hello World! Process returned 0 (0x0) execution time : 0.011 s Press any key to continue.

Qutlıqlaymız! Siz birinshi C++ baǵdarlamańızdı jazıp, orınladıńız.

C++ SINTAKSISI

Sintaksisin jaqsı túsiniw ushın tómendegi kodtı kórip shıǵamız:

Mısal

Bunda

1-qatar: (5 qatar paydalanıladı) kirgiziw hám shıǵarıw obyektleri menen jumıs islewge imkaniyat beretuǵın tema atı (head) fayllarınıń kitapxanası #include <iostream> . Tema atı faylları C++ programmalarına funkcionallılıqtı qosadı.

2-qatar: using namespace std standart kitapxanadaǵı obyektler menen ózgeriwshiler ushın atlardı paydalana alatuǵınımızdı bildiredi.

#include <iostream> Eger siz qalay hám qáytip jumıs isleytuǵının túsinbeseńiz, using namespace std. Onı siziń baǵdarlamańızda derlik bárqulla payda bolatuǵın nárse dep oylań.

3-qatar: bos qatar. C++ tili bos orındı esapqa almaydı. Biraq biz onı kodtı oqıwǵa qolaylı etiw ushın paydalanamız.

4-qatar: C++ programmasında bárqulla payda bolatuǵın táǵı bir nárse - int main(). Bul funkciya dep ataladı. Figuralı qawsırma ishindegi hár qanday kod {} orınlanadı.

5-qatar. cout («see-out» dep aytıladı) - tekstti shıǵarıw/basıp shıǵarıw ushın kirgiziw operatorı (<<) menen birge paydalanılatuǵın obyekt. Biziń mısalımızda "Hello World!" tı shıǵaradı.

Eskertiw: Hárbir C++ málimlemesi noqatlı útir menen tamamlanadı ;.

Eskertiw: int main() teksti tómendegi túrde de jazılıwı múmkin:

int main () { cout << "Hello World! "; return 0; }

Este saqlań: kompilyatr bos orınlardı esapqa almaydı. Degen menen, bir neshe qatarlar kodtı oqıwǵa qolaylı qıladı.

6-qatar: return 0 tiykarǵı funkciyanı tamamlaydı.

7-qatar: tiykarǵı funkciyanı ámelde tamamlaw ushın jabılatuǵın figuralı qawsırmanı } qosıwdı umıtpań.

Atama keńisligin ótkizip jiberiw

Standart atlar keńisligi kitapxanasısız jumıs isleytuǵın ayırım C++ programmaların kóriwge boladı. using namespace std qatardı alıp taslawǵa hám gilt sóz benen almastırıwǵa boladı std, sonnan keyin :: ayırım obyektler ushın operator:

Mısal

#include <iostream> int main() {   std::cout << "Hello World!";   return 0; }

C++ TE SHÍǴARÍW (TEKSTTI SHÍǴARÍW)

cout obyekti << operatorı menen birge mánislerdi shıǵarıw/tekstti basıp shıǵarıw ushın paydalanıladı:

Mısal

#include <iostream> using namespace std; int main() {   cout << "Hello World!";   return 0; }

cout siz qálegenińizshe kóplegen obyektlerdi qosa alasız. Degen menen, ol shıǵarıwdıń sońında jańa qatardı qospaytuǵının bilgen maqul.

Mısal

#include <iostream> using namespace std; int main() {   cout << "Sálem dúnya!";   cout << "Men C++ úyrenip atırman";   return 0; }

JAŃA QATARLAR (SÍZÍQLAR)

Jańa qatardı kirgiziw ushın tómendegishe belgini paydalanıwǵa boladı\n:

Mısalı

#include <iostream> using namespace std; int main() {   cout << "Sálem dúnya! \n";   cout << "Men C++ ti úyrenip atırman";   return 0; }

Sálem dúnya!

Men C++ ti úyrenip atırman

Keńes: Birinen keyin biri jazılǵan \n belgi bos qatardı payda etedi:

Mısal

#include <iostream> using namespace std; int main() {   cout << "Sálem dúnya \n\n";   cout << "Men C++ ti úyrenip atırman";   return 0; }

Sálem dúnya!

Men C++ ti úyrenip atırman

Jańa qatardı kirgiziwdiń jáne bir usılı - endl manipulyator arqalı:

Mısal

#include <iostream> using namespace std; int main() {   cout << "Sálem dúnya!" << endl;   cout << "Men C++ ti úyrenip atırman";   return 0; }

Sálem dúnya!

Men C++ ti úyrenip atırman

KOMMENTARIYALAR

Kommentariyalardı C++ kodın túsindiriw hám onı oqıwǵa qolaylı qılıw ushın paydalanıwǵa boladı. Onı alternativ kodtı sınaw gezinde orınlawdı ámelge asırmaw ushın paydalanıwǵa boladı. Kommentariyalar bir qatarlı yamasa kóp qatarlı bolıwı múmkin.

Bir qatarlı kommentariyalar

Bir qatarlı kommentariyalar eki qıya sızıqtan ( //) baslanadı.

Qatardıń arasındaǵı // hám sońına shekemgi hár qanday tekstti kompilyator esapqa almaydı (orınlamaydı).

Tómendegi mısalda kod qatarınıń aldında bir qatardı kommentariyanı paydalanadı:

Mısal

#include <iostream>

using namespace std;

int main() {

// Bul kommentariya

cout << "Hello World!";

return 0;

}

Bul tómendegi mısal kod qatarınıń izinde bir qatarlı komentariya paydalanadı:

cout << "Hello World!"; // Bul kommentariya

Kóp qatarlı kommentariyalar

Kóp qatarlı kommentariyalar /* menen baslanıp */ menen tamamlanadı.

Hám /* arasındaǵı */ qálegen tekstti kompilyator esapqa almaydı:

Mısal

/* The code below will print the words Hello World! to the screen, and it is amazing */ cout << "Sálem dúnya";

Ádette biz // qısqa kommentariyalar ushın qollansaq, al /* */ uzın kommentariyalar ushın paydalanamız.

C++ TE ÓZGERIWSHILER

Ózgeriwshiler - maǵlıwmatlar mánislerin saqlawǵa arnalǵan konteynerler.

C++ tilinde ózgeriwshilerdiń hár túrli tipleri bar (hár túrli gilt sózler menen anıqlanadı), mısalı:

  • int- pútin sanlardı saqlaydı. Mısalı 123 yamasa -123 sıyaqlı

  • double- haqıyqıy sanlardı saqlaydı. Mısalı 19,99 yamasa -19,99 sıyaqlı

  • char- jalǵız simvollardı saqlaydı. Mısalı 'a' yamasa 'B' sıyaqlı. Char mánisleri jalǵız tırnaqshalar menen qorshalǵan

  • string- qatarlıq tip. Qatarlıq mánislerdi qos tırnaqshaǵa aladı

  • bool- logikalıq tip. Mánislerdi eki jaǵdayda saqlaydı:ıras yamasa jalǵan.

Ózgeriwshilerdi járiyalaw (jaratıw).

Ózgeriwshi mánislerin jaratıw ushın tipin kórsetiń hám oǵan mánis beriń:

Sintaksisi:

type variableName = value;

type bunda tipi (C++ tipleriniń biri mısalı int), variableName ózgeriwshi atı (x yamasa myName sıyaqlı) = value mánisi (teń belgisi ózgeriwshige mánislerdi menshiklew/tayınlaw ushın qollanıladı);

Sandı saqlaw kerek bolǵan ózgeriwshige mánis beriw ushın keyingi mısaldı qaraymız:

Mısal

#include <iostream>

using namespace std;

int main() {

int myNum = 15;

cout << myNum;

return 0;

}

Sonday-aq, ózgeriwshige mánisti mánis tayınlamay járiyalawǵa hám mánisti keyinirek tayınlawǵa boladı:

Mısal

int myNum; myNum = 15; cout << myNum;

Bar ózgeriwshige jańa mánis tayınlasańız, ol aldıńǵı mánisti qayta jazatuǵınıńızdı bilgen maqul:

Mısal

int myNum = 15;  // myNum is 15 myNum = 10;  // Now myNum is 10 cout << myNum;  // Outputs 10

Соседние файлы в предмете Программирование на C++