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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016 Wykład 2 17 marca 2016 Dziedziczenie Klasy bazowe i potomne Dziedziczenie jest łatwym sposobem rozwijania oprogramowania. Majac klasę bazowa możemy ja uszczegółowić (dodać nowe pola i metody) nie przepisujac

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

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje. Podstawowe elementy proceduralne w C++ Program i wyjście Zmienne i arytmetyka Wskaźniki i tablice Testy i pętle Funkcje Pierwszy program // Niezbędne zaklęcia przygotowawcze ;-) #include using

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

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

KURS C/C++ WYKŁAD 6. Wskaźniki

KURS C/C++ WYKŁAD 6. Wskaźniki Wskaźniki KURS C/C++ WYKŁAD 6 Każda zmienna ma unikalny adres wskazujący początkowy obszar pamięci zajmowany przez tą zmienną. Ilość pamięci zajmowanej przez zmienną zależy od typu zmiennej. Adres można

Bardziej szczegółowo

Microsoft IT Academy kurs programowania

Microsoft IT Academy kurs programowania Microsoft IT Academy kurs programowania Podstawy języka C# Maciej Hawryluk Język C# Język zarządzany (managed language) Kompilacja do języka pośredniego (Intermediate Language) Kompilacja do kodu maszynowego

Bardziej szczegółowo

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk. Wydział Inżynierii Metali i Informatyki Przemysłowej

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk. Wydział Inżynierii Metali i Informatyki Przemysłowej Podstawy informatyki Informatyka stosowana - studia niestacjonarne Grzegorz Smyk Wydział Inżynierii Metali i Informatyki Przemysłowej Akademia Górniczo Hutnicza im. Stanisława Staszica w Krakowie, rok

Bardziej szczegółowo

1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami

1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami 1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami Celem tych zajęć jest zrozumienie i oswojenie z technikami programowania przy pomocy wskaźników w języku C++. Proszę przeczytać rozdział 8.

Bardziej szczegółowo

Dla każdej operacji łącznie tworzenia danych i zapisu ich do pliku przeprowadzić pomiar czasu wykonania polecenia. Wyniki przedstawić w tabelce.

Dla każdej operacji łącznie tworzenia danych i zapisu ich do pliku przeprowadzić pomiar czasu wykonania polecenia. Wyniki przedstawić w tabelce. Przygotować program tworzący tablicę dwuwymiarową zawierającą zestawy 10 2, 10 4, 10 6 liczb losowych zmiennoprzecinkowych. Korzystając z funkcji bibliotecznych uporządkować zawartość każdego (a) wiersza

Bardziej szczegółowo

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

Programowanie 2. Język C++. Wykład 2. 2.1 Definicja, deklaracja, wywołanie funkcji.... 1 2.2 Funkcje inline... 4 2.3 Przekazanie do argumentu funkcji wartości, adresu zmiennej.... 5 2.4 Wskaźniki do funkcji... 8 2.5 Przeładowanie funkcji...

Bardziej szczegółowo

Podstawy Programowania Obiektowego

Podstawy Programowania Obiektowego Podstawy Programowania Obiektowego Pojęcie struktury i klasy. Konstruktor i destruktor. Spotkanie 08 Dr inż. Dariusz JĘDRZEJCZYK Tematyka wykładu Spotkanie 08 Klasy: definicja a deklaracja klasy dane składowe

Bardziej szczegółowo

Nowe słowa kluczowe. Komentarze. Wskaźniki typu void. class, delete, new, friend,... /* Komentarz w C i C++ */ // Komentarz w C++ (do końca wiersza)

Nowe słowa kluczowe. Komentarze. Wskaźniki typu void. class, delete, new, friend,... /* Komentarz w C i C++ */ // Komentarz w C++ (do końca wiersza) Różnice między C i C++ (Rozszerzenia C++) Nowe słowa kluczowe class, delete, new, friend,... Komentarze /* Komentarz w C i C++ */ // Komentarz w C++ (do końca wiersza) Wskaźniki typu void W C wskaźniki

Bardziej szczegółowo

Podstawy programowania C. dr. Krystyna Łapin http://www.mif.vu.lt/~moroz/c/

