c++ wykłady, Wyc 3

background image

Operatory

Operatory

background image

Operatory arytmetyczne:

Operatory arytmetyczne:

Operator Działanie

Przykład

+

dodawanie

a = b

+ c;
-

odejmowanie

a = b - c;

*

mnożenie

a = b * c;

/

dzielenie

a = b / c;

%

reszta z dzielenia (modulo)

a = b

% c;

Przykłady:

25 / 7

3

25 / 7.

3.571428

35. / 5

7.0

1 / 4

0

19 % 6

1

0 % 5

0

18 % 6

0

background image

Operatory relacji:

Operatory relacji:

Operator Działanie

Przykład

<

mniejszy

a < b

<=

mniejszy lub równy

a <= b

>

większy

a > b

>=

większy lub równy

a >= b

==

równy

a = = b

!=

nie równy

a != b

wszystkie

operatory

relacji

dwuargumentowe;

jeśli relacja jest

prawdziwa

, to jej wartością

jest

1

;

w

przeciwnym przypadku

wartością relacji

jest

0

.

background image

Operatory logiczne:

Operatory logiczne:

Operator Działanie

Przykład

!

negacja

! a

&&

koniunkcja (iloczyn logiczny)

a &&

b
||

alternatywa (suma logiczna)

a || b

wyrażenia połączone operatorami

&&

i

||

zawsze

są wartościowane od strony lewej do

prawej

;

kompilator oblicza wartość wyrażenia dotąd,

dopóki na pewno nie wie jaki będzie wynik.

( a == 0 )

&&

( m == 5 )

&&

( x >

23 )

background image

Operatory bitowe:

Operatory bitowe:

Operator Działanie

Przykład

&

bitowa koniunkcja

a = b

& c;
|

bitowa alternatywa

a = b

| c;
^

bitowa różnica symetryczna

a = b

^ c;
<<

przesunięcie w lewo

a = b <<

c;
>>

przesunięcie w prawo

a = b

>> c;
~

bitowa negacja

a = ~b

background image

Inkrementacja i

Inkrementacja i

dekrementacja:

dekrementacja:

inkrementacja

-

dodanie

1;

dekrementacje

-

odjęcie

1;

Przykład:

i = i + 1; //

i ++

j = j - 1;

//

j - -

operatory

inkrementacji

i

dekrementacji

mogą występować w dwóch odmianach:

przedrostkowej

i

przyrostkowej

;

i++

;

i--

;

++i

;

--i

;

operator

przedrostkowy

jest obliczany

przed przypisaniem;

operator

przyrostkowy

jest obliczany po

przypisaniu.

background image

#include <iostream.h>
#include <conio.h>

void main

()

{

int

i=10, j=10;

clrscr();
cout

<<

"

i =

"

<<

i

<<

endl

<<

"

j =

"

<<

j

<<

endl

;

i++; ++j;
cout

<<

"

i =

"

<<

i

<<

endl

<<

"

j =

"

<<

j

<<

endl

;

cout

<<

"

i =

"

<<

i++

<< endl

<<

"

j =

"

<<

++j

<< endl

;

cout

<<

"

i =

"

<<

i

<< endl

<<

"

j =

"

<<

j

<< endl

;

}

Przykład:

i =

10

j =

10

i =

11

j =

11

i =

11

j =

12

i =

12

j =

12

background image

Pozostałe operatory

Pozostałe operatory

przypisania:

przypisania:

Operator Zapis skrócony

Zapis rozwinięty

+=

a += b;

a = a + b;

- =

a - = b;

a = a - b;

*=

a *= b;

a = a * b;

/=

a /= b;

a = a / b;

%=

a %= b;

a = a % b;

<<=

a <<= b;

a = a << b;

>>=

a >>= b;

a = a >> b;

&=

a &= b;

a = a & b;

|=

a |= b;

a = a | b;

^=

a ^= b;

a = a ^ b;

background image

Wyrażenie warunkowe:

