Wstęp
PODSTAWOWE POJĘCIA
Program notacja opisująca proces przekształcania danych wejścioŹwych w dane wyjściowe według pewnego algorytmu.
Dane wejściowe informacje dostarczone do programu przez użytkownika, w celu umożliwienia wykonania algorytmu
Dane wyjściowe są generowane przez program i stanowią wyniki działania programu.
Algorytm określa sposób przekształcania danych wejściowych w dane wyjściowe zgodnie z celem. Algorytm składa się z opisu:
• obiektów na których wykonywane są działania,
• działań realizujących cel algorytmu,
• kolejności działań.
Programowanie polega na zapisywaniu algorytmów w formie programów zrozumiałych dla komputera.
Kod źródłowy program napisany w języku takim jak Pascal lub C++,
czyli w języku algorytmicznym czytelny dla programisty,
Kod wynikowy program zapisany jako ciąg rozkazów i danych w kodzie maszynowym procesora (w postaci czytelnej dla komputera), najczęściej w postaci liczb kodu dwójkowego.
Proces tworzenia ( kodowania? ) programu:
edytor ( *.cpp ) kod źródłowy
kompilator ( *.obj ) kod wynikowy
linker ( *.exe ) kod wynikowy połączony z bibliotekami
debugger (step/watch) śledzenie działania, usuwanie błędów
Język C++ jest rozszerzeniem języka C :
• typy i zmienne referencyjne, unie anonimowe,
• operatory new i delete,
• funkcje przeciążone, funkcje z atrybutem inline,
• domyślne wartości parametrów funkcji,
• przekazywanie parametrów funkcji przez referencję,
• klasy i obiekty (programowanie obiektowe)
• wzorce
• obsługa wyjątków
ZAPIS PROGRAMU ZA POMOCĄ SCHEMATÓW BLOKOWYCH
void main( ) // najprostszy program w języku C / C++
{ }
#include < iostream.h > // wypisanie tekstu na ekranie (C++)
void main( void )
{
cout << ”Czesc ! To ja, twój komputer” ;
}
#include < iostream.h > // proste obliczenia - iloczyn liczb (C++)
void main( )
{
int liczba_1, liczba_2 ;
float wynik ;
cout << endl << ”To jest program obliczajacy iloczyn dwóch liczb ” << endl ;
cout << ”Podaj pierwsza liczbe X = ” ;
cin >> liczba_1 ;
cout << ”Podaj druga liczbe Y = ” ;
cin >> liczba_2 ;
wynik = liczba_1 * liczba_2 ;
cout << endl << ”Wynik obliczenia X * Y = ” << wynik << endl ;
}
#include < iostream.h > // cykliczne wykonywanie programu
void main( )
{
char znak;
do
{
instrukcje programu
cout << endl << ”Czy chcesz zakonczyc program ( T/N ) ? ” ;
cin >> znak ;
}
while( znak != ' t ' ) ;
cout << endl << ”Koniec programu ” ;
}
Proceduralna i obiektowa komunikacja z użytkownikiem
/* proceduralnie: C / C++ */
#include
void main(void)
{
printf(”Dzien ”);
printf(”dobry!\n”);
} // obiektowo: C++
#include
void main(void)
{
cout << ”Dzien ” ;
cout << ”dobry” << endl ;
}
#include dyrektywa dołączenia tekstu zawartego w pliku
stdio.h (StandardInputOutput) plik definicji funkcji Wej/Wyj
iostream.h (InputOutputStream) plik definicji strumieni obiektowych
main zastrzeżona nazwa głównej funkcji programu
void typ danej “pustej”
\n przejscie do nowego wiersza
\t znak tabulacji
\” znak cudzysłowu
\\ jeden znak \
endl manipulator przejścia do nowej linii
// 2 przyklad proceduralnie
#include
#include
int x,y,s;
void main(void)
{
clrscr();
printf (”Podaj x = ”);
scanf ( ”%d” , &x );
printf (”Podaj y = ”);
scanf ( ”%d” , &y );
s = x+y;
printf(”Suma x+y = %d\n”, s );
getch();
} // 2 przyklad obiektowo
#include
#include
int x,y,s;
void main(void)
{
clrscr();
cout << ”Podaj x = ” ;
cin >> x ;
cout <<”Podaj y = ” ;
cin >> y ;
s = x+y;
cout << ”Suma x+y=” << s << ’\n’ ;
getch();
}
Definiowanie zmiennych ustalenie nazwy, typu, rezerwacja pamięci
nazwa_typu nazwa_zmiennej ;
nazwa_typu zmienna_1, zmienna_2, zmienna_3 ;
Podstawowe typy:
Nazwa typu - Zawartość - Przedział wartości - Zajęt. pamięć
char znak -128 127 1 bajt
int liczba całkowita -32768 32767 2 bajty
long liczba całkowita -2147mln 2147mln 4 bajty
float liczba rzeczyw. 10-38 1038 (7cyfr) 4 bajty
double liczba rzeczyw. 10-308 10308 (15 cyfr) 8 bajtów
Modyfikatory typu:
signed ze znakiem (), int char
unsigned bez znaku, int char
short krótka (mniejsza), int
long długa (większa) int double
np. unsigned long int dluga_liczba_bez_znaku ;
Wartości domyślne: long = long int
int = signed int
char = signed char
Type Length Range
unsigned char 8 bits 0 255
char 8 bits -128 127
enum 16 bits -32,768 32,767
unsigned int 16 bits 0 65,535
short int 16 bits -32,768 32,767
int 16 bits -32,768 32,767
unsigned long 32 bits 0 4,294,967,295
long 32 bits -2,147,483,648 2,147,483,647
float 32 bits 3.4 * (10**-38) 3.4 * (10**+38)
double 64 bits 1.7 * (10**-308) 1.7 * (10**+308)
long double 80 bits 3.4 * (10**-4932) 1.1 * (10**+4932)
OPERATORY
operatory arytmetyczne: + dodawanie
odejmowanie
mnożenie
/ dzielenie
% reszta z dzielenia
operatory przypisania: = zwykłe przypisanie x = 2;
+= przypisanie sumy x+=2; x = x + 2;
= przypisanie różnicy x=2; x = x 2;
= przypisanie iloczynu x=2; x = x 2;
/= przypisanie ilorazu x /=2; x = x / 2;
%= przypisanie reszty x%=2; x = x % 2;
operatory inkrementacji i dekrementacji:
zmienna++ inkrementacja zmiennej po wyliczeniu wyrażenia
++zmienna inkrementacja zmiennej przed wyliczeniem wyrażenia
zmienna dekrementacja zmiennej po wyliczeniu wyrażenia
zmienna dekrementacja zmiennej przed wyliczeniem wyrażenia
np. int x, y = 1;
x = y ; rezultat: x=2, y=2 x = y ; rezultat: x=1, y=2
operatory relacyjne: == równe
!= różne
< mniejsze
> większe
<= mniejsze lub równe
>= większe lub równe
operatory logiczne: && koniunkcja (AND)
|| alternatywa (OR)
! negacja (NOT)
bitowe operatory logiczne: & bitowa koniunkcja (AND)
| bitowa alternatywa (OR)
^ bitowa różnica symetryczna (XOR)
<< przesunięcie bitów w lewo
>> przesunięcie bitów w prawo
~ negacja bitów
Priorytety operatorów w języku C:
Operator Opis Przykład
( ) wywołanie funkcji sin()
[ ] element tablicy tab[10]
. element struktury osoba.nazwisko
wskazanie elemenu struktury wsk_osobynazwisko
! negacja logiczna if( ! (x max) ) kontynuuj;
~ negacja bitowa ~(001101) (110010)
& operator referencji (adres elementu) wsk_x = &x
operator dereferencji wsk_x = 10
(type) zmiana typu (typecast) (double) 10 10.0
sizeof rozmiar zmiennej lub typu (w bajtach) sizeof( int ) 2
mnożenie
/ dzielenie
% operacja modulo (reszta z dzielenia) if( x%2 == 0 ) parzyste;
mniejszy niż if( liczba max ) max liczba;
mniejszy lub równy
wiekszy niż
wiekszy lub równy
równy
! nierówny (różny od)
& iloczyn bitowy
^ suma bitowa modulo (różnica symetryczna)
| suma bitowa
&& iloczyn logiczny
|| suma logiczna
? : wyrażenie warunkowe