Podstawy programowania C. dr. Krystyna Łapin http://www.mif.vu.lt/~moroz/c/ Podstawy programowania C dr. Krystyna Łapin http://www.mif.vu.lt/~moroz/c/ Tematy Struktura programu w C Typy danych Operacje Instrukcja grupująca Instrukcja przypisania Instrukcja warunkowa Struktura

Bardziej szczegółowo

Wykład nr 3. Temat: Wskaźniki i referencje. Edward Morgan Forster

Wykład nr 3. Temat: Wskaźniki i referencje. Edward Morgan Forster Wykład nr 3 Temat: Wskaźniki i referencje. Cytaty: Mylić się jest rzeczą ludzką, ale żeby coś naprawdę spaprać potrzeba komputera. Edward Morgan Forster Gdyby murarze budowali domy tak, jak programiści

Bardziej szczegółowo

Wstęp do Programowania, laboratorium 02

Wstęp do Programowania, laboratorium 02 Wstęp do Programowania, laboratorium 02 Zadanie 1. Napisać program pobierający dwie liczby całkowite i wypisujący na ekran największą z nich. Zadanie 2. Napisać program pobierający trzy liczby całkowite

Bardziej szczegółowo

Kompilator języka C na procesor 8051 RC51 implementacja

Kompilator języka C na procesor 8051 RC51 implementacja Kompilator języka C na procesor 8051 RC51 implementacja Implementowane typy danych bit 1 bit char lub char signed 8 bitów char unsigned 8 bitów int lub signed int 16 bitów unsigned int 16 bitów long lub

Bardziej szczegółowo

2 Przygotował: mgr inż. Maciej Lasota

2 Przygotował: mgr inż. Maciej Lasota Laboratorium nr 2 1/7 Język C Instrukcja laboratoryjna Temat: Wprowadzenie do języka C 2 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie do języka C. Język C jest językiem programowania ogólnego zastosowania

Bardziej szczegółowo

Podstawy języka C++ Maciej Trzebiński. Praktyki studenckie na LHC IFJ PAN. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. M. Trzebiński C++ 1/16

Podstawy języka C++ Maciej Trzebiński. Praktyki studenckie na LHC IFJ PAN. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. M. Trzebiński C++ 1/16 M. Trzebiński C++ 1/16 Podstawy języka C++ Maciej Trzebiński Instytut Fizyki Jądrowej Polskiej Akademii Nauk Praktyki studenckie na LHC IFJ PAN 6lipca2015 Uruchomienie maszyny w CC1 M. Trzebiński C++ 2/16

Bardziej szczegółowo

Jak napisać program obliczający pola powierzchni różnych figur płaskich?

Jak napisać program obliczający pola powierzchni różnych figur płaskich? Część IX C++ Jak napisać program obliczający pola powierzchni różnych figur płaskich? Na początku, przed stworzeniem właściwego kodu programu zaprojektujemy naszą aplikację i stworzymy schemat blokowy

Bardziej szczegółowo

Grzegorz Cygan. Wstęp do programowania mikrosterowników w języku C

Grzegorz Cygan. Wstęp do programowania mikrosterowników w języku C Grzegorz Cygan Wstęp do programowania mikrosterowników w języku C Mikrosterownik Inne nazwy: Microcontroler (z języka angielskiego) Ta nazwa jest powszechnie używana w Polsce. Mikrokomputer jednoukładowy

Bardziej szczegółowo

PARADYGMATY PROGRAMOWANIA Wykład 3

PARADYGMATY PROGRAMOWANIA Wykład 3 PARADYGMATY PROGRAMOWANIA Wykład 3 Definiowanie operatorów i ich przeciążanie Przykłady zastosowania operatorów: a) operator podstawienia ( = ) obiektów o złożonej strukturze, b) operatory działania na

Bardziej szczegółowo

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

Programowanie 2. Język C++. Wykład 9. 9.1 Ukrywanie metod, metody nadpisane... 1 9.2 Metody wirtualne, wirtualny destruktor... 2 9.3 Metody czysto wirtualne... 6 9.4 Klasy abstrakcyjne... 7 9.5 Wielodziedziczenie... 9 9.1 Ukrywanie metod,