Wyrażenie warunkowe:

(

warunek

) ?

wartość1

:

wartość2

( i > 5) ? 15 : 20

c = ( x > y ) ? 17 : 56;

Przykład:

background image

Operator

Operator

sizeof

sizeof

:

:

sizeof

(

nazwa_typu

)

sizeof

(

nazwa_obiektu

)

Operator

Operator

rzutowania

rzutowania

:

:

(

nazwa_typu

)

obiekt

lub

nazwa_typu

(

obiekt

)

int

a = 85;

char

b;

b = (

char

) a; //

b =

‘U’

background image

Przecinek to też operator

Przecinek to też operator

X = 1, 2, 3, 4;

// x == 1

Uwaga na konstrukcję Tab[i ,
j] !!!

To nie jest to samo co Tab[ i ]
[ j ]

Kiedy to się może przydac?

Tam gdzie możemy umieścić tylko jedną
instrukcję

for(

i=1, j=10

; i<=j;

i++, j+=2

)

cout << ”i=” << i << ”j=” << j <<

endl;

background image

Funkcje

Funkcje

Funk_3

main

( )

{

instrukcja_1;

Funk_1

( );

instrukcja_2;

Funk_2

( );

instrukcja_3;

Funk_3

( );

instrukcja_4;

}

Program

return

return

return

Funk_4

( )

return

Funk_1

Funk_2

Funk_4

background image

#include <iostream.h>
#include <conio.h>

int

kukulka (

int

ile);

//******************************************************************
*

main

()

{
int

m = 30;

clrscr ();
cout

<<

"Zaczynamy"

<<

endl

;

m = kukulka (2);
cout

<<

"\nNa koniec m = "

<<

m;

return

0;

}

//******************************************************************
*

int

kukulka (

int

ile)

{
int

i;

for

(i = 0; i < ile; i++)

cout

<<

"Ku-ku! "

;

return

77;

}

Zaczynamy

Ku-ku! Ku-ku!

Na koniec m =

77

background image

Przykład:

Przykład:

Zdefiniuj funkcję:

3

2

2

)

,

(

y

x

y

x

F

i użyj do obliczeń wyrażeń:

abc

p

r

p

a

p

a

c

b

a

q

b

a

p

)

1

1

ln(

)

(

)

(

34

.

0

)

(

3

2

3

2

2

3

2

2

background image

#include <iostream.h>
#include <conio.h>
#include <math.h>

float

F(

float

x,

float

y);

//--------------------------------------

void

main()

{

float

a, b, c, p, q, r;

clrscr();
cout

<<

"

a =

"; cin

>>

a;

cout

<<

"

b =

"; cin

>>

b;

cout

<<

"

c =

"; cin

>>

c;

p = F(a, b);
q = (a + b)*c + 0.34*F(a+p, a-p);
r = log(1 + F(1, p)) + a*b*c;
cout.width(10);
cout.precision(2);
cout

<<

"

\np =

"

<<

p

<<

"

\nq =

"

<<

q;

cout

<<

"

\nr =

"

<<

r;

}

//--------------------------------------

float

F(

float

x,

float

y)

{

return

pow(x*x + y*y, 1./3);

}

3

2

2

)

,

(

y

x

y

x

F

abc

p

r

p

a

p

a

c

b

a

q

b

a

p

)

1

1

ln(

)

(

)

(

34

.

0

)

