Добавил:
bekan
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:1-semestr / 2-AMELIY
.pdf
2-ámeliy sabaq. Programmalastırıw tilleriniń strukturası. Maǵlıwmat tipleri.
Kirgiziw/shıǵarıw funkciyaları. Operatorlar. Sızıqlı algoritmlerdi
shólkemlestiriw.
Jumıstıń maqseti: Programmalastırıw tilleriniń strukturası menen ámeliy jaqtan
tanısıw. C++ programmalastırıw tilinde struktura boyınsha kodlar izbe-izligin,
sintaksisin úyreniw. C++ te dáslepki programma jazıw. Kiritiw hám shıǵarıw
operatorlarınan paydalanıw. Matematikalıq hám logikalıq ámeller menen islew.
Teoriyalıq bólim:
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ı
Funkciya
Ańlatılıwı
Funkciya
Ańlatılıwı
Sin x
sin(x)
x
sqrt(x); pow(x,1/2.)
Cos x
cos(x)
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)
3
2
x
pow(x,2/3.)
xa
pow(x,a)
Log2x
log(x)/log(2)
a
acbb
2
4
2
dárejege erisewin támiynlep beredi. Sebebi bunda operaciyalar qısqa beriledi.
C++ tilinde standart funkciyalardıń jazılıwı
Mısalı:
→ (-b + sqrt(b*b-4*a*c)/(2*a); yoki
(-b+pow(b*b-4*a*c,1/2.)/(2*a);
sin x
e
+ 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ı.
Ámeliy kórsetpe:
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
myfirstprogram.cpp
#include <iostream>
using namespace std;
int main() {
cout << "Hello World!";
return 0;
}
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):
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:

Hello World!
Process returned 0 (0x0) execution time : 0.011 s
Press any key to continue.
Sonnan keyin baǵdarlamanı iske qosıw (orınlaw) ushın Build > Build and
Run punktine ótiń. Nátiyje tómendegishe boladı:
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
#include <iostream>
int main() {
std::cout << "Hello World!";
return 0;
}
#include <iostream>
using namespace std;
int main() {
cout << "Hello World!";
return 0;
}
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
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
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;
}
#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
#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
#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
JAŃA QATARLAR (SÍZÍQLAR)
Jańa qatardı kirgiziw ushın tómendegishe belgini paydalanıwǵa boladı\n:
Mısalı
Keńes: Birinen keyin biri jazılǵan \n belgi bos qatardı payda etedi:
Mısal
Jańa qatardı kirgiziwdiń jáne bir usılı - endl manipulyator arqalı:
Mısal

KOMMENTARIYALAR
#include <iostream>
using namespace std;
int main() {
// Bul kommentariya
cout << "Hello World!";
return 0;
}
cout << "Hello World!"; // Bul kommentariya
/* The code below will print the words Hello World!
to the screen, and it is amazing */
cout << "Sálem dúnya";
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
Bul tómendegi mısal kod qatarınıń izinde bir qatarlı komentariya paydalanadı:
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
Á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.
Соседние файлы в папке 1-semestr