Bardziej szczegółowo

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania

Bardziej szczegółowo

Smarty PHP. Leksykon kieszonkowy

Smarty PHP. Leksykon kieszonkowy IDZ DO PRZYK ADOWY ROZDZIA SPIS TREœCI KATALOG KSI EK KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG Smarty PHP. Leksykon kieszonkowy Autor: Daniel Bargie³ ISBN: 83-246-0676-9 Format: B6, stron: 112 TWÓJ KOSZYK

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Wykład 9 2014-06-20 09:37 PP2_W9

Wykład 9 2014-06-20 09:37 PP2_W9 Wykład 9 Przykłady programów z wykorzystaniem klas - przykład funkcji operatorowych - obiektowa implementacja listy jednokierunkowej kopiowanie obiektów - klasa "latający napis" Pozycjonowanie w plikach

Bardziej szczegółowo

Techniki Programowania

Techniki Programowania Techniki Programowania Łukasz Madej Katedra Informatyki Stosowanej i Modelowania Wykłady opracowane we współpracy z Danutą Szeligą, Łukaszem Sztangretem Dr hab. inż. Łukasz Madej, prof. AGH Budynek B5,

Bardziej szczegółowo

Jzyk C++ cz 3. Jarosław Gramacki Instytut Informatyki i Elektroniki ( $)*)+' *, - ( ' )*'.' '',*/ *, ','*0) 1 / ) %*+ 2'' 2" ( $%%) )'20 )*0) 1 / )

Jzyk C++ cz 3. Jarosław Gramacki Instytut Informatyki i Elektroniki ( $)*)+' *, - ( ' )*'.' '',*/ *, ','*0) 1 / ) %*+ 2'' 2 ( $%%) )'20 )*0) 1 / ) Jzyk C++ cz 3 Jarosław Gramacki Instytut Informatyki i Elektroniki # $$%%& ' ( $)*)+' *, - ( ' )*'.' '',*/ *, ','*0) 1 / ) %*+ 2'' 2" ( $%%) )'20 )*0) 1 / )!" 2 # $$%%& ' ( $%%/,))3 ( %* 2 / 4 ( ( *' *''*,

Bardziej szczegółowo

Programowanie obiektowe, wykład nr 6. Klasy i obiekty

Programowanie obiektowe, wykład nr 6. Klasy i obiekty Dr hab. inż. Lucyna Leniowska, prof. UR, Zakład Mechatroniki, Automatyki i Optoelektroniki, IT Programowanie obiektowe, wykład nr 6 Klasy i obiekty W programowaniu strukturalnym rozwój oprogramowania oparto

Bardziej szczegółowo

C++ - [1-3] Debugowanie w Qt Creator

C++ - [1-3] Debugowanie w Qt Creator Slajd 1 z 10 C++ - [1-3] Debugowanie w Qt Creator Nysa 2004-2013. Autor: Wojciech Galiński. wersja dnia 15 maja 2013 r. Slajd 2 z 10 Pojęcia związane z debugowaniem DEBUGOWANIE (z ang. debugging odrobaczanie)

Bardziej szczegółowo

Laboratorium 1 - Programowanie proceduralne i obiektowe

Laboratorium 1 - Programowanie proceduralne i obiektowe Laboratorium 1 - Programowanie proceduralne i obiektowe mgr inż. Kajetan Kurus 4 marca 2014 1 Podstawy teoretyczne 1. Programowanie proceduralne (powtórzenie z poprzedniego semestru) (a) Czym się charakteryzuje?

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 2 Marcin Młotkowski 4 marca 2015 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 47 Krótki opis C Obiektowy, z kontrolą typów; automatyczne odśmiecanie;

Bardziej szczegółowo

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

Wykład II. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej Wykład II - semestr II Kierunek Informatyka Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2015 c Copyright 2015 Janusz Słupik Operacje dyskowe - zapis do pliku #include #include

Bardziej szczegółowo

Zadanie 04 Ktory z ponizszych typow danych w jezyku ANSI C jest typem zmiennoprzecinkowym pojedynczej precyzji?

