Programowanie 2. Język C++. Wykład 1.

Wielkość: px
Rozpocząć pokaz od strony:

Download "Programowanie 2. Język C++. Wykład 1."

Transkrypt

1 1.1 Wstęp Obiekty stałe Obiekty statyczne Wskaźniki Referencje Wskaźniki do wskaźników Definiowanie własnych typów danych, polecenie typedef Typ wyliczeniowy enum Obszary nazw Zakres zmiennych Zmienne extern Obszary pamięci Wstęp Środowisko programistyczne Microsoft Visual Studio Środowisko programistyczne (development environment) jest to zbiór narzędzi niezbędnych do powstania programu komputerowego. W skład środowiska programistycznego wchodzą: urządzenia wykorzystywane do pisania i testowania programów komputerowych, oprogramowanie, programy firmware'owe, standardy i procedury tworzenia oprogramowania, dokumentacja oprogramowania. Etapy tworzenia pliku wykonywalnego 'exe': preprocesor, kompilator, linker. Preprocesor: wykonuje dyrektywy w kodzie zaczynające się od #. usuwa komentarz z kodu. Przykłady dyrektyw dla preprocesora: #include, dołączanie plików nagłówkowych, np. #include <nazwapliku>, #include "nazwapliku", #define, kopiowanie stringów, makr, #pragma, instrukcje dla kompilatora. Kompilator - tłumaczy kod źródłowy napisany np. w języku C++ na kod asemblerowy. MS VS 2008 kompiluje pliki *.cpp, *.h, wyniki kompilacji zapisuje do plików: *.obj. Linker: łączy pliki *.obj, *.lib, *.dll, generuje plik wykonywalny *.exe. Baza linkera znajduje się w pliku *.ilk Tryby kompilacji: debug, release. Kompilacja w trybie 'debug': baza programu generowana przez linker'a zawiera informacje o przebiegu kompilacji w trybie debug. Informacje zawarte są w pliku *.pdb. Podczas kompilacji w trybie 'release' nie są tworzone pliki *.pdb. 1

2 Definicja: rozwiązanie (solution) - to grupa projektów MS VS Struktura projektu Microsoft Visual Studio 2008, szablon aplikacji konsolowej. Katalog \projekt1\ projekt1.sln, plik zawiera informacje o konfiguracji i położeniu plików dla rozwiązania, projekt1.suo, plik zawiera konfigurację rozwiązania specyficzne dla danego użytkownika, projekt1.ncb *.cpp, pliki programu, projekt1.vcproj, plik w formacie zawiera xml, zawiera parametry konfiguracyjne projektu, projekt1.vcproj.nazwahosta.nazwauzytkownika.user, plik w formacie zawiera xml, zawiera parametry konfiguracyjne projektu specyficzne dla danego użytkownika, katalog \Debug\ lub \Release\ o Projekt1.obj, o Projekt1.ilk, o Projekt1.pdb. Konwencje zapisu programu w projekcie. Nazwy zmiennych, funkcji typów powinny być opisowe i składać się z minimum dwóch wyrazów. Każdy wyraz powinien zaczynać się do dużej litery. Przykład. int WielkoscBufora = 1024; int OtworzOknoDialogowe() Obiekty stałe powinny być nazywane dużymi literami const int WIELKOSC_BUFORA = 1024; Stałe znakowe #define WIELKOSC_BUFORA 1024 Na ćwiczeniach można stosować do zapisu programu notację węgierską. Zasady notacji węgierskiej. litery typ przykład nazwy zmiennej i int int iliczba; d double double dliczba; c char char clitera; st string string stimie; litery nazwa przykład nazwy obiektu klasy st CString CString stbufor; sz CSize CSize sztext Nazwa wskaźnika zaczyna się od małej litery p. int * pliczba; 2

3 1.2 Obiekty stałe Stałe dosłowne (literały), czyli stałe które mają wartość ale nie mają nazwy. Każdy literał ma przypisany typ, np. 0 ma typ int, ma typ double. Literał typu int można zapisać w układzie 10-tkowym, 8-mkowym, 16-tkowym, np. 20, // 10-tkowy 024, //8-mkowy 0x14 //16-tkowy Literałom można przypisać typ, np. unsigned, long, unsigned long: 128u unsigned 1L long 102UL, 102Lu unsigned long Stałe zmiennoprzecinkowe mają domyślny typ double, ale można przypisać im typ float F // oznacza f // oznacza L // oznacza // oznacza E0f // oznacza E-3F // oznacza E1L // oznacza e0 // oznacza 0 Stałe znakowe reprezentują znaki, np. 'a', '\n', '\?', Stałe tekstowe to stringi, np. "programowanie 2" Modyfikator const. const <typ> <nazwa obiektu> = <wartość obiektu>; Przykład 1. Obiekt const, wskaźnik, referencja, stały wskaźnik, stała referencja do stałego obiektu. const double PI = 3.14; const double * const cppi = &PI; const double * ppi = &PI; const double &rpi = PI; const double const &crpi = PI; double PII = ; const double * const cppii = &PII; double * const cppii2 = &PII; Własności: 1. Obiektom const nie można zmienić wartości. 2. Obiekty const muszą być zawsze zainicjowane. 3. Obiekty const mogą służyć do określania wielkości tablicy. 4. Obiekty const mają zasięg w pliku w którym są zdefiniowane. 3

4 1.3 Obiekty statyczne static <typ> <nazwa obiektu> = <wartość>; Przykład 1. Definicja obiektu statycznego. static int is = 100; Własności: 1. Lokalny obiekty typu static zachowuje swoją wartość po zakończeniu funkcji. 2. Obiekty typu static obowiązują w jednym pliku. 3. Do obiektów static nie można stosować modyfikatora extern. 4. Obiekty static nie mogą być argumentami funkcji. 5. Nie można używać w deklaracjach typedef. Przykład 2. Lokalny obiekty typu static zachowuje swoją wartość po zakończeniu funkcji (w01-01-static.cpp). void f() static int si = 0; int i = 0; cout << "si = " << ++si << "\t" << " i = " << ++i << endl; void main() f(); f(); // si = 10; // błąd, zmienna lokalna si = 1 i = 1 si = 2 i = 1 4

5 1.4 Wskaźniki Programowanie 2. Język C++. Wykład 1. Definicja. Wskaźnik jest zmienną która przechowuje adres innej zmiennej. Definicja wskaźnika na stosie. <typ> *<nazwa_wskaźnika> = &<nazwa_zmiennej>; Przykład 1. Wskaźnik px ma wartość adresu zmiennej x, czyli &x. int x = 0; int *px = &x; Definicja. Sterta (heap) obszar pamięci służący do dynamicznego alokowania pamięci. Dynamiczne alokowanie pamięci odbywa się za pomocą operatorów new, delete. Definicja wskaźnika na stercie. <typ> *<nazwa_wskaźnika> = new <konstruktor typu>; //... delete <nazwa_wskaźnika>; Przykład 2. Wskaźnik na stercie. int *p = new int; *p = 123; //... delete p; Własności: 1. Wskaźnikowi można zmienić wartość, czyli przypisać adres innej zmiennej. 2. Poprzez wskaźnik można zmienić wartość zmiennej na który wskazuje. 3. Referencję można inicjować wskaźnikiem. 4. Wskaźnik można inicjować referencją. Przykład 3. Zmiana wartości i przypisania wskaźnika. int x = 100; int y = 200; int *p = &x; *p = 101; // jaka jest wartość x? p = &y; // jaka jest wartość *p? 5

