*** Sveicināti SIA "DIALOGS AB" Mācību centrs mājas lapā! Piesakies uz šī brīža aktuālākajiem kursiem un semināriem - "Paškontroles sistēma pārtikas uzņēmumā (HACCP)", "PERSONAS DATU AIZSARDZĪBA", “Angļu valoda (ar un bez priekšzināšanām)”, "Datorzinības (ar un bez priekšzināšanām)", "Loģistikas darbinieks", "Projektu vadība", "Mazā biznesa organizēšana" - zvani 27766277 *** *** Kompetenti un sertificēti DARBA AIZSARDZĪBAS pakalpojumi - zvani 29516000 ***

C++ programmēšanas pamati (I līmenis)

Stundu skaits: 24

Pieteikties

C++ programmēšana, I līmenis (iesācējiem, bez priekšzināšanām), 24ak.st.

C++ programmēšanas pamati

 

Apmācību programmas tēmas:

Sākums

Programmēšanas vide

C++ pamati

Blokshēmas

Datu tipi

Lineārie algoritmi

Zarotie algoritmi

Cikli

 


C++ programmēšana

1. Valodas C/C++ pamati

1.1. Programmas struktūra. Datu pamattipi

#include <iostream.h>
#include <conio.h>
// aprēķināt x=a+b
void main( )

int a,b,x;
const int k=2;
cout << “a,b-?”;
cin >> a >> b;
x=k*(a+b);
cout << “x=” << x;
getch();
}   

pieslēgt virsrakstu failus iostream.h un conio.h
(ievades-izvades nodrošināšanai)
// – komentārs
galvenā programma – funkcija main bez argumentiem
ar nenoteiktu (void) atgriežamo vērtību
a, b, x – veseli (int) mainīgie
k=2 – vesela (int) konstante (const)
programma:   izvadīt jautājumu uz ekrāna (iostream.h)
ievadīt no klaviatūras a un b  (iostream.h)
aprēķināt х
izvadīt rezultātu uz ekrāna (iostream.h)
gaidīt jebkura simbola ievadīšanu (conio.h)
figūriekavas { } ierobežo operatoru bloku.

pamattipi

 

tipu modifikatori

char

simboli (veseli skaitļi – simbolu kodi)

 

signed

ar zīmi

int

veseli skaitļi

 

unsigned

bez zīmes

float

reāli skaitļi

 

long

garš

double

reāli skaitļi

 

short

īss

void

nenoteikts tips

 

 

 

bool

loģiskas izteiksmes: true/false (tikai С++)

 

 

 

Tips (C++Builder*)

Izmērs baitos

Vērtību intervāls

char, signed char

1

-128..127

unsigned char

1

0..255

short int, signed short int

2

-32768..32767

unsigned short int

2

0..65535

int, signed int, long int, signed long int

4

-2147483648..2147483647

unsigned int, unsigned long int

4

0..4294967295

float

4

±3.4E-38..3.4E+38

double

8

±1.7E-308..1.7E+308

long double

10

±3.4E-4932..3.4E+4932

*Tips int var būt interpretēts (atkarībā no platformas: 16- vai 32-bitu) kā short int (2 baiti) vai long int (4 baiti). Lai nekļūdītos, izmantojiet funkciju sizeof(tips_vai_mainīgais), kas atgriež atmiņas apjomu, piemēram: sizeof(int).

C++ pamati

Piekļūšanas modifikatori
const – konstante (vērtība nevar mainīties);
voliatile – mainīgais var mainīties ārpus savas programmas (piemēram, tā vērtību var izmainīt operētājsistēma).

Simboli-konstantes jāraksta apostrofos:  ‘a’, ‘9’…
Astoņdecimālās konstantes sākas ar 0 (nulle): 077, 0200…
Heksadecimālās konstantes sākas ar 0х (nulle-iks):  0xFF00, 0xA5…
Ar piedēkļiem: H (short int), L (long int), UL (unsigned long int) utt. var tieši norādīt konstantes tipu, piemēram: 7UL, 34H…
Var izmantot vadības un citu speciālu simbolu apzīmējumus, piemēram:
   \n – jauna rinda,               \r – slīdrāmja atgriešana,                   \f – jauna lappuse,
   \’ – apostrofs,                     \b – BackSpace,                                  \t – tabulācija,
   \” – pēdiņa,                        \0 – nulles baits – virknes beigas,      \a – skaņas signāls,
   endl – rindas beigas.


C++ programmēšana

1.2. Biežāk izmantojamās operācijas (operators)

aritmētiskās

 

loģiskās operācijas
un attiecību operācijas
( 0 – meli;   jebkurš ¹0 – patiesība )

atņemšana, mīnuss

 

+

saskaitīšana

 

*

reizināšana

 

&&

UN

||       

VAI

/

dalīšana

 

mazāks

lielāks

%

dalīšanas atlikums

 

<=

£

>=

³

++

palielināšana par 1

 

==

vienāds

!=

nevienāds

samazināšana par 1

 

!

piešķiršanas operācija:   =
papildus piešķiršanas operācijas:   +=,  -=,  /=,  *=,  %=.
operācijas iekavas: ( ),  [ ] – tām ir visaugstākā prioritāte.