Zadanie 04 Ktory z ponizszych typow danych w jezyku ANSI C jest typem zmiennoprzecinkowym pojedynczej precyzji? Zadanie 01 W przedstawionym ponizej programie w jezyku ANSI C w miejscu wykropkowanym brakuje jednej linii: #include... int main() { printf("tralalalala"); return 0; } A. B. "iostream" C.

Bardziej szczegółowo

ALGORYTMY I STRUKTURY DANYCH

ALGORYTMY I STRUKTURY DANYCH Akademia Rolnicza im. Augusta Cieszkowskiego w Poznaniu - Instytut Inżynierii Rolniczej - ALGORYTMY I STRUKTURY DANYCH Prowadzący: dr inż. Radosław J. Kozłowski email: rjk@au.poznan.pl www: http://www.au.poznan.pl/~rjk

Bardziej szczegółowo

20. Pascal i łączenie podprogramów Pascala z programem napisanym w C

20. Pascal i łączenie podprogramów Pascala z programem napisanym w C Opublikowano w: WEREWKA J..: Podstawy programowana dla automatyków. Skrypt AGH Nr 1515, Kraków 1998 20. i łączenie podprogramów a z programem napisanym w Ze względu na duże rozpowszechnienie języka, szczególnie

Bardziej szczegółowo

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main. Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo

Bardziej szczegółowo

Wstęp do programowania 1

Wstęp do programowania 1 Wstęp do programowania 1 Struktury Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 12 Struktura dla dat - przykład #include struct Date { int y; short m; short

Bardziej szczegółowo

Informatyka, Ćwiczenie 1. 1. Uruchomienie Microsoft Visual C++ Politechnika Rzeszowska, Wojciech Szydełko. I. ZałoŜenie nowego projektu

Informatyka, Ćwiczenie 1. 1. Uruchomienie Microsoft Visual C++ Politechnika Rzeszowska, Wojciech Szydełko. I. ZałoŜenie nowego projektu Informatyka, Ćwiczenie 1 1. Uruchomienie Microsoft Visual C++ I. ZałoŜenie nowego projektu Wybieramy menu: File>New>Files jak na rys. poniŝej Zapisujemy projekt pod nazwą LAN, w katalogu d:\temp\lab typu

Bardziej szczegółowo

wykład I uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Wstęp do języka C wykład I dr Jarosław Mederski Spis Ogólne informacje