6 Odpowiedź. cout << x << endl; cout << *p << endl; Przykład 4. Inicjowanie wskaźnika referencją i referencji wskaźnikiem. int x = 100; int *p = &x; int &rx= *p; int *pp = &rx; Przykład 5. Inicjowanie wskaźnika innym wskaźnikiem - placement new, (w01-02-placement-new.cpp). int * p1 = new int(0); void main() int *p2= new (p1)int(200); // placement new // int *p2= new int(200); cout << "*p1 = " << *p1 << endl; cout << "*p2 = " << *p2 << endl; cout << " p1 = " <<(long)p1 << endl; cout << " p2 = " <<(long)p2 << endl; cout << "&p1 = " <<(long)&p1 << endl; cout << "&p2 = " <<(long)&p2 << endl; delete p1; delete p2; *p1 = 200 *p2 = 200 p1 = p2 = &p1 = &p2 = Przykład 6. Inicjowanie wskaźnika stałym obiektem o wartości 0. const int cx = 0; int *pp = cx; 6

7 Przykład 7. Inicjowanie wskaźnika adresem zmiennej o typie wskaźnika. double x = 0; int *p = &x; // błąd unsigned double x = 99; double *p = &x; // błąd double x = 99; const double *p = &x; // ok 7

8 1.5 Referencje Programowanie 2. Język C++. Wykład 1. Definicja. Referencja jest typem danych który przechowuje adres zmiennej i której nie można zmienić przypisania Referencja jest stałym wskaźnikim do zmiennej, którego adres pokrywa się z adresem zmiennej. Referencja nie zajmuje pamięci. <typ> &<nazwa_referencji> = <nazwa_zmiennej>; Przykład 1. Definicja referencji. int x = 0; int &rx = x; Własności: 1. Referencja musi być przypisana do zmiennej (musi być zainicjowana). 2. Referencji nie można przypisać wartości NULL. 3. Referencji nie można zmienić przypisania. 4. Referencji można przypisać wartość. 5. Referencja musi być zainicjowana takim samym typem jaki jest typ referencji. Referencja typu const może być zainicjowana podobnym typem do typu referencji. Przykład 2. Do pkt.5. const int x = 321; int &r = x; // error C2440: 'initializing' : cannot // convert from 'const int' to 'int &' const int &r = x; // ok int x = 321; const int &r = x; //ok const int &rr = 100; //ok 8

9 Przykład 3. Użycie referencji (w01-03-referencje.cpp). #include<iostream> void main() int i = 10; int &ri = i; cout <<" i = " << i << endl; cout <<" ri = " << ri << endl; cout <<" &i = " << (long)&i << endl; cout <<"&ri = " << (long)&ri << endl; i = 100; cout <<" ri = " << ri <<endl; ri = 50; cout <<" i = " << i <<endl; const int &cr = 100; cout <<" rc = " << cr <<endl; cout <<"&rc = " << &cr <<endl; cout <<"&rc = " << (long)&cr <<endl; i = 10 ri = 10 &i = &ri = ri = 100 i = 50 rc = 100 &rc = 00FFF90C &rc =

10 Przykład 4. Przypisanie zmiennej x wartości zmiennej y. Adres zmiennych x, y nie zmienia się (w referencje.cpp). void main () int x = 321; int y = 123; int &r = x; r = y; cout << x << endl; cout << &x << endl; cout << &r << endl; cout << &y << endl; B9FA38 00B9FA38 00B9FA34 10

11 1.6 Wskaźniki do wskaźników <typ> **<nazwa_wskaźnika_do_wskaźnika> = &< nazwa_wskaźnika>; Przykład 1. Wskaźnik ppx ma wartość adresu wskaźnika px, czyli wartość &px. int x = 0; int *px = &x; int **ppx = &px; Przykład 2. Wskaźnik do wskaźnika na stosie (w01-05-wskaznik2wskaznik-stos.cpp). #include<iostream> int main() int x = 0; int *px = &x; int **ppx = &px; cout << "x = " << x << endl; cout << "**ppx = " << **ppx << endl; cout << "*px = " << *px << endl << endl; cout << "&x = " << &x << endl; cout << "px = " << px << endl; cout << "&**ppx = " << &**ppx << endl; cout << "&*px = " << &*px << endl << endl; cout << "*ppx = " << *ppx << endl; cout << "&px = " << &px << endl; cout << "ppx = " << ppx << endl << endl; cout << "&ppx = " << &ppx << endl; return 0; x = 0 **ppx = 0 *px = 0 &x = 006DFB04 px = 006DFB04 &**ppx = 006DFB04 &*px = 006DFB04 *ppx = 006DFB04 &px ppx &ppx = 006DFAF8 = 006DFAF8 = 006DFAEC 11

12 Przykład 3. Wskaźnik do wskaźnika na stercie (w01-06-wskaznik2wskaznik-sterta.cpp). void main( ) int ** pp = new int *; *pp = new int; **pp = 100; cout << " **pp = " << **pp << endl; cout << "&**pp = " << &**pp << endl; cout << " *pp = " << *pp << endl; cout << " &*pp = " << &*pp << endl; cout << " pp = " << pp << endl; cout << " &pp = " << &pp << endl; delete *pp; delete pp; **pp = 100 &**pp = 0109A378 *pp = 0109A378 &*pp = 0109A328 pp = 0109A328 &pp = 00C5F804 Przykład 4. Wskaźnik do wskaźnika, funkcja main() (w01-07-main.cpp). Program należy uruchomić z konsoli z kilkoma parametrami, np. \>nazwa_programu.exe aa bb cc dd ee #include<iostream> void main(int argc, char **argv) int i = 0; for(i=0; i<argc; i++) cout << "argv:" << i << "= " << argv[i] << endl; // to samo co wyżej inaczej for(i=0; i<argc; i++, argv++) cout << "argv:" << i << "= " << *argv << endl; 12

13 Przykład 5. Wskaźnik do referencji (w01-08-wsk-ref.cpp). void main() char *pc = 0; pc = "abcdef"; char &rc = *pc; cout <<"pc= " << pc << endl; cout <<"rc= " << rc << endl; cout <<"rc= " << ++rc << endl; rc+=2; cout <<"rc= " << rc << endl; pc= abcdef rc= a rc= b rc= c Przykład 6. Wskaźnik void nie wskazuje na żaden typ (w01-09-wskaznik-void.cpp). void main() int i = int(10); // konstruktor typu int, inicjuje zmienną nadając wartość 10 int *pi = 0; pi = &i; cout << " i =" << i << endl; cout << "*pi =" << *pi << endl; void *pv = pi; cout << " pv =" << pv << endl; cout << " pi =" << pi << endl; double d = 1.1; double *pd = &d; pv = pd; cout << " pv =" << pv << endl; cout << " pd =" << pd << endl; double **ppd = &pd; 13

14 Przykład 7. Wskaźnik typu double (w01-10-wsk2wsk-double.cpp). void main () double x = 321; double *px = &x; double &rx = x; double ** ppx = &px; cout << x << endl; cout << rx << endl; cout << *px << endl; cout << **ppx << endl << endl; cout << &x << endl; cout << &rx << endl; cout << px << endl; cout << &px << endl; cout << ppx << endl; cout << &ppx << endl; cout << *ppx << endl<< endl; BFEB8 005BFEB8 005BFEB8 005BFEB0 005BFEB0 005BFEB4 005BFEB endl; cout << sizeof(x) << endl; cout << sizeof(rx) << endl; cout << sizeof(px) << endl; cout << sizeof(ppx) << endl<< 14