bitu operācijas

&

UN

~

|

VAI

<< 

aritm. nobīde pa kreisi

^

VAI nu VAI

>> 

aritm. nobīde pa labi

papildus piešķiršanas operācijas: |=,  &=,  ^=,  <<=,  >>=.
nosacījuma operācija: (izteiksme1)?( izteiksme2):( izteiksme3);
ja izteiksme1¹0, tad tiek aprēķināta izteiksme2,
ja izteiksme1=0, tad tiek aprēķināta izteiksme3.
operācija “komats”: (izteiksme1, izteiksme2) – tiek aprēķinātas abas izteiksmes,
bet operācijas rezultāts būs izteiksme2.
Neizmantojiet parāk daudz ++ un — vienā formulā, piemēram:  ++x+=++x+y++, tā var iegūt atšķirīgus rezultātus, strādājot ar dažādiem kompilatoriem.

Operāciju prioritātes
– tāpat kā matemātikā, reizināšana un dalīšana izpildās pirms saskaitīšanas un atņemšanas (arī loģiskā reizināšana && pirms loģ. saskaitīšanas ||);
– ja operāciju ++ un — zīmes stāv pirms mainīgā vārda (++a), tad vispirms mainās šī mainīgā vērtība, un tikai pēc tam izpildās visas citas operācijas; un otrādi: ja operāciju zīmes ++ un — atrodas pēc mainīgā vārda (a++), tad sākumā izpildās visas operācijas, un tikai pēc tam izmainās mainīgā vērtība;
– parasti matemātiskajām operācijām ir augstāka prioritāte nekā bitu operācijām; un tām visām – augstāka nekā loģiskajām;
šaubīgos gadījumos izmantojiet iekavas – no liekām iekavām sliktāk nekļūs!
Operāciju izmantošanas piemēri:

1) programmas fragments

komentārs

a

b

c

int a, b, c;
a=3;
b=7.5;
c=a+b;

vērtības nav noteiktas

noapaļojas līdz veselam


3
3
3



7
7




10

c+=a++;

c+=++b;

vispirms  c+=a,
pēc tam a++ (jo ++ stāv pēc a);
vispirms  ++b (jo ++ pirms b),
pēc tam  c+=b;

3
4
4
4

7
7
8
8

13
13
13
21

с%=5;

dalīšanas atlikums (с=21 dalot ar 5)

4

8

1

2) programmas fragments

komentārs

a

int a;
a=6>3;
a=6<=3;

 

6>3 – patiess; а=1;
6£3 – aplams; а=0;


1 (true)
0 (false)

a=2!=4 && 3>5;
a=2!=4 | | 3>5;

(2¹4) UN (3>5) – aplams; а=0;
(2¹4) VAI (3>5) – patiess; а=1;

0 (false)
1 (true)

a=1;
++a+=++a;

a=1;
vispirms ++a;
pēc tam vēlreiz ++a;
pēc tam a+=a (palielināt а par а);

1
2
3
6

3) programmas fragments

komentārs

a

b

c

max

min

int a, b, с, max, min;
a=3; b=6;
max = (a>b) ? a : b;
(a>b) ? max=a : max=b;
min=(a<b)? a++ : b++;

 

a>b – aplams, tapēc max=b
-“-
a<b – patiess; min=a; a++;


3
3
3
4


6
6
6
6







6
6
6





3

c=(++a,++b);

++a; ++b; c=b;

5

7

7

6

3



4) programmas fragments

komentārs

c

int a=3, b=6, c;
c=a&b;
c=a|b;

a=(011)2;  b=(110)2;
c=(010)2=2;
c=(111)2=7;


2
7

c=a<<2;
c=b>>2;

c=(1100) 2=12;
c=(001)2=1;

12
1

Dažas matemātiskas standartfunkcijas un konstantes  (#include <math.h>).

sin

asin

abs, fabs

log

M_PI (C++ Builder)

cos

acos

sqrt

log10

M_E (C++ Builder)

tan

atan

exp

pow

 

Darbam ar gadījumskaitļiem: randomize, random (C++ Builder), rand
Matemātikas standartfunkciju izmantošanas piemēri:

matem.

progr.

 

matem.

progr.

sin33°

sin(M_PI*33/180)
vai sin(3.1415*33/180)

 

a5

sqrt(x)
pow(a,5)

1.1. piemērs. Aprēķināt x, izmantojot formulu:
#include <math.h>
#include <iostream.h>       // neaizmirstiet par iekavām
#include <conio.h>             // neaizmirstiet par datu tipiem: 5/8=0; 5.0/8=0.625
void main()                          // neaizmirstiet pārveidot grādus radiānos
{   double x;
x=5.0/8+(sqrt(5)+20)/(pow(2.1,3)+2*sin(75*M_PI/180));
cout << “\n x=” << x;
getch();
}
1.2. piemērs. Aprēķināt taisnstūra laukumu, pieprasot malu garumus.
#include <iostream.h>
#include <conio.h>
void main()
{  double a, b, s, p;
cout << “\n a, b-? “; cin >> a >> b;
s=a*b;  p=2*(a+b);
cout << “\n s=” << s << ” \t p=” << p;
getch();
}


C++ programmēšana

C++