*** Sveicināti SIA "DIALOGS AB" Mācību centrs mājas lapā! Piesakies uz šī brīža aktuālākajiem kursiem un semināriem - "Investēšana un tirdzniecība finanšu instrumentu tirgos (FX, Futures, Options, CFDS, Securities, Bonds u.c.)", "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: 30

Pieteikties

C++ programmēšana, I līmenis (iesācējiem, bez priekšzināšanām), 30ak.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++