15 Przykład 8. Tablica int, wskaźnik do tablicy (w01-11-wsk2tablicy.cpp). #include<iostream> void main() const int wt = 3; int tab[wt] = 22, 33, 44; cout << "&tab cout << "tab cout << "*tab = " << &tab << endl; = " << tab << endl; = " << *tab << endl; cout << "tab[0] = " << tab[0] << " adres " << &tab[0] << endl; cout << "tab[1] = " << tab[1] << " adres " << &tab[1] << endl; cout << "tab[2] = " << tab[2] << " adres " << &tab[2] << endl << endl; int *ptab = &tab[0]; cout << "&ptab = " << &ptab << endl; cout << "ptab = " << ptab << endl; cout << "*ptab = " << *ptab << endl; cout << "++ptab = " << ++ptab << endl; cout << "*ptab = " << *ptab << endl; cout << "++ptab = " << ++ptab << endl; cout << "*ptab = " << *ptab << endl; &tab = 0030F900 tab = 0030F900 *tab = 22 tab[0] = 22 adres 0030F900 tab[1] = 33 adres 0030F904 tab[2] = 44 adres 0030F908 &ptab = 0030F8FC ptab = 0030F900 *ptab = 22 ++ptab = 0030F904 *ptab = 33 ++ptab = 0030F908 *ptab = 44 15

16 Przykład 9. Zmienna typu char, referencja, wskaźniki. 16

17 1.7 Definiowanie własnych typów danych, polecenie typedef Deklaracja nowego typu zmiennej. typedef <typ> <nazwa_typu>; Przykład 1. Definiowanie typu const unsigned int( w01-12-typedef.cpp). typedef const unsigned int cui; void main () cui x = 2; 17

18 1.8 Typ wyliczeniowy enum enum <nazwatypu> <elementlisty1[=wartość],, <elementlistyn[=wartość]> ; Własności: 1. Domyślna wartość pierwszego elementu jest 0, następnego 1, itd.. 2. Typ wyliczeniowy enum jest typu const. 3. Typ wyliczeniowy enum można zagnieżdżać w klasach. Przykład 1. Deklaracje typu wyliczeniowego. enum DzienTygodnia Ni, Po, Wt, Sr, Czw, Pi, So ; enum boool falsz, prawda ; Przykład 2. Przypiasanie zmiennej wartości typu DzienTygodnia. enum DzienTygodnia Ni, Po, Wt, Sr, Czw, Pi, So ; int x = Czw; DzienTygodnia dzien; dzien = Sr; DzienTygodnia dzien1 = Po; DzienTygodnia dzien2; dzien2 = dzien1; Przykład 3. Typ wyliczeniowy enum (w01-13a-enum.cpp). enum DzienTygodnia Ni, Po, Wt, Sr, Czw, Pi, So ; void main() DzienTygodnia dzien; int x = 0; // dzien = x; //blad dzien = DzienTygodnia(x); if (dzien == Ni dzien == So) cout << "dzien wolny" << endl; else cout << DzienTygodnia(x) << endl; 18

19 Przykład 4. Numerowanie elementów tablicy za pomocą typy wyliczeniowego enum (w01-13b-enum.cpp). void main() enum Dni Niedziela, Poniedzialek, Wtorek, Sroda, Czwartek, Piatek, Sobota, LiczbaDni ; int Tab[LiczbaDni] = 11, 13, 15, 17, 19, 21, 23; cout << "Tab[Niedziela] = " << Tab[Niedziela] << endl; cout << "Tab[Wtorek] = " << Tab[Wtorek] << endl; cout << "LiczbaDni = " << LiczbaDni << endl; Tab[Niedziela] = 11 Tab[Wtorek] = 15 LiczbaDni = 7 19

20 1.9 Obszary nazw namespace <nazwa_obszaru> <deklaracje elementów obszaru nazw> Przykład 1.Definicja obszaru nazw. namespace obszn1 Własności: 1 Obszary nazw można zagnieżdżać, 2 Do deklaracji użycia obszaru nazw stosuje się dyrektywę using, np. using namespace <nazwa_obszaru>; 4. Dostęp do elementów obszaru nazw można uzyskać za pomocą operatora zakresu :: 5. Nazwa zadeklarowana poza obszarem nazw, blokiem, klasą ma zakres globalny. 6. Obszar nazw może nie mieć nazwy. Przykład 2. Dostęp do elementów obszaru nazw (w01-14-namespace.cpp). //int iliczba = 9; // zasłania iliczba = 10 namespace int iliczba = 10; namespace ObszN2 int iliczba = 100; namespace ObszN3 int iliczba = 1000; void main( ) int iliczba = 1; cout << iliczba << endl; cout << ::iliczba << endl; cout << ObszN2::iLiczba << endl; cout << ObszN2::ObszN3::iLiczba << endl; 1 10 //gdy int iliczba = 9; odkomentowana to widzimy

21 1.10 Zakres zmiennych Przykład 1. Zakres zmiennych (w01-15-scope.cpp). int n = 0; void main() int n1 = 1; cout <<"n = " << n <<endl; int n2 = 2; int n3 = 3; cout <<"n = " << n <<endl; cout <<"n1 = " << n1 <<endl; cout <<"n2 = " << n2 <<endl; cout <<"n3 = " << n3 <<endl; // error C2065: 'n3' : undeclared identifier cout <<"n2 = " << n2 <<endl; // error C2065: 'n2' : undeclared identifier n = 0 n = 0 n1 = 1 n2 = 2 21

22 1.11 Zmienne extern Deklaracja zmiennej typu extern, deklarowana zmienna jest już zdefiniowana w innym pliku. extern <typ> <nazwa_zmiennej>; Przykład 1. Deklaracja extern. extern int ig; Przykład 2. Użycie deklaracji extern (w01-16a-extern.zip). Plik ca.cpp Plik ca1.cpp void f(); void g(); int i = 30; void main() int ii = 50; f(); g(); // int i = 700; // błąd extern int i; int ii = 100; void f() cout << "i = " << i << endl; void g() cout << "ii = " << ii << endl; Zobaczymy: i = 30 ii = 100 Przykład 3. Użycie deklaracji extern (w01-16b-extern.zip). Jaki jest wynik działania programu? Plik ca.cpp Plik ca.h #include "ca.h" int ix = NULL; void main() int ix = 12; cout << ix << endl; cout << ::ix << endl; #ifndef _ca_h_ #define _ca_h_ extern int ix; void f() ix = 47; cout << "f(), ix = " << ix << endl; #endif _ca_h_ f(); cout << ix << endl; cout << ::ix << endl; Odp f(), ix =

23 1.12 Obszary pamięci Stos, sterta, obszar rejestrów, obszar kodu. Obszar zmiennych globalnych jest obszarem nazw, nie obszarem w pamięci ram. Przykład. int g = 100; // zmienne globalna, globalny obszar nazw // blad, zmienna register nie moze byc zmienna globalną // register int reg2 = 99; void main() int s = 300; // zmienna na stosie int * ps = &s; // wskaznik na stosie register int reg = 400; // zmienna w obszarze rejestrow cout << "&g = " << (long)&g << endl; cout << "&s = " << (long)&s << endl; cout << "&ps = " << (long)&ps << endl; cout << "&reg = " << (long)&reg << endl; int *p = new int(500); // zmienna na heapie (sterta) cout << "p = " << (long)p << endl; cout << "&p = " << (long)&p << endl; delete p; ps = new int(600); cout << "ps = " << (long)ps << endl; cout << "&ps = " << (long)&ps << endl; delete ps; &g = &s = &ps = &reg = p = &p = ps = &ps =

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02 METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się