wykład I uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Wstęp do języka C wykład I dr Jarosław Mederski Spis Ogólne informacje Programowanie uzupełnienie notatek: dr Jerzy Białkowski 1 2 3 4 5 6 7 Charakter wykładu ˆ zakłada znajomość idei programowania strukturalnego (np. w Pascalu) oraz podstaw używania środowiska UNIX (wykonywanie

Bardziej szczegółowo

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

Wykład I. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik Wykład I I Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Zaliczenie przedmiotu Na laboratorium można zdobyć 100 punktów. Do zaliczenia niezbędne jest

Bardziej szczegółowo

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Laboratorium 3. Instrukcje wyboru

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Laboratorium 3. Instrukcje wyboru JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Laboratorium 3 Instrukcje wyboru 1 INSTRUKCJE WYBORU Instrukcje sterujące to takie instrukcje, które sterują przebiegiem programu w zależności od spełnienia

Bardziej szczegółowo

Rodzina protokołów TCP/IP. Aplikacja: ipconfig.

Rodzina protokołów TCP/IP. Aplikacja: ipconfig. Rodzina protokołów TCP/IP. Aplikacja: ipconfig. dr Zbigniew Lipiński Instytut Matematyki i Informatyki ul. Oleska 48 50-204 Opole zlipinski@math.uni.opole.pl Specyfikacja struktury FIXED_INFO Nazwa struktury:

Bardziej szczegółowo

Podstawy programowania - 1

Podstawy programowania - 1 Podstawy programowania - 1 doc. dr inż. Tadeusz Jeleniewski Wykład: sobota B, godz. 10.30 12.55 sala 12 Laboratorium: sobota B, godz. 13.00 15.25 sala 2 sobota B, godz. 15.30-17.55 sala 2 e-mail: tadeusz.jeleniewski@pwr.wroc.pl

Bardziej szczegółowo

Wprowadzenie do programowania w języku C

Wprowadzenie do programowania w języku C Wprowadzenie do programowania w języku C Część trzecia Autor Roman Simiński Kontakt siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych materiałów

Bardziej szczegółowo

PROGRAMOWANIE w C prolog

PROGRAMOWANIE w C prolog PROGRAMOWANIE w C prolog dr inż. Jarosław Stańczyk Uniwersytet Przyrodniczy we Wrocławiu Wydział Biologii i Hodowli Zwierząt Katedra Genetyki 1 / jaroslaw.stanczyk@up.wroc.pl programowanie w c 17.10.2014

Bardziej szczegółowo

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz Zagadnienia 1. Delegaty wiązane, właściwości indeksowane 2. Delegaty niewiązane 3. Nowa wersja kalkulatora, delegaty

Bardziej szczegółowo

Podstawy programowania obiektowego

Podstawy programowania obiektowego Podstawy programowania obiektowego Technologie internetowe Wykład 5 Program wykładu Podejście obiektowe kontra strukturalne do tworzenie programu Pojęcie klasy i obiektu Składowe klasy: pola i metody Tworzenie

Bardziej szczegółowo

Spis treści WSKAŹNIKI. DYNAMICZNY PRZYDZIAŁ PAMIĘCI W JĘZYKU C. Informatyka 2. Instrukcja do pracowni specjalistycznej z przedmiotu

Spis treści WSKAŹNIKI. DYNAMICZNY PRZYDZIAŁ PAMIĘCI W JĘZYKU C. Informatyka 2. Instrukcja do pracowni specjalistycznej z przedmiotu Politechnika Białostocka Wydział Elektryczny Katedra Elektrotechniki Teoretycznej i Metrologii Instrukcja do pracowni specjalistycznej z przedmiotu Informatyka 2 Kod przedmiotu: ES1C300 016 (studia stacjonarne)

Bardziej szczegółowo

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane Stałe Oprócz zmiennych w programie mamy też stałe, które jak sama nazwa mówi, zachowują swoją wartość przez cały czas działania programu. Można

Bardziej szczegółowo

Programowanie I C / C++ laboratorium 03 arytmetyka, operatory

Programowanie I C / C++ laboratorium 03 arytmetyka, operatory Programowanie I C / C++ laboratorium 03 arytmetyka, operatory Jarosław Piersa Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika 2013-02-19 Typ znakowy Typ znakowy Typ wyliczeniowy # include

Bardziej szczegółowo

WPROWADZENIE DO JĘZYKA C++

WPROWADZENIE DO JĘZYKA C++ WPROWADZENIE DO JĘZYKA C++ 1. Pierwszy program w C++ Przykład 1.1. pierwszy_program.cpp 1: #include //Dołączenie do programu biblioteki 2: using namespace std; //Deklaracja przestrzeni

Bardziej szczegółowo

Programowanie w języku C++

Programowanie w języku C++ INE 2022 JĘZYKI PROGRAMOWANIA 1 INE 0050 WSTĘP DO PROGRAMOWANIA Programowanie w języku C++ ( wykł. dr Marek Piasecki ) Literatura: do wykładu dowolny podręcznik do języka C++ na laboratoriach Borland C++

Bardziej szczegółowo

Języki i paradygmaty programowania

Języki i paradygmaty programowania Języki i paradygmaty programowania WYDZIAŁ ELEKTRONIKI i INFORMATYKI dr inż. Robert Arsoba Politechnika Koszalińska Wydział Elektroniki i Informatyki POLITECHNIKA KOSZALIŃSKA 2009/2010 Materiały do wykładu

Bardziej szczegółowo

Laboratorium 1. Programowanie II - Kierunek Informatyka. dr inż. Janusz Słupik. Gliwice, 2015. Wydział Matematyki Stosowanej Politechniki Śląskiej

Laboratorium 1. Programowanie II - Kierunek Informatyka. dr inż. Janusz Słupik. Gliwice, 2015. Wydział Matematyki Stosowanej Politechniki Śląskiej Laboratorium 1 - Kierunek Informatyka Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2015 c Copyright 2015 Janusz Słupik Punkty Na laboratorium można zdobyć 60 punktów. Ocena ogólna z zajęć:

Bardziej szczegółowo

Wykład 12. Programowanie serwera MS SQL 2005 w C#

Wykład 12. Programowanie serwera MS SQL 2005 w C# Wykład 12 Programowanie serwera MS SQL 2005 w C# Budowa procedur składowanych w C# Budowa funkcji składowanych w C# Wykorzystanie funkcji składowanych w C# po stronie klienta Tworzenie typów definiowanych

Bardziej szczegółowo

FUNKCJE WZORCOWE. Wykład 10. Programowanie Obiektowe (język C++) Funkcje wzorcowe wprowadzenie (2) Funkcje wzorcowe wprowadzenie (1)

FUNKCJE WZORCOWE. Wykład 10. Programowanie Obiektowe (język C++) Funkcje wzorcowe wprowadzenie (2) Funkcje wzorcowe wprowadzenie (1) Programowanie Obiektowe (język C++) Wykład 10. FUNKCJE WZORCOWE Funkcje wzorcowe wprowadzenie (1) Funkcje wzorcowe wprowadzenie (2) int max ( int a, int b ) return a>b? a : b; Aby mieć analogiczną funkcję

Bardziej szczegółowo

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej Programowanie obiektowe Interfejsy Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Interfejsy Autor: Paweł Rogaliński Instytut Informatyki,

Bardziej szczegółowo

Podstawy programowania komputerów

Podstawy programowania komputerów Podstawy programowania komputerów Wykład 10: Sterowanie pamięcią w C Pamięć na stosie!każdy program napisany w języku C ma dostęp do dwóch obszarów pamięci - stosu i sterty, w których może być przechowywana

Bardziej szczegółowo

Java jako język programowania

Java jako język programowania Java jako język programowania Interpretowany programy wykonują się na wirtualnej maszynie (JVM Java Virtual Machine) Składnia oparta o język C++ W pełni zorientowany obiektowo (wszystko jest obiektem)

Bardziej szczegółowo

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016 Wykład 9 28 kwiecień 2016 Java Collections Framework (w C++ Standard Template Library) Kolekcja (kontener) Obiekt grupujacy/przechowuj acy jakieś elementy (obiekty lub wartości). Przykładami kolekcji sa

Bardziej szczegółowo

Java Język programowania

Java Język programowania Java Język programowania Język Java Bazuje i jest zbliżony do C/C++ Porosty zbiór typów danych (podział na typy prymitywne i obiektowe) Zarządzanie pamięcią i Garbage Collection Zintegrowana synchronizacja

Bardziej szczegółowo

//zmienne globalne int *pa, *pb; //wskaźniki globalne void main(void) { clrscr(); printf("\n podaj wartosc liczby a\n"); scanf("%d",&a); pa=&a;

//zmienne globalne int *pa, *pb; //wskaźniki globalne void main(void) { clrscr(); printf(\n podaj wartosc liczby a\n); scanf(%d,&a); pa=&a; Ćwiczenie 4 4.1. Wskaźnik na zmienną Wskaźniki, tablice Deklaracja int *pa; oznacza, że pa jest wskaźnikiem na obiekt typu int. Zmienna pa zawiera adres pamięci, zarezerwowanej na zmienną typu int. Chcąc

Bardziej szczegółowo

Języki i paradygmaty programowania Wykład 2. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/18

Języki i paradygmaty programowania Wykład 2. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/18 Dariusz Wardowski dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/18 Literatura Języki i paradygmaty programowania Wykład 2 1. C. S. Horstman, G. Cornell, core Java 2 Podstawy, Helion 2003

Bardziej szczegółowo

Programowanie (C++) NI 5

Programowanie (C++) NI 5 Forma kształcenia i sposób weryfikacji efektów kształcenia Efekty kształcenia WYDZIAŁ FIZYKI UwB kierunek studiów: FIZYKA specjalność: FIZYKA KOD USOS: 0900 FS1 2 PRO Karta przedmiotu Przedmiot moduł ECTS

Bardziej szczegółowo

Konstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut.

Konstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut. Konstruktory Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut. Rozpatrzmy przykład przedstawiający klasę Prostokat: class

Bardziej szczegółowo

Rozdział 4 KLASY, OBIEKTY, METODY

Rozdział 4 KLASY, OBIEKTY, METODY Rozdział 4 KLASY, OBIEKTY, METODY Java jest językiem w pełni zorientowanym obiektowo. Wszystkie elementy opisujące dane, za wyjątkiem zmiennych prostych są obiektami. Sam program też jest obiektem pewnej

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć

Bardziej szczegółowo

Powtórka algorytmów. Wprowadzenie do języka Java.

Powtórka algorytmów. Wprowadzenie do języka Java. Powtórka algorytmów. Wprowadzenie do języka Java. Przypomnienie schematów blokowych BEGIN Readln(a); Readln(b); Suma := 0; IF Suma < 10 THEN Writeln( Suma wynosi:, Suma); ELSE Writeln( Suma większa niż

Bardziej szczegółowo

Elementy języka C. ACprogramislikeafastdanceonanewlywaxeddancefloorbypeople carrying razors.

Elementy języka C. ACprogramislikeafastdanceonanewlywaxeddancefloorbypeople carrying razors. Wykład 3 ACprogramislikeafastdanceonanewlywaxeddancefloorbypeople carrying razors. Waldi Ravens J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 75 / 146 deklaracje zmiennych instrukcja podstawienia

Bardziej szczegółowo

Programowanie niskopoziomowe

Programowanie niskopoziomowe Programowanie niskopoziomowe Programowanie niskopoziomowe w systemie operacyjnym oraz poza nim Tworzenie programu zawierającego procedury asemblerowe 1 Programowanie niskopoziomowe w systemie operacyjnym

Bardziej szczegółowo

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie

Bardziej szczegółowo

Zadania z podstaw programowania obiektowego

Zadania z podstaw programowania obiektowego Zadania z podstaw programowania obiektowego 1. Napisać klasę Lista, której zadaniem będzie przechowywanie listy liczb całkowitych. Klasa ta ma mieć następujące pola prywatne: int* liczby; tablica, w której

Bardziej szczegółowo

Podstawy programowania (1)

Podstawy programowania (1) Podstawy programowania (1) doc. dr inż. Tadeusz Jeleniewski Konsultacje pokój 19 Poniedziałki, godz. 9:45 11:20 e-mail: tadeusz.jeleniewski@neostrada.pl Podstawy programowania (1) - wykład 1. Wprowadzenie

Bardziej szczegółowo

Abstrakcyjny typ danych

Abstrakcyjny typ danych Abstrakcyjny typ danych Abstrakcyjny Typ Danych (abstract data type-adt): zbiór wartości wraz z powiązanymi z nimi operacjami; operacje są zdefiniowane w sposób niezależny od implementacji; operacje są

Bardziej szczegółowo

Metodyka programowania. Podstawy C#

Metodyka programowania. Podstawy C# Metodyka programowania Podstawy C# Platforma.NET Platforma.NET (.NET Framework) Platforma programistyczna Microsoft, Obejmuje - środowisko uruchomieniowe CLR (Common Language Runtime) - biblioteki klas

Bardziej szczegółowo

Definiowanie własnych klas

Definiowanie własnych klas Programowanie obiektowe Definiowanie własnych klas Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Definiowanie własnych klas Autor:

Bardziej szczegółowo

Multimedia JAVA. Historia

Multimedia JAVA. Historia Multimedia JAVA mgr inż. Piotr Odya piotrod@sound.eti.pg.gda.pl Historia 1990 rozpoczęcie prac nad nowym systemem operacyjnym w firmie SUN, do jego tworzenia postanowiono wykorzystać nowy język programowania

Bardziej szczegółowo

#include int main( ) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }

#include <stdio.h> int main( ) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); } OPERACJE WEJŚCIA / WYJŚCIA Funkcja: printf() biblioteka: wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout) int printf ( tekst_sterujący, argument_1, argument_2,... ) ;

Bardziej szczegółowo

Programowanie w Internecie. Java

Programowanie w Internecie. Java Programowanie w Internecie Java Autor: dr inż. Zofia Kruczkiewicz Literatura: L. Lemay, R. Cadenhead P. Naughton Krzysztof Barteczko Boone Barry Java 2 dla każdego Podręcznik Języka Programowania Java

Bardziej szczegółowo