C++ programmēšanas pamati (I līmenis)
Stundu skaits: 24
PieteiktiesC++ programmēšana, I līmenis (iesācējiem, bez priekšzināšanām), 24ak.st.
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> |
pieslēgt virsrakstu failus iostream.h un conio.h |
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 |
||||
– |
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 |
|
! |
NĒ |
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 |
~ |
NĒ |
| |
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; |
vērtības nav noteiktas noapaļojas līdz veselam |
– |
– |
– |
c+=a++; c+=++b; |
vispirms c+=a, |
3 |
7 |
13 |
с%=5; |
dalīšanas atlikums (с=21 dalot ar 5) |
4 |
8 |
1 |
2) programmas fragments |
komentārs |
a |
int a; |
6>3 – patiess; а=1; |
– |
a=2!=4 && 3>5; |
(2¹4) UN (3>5) – aplams; а=0; |
0 (false) |
a=1; |
a=1; |
1 |
3) programmas fragments |
komentārs |
a |
b |
c |
max |
min |
int a, b, с, max, min; |
a>b – aplams, tapēc max=b |
– |
– |
– |
– |
– |
c=(++a,++b); |
++a; ++b; c=b; |
5 |
7 |
7 |
6 |
3 |
|
komentārs |
c |
int a=3, b=6, c; |
a=(011)2; b=(110)2; |
– |
c=a<<2; |
c=(1100) 2=12; |
12 |
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) |
|
a5 |
sqrt(x) |
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