Bardziej szczegółowo

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik Wykład VII Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Kompilacja Kompilator C program do tłumaczenia kodu źródłowego na język maszynowy. Preprocesor

Bardziej szczegółowo

Podstawy programowania skrót z wykładów:

Podstawy programowania skrót z wykładów: Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace

Bardziej szczegółowo

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 16 kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 16 kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27 Programowanie w C++ Wykład 5 Katarzyna Grzelak 16 kwietnia 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27 Pojęcia z poprzednich wykładów Tablica to ciag obiektów tego samego typu, zajmujacy ciagły

Bardziej szczegółowo

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych. Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych. 1. Przygotowanie środowiska programistycznego. Zajęcia będą

Bardziej szczegółowo

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 2. Poprawna definicja wskażnika b to: a) float *a, **b = &a; b) float

Bardziej szczegółowo

#line #endif #ifndef #pragma

#line #endif #ifndef #pragma 8.1 Instrukcje preprocesorowe... 1 8.1.1 Instrukcja #define... 1 8.1.2 Instrukcje #pragma... 2 8.2 Polecenie _asm... 3 8.3 Polecenie declspec... 4 8.4 Definiowanie makr... 5 8.5 Programy wieloplikowe,

Bardziej szczegółowo

Programowanie obiektowe w języku C++ dr inż. Jarosław Forenc

Programowanie obiektowe w języku C++ dr inż. Jarosław Forenc Rok akademicki 2016/2017, Wykład nr 4 2/45 Plan wykładu nr 4 Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia stacjonarne I stopnia Rok akademicki 2016/2017

Bardziej szczegółowo

Programowanie 2. Język C++. Wykład 3.

Programowanie 2. Język C++. Wykład 3. 3.1 Programowanie zorientowane obiektowo... 1 3.2 Unie... 2 3.3 Struktury... 3 3.4 Klasy... 4 3.5 Elementy klasy... 5 3.6 Dostęp do elementów klasy... 7 3.7 Wskaźnik this... 10 3.1 Programowanie zorientowane

Bardziej szczegółowo

Wykład. Materiały bazują częściowo na slajdach Marata Dukhana

Wykład. Materiały bazują częściowo na slajdach Marata Dukhana Wykład Materiały bazują częściowo na slajdach Marata Dukhana Języki programowania Kompilowane np. C, C++, Pascal Interpretowane np. JavaScript, PHP, Python, VBA Pośrednie np. Java, C# Znane kompilatory

Bardziej szczegółowo

Wykład I. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Wykład I. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej Wykład I - semestr II Kierunek Informatyka Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2015 c Copyright 2015 Janusz Słupik Zaliczenie przedmiotu Do zaliczenia przedmiotu niezbędne jest

Bardziej szczegółowo

Wykład II Tablice (wstęp) Przykłady algorytmów Wstęp do języka C/C++

Wykład II Tablice (wstęp) Przykłady algorytmów Wstęp do języka C/C++ Podstawy programowania Wykład II Tablice (wstęp) Przykłady algorytmów Wstęp do języka C/C++ 1 dr Artur Bartoszewski - Podstawy programowania, sem. 1- WYKŁAD Część I Wstęp do struktur danych: Tablice 2

Bardziej szczegółowo

Projektowanie klas c.d. Projektowanie klas przykład

Projektowanie klas c.d. Projektowanie klas przykład Projektowanie klas c.d. ogólne wskazówki dotyczące projektowania klas: o wyodrębnienie klasy odpowiedź na potrzeby życia (obsługa rozwiązania konkretnego problemu) o zwykle nie uda się utworzyć idealnej

Bardziej szczegółowo

IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi

IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi EGZAMIN PIERWSZY (25 CZERWCA 2013) JĘZYK C++ poprawiam ocenę pozytywną z egzaminu 0 (zakreśl poniżej x) 1. Wśród poniższych wskaż poprawną formę definicji

Bardziej szczegółowo

Podstawy programowania. Wykład: 5. Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Podstawy programowania. Wykład: 5. Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD programowania Wykład: 5 Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD programowania w C++ Instrukcje sterujące 2 dr Artur Bartoszewski

Bardziej szczegółowo

Część 4 życie programu

Część 4 życie programu 1. Struktura programu c++ Ogólna struktura programu w C++ składa się z kilku części: część 1 część 2 część 3 część 4 #include int main(int argc, char *argv[]) /* instrukcje funkcji main */ Część

Bardziej szczegółowo

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

Temat 1: Podstawowe pojęcia: program, kompilacja, kod Temat 1: Podstawowe pojęcia: program, kompilacja, kod wynikowy. Przykłady najprostszych programów. Definiowanie zmiennych. Typy proste. Operatory: arytmetyczne, przypisania, inkrementacji, dekrementacji,

Bardziej szczegółowo

Język C++ Różnice między C a C++

Język C++ Różnice między C a C++ Język C++ Różnice między C a C++ Plan wykładu C a C++ Różnice ogólne Typy Deklaracje zmiennych C++ jako rozszerzenie C Domyślne argumenty funkcji Przeciążanie funkcji Referencje Dynamiczny przydział pamięci

Bardziej szczegółowo

W2 Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy :

W2 Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy : Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy : class nazwa_klasy prywatne dane i funkcje public: publiczne dane i funkcje lista_obiektów;

Bardziej szczegółowo

Wprowadzenie do szablonów klas

Wprowadzenie do szablonów klas Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2008-2010 Bogdan Kreczmer Niniejszy

Bardziej szczegółowo

Katedra Elektrotechniki Teoretycznej i Informatyki. wykład 12 - sem.iii. M. Czyżak

Katedra Elektrotechniki Teoretycznej i Informatyki. wykład 12 - sem.iii. M. Czyżak Katedra Elektrotechniki Teoretycznej i Informatyki wykład 12 - sem.iii M. Czyżak Język C - preprocesor Preprocesor C i C++ (cpp) jest programem, który przetwarza tekst programu przed przekazaniem go kompilatorowi.

Bardziej szczegółowo

Techniki Programowania wskaźniki 2

Techniki Programowania wskaźniki 2 Techniki Programowania wskaźniki 2 Łukasz Madej Katedra Informatyki Stosowanej i Modelowania Wykłady opracowane we współpracy z Danutą Szeligą, Łukaszem Sztangretem Jeżeli wskaźnik pokazuje na element

Bardziej szczegółowo

I - Microsoft Visual Studio C++

I - Microsoft Visual Studio C++ I - Microsoft Visual Studio C++ 1. Nowy projekt z Menu wybieramy File -> New -> Projekt -> Win32 Console Application w okienku Name: podajemy nazwę projektu w polu Location: wybieramy miejsce zapisu i

Bardziej szczegółowo

Funkcje. Spotkanie 5. Tworzenie i używanie funkcji. Przekazywanie argumentów do funkcji. Domyślne wartości argumentów