(

3

2

3

2

2

3

2

2

background image

Uwagi:

Uwagi:

Funkcja

ma swoją nazwę

, która ją

identyfikuje.

Przed odwołaniem się do nazwy wymagana
jest jej deklaracja

. Deklaracja, ale

niekoniecznie definicja.

Sama

funkcja może być zdefiniowana

później

;

Wywołanie funkcji, to

napisanie jej nazwy

wraz z listą argumentów przesyłanych do
funkcji

, ujętych w nawiasy okrągłe.

background image

Przesyłanie

Przesyłanie

argumentów

argumentów

do

do

funkcji:

funkcji:

przez wartość

przez referencję

background image

#include <iostream.h>
#include <conio.h>

void

Zamiana(

int

,

int

);

//--------------------------------

int

main()

{

int

a, b;

clrscr();
cout

<<

"

a =

"; cin

>>

a;

cout

<<

"

b =

"; cin

>>

b;

Zamiana (a, b);
cout

<<

"\nTeraz:

\n";

cout

<<

"

a =

"

<<

a

<<

endl

;

cout

<<

"

b =

"

<<

b

<<

endl

;

cout

<<

endl

;

return

0;

}

a =

10

b =

20

Przed

zamianą:
x =

10

y =

20

Po

zamianie:
x =

20

y =

10

Teraz:
a =

10

b =

20

background image

//-- przesyłanie argumentów przez

wartość

!!!

void

Zamiana(

int

x,

int

y)

{

int

z;

cout

<<

"

\nPrzed zamianą:\n

";

cout

<<

"

x =

"

<<

x

<<

endl

;

cout

<<

"

y =

"

<<

y

<<

endl

;

z = x;
x = y;
y = z;
cout

<<

"

\nPo zamianie:\n

";

cout

<<

"

x =

"

<<

x

<<

endl

;

cout

<<

"

y =

"

<<

y

<<

endl

;

}

Przed
zamianą:

x =

10

y =

20

Po zamianie:

x =

20

y =

10

background image

#include <iostream.h>
#include <conio.h>

void

Zamiana(

int

&,

int

&);

//--------------------------------

void

main

()

{

int

a, b;

clrscr();
cout

<<

"

a =

"; cin

>>

a;

cout

<<

"

b =

"; cin

>>

b;

Zamiana (a, b);
cout

<<

"

\nTeraz:\n

";

cout

<<

"

a = "

<<

a

<<

endl

;

cout

<<

"

b = "

<<

b

<<

endl

;

cout

<<

endl

;

}

a =

10

b =

20

Przed

zamianą:
x =

10

y =

20

Po

zamianie:
x =

20

y =

10

Teraz:
a =

20

b =

10

background image

// przesyłanie argumentów przez

referencję

void

Zamiana(

int

&x,

int

&y)

{

int

z;

cout

<<

"

\nPrzed zamianĄ:\n

";

cout

<<

"

x =

"

<<

x

<<

endl

;

cout

<<

"

y =

"

<<

y

<<

endl

;

z = x;
x = y;
y = z;
cout

<<

"

\nPo zamianie:\n

";

cout

<<

"

x =

"

<<

x

<<

endl

;

cout

<<

"

y =

"

<<

y

<<

endl

;

}

Przed
zamianą:

x =

10

y =

20

Po zamianie:

x =

20

y =

10

background image

Uwagi:

Uwagi:

Obiekt zdefiniowany na zewnątrz wszystkich

funkcji ma zasięg

globalny

.

Zmienne globalne

zakładane są w normalnym

obszarze pamięci, który przed uruchomieniem
programu jest zerowany.

Zmienne

lokalne

zmiennymi automatycznymi

.

W momencie, gdy kończymy blok, w którym

zmienne lokalne zostały powołane do życia,

automatycznie przestają istnieć

.

Obiekty automatyczne komputer przechowuje na

stosie

.

Należy pamiętać, że

zmienne

automatyczne nie

są zerowane

w chwili definicji.

Jeśli nie zainicjowaliśmy ich jakąś wartością, to

przechowują one wartości przypadkowe.

background image

Funkcje biblioteczne

background image

Funkcje obsługi ekranu i

klawiatury:

Nazwa funkcji
Składnia

Biblioteka

Znaczenie

clreol

void clreol (void);

conio.h

kasowanie linii, w

której znajduje

się kursor

poczynając od pozycji

kursora do

końca

clrscr

void clrscr (void);

conio.h

kasowanie ekranu

delline

void delline (void);

conio.h

usunięcie linii, w której

znajduje

kursor

gotoxy

void gotoxy (int x,
int y);

conio.h

pozycjonowanie

kursora

highvideo

void highvideo (void);

conio.h

zwiększenie

jaskrawości koloru

znaku

cdn.

background image

insline

void insline (void);

conio.h

wstawienie nowego

wiersza w

miejscu aktualnego

położenia

kursora

lowvideo

void lowvideo (void);

conio.h

zmniejszenie

jaskrawości koloru

znaku

normvideo

void normvideo (void);

conio.h

ustalenie

koloru tła i znaku,

jakie

obowiązywały na początku
programu (białe znaki na

czarnym tle)

textattr

void textattr (int atr);

conio.h

ustawienie

atrybutów znaku

textbackground

void textbackground
(int kolor);

conio.h

ustawienie

koloru tła

cdn.

background image

textcolor

void textcolor
(int kolor);

conio.h

ustawienie

koloru znaku

wherex

int wherex (void)

conio.h

określenie aktualnej

współrzędnej

X kursora

wherey

int wherey (void)

conio.h

określenie aktualnej

współrzędnej

Y kursora

window

void window (int xlg,
int ylg, int xpd,
int ypd );

conio.h

zdefiniowanie

okna tekstowego

background image

Funkcje matematyczne:

abs

int abs (int x);

stdlib.h

wartość
bezwzględna

argumentu
całkowitego

acos

double acos (double x);

math.h

arccos x

asin

double asin (double x);

math.h

arcsin x

atan

double atan (double x);

math.h

arctg x

atof

double atof (const char *s);

math.h

konwersja

łańcucha

znaków na

liczbę
zmiennopozycyjną

cdn.

background image

atoi

int atoi (const char *s);

math.h

konwersja

łańcucha

znaków na

liczbę

całkowitą

cos

double cos (double x);

math.h

cos x

cosh

double cosh (double x);

math.h

cosh x

div

div_t div (int licz, int mian);

stdlib.h

dzielenie dwóch liczb

całkowitych; jako
wynik otrzymuje się

iloraz oraz resztę z

dzielenia

exp

double exp (double x);

math.h

funkcja wykładnicza

e

x

cdn.

background image

log

double log (double x);

math.h

logarytm naturalny

log10

double log10 (double x)

math.h

logarytm

dziesiętny

pow

double pow (double x,
double y);

math.h

x

y

pow10

double pow (int p);

math.h

10

p

random

int random (int N);

stdlib.h

generowanie

liczb

losowych z

zakresu od

0 do N-1

randomize

void randomize (void)

stdlib.h

time.h

inicjalizacja

generatora

liczb

losowych

cdn.

background image

sin

double sin (double x)

math.h

sin

x

sinh

double sinh (double x);

math.h

sinh x

sqrt

double sqrt (double x);

math.h

pierwiastek
kwadratowy z x

tan

double tan (double x)

math.h

tg x

tanh

double tanh (double x);

math.h

tgh x


Document Outline


Wyszukiwarka

Podobne podstrony:
c++ wykłady, Wyc 5 add wskaznki
c++ wykłady, Wyc 2
c++ wykłady, Wyc 5
c++ wykłady, Wyc 6 struktury przec klasy
c++ wykłady, Wyc 1
c++ wykłady, Wyc 4
c++ wykłady, Wyc 5 add wskaznki
c++ wykłady, Wyc 2
Napęd Elektryczny wykład
wykład5
Psychologia wykład 1 Stres i radzenie sobie z nim zjazd B
Wykład 04
geriatria p pokarmowy wyklad materialy
ostre stany w alergologii wyklad 2003
WYKŁAD VII
Wykład 1, WPŁYW ŻYWIENIA NA ZDROWIE W RÓŻNYCH ETAPACH ŻYCIA CZŁOWIEKA
Zaburzenia nerwicowe wyklad
Szkol Wykład do Or

więcej podobnych podstron