07 10 2009


include <iostream.h> //przykład wyk. oper % - modulo

include <conlo.h>

main()

{

int i;

for(i = 0;i<64;i = i + 1) {

lf( I % 8) cout « "\t" ; //Jeśli r. Jest nlezerowa to wypis

//tabulatora

else cout « "\n" ; //przejście do nowej linii

Cout >> I;

}

getch();

Operatory bitowe:

W języku C++ operacje można wykonywać na całych słowach (mówiliśmy o tym wcześniej) lub na poszczególnych bitach słowa. Do tego drugiego typu operacji służą, do tego operatory bitowe.

Operator:

Działanie:

Przykład:

&

bitowa koniunkcja

a = b & c;

|

bitowa alternatywa

a=b|c;

^

bitowa różnica symetryczna

a = b A c;

<<

przesunięcie w lewo

a = b « c;

>>

przesunięcie w prawo

a = b » c;

`

bitowa negacja

a = ~b

//Przykład operator} bitowe:

int a = Ox0f0f; // 0000 1111 0000 1111

int b = 0x0lTO; //0000 1111 1111 0000 int c;

c = a & b; // 0000 1111 0000 0000 iloczyn bitowy

c = a | b; //0000 1111 1111 1111 suma bitowa

c = a ^ b; // 0000 0000 1111 1111 różnica symetryczna

~a // 1111 0000 1111 0000 negacja

A << 2 //0011 1100 0011 1100 przesuniecie w lewo

A >> 2 // 0000 0011 11 00 0011 przesuniecie w prawo

Inkrementacia i dekrementacia:

■ dekrementacje - odjęcie 1;

■ inkrementacja - dodanie 1;

Przykład:

i = i + l;

//i++

j = j - i;

//}--

• operatory inkrementacji i dekrementacji mogą występować w dwóch odmianach: przedrostkowe: j ++i; -i przyrostkowej; i++ ; i— ;

» operator przedrostkowy ++i; --i; jest obliczany przed przypisaniem (nowej wartości pod i);

■ operator przyrostkowy jest obliczany po przypisaniu.

Przykład:

#include <iostream.h> //++i, i++

#include <conio.h>

void moain ()

{ int i=10, j=10;

clrscr () ;

cout « "i = " « i « endl

« "j = " « j « endl « endl;

i++; ++j;

cout « "i = " « i « endl

« "j = >> « j « endl « endl;

cout « "i = " << i-H- « endl

« "j = "<< ++j << endl « endl;

cout « "i = " << i << endl

« "j = " « j « endl;

getch () ;

Pozostałe operatory 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 I b

^= a^=b a = a^b

Wyrażenie warunkowe (nie instrukcja):

(warunek)? wartość1 : wartość2

Przykład: cout << ((i>5)? 15:20)

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

include <iostream.h> // wyrażenie warunkowe

include <conio.h>

main ()

{

int i;

i = 4;

cout << ((i>5)? 5:10) << endl;

i = 6;

cout << ((i>5)? 15:20) << endl;

getch();

}

Operator Sizeof:

Sizeof (nazwa_typu) //również własne typy

Sizeof (nazwa_obiektu) //np. zmienne

Program

Operator rzutowania:

(nazwa_typu) obiekt lub nazwa_typu(obiekt)

#include <conio.h>

#include <iostream.h>

mainO

{

int a = 85;

char b;

cout << "a= " << a << endl;

b = (char) a; // b = 'U'

cout << "b-- " << b << endl;

b + 'A';

a = (int b; // a = 65

cout << "a—” << a << endl;

getch();

}

Funkcje:

Funkcja jest to podprogram - fragment programu - grupujący instrukcje. Wprowadza się je w celu:

- łatwego powtarzania pewnego cyklu obliczeń (za pomocą, funkcji tworzymy jakby własne obszerne „instrukcje")

- zwiększenia przejrzystości programu

W języku C+ wszystkie podprogramy są funkcjami.

Funkcję wywołuje się przez podanie jej nazwy i w nawiasie (ewentualnych) argumentów.

Program

Przykłady deklaracji funkcji:

fłoat pole_kwadratu( float bok );

float pole_kwadratu( float); // też poprawnie

void fun( int a, float b, char C ); // f. nie zwraca wartości

int przypadek( void ); // brak argumentu

void ppp(); // brak argumentu, nie zwraca wartości

void cc(...); //argumenty? Określi się w definicji funkcji

Przykład definicji funkcji:

float pole_kwadratu( float bok ) // Uwaga: brak średnika

{

return bok*bok; // zwracanie wartości przez nazwę funkcji

}

Uwagi:

- Funkcja ma swoją nazwę, która ją identyfikuje.

- Przed odwołaniem się do nazwy wymagana jest jej deklaracja. Deklaracja, ale nie koniecznie 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.

Program

Przesyłanie argumentów do funkcji:

■ przez wartość,

■ przez referencję,

■ przez wskaźnik (omówimy później).

Przesyłanie argumentów przez wartość:

W definicji funkcji występują parametry formalne.

Przy wywołaniu funkcji posługujemy się parametrami aktualnymi.

- Do funkcji (przy wywołaniu) przesyłane są tylko wartości parametrów aktualnych.

- Służą one do inicjalizacji parametrów formalnych (operacje wykonywane są na parametrach formalnych).

- Parametry formalne (i inne zadeklarowane w funkcji) są tworzone na stosie (tj. wydzielonym obszarze pamięci, po wyjściu z funkcji zawartość tych zmiennych jest niszczona, a przy kolejnym wejściu jest ona przypadkowa).

- Są one kopiami parametrów aktualnych. Pokazuje to przykład:

Program

Przesyłanie argumentów przez referencje (przezwisko):

- Przy przekazywaniu argumentów do funkcji przez referencje trzeba inaczej zadeklarować funkcję np: void Zamiana(int, int &);

Lub

voidł Zamiana (int x, int &y) ;

Wywołanie

Zamiana(a, b);

- Znak & powoduje, Ze zmienna globalna b i lokalna y zajmują to samo miejsce w pamięci operacyjnej. Inaczej słowo b w pamięci ma referencje (przezwisko) y w funkcji.

- Modyfikując y w funkcji lokalnej, zmieniamy b w funkcji nadrzędnej.

Program

Uwagi:

- Obiekt zdefiniowany na zewnątrz wszystkich funkcji ma zasięg globalny.

- Zmienne globalne umieszczone są w wydzielonym obszarze pamięci, który przed uruchomieniem programu jest zerowany.

- Zmienne lokalne zmiennymi automatycznymi.

- W momencie, gdy kończymy działanie bloku, 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.

Funkcje inline:

- Wywołanie funkcji wymaga czasu (kilka instrukcji na poziomie języka maszynowego by przejść w inne miejsce programu).

- Jest to istotne jeśli funkcje wykonuje się wiele razy.

- Jeśli funkcja jest krótka (w lini) to w celu przyspieszenia obliczeń używamy funkcji inline. - - Deklarujemy i definiujemy ją na początku programu (albo w pliku nagłówkowym).

- Przy jej wywołaniu kompilator umieści jej treść w miejscu wywołania.

Np. funkcja zaokrąglenia inline int zaok(float x)

{

return (x+0.5)

}

Wywołanie: j=zaok(z)+zaok(f)

Funkcje w programie składającym się z kilku plików:

- Jeśli program jest duży i nie mieści się w jednym pliku, to plik dzieli się na pliki mniejsze,

- Plik można dzielić na mniejsze w miejscu między definicjami funkcji,

- By korzystać w pliku B ze ziemnych (np Int a; float b; char c;) zadeklarowanych w pliku A, to trzeba w pliku B umieścić deklarację

extern int a ;

extern float b;

extern char c ;

(słowo extern informuje kompilator o tym, że zmienna a nicja może znajdować się w innym pliku)

Jeśli chcemy korzystać w pliku B z funkcji znajdujących się w pliku A to także musimy umieścić je w deklaracjach pliku B (nie trzeba dodawać słowa extern - jest ono domniemane).

Wygodnie jest umieścić wszystkie deklaracje funkcji (i deklaracje globalne) w specjalnym pliku - pliku nagłówkowym ( nazwa.h ) Plik ten jest bezpośrednio przed kompilacją włączany do pliku B.

To automatyczne wstawianie realizuje dyrektywa preprocesora ftnclude <nazwa.h>.

Dyrektywa include służy do wstawiania do programu plików z deklaracjami zmiennych i funkcji (np było już funkcji i/o).

Funkcje biblioteczne nie są częścią języka C++ Ktoś je napisał, a ponieważ były dobre, to zrobiono z nich standardowe biblioteki.

By z funkcji tych korzystać, trzeba dyrektywą include włączyć plik nagłówkowy z ich deklaracjami do programu - i można posługiwać się funkcjami jak swoimi.

Funkcje są zdefiniowane w pliku bibliotecznym (tam jest jej treść). Zawartość biblioteki jest dołączana do programu w procesie linkowania.

W celu ułatwienia korzystania z funkcji standardowych są one pogrupowane tematycznie.

Program



Wyszukiwarka

Podobne podstrony:
MPLP 264 07.10.2009, lp
21 Wstęp do temperacji 07 10 2009 An introduction to temperament
PLANOWANIE LOGISTYKI 4 10 2009
Podstawy logistyki 3 10 2009
Podstawy logistyki 4 10 2009
GOSPODARKA ZAPASAMI I MAGAZYNEM 18 10 2009
Aneks nr 2 Prospekt PKO BP 05 10 2009
10 2009 Twierdzenia mod n
Psychologia społeczna 07.03.2009, Uczelnia, Psychologia społeczna
07.10.12r. - Wykład -Taktyka i technika interwencji policyjnych i samoobrona, Sudia - Bezpieczeństwo
LOGIKA 25, Logika, 25.10.2009
SYSTEM OCHRON PRAWNEJ Wykla 17[1].10.2009, Dokumenty STUDIA SKANY TEXT TESTY, ADMINISTRACJA UNIWEREK
Wykład 5 ( 10 2009
fizjoterapia! 10 2009
05 10 2009
Wykład 2  10 2009
07 05 2009
07 10
FINANSE PRZEDSIĘBIORSTW WYKŁAD 1(07 10 2012)

więcej podobnych podstron