Funkcje. Spotkanie 5. Tworzenie i używanie funkcji. Przekazywanie argumentów do funkcji. Domyślne wartości argumentów Funkcje. Spotkanie 5 Dr inż. Dariusz JĘDRZEJCZYK Tworzenie i używanie funkcji Przekazywanie argumentów do funkcji Domyślne wartości argumentów Przeładowanie nazw funkcji Dzielenie programu na kilka plików

Bardziej szczegółowo

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016 Wykład 1 3 marca 2016 Słowa kluczowe języka Java abstract, break, case, catch, class, const, continue, default, do, else, enum, extends, final, finally, for, goto, if, implements, import, instanceof, interface,

Bardziej szczegółowo

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij.

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij. Programowanie Sobera Jolanta 16.09.2006 Strona 1 z 26 1 Wprowadzenie do programowania 4 2 Pierwsza aplikacja 5 3 Typy danych 6 4 Operatory 9 Strona 2 z 26 5 Instrukcje sterujące 12 6 Podprogramy 15 7 Tablice

Bardziej szczegółowo

Szablony funkcji i szablony klas

Szablony funkcji i szablony klas Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2011 Bogdan Kreczmer Niniejszy dokument

Bardziej szczegółowo

Podstawy programowania. Wykład Co jeszcze... Przypomnienia, uzupełnienia. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład Co jeszcze... Przypomnienia, uzupełnienia. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Co jeszcze... Przypomnienia, uzupełnienia Krzysztof Banaś Podstawy programowania 1 Typy danych Podstawowe wbudowane typy danych języka C: _Bool 0 i 1 (C99) znaki (char) 7

Bardziej szczegółowo

Techniki Programowania wskaźniki

Techniki Programowania wskaźniki Techniki Programowania wskaźniki Łukasz Madej Katedra Informatyki Stosowanej i Modelowania Wykłady opracowane we współpracy z Danutą Szeligą, Łukaszem Sztangretem Wskaźniki Dla typu T zapis T* oznacza

Bardziej szczegółowo

Programowanie w C++ Wykład 12. Katarzyna Grzelak. 28 maja K.Grzelak (Wykład 12) Programowanie w C++ 1 / 27

Programowanie w C++ Wykład 12. Katarzyna Grzelak. 28 maja K.Grzelak (Wykład 12) Programowanie w C++ 1 / 27 Programowanie w C++ Wykład 12 Katarzyna Grzelak 28 maja 2018 K.Grzelak (Wykład 12) Programowanie w C++ 1 / 27 Klasy cd K.Grzelak (Wykład 12) Programowanie w C++ 2 / 27 Klasy - powtórzenie Klasy typy definiowane

Bardziej szczegółowo

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe Wykład 15 Wprowadzenie do języka na bazie a Literatura Podobieństwa i różnice Literatura B.W.Kernighan, D.M.Ritchie Język ANSI Kompilatory Elementarne różnice Turbo Delphi FP Kylix GNU (gcc) GNU ++ (g++)

Bardziej szczegółowo

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany KLASA UCZEN Napisz deklarację klasy Uczen, w której przechowujemy następujące informacje o uczniu: imię, nazwisko, średnia (pola prywatne), poza tym klasa zawiera metody: konstruktor bezparametrowy (nie

Bardziej szczegółowo

Programowanie obiektowe w C++ Wykład 12

Programowanie obiektowe w C++ Wykład 12 Programowanie obiektowe w C++ Wykład 12 dr Lidia Stępień Akademia im. Jana Długosza w Częstochowie L. Stępień (AJD) 1 / 22 Zakresowe pętle for double tab[5] {1.12,2.23,3.33,4.12,5.22 for(double x: tab)

Bardziej szczegółowo

Obsługa wyjątków. Język C++ WW12

Obsługa wyjątków. Język C++ WW12 Obsługa wyjątków Pozwala zarządzać błędami wykonania w uporządkowany sposób. Umożliwia automatyczne wywołanie części kodu, funkcji, metod klas, który trzeba wykonać przy powstaniu błędów. try //blok try

Bardziej szczegółowo

Programowanie w C++ Wykład 11. Katarzyna Grzelak. 13 maja K.Grzelak (Wykład 11) Programowanie w C++ 1 / 30

Programowanie w C++ Wykład 11. Katarzyna Grzelak. 13 maja K.Grzelak (Wykład 11) Programowanie w C++ 1 / 30 Programowanie w C++ Wykład 11 Katarzyna Grzelak 13 maja 2019 K.Grzelak (Wykład 11) Programowanie w C++ 1 / 30 Klasy cd K.Grzelak (Wykład 11) Programowanie w C++ 2 / 30 Klasy - powtórzenie Klasy typy definiowane

Bardziej szczegółowo

Język ludzki kod maszynowy

Język ludzki kod maszynowy Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza

Bardziej szczegółowo

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 10 Kurs C++

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 10 Kurs C++ Podstawy Informatyki Inżynieria Ciepła, I rok Wykład 10 Kurs C++ Historia Lata 70-te XX w język C (do pisania systemów operacyjnych) "The C programming language" B. Kernighan, D. Ritchie pierwszy standard

Bardziej szczegółowo

Języki i metodyka programowania. Wprowadzenie do języka C

Języki i metodyka programowania. Wprowadzenie do języka C Literatura: Brian W. Kernighan, Dennis M. Ritchie Język Ansi C, Wydawnictwa Naukowo - Techniczne, 2007 http://cm.bell-labs.com/cm/cs/cbook/index.html Scott E. Gimpel, Clovis L. Tondo Język Ansi C. Ćwiczenia

Bardziej szczegółowo

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 26 marca kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 26 marca kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40 Programowanie w C++ Wykład 5 Katarzyna Grzelak 26 marca 2018 9 kwietnia 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40 Pojęcia z poprzedniego wykładu Podział programu na funkcje podział na niezależne

Bardziej szczegółowo

Zmienne, stałe i operatory

Zmienne, stałe i operatory Zmienne, stałe i operatory Przemysław Gawroński D-10, p. 234 Wykład 2 4 marca 2019 (Wykład 2) Zmienne, stałe i operatory 4 marca 2019 1 / 21 Outline 1 Zmienne 2 Stałe 3 Operatory (Wykład 2) Zmienne, stałe

Bardziej szczegółowo

DYNAMICZNE PRZYDZIELANIE PAMIECI

DYNAMICZNE PRZYDZIELANIE PAMIECI DYNAMICZNE PRZYDZIELANIE PAMIECI Pamięć komputera, dostępna dla programu, dzieli się na cztery obszary: kod programu, dane statyczne ( np. stałe i zmienne globalne programu), dane automatyczne zmienne

Bardziej szczegółowo

Typy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1

Typy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1 Typy złożone Struktury, pola bitowe i unie. Programowanie Proceduralne 1 Typy podstawowe Typy całkowite: char short int long Typy zmiennopozycyjne float double Modyfikatory : unsigned, signed Typ wskaźnikowy

Bardziej szczegółowo

Programowanie obiektowe w C++ Wykład 1

Programowanie obiektowe w C++ Wykład 1 Programowanie obiektowe w C++ Wykład 1 dr Lidia Stępień Akademia im. Jana Długosza w Częstochowie L. Stępień (AJD) POwCPP 1 / 24 Literatura Prata Stephen, Szkoła programowania. Język C++. Wydawnictwo Helion,

Bardziej szczegółowo

Tablice (jedno i wielowymiarowe), łańcuchy znaków

Tablice (jedno i wielowymiarowe), łańcuchy znaków Tablice (jedno i wielowymiarowe), łańcuchy znaków wer. 8 z drobnymi modyfikacjami! Wojciech Myszka Katedra Mechaniki i Inżynierii Materiałowej 2017-04-07 09:35:32 +0200 Zmienne Przypomnienie/podsumowanie

Bardziej szczegółowo

// Liczy srednie w wierszach i kolumnach tablicy "dwuwymiarowej" // Elementy tablicy są generowane losowo #include <stdio.h> #include <stdlib.

// Liczy srednie w wierszach i kolumnach tablicy dwuwymiarowej // Elementy tablicy są generowane losowo #include <stdio.h> #include <stdlib. Wykład 10 Przykłady różnych funkcji (cd) - przetwarzanie tablicy tablic (tablicy "dwuwymiarowej") - sortowanie przez "selekcję" Dynamiczna alokacja pamięci 1 // Liczy srednie w wierszach i kolumnach tablicy

Bardziej szczegółowo

Wstęp do programowania. Wykład 1

Wstęp do programowania. Wykład 1 Wstęp do programowania Wykład 1 1 / 49 Literatura Larry Ullman, Andreas Signer. Programowanie w języku C++. Walter Savitch, Kenrick Mock. Absolute C++. Jerzy Grębosz. Symfonia C++. Standard. Stephen Prata.

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania wykład 10 Agata Półrola Wydział Matematyki i Informatyki UŁ semestr zimowy 2018/2019 Przesyłanie argumentów - cd Przesyłanie argumentów do funkcji - tablice wielowymiarowe Przekazywanie tablic wielowymiarowych

Bardziej szczegółowo

Programowanie komputerowe. Zajęcia 4

Programowanie komputerowe. Zajęcia 4 Programowanie komputerowe Zajęcia 4 Typ logiczny Wartości logiczne są reprezentowane przez typ bool. Typ bool posiada tylko dwie wartości: true i false. Zamiast wartości logicznych można używać wartości

Bardziej szczegółowo

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Zofia Kruczkiewicz, ETE8305_2 1

Zofia Kruczkiewicz, ETE8305_2 1 Wprowadzenie do programowania obiektowego w C++ 1. Główne zasady programowania obiektowego: hermetyzacja, dziedziczenie, polimorfizm 2. Pojęcie klasy: sposoby deklarowania i definiowania składowych klasy,

Bardziej szczegółowo

public: // interfejs private: // implementacja // składowe klasy protected: // póki nie będziemy dziedziczyć, // to pole nas nie interesuje

public: // interfejs private: // implementacja // składowe klasy protected: // póki nie będziemy dziedziczyć, // to pole nas nie interesuje Zbudujemy klasę Definicję klasy zapiszmy w pliku tstring.h #ifndef TSTRING_H #define TSTRING_H #include // w pliku nagłówkowym NIE // otwieramy przestrzeni std // interfejs private: // implementacja

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania Przemysław Gawroński D-10, p. 234 Wykład 1 8 października 2018 (Wykład 1) Wstęp do programowania 8 października 2018 1 / 12 Outline 1 Literatura 2 Programowanie? 3 Hello World (Wykład

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Programowanie w C++ Wykład 8. Katarzyna Grzelak. 15 kwietnia K.Grzelak (Wykład 8) Programowanie w C++ 1 / 33

Programowanie w C++ Wykład 8. Katarzyna Grzelak. 15 kwietnia K.Grzelak (Wykład 8) Programowanie w C++ 1 / 33 Programowanie w C++ Wykład 8 Katarzyna Grzelak 15 kwietnia 2019 K.Grzelak (Wykład 8) Programowanie w C++ 1 / 33 Klasy - powtórzenie Klasy typy definiowane przez użytkownika Klasy zawieraja dane składowe

Bardziej szczegółowo

Wskaznik. Przekazywanie wyniku funkcji przez return. Typy i zmienne wskaznikowe. Zmienna wskazywana. typ * nazwa_wkaznika

Wskaznik. Przekazywanie wyniku funkcji przez return. Typy i zmienne wskaznikowe. Zmienna wskazywana. typ * nazwa_wkaznika Wyklad 6 Typy i zmienne: wskaznikowe, referencyjne Funkcje deklaracja, definicja. Zasieg deklaracji i widocznosc zmiennych Przekazywanie parametrów przez wartosc, referencje i wskaznik Przekazywanie wyniku

Bardziej szczegółowo

MATERIAŁY DO ZAJĘĆ II

MATERIAŁY DO ZAJĘĆ II MATERIAŁY DO ZAJĘĆ II Zmienne w C# Spis treści I. Definicja zmiennej II. Hierarchia typów (CTS) III. Typy wbudowane IV. Deklaracja zmiennych V. Literały VI. Pobieranie i wypisywanie wartości zmiennych

Bardziej szczegółowo

Programowanie w C++ Wykład 9. Katarzyna Grzelak. 14 maja K.Grzelak (Wykład 9) Programowanie w C++ 1 / 30

Programowanie w C++ Wykład 9. Katarzyna Grzelak. 14 maja K.Grzelak (Wykład 9) Programowanie w C++ 1 / 30 Programowanie w C++ Wykład 9 Katarzyna Grzelak 14 maja 2018 K.Grzelak (Wykład 9) Programowanie w C++ 1 / 30 Klasy - powtórzenie Klasy typy definiowane przez użytkownika Klasy zawieraja dane składowe plus

Bardziej szczegółowo

Języki C i C++ Wykład: 2. Wstęp Instrukcje sterujące. dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD

Języki C i C++ Wykład: 2. Wstęp Instrukcje sterujące. dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD Języki C i C++ Wykład: 2 Wstęp Instrukcje sterujące 1 dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD programowania w C++ Instrukcje sterujące 2 Pętla for for ( instrukcja_ini ; wyrazenie_warunkowe

Bardziej szczegółowo

Wskaźniki. Informatyka

Wskaźniki. Informatyka Materiały Wskaźniki Informatyka Wskaźnik z punktu widzenia programisty jest grupą komórek pamięci (rozmiar wskaźnika zależy od architektury procesora, najczęściej są to dwa lub cztery bajty ), które mogą

Bardziej szczegółowo

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6 JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 6 1 SPECYFIKATOR static Specyfikator static: Specyfikator ten powoduje, że zmienna lokalna definiowana w obrębie danej funkcji nie jest niszczona

Bardziej szczegółowo

Programowanie C++ Wykład 2 - podstawy języka C++ dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Programowanie C++ Wykład 2 - podstawy języka C++ dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki Wykład 2 - podstawy języka C++ Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu. Zmienne i ich nazwy, podstawowe typy: całkowite, rzeczywiste, znakowe i napisowe. Instrukcje:

Bardziej szczegółowo

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 5

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 5 JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 5 1 SPECYFIKATOR const Specyfikator (przydomek) const: Umieszczenie przed nazwą zmiennej specyfikatora const w jej definicji informuje kompilator,

Bardziej szczegółowo

Struktura programu. Projekty złożone składają się zwykłe z różnych plików. Zawartość każdego pliku programista wyznacza zgodnie z jego przeznaczeniem.

Struktura programu. Projekty złożone składają się zwykłe z różnych plików. Zawartość każdego pliku programista wyznacza zgodnie z jego przeznaczeniem. Struktura programu Projekty złożone składają się zwykłe z różnych plików. Zawartość każdego pliku programista wyznacza zgodnie z jego przeznaczeniem. W ostatnich latach najbardziej używanym stylem oprogramowania

Bardziej szczegółowo

Na ekranie monitora zostaną wyświetlone w dwu liniach teksty Pierwsza linia Druga linia

Na ekranie monitora zostaną wyświetlone w dwu liniach teksty Pierwsza linia Druga linia Struktura programu W programach napisanych w C++ litery wielkie i małe są rozróżniane i często po nauce Pascala są przyczyną błędów. Program napisany w języku C++ składa się zazw yczaj z następujących

Bardziej szczegółowo

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44 Programowanie w C++ Wykład 2 Katarzyna Grzelak 4 marca 2019 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44 Na poprzednim wykładzie podstawy C++ Każdy program w C++ musi mieć funkcję o nazwie main Wcięcia

Bardziej szczegółowo

Globalne / Lokalne. Wykład 15. Podstawy programowania (język C) Zmienne globalne / lokalne (1) Zmienne globalne / lokalne (2)

Globalne / Lokalne. Wykład 15. Podstawy programowania (język C) Zmienne globalne / lokalne (1) Zmienne globalne / lokalne (2) Podstawy programowania (język C) Globalne / Lokalne Wykład 15. Tomasz Marks - Wydział MiNI PW -1- Tomasz Marks - Wydział MiNI PW -2- Zmienne globalne / lokalne (1) int A, *Q; // definicja zmiennych globalnych

Bardziej szczegółowo

Podział programu na moduły

Podział programu na moduły Materiały Podział programu na moduły Informatyka Szczegółowe informacje dotyczące wymagań odnośnie podziału na moduły: http://www.cs.put.poznan.pl/wcomplak/bfiles/c_w_5.pdf Podział programu na moduły pozwala

Bardziej szczegółowo

Przesłanianie nazw, przestrzenie nazw

Przesłanianie nazw, przestrzenie nazw Przesłanianie nazw, przestrzenie nazw Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2013 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu

Bardziej szczegółowo

Podstawy programowania w języku C++

Podstawy programowania w języku C++ Podstawy programowania w języku C++ Część ósma Zmienne wskaźnikowe koncepcja, podstawowe zastosowania Wersja skrócona, tylko C++ Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski

Bardziej szczegółowo

Podstawy Informatyki. Kompilacja. Historia. Metalurgia, I rok. Kompilatory C++ Pierwszy program. Dyrektywy preprocesora. Darmowe:

Podstawy Informatyki. Kompilacja. Historia. Metalurgia, I rok. Kompilatory C++ Pierwszy program. Dyrektywy preprocesora. Darmowe: Podstawy Informatyki Metalurgia, I rok Historia Lata 0-te XX w język C (do pisania systemów operacyjnych) "The C programming language" B. Kernighan, D. Ritchie pierwszy standard Koniec lat 80 standard

Bardziej szczegółowo

typ y y p y z łoż o on o e n - tab a lice c e w iel e owym m ar a o r we, e stru r kt k ury

typ y y p y z łoż o on o e n - tab a lice c e w iel e owym m ar a o r we, e stru r kt k ury typy złożone- tablice wielowymiarowe, struktury Wykład 6 Deklarowanie wskaźników nazwa_typu * nazwa_wskaznika; WSKAŹNIKI: PRZYPOMNIENIE Przypisywanie wskaźnikom wartości double * pn = &zmienna_typu_double;

Bardziej szczegółowo

Funkcje przeciążone, konstruktory kopiujące, argumenty domyślne

Funkcje przeciążone, konstruktory kopiujące, argumenty domyślne Funkcje przeciążone, konstruktory kopiujące, argumenty domyślne Przeciążenie funkcji polega na użyciu funkcji z tą samą nazwą, które mają różne listy argumentów(różne typy, różna ilość lub to i inne).

Bardziej szczegółowo

Metodyki i Techniki Programowania 1 1 1. MECHANIZM POWSTAWANIA PROGRAMU W JĘZYKU C PODSTAWOWE POJĘCIA

Metodyki i Techniki Programowania 1 1 1. MECHANIZM POWSTAWANIA PROGRAMU W JĘZYKU C PODSTAWOWE POJĘCIA Metodyki i Techniki Programowania 1 1 ZAJ CIA 3. 1. MECHANIZM POWSTAWANIA PROGRAMU W JĘZYKU C PODSTAWOWE POJĘCIA IDE zintegrowane środowisko programistyczne, zawierające kompilator, edytor tekstu i linker,

Bardziej szczegółowo

Język C++ zajęcia nr 2

Język C++ zajęcia nr 2 Język C++ zajęcia nr 2 Inicjalizacja Definiowanie obiektu może być połączone z nadaniem mu wartości początkowej za pomocą inicjalizatora, który umieszczany jest po deklaratorze obiektu. W języku C++ inicjalizator

Bardziej szczegółowo

1 P roste e t ypy p d a d n a ych c - c ąg ą g d a d l a szy 2 T y T py p z ł z o ł żo ż ne e d a d n a ych c : T BLICE

1 P roste e t ypy p d a d n a ych c - c ąg ą g d a d l a szy 2 T y T py p z ł z o ł żo ż ne e d a d n a ych c : T BLICE 1. Proste typy danych- ciąg dalszy 2. Typy złożone danych : TABLICE Wykład 3 ZMIENNE PROSTE: TYPY WBUDOWANE Typy zmiennoprzecinkowe: float double long double Różne rozmiary bajtowe. W konsekwencji różne

Bardziej szczegółowo

Podstawy Informatyki. Metalurgia, I rok. Wykład 6 Krótki kurs C++

Podstawy Informatyki. Metalurgia, I rok. Wykład 6 Krótki kurs C++ Podstawy Informatyki Metalurgia, I rok Wykład 6 Krótki kurs C++ Historia Lata 70-te XX w język C (do pisania systemów operacyjnych) "The C programming language" B. Kernighan, D. Ritchie pierwszy standard

Bardziej szczegółowo

Programowanie strukturalne i obiektowe

Programowanie strukturalne i obiektowe Programowanie strukturalne i obiektowe Język C część I Opracował: Grzegorz Flesik Literatura: A. Majczak, Programowanie strukturalne i obiektowe, Helion, Gliwice 2010 P. Domka, M. Łokińska, Programowanie

Bardziej szczegółowo

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany KLASA UCZEN Napisz deklarację klasy Uczen, w której przechowujemy następujące informacje o uczniu: imię, nazwisko, średnia (pola prywatne), poza tym klasa zawiera metody: konstruktor bezparametrowy (nie

Bardziej szczegółowo

Automatyczne tworzenie operatora = Integer2& operator=(const Integer& prawy) {

Automatyczne tworzenie operatora = Integer2& operator=(const Integer& prawy) { Przeciążanie a dziedziczenie class Integer2: public Integer Operatory, z wyjątkiem operatora przypisania są automatycznie dziedziczone w klasach pochodnych. Integer2(int i): Integer(i) Automatyczne tworzenie

Bardziej szczegółowo

Pytania sprawdzające wiedzę z programowania C++

Pytania sprawdzające wiedzę z programowania C++ Pytania sprawdzające wiedzę z programowania C++ Wstęp 1. Zaprezentuj mechanikę tworzenia programu napisanego w języku C++. 2. Co to jest kompilacja? 3. Co to jest konsolidacja? 4. Co to jest kod wykonywalny?

Bardziej szczegółowo

Programowanie komputerowe. Zajęcia 1

Programowanie komputerowe. Zajęcia 1 Programowanie komputerowe Zajęcia 1 Code::Blocks - tworzenie projektu Create New Project Console Application -> C++ Wybierz nazwę projektu Stworzy się nowy projekt z wpisaną funkcją main Wpisz swój program

Bardziej szczegółowo

Wskaźniki. nie są konieczne, ale dają językowi siłę i elastyczność są języki w których nie używa się wskaźników typ wskaźnikowy typ pochodny:

Wskaźniki. nie są konieczne, ale dają językowi siłę i elastyczność są języki w których nie używa się wskaźników typ wskaźnikowy typ pochodny: Wskaźniki nie są konieczne, ale dają językowi siłę i elastyczność są języki w których nie używa się wskaźników typ wskaźnikowy typ pochodny: typ nw; /* definicja zmiennej nw typu typ */ typ *w_nw; /* definicja

Bardziej szczegółowo

Programowanie Procedurale

Programowanie Procedurale Programowanie Procedurale Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 6 Bożena Woźna-Szcześniak (AJD) Programowanie Procedurale Wykład 6 1 / 27 Zbiór ctime zawiera deklarcję

Bardziej szczegółowo

Dr inż. Dariusz JĘDRZEJCZYK. Informacje organizacyjne, Wprowadzenie do programowanie w języku C++. Spotkanie 1

Dr inż. Dariusz JĘDRZEJCZYK. Informacje organizacyjne, Wprowadzenie do programowanie w języku C++. Spotkanie 1 Informacje organizacyjne, Wprowadzenie do programowanie w języku C++. Spotkanie 1 Dr inż. Dariusz JĘDRZEJCZYK 11/3/2016 Katedra Informatyki Stosowanej i Modelowania 2 W ramach przedmiotu przedstawione

Bardziej szczegółowo

wykład IV uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C, a C++. wykład IV dr Jarosław Mederski Spis Język C++ - wstęp

wykład IV uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C, a C++. wykład IV dr Jarosław Mederski Spis Język C++ - wstęp Programowanie uzupełnienie notatek: dr Jerzy Białkowski 1 2 3 4 Historia C++ został zaprojektowany w 1979 przez Bjarne Stroustrupa jako rozszerzenie języka C o obiektowe mechanizmy abstrakcji danych i

Bardziej szczegółowo

Automatyczne tworzenie operatora = Integer2& operator=(const Integer& prawy) {

Automatyczne tworzenie operatora = Integer2& operator=(const Integer& prawy) { Przeciążanie operatorów [] Przykład: klasa reprezentująca typ tablicowy. Obiekt ma reprezentować tablicę, do której można się odwoływać intuicyjnie, np. Tab[i] Ma być też dostępnych kilka innych metod

Bardziej szczegółowo

PARADYGMATY PROGRAMOWANIA Wykład 2

PARADYGMATY PROGRAMOWANIA Wykład 2 PARADYGMATY PROGRAMOWANIA Wykład 2 Definiowanie klas w C++ - ciąg dalszy Lista inicjalizująca konstruktora Przeznaczenie - do inicjalizacji pól klasy z kwalifikatorem const i inicjalizacji obiektów składowych

Bardziej szczegółowo

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki int getmax (int a, int b) { return (a > b? a : b); float getmax (float a, float b) { return (a > b? a : b); long getmax (long a, long b)

Bardziej szczegółowo

Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO. Rozdział 1. Wybór i instalacja kompilatora języka Pascal

Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO. Rozdział 1. Wybór i instalacja kompilatora języka Pascal Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO Rozdział 1. Wybór i instalacja kompilatora języka Pascal 1.1. Współczesne wersje kompilatorów Pascala 1.2. Jak zainstalować

Bardziej szczegółowo

Abstrakcyjne struktury danych w praktyce

Abstrakcyjne struktury danych w praktyce Abstrakcyjne struktury danych w praktyce Wykład 13 7.4 notacja polska A.Szepietowski Matematyka dyskretna rozdział.8 stos kompilacja rozłączna szablony funkcji Przypomnienie Drzewo binarne wyrażenia arytmetycznego

Bardziej szczegółowo

Języki programowania obiektowego Nieobiektowe elementy języka C++

Języki programowania obiektowego Nieobiektowe elementy języka C++ Języki programowania obiektowego Nieobiektowe elementy języka C++ Roman Simiński roman.siminski@us.edu.pl www.programowanie.siminskionline.pl Klasy pamięci, programy wielomodułowe Deklaracje zmiennych

Bardziej szczegółowo

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. 1. Rodzaje pamięci używanej w programach Pamięć komputera, dostępna dla programu,

Bardziej szczegółowo

Składnia C++ Programowanie Obiektowe Mateusz Cicheński

Składnia C++ Programowanie Obiektowe Mateusz Cicheński Składnia C++ Programowanie Obiektowe Mateusz Cicheński Klasy i modyfikatory dostępu Przesłanianie metod Polimorfizm Wskaźniki Metody wirtualne Metody abstrakcyjne i interfejsy Konstruktory i destruktory

Bardziej szczegółowo

Podstawy informatyki (3)

Podstawy informatyki (3) Podstawy informatyki (3) wykład : 15 godz. ćwiczenia : 15 godz. Prowadzący: dr inż. Jacek Piątkowski 1 Języki programowania Języki programowania - dają możliwość zapisu algorytmów w postaci zarówno wygodnej

Bardziej szczegółowo

PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec

PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec PROE wykład 2 operacje na wskaźnikach dr inż. Jacek Naruniec Zmienne automatyczne i dynamiczne Zmienne automatyczne: dotyczą kontekstu, po jego opuszczeniu są usuwane, łatwiejsze w zarządzaniu od zmiennych

Bardziej szczegółowo

Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4. Wskaźniki. Dynamiczna alokacja pamięci. Przykłady

Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4. Wskaźniki. Dynamiczna alokacja pamięci. Przykłady Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4 Dr inż. Dariusz JĘDRZEJCZYK Wskaźniki Dynamiczna alokacja pamięci Przykłady 11/3/2016 AGH, Katedra Informatyki Stosowanej i Modelowania 2 Wskaźnik to

Bardziej szczegółowo

Wykład 4: Klasy i Metody

Wykład 4: Klasy i Metody Wykład 4: Klasy i Metody Klasa Podstawa języka. Każde pojęcie które chcemy opisać w języku musi być zawarte w definicji klasy. Klasa definiuje nowy typ danych, których wartościami są obiekty: klasa to

Bardziej szczegółowo

ECLIPSE wnioski z dwóch pierwszych laboratoriów

ECLIPSE wnioski z dwóch pierwszych laboratoriów PODSTAWY PROGRAMOWANIA 3-4 WYKŁAD 22-10-2015 ECLIPSE wnioski z dwóch pierwszych laboratoriów Dodanie pliku i konfiguracji startowej (każdy uruchamiany program powinien mieć własna konfigurację startową)

Bardziej szczegółowo

Programowanie obiektowe - Przykładowe zadania egzaminacyjne (2005/2006)

Programowanie obiektowe - Przykładowe zadania egzaminacyjne (2005/2006) Programowanie obiektowe - Przykładowe zadania egzaminacyjne (2005/2006) Część 1. Teoria Wyjaśnij pojęcia, podaj przykład: klasa obiekt konstruktor destruktor kapsułkowanie (hermetyzacja) wskaźnik this

Bardziej szczegółowo