Pracownia specjalistyczna. Materiały przygotowali: mgr inż. Wojciech Frohmberg, mgr inż. Michał Kierzynka

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

Download "Pracownia specjalistyczna. Materiały przygotowali: mgr inż. Wojciech Frohmberg, mgr inż. Michał Kierzynka"

Transkrypt

1 Pracownia specjalistyczna Materiały przygotowali: mgr inż. Wojciech Frohmberg, mgr inż. Michał Kierzynka

2 Język C++ 1. Podstawowa struktura pliku źródłowego: #include <iostream> #include "main.h" using namespace std; Pliki nagłówkowe - biblioteki int main() { cout << "Hello world" << endl; return 0; } Definicje zmiennych globalnych, korzystania z przestrzeni nazw, definicje struktur danych i funkcji pomocniczych Główna funkcja programu definiuje kolejnośd operacji w programie Kompilacja: g++ <nazwa pliku źródłowego> -o <nazwa pliku wykonywalnego> Zad 1. Korzystając z ulubionego edytora stwórz plik o nazwie main.cpp i wprowadź do niego przykładowy kod pliku źródłowego. Zad 2. Skompiluj program dając mu nazwę hello. Zad 3. Uruchom program (wpisując./hello).

3 2. Preprocessor Dyrektywa #include załącza treśd wybranego pliku do pliku bieżącego w miejscu, w którym jest wykorzystana. Przykład: ala.h bajki.cpp Ala ma kota, Kot ma Alę #include "ala.h" #include "dzik.h" #include "ala.h" dzik.h Preprocesing Dzik jest dziki, Dzik jest zły, Dzik ma bardzo ostre kły, Kto spotyka w lesie dzika, Ten na drzewo zaraz zmyka bajki.cpp Ala ma kota, Kot ma Alę Dzik jest dziki, Dzik jest zły, Dzik ma bardzo ostre kły, Kto spotyka w lesie dzika, Ten na drzewo zaraz zmyka Ala ma kota, Kot ma Alę Dyrektywy #define i #undef. Dyrektywa #define służy do zdefiniowania ciągu znaków (nie oddzielonego spacją), który ma byd zamieniany na inny ciąg znaków po wystąpieniu dyrektywy do momentu wystąpienia dyrektywy #undef. Przykład: bajki.cpp Ala ma kota "Ala ma kota" #define Ala Kot Ala ma kota "Ala ma kota" #undef Ala Ala ma kota "Ala ma kota" bajki.cpp Ala ma kota "Ala ma kota" Kot ma kota "Ala ma kota" Ala ma kota "Ala ma kota" UWAGA! Należy zwrócid uwagę, że w ciągu znaków (tj. fragmencie ujętym w cudzysłowiu) nie nastąpiła zamiana. Dyrektywy #ifdef, #ifndef i #endif. Dyrektywa #ifdef warunkowo wstawia blok występujący po niej do momentu dyrektywy #endif w przypadku, gdy zdefiniowano ciąg znaków za pomocą dyrektywy #define. Bardziej przydatna jednak z praktycznego punktu widzenia jest dyrektywa #ifndef, wstawiająca ten blok w przypadku, gdy nie zdefiniowano ciągu znaków za pomocą dyrektywy #define, gdyż może zapobiegad ona powtórnego wstawiania kodu w przypadku, gdy wcześniej został on już wstawiony.

4 Korzystając z wcześniejszego przykładu: ala.h bajki.cpp #include "ala.h" #include "dzik.h" #include "ala.h" #ifndef ALA_H #define ALA_H Ala ma kota, Kot ma Alę #endif dzik.h Krok 1 Dzik jest dziki, Dzik jest zły, Dzik ma bardzo ostre kły, Kto spotyka w lesie dzika, Ten na drzewo zaraz zmyka bajki.cpp #ifndef ALA_H #define ALA_H Ala ma kota, Kot ma Alę #endif Dzik jest dziki, Dzik jest zły, Dzik ma bardzo ostre kły, Kto spotyka w lesie dzika, Ten na drzewo zaraz zmyka #ifndef ALA_H #define ALA_H Ala ma kota, Kot ma Alę #endif Krok 2 bajki.cpp Ala ma kota, Kot ma Alę Dzik jest dziki, Dzik jest zły, Dzik ma bardzo ostre kły, Kto spotyka w lesie dzika, Ten na drzewo zaraz zmyka Celem wywołania dla określonego pliku źródłowego preprocessingu bez kompilacji korzystamy z komendy g++ z przełącznikiem E. Wynik preprocessingu pojawi się na standardowym wyjściu. Przykładowo jeśli chcemy dokonad preprocessingu pliku bajki.cpp i rezultat umieścid w pliku pre.txt należy wpisad komendę: g++ bajki.cpp -E > pre.txt Zad 1. Stwórz pliki ala.h, dzik.h oraz main.cpp z przykładu dla dyrektywy #include. Zaobserwuj działanie tejże dyrektywy. Zad 2. Ściągnij ze strony plik wierszyki.txt. Użyj do tego celu komendy: wget Korzystając z dyrektyw #include i #define napisz plik zamiana.cpp tak, aby po wykonaniu polecenia: g++ zamiana.cpp -E > zamieniony.txt w pliku zamieniony.txt wszystkie wystąpienia słowa pan były zamienione na Pan. Skorzystaj z własności dyrektywy #include która pozwala załączad plik dowolnego formatu. Zad 3. Zmodyfikuj pliki z zadania pierwszego w taki sposób, aby wielokrotne dołączenie plików.h nie powodowało wielokrotnego załączania ich treści. Przetestuj zmiany.

5 3. Zmienne Typy podstawowe (ang. Primitive data types) predefiniowane w języku C++ o nazwach zarezerwowanych jako słowa kluczowe: Typ Rozmiar Interpretacja Zakres char 1 bajt Jeden znak kodu ASCII <-2 7 ;-2 7-1>=<-128;127> bool 1 bajt Typ przechowujące informację true, false o wartości logicznej short 2 bajty Typ całkowitoliczbowy <-2 15 ; > = <-32768;32767> int 4 bajty (zależne od kompilatora) Typ całkowitoliczbowy <-2 31 ; >= < ; > long 4 bajty Typ całkowitoliczbowy <-2 31 ; >= < ; > long long 8 bajtów Typ całkowitoliczbowy <-2 63 ;2 63-1> < ; > float 4 bajty Typ zmiennoprzecinkowy +/ /- 38 (ok. 7 cyfr) double 8 bajtów Typ zmiennoprzecinkowy +/ /- 308 (ok. 15 cyfr) Deklaracja zmiennej: typ etykieta (= wartość_domyślna)(, ); np.: int a=4, b=12; char c='m'; Wypisywanie na standardowe wyjście w programie napisanym w C++ odbywa się za pomocą strumieni. Zmienną strumieniową do której będziemy wrzucad rzeczy do wypisania to zmienna cout znajdujące się w namespace ie std. Drukowanie zmiennej odbywa się za pomocą przeciążonego operatora << (temat przeciążania operatorów będzie omówiony w kontekście obiektowości). Przykład: cout << a << endl; cout << b << endl; Wypisze dwie linie z wartościami zmiennych a i b. Zad 1. Zmodyfikuj plik main.cpp z rozdziału o podstawowej strukturze pliku deklarując trzy zmienne: a typu całkowitoliczbowego o domyślnej wartości 3, b typu zmiennoprzecinkowego o domyślnej wartości 11.22, i c typu znakowego o wartości 'L'. Następnie korzystając ze strumieni wypisz je w jednej linii oddzielonej spacjami.

6 Deklaracja zmiennej a pamięd operacyjna komputera: Pamięd operacyjną dostępną przez program można sobie wyobrazid jako kartkę w kratkę. Deklaracją zmiennej może byd wtedy wykorzystanie odpowiedniej liczby kratek zgodnie z rozmiarem typu zmiennej. a b c m Deklaracja tablicy zmiennych: typ etykieta[(ilość_elementów)] (= {wartości_domyślne_oddzielone_przecinkami}); np.: int tab[5] = {0, 1, 2, 3, 4}; Tablice w C/C++ adresowane są od 0. Oznacza to że żeby dostad się do pierwszego elementu tablicy trzeba skorzystad z indeksu 0. Kontynuując przykład z pamięcią: a b c tab[0] tab[1] tab[2] tab[3] tab[4] m Tablice w C++ muszą byd ciągłym obszarem pamięci, oznacza to że kolejne bajty pamięci operacyjnej tablicy, która ma zostad zadeklarowana nie mogą byd oddzielone żadnym bajtem innej zmiennej. Szczególnym przypadkiem inicjalizowania zmiennej tablicowej dla tablicy znaków jest skorzystanie z faktu iż tekst objęty w cudzysłów jest w C++ definicją stałego ciągu znaków. Można zatem zdeklarowad zmienną tablicową dla ciągu znaków w następujący sposób: char tab[<rozmiar>] = "<tekst>"; Zad 1. Do pliku z poprzedniego zadania dołóż zmienną tablicową o 5-ciu wartościach 1, 2, 4, 8 i 16. Wypisz na standardowe wyjście w kolejnych liniach standardowego wyjścia komórki tablicy o indeksach parzystych. Zad 2. Stwórz jeszcze raz program Hello world. Tym razem wypisywany tekst ma znajdowad się w zmiennej.

7 Adres zmiennej to numer pierwszego bajtu w pamięci operacyjnej w której mieści się zmienna. Celem wyłuskania adresu korzystamy z operatora & wstawiając za nim etykietę zmiennej, której adres chcemy wyłuskad. Na przykład: &a, &b, &tab[1] Korzystając z analogii kartki w kratkę adresem będzie numer pierwszej kratki z wartością zmiennej której adres chcemy otrzymad: a b c tab[0] tab[1] tab[2] tab[3] tab[4] m &a &b &tab[1] Zad 1. Stwórz program z sześcioma zmiennymi typu char trzema zadeklarowanymi jako zmienne globalne (nad funkcją main) i trzema zmiennymi zadeklarowanymi wewnątrz funkcji main. Wypisz w kolejnych liniach standardowego wyjścia ich adresy zrzutowane na typ całkowitoliczbowy ((int)&zmienna). Co zaobserwowałeś? Zad 2.Poszukaj informacji na temat stosu i sterty programu. Które ze zmiennych z zadania znajdują się na stosie a które na stercie? Zad 3. Zadeklaruj tablice znaków o rozmiarze 3 jako zmienną globalną i jako zmienną wewnątrz funkcji main. Podobnie jak w zadaniu 1 wypisz adresy kolejnych elementów tablicy zrzutowane na typ całkowitoliczbowy. Co zaobserwowałeś?

8 Adres a referencja. Z pojęciem adresu łączy się jednoznacznie pojęcie referencji do zmiennej. Zwyczajowo przyjmuje się że referencja do zmiennej to wykorzystanie zmiennej celem podstawienia pod nią wartości. Przykładem może byd tutaj podstawianie za zmienną wartości stałej, bądź z wykorzystaniem (referencje zmiennych zaznaczone są tutaj na zielono): a = 4; c = 'k'; b = a; tab[1] = b; Zad 1. Utwórz tablicę znakową i zainicjuj ją wartością "Ala ma kota". Zmieo wartośd pierwszego elementu tablicy na 'O'. Wypisz ciąg znaków na standardowe wyjście.

9 Zmienna referencyjna. Zmienna referencyjna to zmienna która zastępuje etykietę innej zmiennej. Deklaracja zmiennej referencyjnej: typ& etykieta = referencja_do_zmiennej; W przypadku gdy za zmienną referencyjną podstawimy w dalszych linijkach (po deklaracji) jakąś wartośd w zmiennej do której ta zmienna się odnosi wartośd ta zostanie również zmieniona. Przykład: int tab[5] = {0, 1, 2, 3, 4}; int b = 4; int& ref = tab[1]; ref = 10; // pod zmienną tab[1] znajduje się wartość 10 ref = b; // pod zmienną tab[1] znajduje się wartość 4 Ważne jest by przekazywana referencja do zmiennej miała ten sam typ jak zmienna referencyjna inaczej przed jej podstawieniem nastąpi rzutowanie (o którym mowa będzie później) zmiennej i przed podstawieniem referencji zostanie utworzona nowa zmienna której referencja zostanie zapamiętana w naszej zmiennej referencyjnej. Zad 1. Wprowadź do pliku main.cpp kod z przykładu i zweryfikuj wartości zmiennych w danych miejscach (wypisując je na standardowe wyjście).

10 Zmienne wskaźnikowe. Kolejnym rodzajem zmiennych są zmienne wskaźnikowe (lub w skrócie wskaźniki). Wskaźniki to zmienne przechowujące adres innej zmiennej. Deklaracja zmiennych wskaźnikowych: typ *etykieta (=adres_do_zmiennej); Przykład: int tab[5] = {0, 1, 2, 3, 4}; int *pointer = &tab[1]; Uwaga! W przypadku deklaracji kilku zmiennych wskaźnikowych w jednej instrukcji należy umieścid symbol * przed każdą ze zmiennych inaczej zmienna ta będzie miała typ bazowy. Przykładowo: int *pointer, a; Zmienna a będzie typu int. Celem wyłuskania referencji zmiennej lub też jej wartości spod wskaźnika, korzystamy z operatora * w kontekście innym niż deklaracja. Przykładowo: int tab[5] = {0, 1, 2, 3, 4}; int *pointer = &tab[1], *pointer2 = &tab[2]; *pointer = *pointer2; *pointer2 = 3; // w zmiennej tab[1] znajduje się teraz 2 a w tab[2] - 3 Dla zmiennych wskaźnikowych, tak jak w przypadku zmiennych referencyjnych, również istotnym jest by typ adresu który przekazujemy był ten sam, jednak z innych względów. Gdy będziemy korzystad ze zmiennej wskaźnikowej celem podstawienia wartości a wskaźnik będzie innego typu niż zmienna na którą owy wskaźnik wskazuje (dajmy na to że mniejszego rozmiaru) podczas podstawiania zostanie nadpisana pamięd innej zmiennej. Wracając do analogii z kartką w kratkę załóżmy że mamy dane instrukcje deklarujące zmienne: char c='m'; int a=4; int *pointer = (int *)&c; //(int *) oznacza rzutowanie które będzie //omówione w dalszej części skryptu c a pointer m Po wykonaniu instrukcji: *pointer = 2;

11 Pamięd zmieni się następująco: c a pointer Alternatywną metodą korzystania ze zmiennych wskaźnikowych celem wydobycia referencji zmiennej, bądź jej wartości jest odwoływanie się przez nawias tablicowy []. Wykorzystanie tutaj *etykieta byłoby równoważne z etykieta[0]. Indeks w nawiasach tablicowych mówi o tym do której z kolei zmiennej typu jednoznacznie identyfikowanego przez typ wskaźnika chcemy się odwoływad tak jak byśmy korzystali z tablicy z zerowym elementem zmienną na którą wskazujemy. Analogia pomiędzy zmiennymi wskaźnikowymi a zmiennymi tablicowymi nie jest przypadkowa. Etykieta zmiennej tablicowej jest również wskaźnikiem na pierwszą zmienną w tablicy. Zad 1. Utwórz zmienną tablicową z 5 zmiennymi typu int o wartościach: 0, 1, 2, 3 i 4. Za zmienną wskaźnikową wsk podstaw adres do 2 elementu w tablicy (tab*1+). Podstaw za kolejne cztery wartości tablicy wsk (wsk*0+, wsk*1+, wsk*2+, wsk*3+) ich wartośd zwiększoną o 2. Skorzystaj z operatora binarnego + (x = x + y;). Wypisz wartości tablicy na standardowe wyjście. Zad 2. Wykonaj powyższe zadanie tym razem nie korzystając z operatora *+. Skorzystaj z własności danej przykładem: *(wskaźnik + indeks)=2;

12 Operator sizeof. W celu wydobycia informacji na temat rozmiaru zmiennej (w bajtach) możemy wykorzystad operator sizeof. Uwaga typ tablicowy ma tyle bajtów ile wynosi suma rozmiarów wszystkich jego elementów. Dlatego na przykład: char c='m'; int a=2; int *pointerint; // sizeof(c)==1 // sizeof(a)==4 // sizeof(pointerint) == 4 lub 8 w zależności od // tego czy system jest 32 czy 64 bitowy // a dokładniej na jaką architekturę // kompilowany jest program char *pointerchar; // sizeof(pointerchar) == sizeof(pointerint) // zmienna wskaźnikowa nie zależnie od typu na // jaki wskaźnik wskazuje ma ten sam rozmiar! int tab[5]; // sizeof(tab) == 5*4 // bo typem jest tutaj int[5] Zad 1. Zweryfikuj wartości wielkości danych typów podane w przykładzie. Zad 2. Operator sizeof można stosowad również podając w nawiasach typ zmiennych. Korzystając z tabelki umieszczonej na piątej stronie skryptu wypisz na standardowe wejście w nowych liniach nazwę każdego typu wraz z wielkości pamięci jaką zajmuje.

13 4. Operatory języka C++ Operatory zmieniające wartośd zmiennej Operator Użycie Opis = ref = val; Podstawienie za zmienną której referencję przekazujemy jako pierwszy argument wartości podanej jako drugi argument += ref += val; Zwiększenie zmiennej której referencję podajemy jako pierwszy argument o wartośd podaną jako drugi argument -= ref -= val; Zmniejszenie zmiennej której referencję podajemy jako pierwszy argument o wartośd podaną jako drugi argument *= ref *= val; Zwiększenie zmiennej której referencję podajemy jako pierwszy argument wartośd podaną jako drugi argument razy /= ref /= val; Zmniejszenie zmiennej której referencję podajemy jako pierwszy argument wartośd podaną jako drugi argument razy %= ref %= val; Operator podstawiający resztę z dzielenia referencji zmiennej podanej jako pierwszy argument przez wartośd podaną jako drugi argument &= ref &= val; Operator bitowego mnożenia referencji zmiennej podanej jako pierwszy argument przez wartośd podaną jako drugi argument = ref = val; Operator bitowej sumy referencji zmiennej podanej jako pierwszy argument z wartością podaną jako drugi argument ^= ref ^= val; Operator bitowej sumy modulo 2 (xor) referencji zmiennej podanej jako pierwszy argument z wartością podaną jako drugi argument >>= ref >>= val; Operator przesunięcia bitowego w prawo zmiennej podanej jako pierwszy argument o ilośd bitów podaną jako drugi argument <<= ref <<= val; Operator przesunięcia bitowego w lewo zmiennej podanej jako pierwszy argument o ilośd bitów podaną jako drugi argument ++ ref++, ++ref Unarny operator inkrementacji wartości zmiennej -- ref--, --ref Unarny operator dekrementacji wartości zmiennej Wszystkie operatory powyższe operatory (z wyjątkiem postfiksowych operatorów inkrementacji i dekrementacji) zwracają referencję do zmienianej zmiennej. Dlatego można sobie wyobrazid ciąg podstawieo typu a-=b+=5;, który to będzie wykonywany od kooca (b+=5) do początku (a-=b). Przykłady: a = 5; // W zmiennej a będzie wartość 5 a += 3; // W zmiennej a będzie wartość 8 a *= a; // W zmiennej a będzie wartość 64 a /= 4; // W zmiennej a będzie wartość 16 a %= 7; // W zmiennej a będzie wartość 2 a = 5; // W zmiennej a będzie wartość 7 (5 to 101, 2 = 010) a &= 9; // W zmiennej a będzie wartość 1 (9 to 1001, 7 = 111) a <<= 3; // W zmiennej a będzie wartość 8 a >>= 1; // W zmiennej a będzie wartość 4

14 Zad 1. Wprowadź do programu kod z powyższego przykładu. Zweryfikuj wartości zmiennej na poszczególnych jego etapach. Zad 2. Zaimplementuj algorytm zamiany dwóch zmiennych bez użycia bufora dany w pseudokodzie: X X XOR Y Y X XOR Y X X XOR Y Tak by był zapisany w jednej instrukcji (tj. bez operatora średnika)

15 Arytmetyczne Bitowe Porównania Logiczne Pozostałe operatory Operator Krotność Użycie Opis + binarny val+val Zwraca sumę wartości podanych w argumentach - binarny val-val Zwraca różnicę wartości podanych w argumentach - unarny -val Zwraca przeciwną wartośd do podanej w argumencie * binarny val*val Zwraca iloczyn wartości podanych w argumentach / binarny val/val Zwraca iloraz wartości podanych w argumentach % binarny val%val Zwraca resztę z dzielenia wartości z pierwszego argumentu przez drugi argument & binarny val&val Zwraca iloczyn bitowy wartości podanych w argumentach binarny val val Zwraca sumę bitową wartości podanych w argumentach ^ binarny val^val Zwraca sumę reszta 2 (xor) bitową wartości podanych w argumentach ~ unarny ~val Zwraca negację bitową wartości podanej w argumencie << binarny val<<val Zwraca wartośd podaną w pierwszym argumencie przesuniętą w lewo o wartośd podaną w drugim argumencie bitów >> binarny val>>val Zwraca wartośd podaną w pierwszym argumencie przesuniętą w prawo o wartośd podaną w drugim argumencie bitów == binarny val==val Zwraca wartośd logiczną prawda (true) jeśli wartośd podana jako pierwszy argument jest równa wartości podanej jako drugi argument w innym wypadku zwraca wartośd logiczną fałsz (false)!= binarny val!=val Zwraca wartośd logiczną prawda (true) jeśli wartośd podana jako pierwszy argument jest różna od wartości podanej jako drugi argument w innym wypadku zwraca wartośd logiczną fałsz (false) <= binarny val<=val Zwraca wartośd logiczną prawda (true) jeśli wartośd podana jako pierwszy argument jest mniejsza lub równa od wartości podanej jako drugi argument w innym wypadku zwraca wartośd logiczną fałsz (false) >= binarny val>=val Zwraca wartośd logiczną prawda (true) jeśli wartośd podana jako pierwszy argument jest większa lub równa od wartości podanej jako drugi argument w innym wypadku zwraca wartośd logiczną fałsz (false) < binarny val<val Zwraca wartośd logiczną prawda (true) jeśli wartośd podana jako pierwszy argument jest mniejsza od wartości podanej jako drugi argument w innym wypadku zwraca wartośd logiczną fałsz (false) > binarny val>val Zwraca wartośd logiczną prawda (true) jeśli wartośd podana jako pierwszy argument jest większa od wartości podanej jako drugi argument w innym wypadku zwraca wartośd logiczną fałsz (false) && binarny val&&val Zwraca logiczny iloczyn zdao logicznych podanych jako argumenty binarny val val Zwraca logiczną sumę zdao logicznych podanych jako argumenty! unarny!val Zwraca logiczną negację zdania logicznego podanego jako argument

16 Wskaźnikowe Operator Krotność Użycie Opis?: trójargum. (val)? (val) : (val) W przypadku, gdy wartośd pierwszego argumentu zdania logicznego jest prawdą zwraca wartośd drugiego argumentu, w innym wypadku zwraca wartośd trzeciego argumentu * unarny *val Operator wyciągnięcia referencji spod wskaźnika & unarny &ref Zwraca adres zmiennej podanej w argumencie [] binarny val[val] Operator wyciągnięcia elementu spod indeksu określonego przez drugi argument z tablicy lub spod wskaźnika określonego przez pierwszy argument. binarny ref.field Operator dostępu do pola wyspecyfikowanego drugim parametrem operatora struktury lub obiektu określonego pierwszym argumentem -> binarny val->field Operator dostępu do pola wyspecyfikowanego drugim parametrem operatora struktury lub obiektu, do którego wskaźnik znajduje się w pierwszym argumencie operatora Należy zwrócid uwagę że dodawanie wartości do wskaźników zwiększa wartośd o rozmiar typu który mieści się pod wskaźnikiem razy wartośd dodawana. Przykładowo: int *pointer = (int *)0; pointer = pointer + 3; // we wskaźniku pointer znajdzie się teraz // wartość 3*sizeof(int) Zad 1. Sprawdź wynik operatorów ^ & dla zmiennych a i b o wartościach odpowiednio 45 i 3. Zad 2. Sprawdź wynik operatora ~ dla zmiennych a, b i c o wartościach odpowiednio 52, 1999 i -26. Zad 3. Znajdź maksymalną wartośd z dwóch liczb znajdujących się w zmiennych a i b (domyślnie 70, -100) korzystając z operatora trójargumentowego. Zad 4. Rozszerz powyższy program o przyjmowanie wartości do zmiennych a i b ze standardowego wejścia. Składnia pobierania wartości zmiennej to: cin >> zmienna;

C++ wprowadzanie zmiennych

C++ wprowadzanie zmiennych C++ wprowadzanie zmiennych Każda zmienna musi być zadeklarowana, należy określić jej nazwę (identyfikator) oraz typ. Opis_typu lista zmiennych Dla każdej zmiennej rezerwowany jest fragment pamięci o określonym

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

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 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

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

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

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

Podstawy Programowania Podstawowa składnia języka C++

Podstawy Programowania Podstawowa składnia języka C++ Podstawy Programowania Podstawowa składnia języka C++ Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 3 października 2013 r. Szablon programu w C++ Najprostszy program w C++ ma postać: #include #include

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. 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

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r. M. Trzebiński C++ 1/14 Podstawy języka C++ Maciej Trzebiński Instytut Fizyki Jądrowej Polskiej Akademii Nauk Praktyki studenckie na LHC IVedycja,2016r. IFJ PAN Przygotowanie środowiska pracy Niniejsza

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

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

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

Ok. Rozbijmy to na czynniki pierwsze, pomijając fragmenty, które już znamy:

Ok. Rozbijmy to na czynniki pierwsze, pomijając fragmenty, które już znamy: Kurs C++ częśd II Podstawowa obsługa konsoli + zmienne. Autor: Dawid Chróścielski. Wprowadzanie i wyprowadzanie danych z/do konsoli. Jak wyprowadzad dane dowiedzieliśmy się już wcześniej (metoda cout z

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

Podstawy programowania. 1. Operacje arytmetyczne Operacja arytmetyczna jest opisywana za pomocą znaku operacji i jednego lub dwóch wyrażeń.

Podstawy programowania. 1. Operacje arytmetyczne Operacja arytmetyczna jest opisywana za pomocą znaku operacji i jednego lub dwóch wyrażeń. Podstawy programowania Programowanie wyrażeń 1. Operacje arytmetyczne Operacja arytmetyczna jest opisywana za pomocą znaku operacji i jednego lub dwóch wyrażeń. W językach programowania są wykorzystywane

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

Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Ćwiczenie 1. Podstawy. Wprowadzenie do programowania w języku C. Katedra Metrologii AGH

Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Ćwiczenie 1. Podstawy. Wprowadzenie do programowania w języku C. Katedra Metrologii AGH Laboratorium Podstaw Informatyki Kierunek Elektrotechnika Ćwiczenie 1 Podstawy Wprowadzenie do programowania w języku C Kraków 2010 Twój pierwszy program w C Program w języku C, jak i w wielu innych językach

Bardziej szczegółowo

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI Dr inż. Grażyna KRUPIŃSKA Grazyna.Krupinska@fis.agh.edu.pl D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI Wyrażenia 2 Wyrażenia w języku C są bardziej elastyczne niż wyrażenia w jakimkolwiek innym języku

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

Podstawy i języki programowania

Podstawy i języki programowania Podstawy i języki programowania Laboratorium 3 - operatory oraz instrukcje warunkowe i wyboru mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 19 października 2018 1 / 35 mgr inż. Krzysztof

Bardziej szczegółowo

Struktura pliku projektu Console Application

Struktura pliku projektu Console Application Struktura pliku projektu Console Application #include #include using namespace std; int main(int argc, char *argv[]) // to jest komentarz system("pause"); return EXIT_SUCCESS; Na początku

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źnik może wskazywać na jakąś zmienną, strukturę, tablicę a nawet funkcję. Oto podstawowe operatory niezbędne do operowania wskaźnikami:

Wskaźnik może wskazywać na jakąś zmienną, strukturę, tablicę a nawet funkcję. Oto podstawowe operatory niezbędne do operowania wskaźnikami: Wskaźniki są nieodłącznym elementem języka C. W języku C++ także są przydatne i korzystanie z nich ułatwia pracę, jednak w odróżnieniu do C wiele rzeczy da się osiągnąć bez ich użycia. Poprawne operowanie

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Ę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

Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej Zajęcia nr 2 Programowanie strukturalne dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej Pętla while #include using namespace std; int main ()

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

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

Podstawy informatyki. Elektrotechnika I rok. Język C++ Operacje na danych - wskaźniki Instrukcja do ćwiczenia

Podstawy informatyki. Elektrotechnika I rok. Język C++ Operacje na danych - wskaźniki Instrukcja do ćwiczenia Podstawy informatyki Elektrotechnika I rok Język C++ Operacje na danych - wskaźniki Instrukcja do ćwiczenia Katedra Energoelektroniki i Automatyki Systemów Przetwarzania Energii AGH Kraków 2017 Tematyka

Bardziej szczegółowo

/* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include <aduc834.h>

/* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include <aduc834.h> Szablon programu: /* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include /* opcjonalne: deklaracja typów o rozmiarze jednego i dwóch

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

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

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

Odczyt danych z klawiatury Operatory w Javie

Odczyt danych z klawiatury Operatory w Javie Odczyt danych z klawiatury Operatory w Javie Operatory W Javie występują następujące typy operatorów: Arytmetyczne. Inkrementacji/Dekrementacji Przypisania. Porównania. Bitowe. Logiczne. Pozostałe. Operacje

Bardziej szczegółowo

Zajęcia nr 1 Podstawy programowania. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Zajęcia nr 1 Podstawy programowania. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej Zajęcia nr 1 Podstawy programowania dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej Ramowy program warsztatów 1. Pierwsze: Podstawy programowania 2. Drugie:

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

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

1 Wskaźniki. 1.1 Główne zastosowania wskaźników

1 Wskaźniki. 1.1 Główne zastosowania wskaźników 1 Wskaźniki Wskaźnik (ang. pointer) jest obiektem (zmienną) przechowującym adres pamięci. Definiowanie wskaźników: typ *nazwa wskaznika; np.: int *wsk na x;, double *xxx;, char *znak;. Aby można było pracować

Bardziej szczegółowo

Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem.

Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem. Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje 1 dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD programowania w C++ Typy c.d. 2 Typy zmiennych Instrukcja typedef -

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

Funkcje. Deklaracja funkcji. Definicja funkcji. Wykorzystanie funkcji w programie.

Funkcje. Deklaracja funkcji. Definicja funkcji. Wykorzystanie funkcji w programie. Funkcje Deklaracja funkcji typ funkcji identyfikator_funkcji(lista parametrów formalnych); Typ funkcji określa typ wartości zwracanej przez funkcję (typ zdefiniowany pierwotnie jak int, typ zdefiniowany

Bardziej szczegółowo

utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy,

utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy, Lista 3 Zestaw I Zadanie 1. Zaprojektować i zaimplementować funkcje: utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy, zapisz

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

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

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

Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch.

Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch. Instrukcje warunkowe i skoku. Spotkanie 2 Dr inż. Dariusz JĘDRZEJCZYK Wyrażenia i operatory logiczne Instrukcje warunkowe: if else, switch Przykłady 11/3/2016 AGH, Katedra Informatyki Stosowanej i Modelowania

Bardziej szczegółowo

4. Funkcje. Przykłady

4. Funkcje. Przykłady 4. Funkcje Przykłady 4.1. Napisz funkcję kwadrat, która przyjmuje jeden argument: długość boku kwadratu i zwraca pole jego powierzchni. Używając tej funkcji napisz program, który obliczy pole powierzchni

Bardziej szczegółowo

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

Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.

Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście. Typy, operatory, wyrażenia. Wejście i wyjście. Typy, operatory, wyrażenia Zmienna: [] [ '[' ']' ] ['=' ]; Zmienna to fragment pamięci o określonym

Bardziej szczegółowo

> C++ wskaźniki. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki 26 kwietnia 2017

> C++ wskaźniki. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki 26 kwietnia 2017 > C++ wskaźniki Dane: Iwona Polak iwona.polak@us.edu.pl Uniwersytet Śląski Instytut Informatyki 26 kwietnia 2017 >??? Co to jest WSKAŹNIK? ++ wskaźniki 2 / 20 >??? Co to jest WSKAŹNIK? To po prostu ADRES

Bardziej szczegółowo

Mikrokontroler ATmega32. Język symboliczny

Mikrokontroler ATmega32. Język symboliczny Mikrokontroler ATmega32 Język symboliczny 1 Język symboliczny (asembler) jest językiem niskiego poziomu - pozwala pisać programy złożone z instrukcji procesora. Kody instrukcji są reprezentowane nazwami

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

Język C - podstawowe informacje

Język C - podstawowe informacje Język C - podstawowe informacje Michał Rad AGH Laboratorium Maszyn Elektrycznych 2014-12-05 Outline Program w języku C Funkcje Składnia Instrukcje sterujace Na koniec... Po kolei napisać program (zwykły

Bardziej szczegółowo

Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory

Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory Poniżej pozwoliłem sobie za cytować za wikipedią definicję zmiennej w informatyce.

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

Wstęp do informatyki- wykład 12 Funkcje (przekazywanie parametrów przez wartość i zmienną)

Wstęp do informatyki- wykład 12 Funkcje (przekazywanie parametrów przez wartość i zmienną) 1 Wstęp do informatyki- wykład 12 Funkcje (przekazywanie parametrów przez wartość i zmienną) Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion,

Bardziej szczegółowo

( wykł. dr Marek Piasecki )

( wykł. dr Marek Piasecki ) INE 1007 Informatyka 1 Język programowania C++ ( wykł. dr Marek Piasecki ) Literatura: dowolny podręcznik do języka C++ (na laboratoriach Borland C++ 3.1) Robert Lafore Jerzy Grębosz Andrzej Zalewski Programowanie

Bardziej szczegółowo

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Instytut Mechaniki i Inżynierii Obliczeniowej  Wydział Mechaniczny Technologiczny Politechnika Śląska Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl Wydział Mechaniczny Technologiczny Politechnika Śląska Języki programowania z programowaniem obiektowym Laboratorium

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 Obiektowe i C++

Programowanie Obiektowe i C++ Programowanie Obiektowe i C++ Marcin Benke Instytut Informatyki UW 2.10.2006 Marcin Benke (IIUW) Programowanie Obiektowe i C++ 2.10.2006 1 / 38 Podstawowe elementy proceduralne w C++ Program i wyjście

Bardziej szczegółowo

ZASADY PROGRAMOWANIA KOMPUTERÓW

ZASADY PROGRAMOWANIA KOMPUTERÓW POLITECHNIKA WARSZAWSKA Instytut Automatyki i i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW Język Język programowania: C/C++ Środowisko programistyczne: C++Builder 6 Wykład 9.. Wskaźniki i i zmienne dynamiczne.

Bardziej szczegółowo

Programowanie strukturalne. dr inż. Tadeusz Jeleniewski

Programowanie strukturalne. dr inż. Tadeusz Jeleniewski Wykład 2 Wejście i wyjście - funkcje scanf i printf Operator przypisania prostego Operatory arytmetyczne Kolejność wykonywania operacji Operatory przypisania arytmetycznego Operatory inkrementacji/dekrementacji

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania wykład 8 Agata Półrola Wydział Matematyki i Informatyki UŁ semestr zimowy 2018/2019 Podprogramy Czasami wygodnie jest wyodrębnić jakiś fragment programu jako pewną odrębną całość umożliwiają to podprogramy.

Bardziej szczegółowo

PROE wykład 3 klasa string, przeciążanie funkcji, operatory. dr inż. Jacek Naruniec

PROE wykład 3 klasa string, przeciążanie funkcji, operatory. dr inż. Jacek Naruniec PROE wykład 3 klasa string, przeciążanie funkcji, operatory dr inż. Jacek Naruniec Przypomnienie z ostatnich wykładów Konstruktory/destruktory i kolejność ich wywołania w złożonej klasie. Referencja Obiekty

Bardziej szczegółowo

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

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41 Programowanie w C++ Wykład 2 Katarzyna Grzelak 5 marca 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41 Reprezentacje liczb w komputerze K.Grzelak (Wykład 1) Programowanie w C++ 2 / 41 Reprezentacje

Bardziej szczegółowo

> C++ dynamiczna alokacja/rezerwacja/przydział pamięci. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki

> C++ dynamiczna alokacja/rezerwacja/przydział pamięci. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki > C++ dynamiczna alokacja/rezerwacja/przydział pamięci Dane: Iwona Polak iwona.polak@us.edu.pl Uniwersytet Śląski Instytut Informatyki 1429536600 > Dzisiejsze zajęcia sponsorują słówka: new oraz delete

Bardziej szczegółowo

Operacje wykonywane są na operandach (argumentach operatorów). Przy operacji dodawania: argumentami operatora dodawania + są dwa operandy 2 i 5.

Operacje wykonywane są na operandach (argumentach operatorów). Przy operacji dodawania: argumentami operatora dodawania + są dwa operandy 2 i 5. Operatory w Javie W Javie występują następujące typy operatorów: Arytmetyczne. Inkrementacji/Dekrementacji Przypisania. Porównania. Bitowe. Logiczne. Pozostałe. Operacje wykonywane są na operandach (argumentach

Bardziej szczegółowo

Podstawy programowania w języku C

Podstawy programowania w języku C Podstawy programowania w języku C WYKŁAD 1 Proces tworzenia i uruchamiania programów Algorytm, program Algorytm przepis postępowania prowadzący do rozwiązania określonego zadania. Program zapis algorytmu

Bardziej szczegółowo

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Część XXII C++ w Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Ćwiczenie 1 1. Utwórz nowy projekt w Dev C++ i zapisz go na

Bardziej szczegółowo

Język C zajęcia nr 11. Funkcje

Język C zajęcia nr 11. Funkcje Język C zajęcia nr 11 Funkcje W języku C idea podprogramów realizowana jest wyłącznie poprzez definiowanie i wywołanie funkcji. Każda funkcja musi być przed wywołaniem zadeklarowana. Deklaracja funkcji

Bardziej szczegółowo

Wstęp do programowania obiektowego. Przekazywanie parametrów do funkcji w C++ Metody i funkcje operatorowe Strumienie: standardowe, plikowe, napisowe

Wstęp do programowania obiektowego. Przekazywanie parametrów do funkcji w C++ Metody i funkcje operatorowe Strumienie: standardowe, plikowe, napisowe Wstęp do programowania obiektowego Przekazywanie parametrów do funkcji w C++ Metody i funkcje operatorowe Strumienie: standardowe, plikowe, napisowe 1 PRZEKAZYWANIE PARAMETRÓW DO FUNKCJI W C++ 2 W C++

Bardziej szczegółowo

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Informatyka I Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 1 Plan wykładu

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

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p. Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy Laboratorium 2 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Komentarze Funkcja printf() Zmienne Łańcuchy

Bardziej szczegółowo

Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java

Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java Cechy C++ Język ogólnego przeznaczenia Można programować obiektowo i strukturalnie Bardzo wysoka wydajność kodu wynikowego

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

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

Programowanie obiektowe. Materiały przygotował: mgr inż. Wojciech Frohmberg

Programowanie obiektowe. Materiały przygotował: mgr inż. Wojciech Frohmberg Programowanie obiektowe Materiały przygotował: mgr inż. Wojciech Frohmberg Konstruktor Konstruktor w językach zorientowanych obiektowo pełni podwójną rolę: przydziela pamięć na obiekt, zdefiniowany klasą

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

Laboratorium 1: Podstawy języka c. dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski

Laboratorium 1: Podstawy języka c. dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski Laboratorium 1: Podstawy języka c dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski 12 października 2017 1. Wprowadzenie Instrukcja zawiera informacje o podstawowych konstrukcjach w języku c. Część pierwsza

Bardziej szczegółowo

Lab 9 Podstawy Programowania

Lab 9 Podstawy Programowania Lab 9 Podstawy Programowania (Kaja.Gutowska@cs.put.poznan.pl) Wszystkie kody/fragmenty kodów dostępne w osobnym pliku.txt. Materiały pomocnicze: Wskaźnik to specjalny rodzaj zmiennej, w której zapisany

Bardziej szczegółowo

Wstęp do wskaźników w języku ANSI C

Wstęp do wskaźników w języku ANSI C Wstęp do wskaźników w języku ANSI C / Materiał dydaktyczny pomocniczy do przedmiotu Informatyka sem.iii kier. Elektrotechnika/ 1. Wprowadzenie W języku ANSI C dla każdego typu X (wbudowanego, pochodnego,

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 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

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,3,4,2,3,4,0,1,4,5,0. Wówczas największa suma trzech kolejnych liczb (zaznaczone na czerwono) wynosi:

1,3,4,2,3,4,0,1,4,5,0. Wówczas największa suma trzech kolejnych liczb (zaznaczone na czerwono) wynosi: Program 20 Napisać następujące funkcje: funkcję pobierającą (z klawiatury) zawartość tablicy liczb całkowitych podanej jako parametr, o długości podanej jako parametr; funkcję wypisującą zawartość tablicy

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

Wprowadzenie do języka Java

Wprowadzenie do języka Java WSNHiD, Programowanie 2 Lab. 1 [ część 1 ] Wprowadzenie do języka Java Wprowadzenie Język programowania Java jest obiektowym językiem programowania. Powstał w 1995 i od tej pory był intensywnie rozwijany.

Bardziej szczegółowo

Materiał. Typy zmiennych Instrukcje warunkowe Pętle Tablice statyczne Funkcje Wskaźniki Referencje Tablice dynamiczne Typ string Przeładowania funkcji

Materiał. Typy zmiennych Instrukcje warunkowe Pętle Tablice statyczne Funkcje Wskaźniki Referencje Tablice dynamiczne Typ string Przeładowania funkcji Podstawy informatyki Informatyka stosowana - studia niestacjonarne - Zajęcia nr 5 Grzegorz Smyk Wydział Inżynierii Metali i Informatyki Przemysłowej Akademia Górniczo Hutnicza im. Stanisława Staszica w

Bardziej szczegółowo

Język C część 1. Sformułuj problem Zanalizuj go znajdź metodę rozwiązania (pomocny może byd algorytm) Napisz program Uruchom i przetestuj czy działa

Język C część 1. Sformułuj problem Zanalizuj go znajdź metodę rozwiązania (pomocny może byd algorytm) Napisz program Uruchom i przetestuj czy działa Język C część 1 Literatura [1] Brian W. Kernighan, Dennis M. Ritchie: Język ANSI C, Wydawnictwa Naukowo Techniczne, Warszawa 2003 [2] Anna Strudzioska-Walczak, Krzysztof Walczak, Nakuka programowania dla

Bardziej szczegółowo

Operatory, wyrażenia i typy proste

Operatory, wyrażenia i typy proste Operatory, wyrażenia i typy proste La Menu / Toolbar Przyciski kompilacji Pokazuje otwarte projekty i listę użytych symboli Tu zazwyczaj pojawi się edytor kodu z plikami w poszczególnych zakładkach. Panele

Bardziej szczegółowo

Proste programy w C++ zadania

Proste programy w C++ zadania Proste programy w C++ zadania Zbiór zadao do samodzielnego rozwiązania stanowiący powtórzenie materiału. Podstawy C++ Budowa programu w C++ Dyrektywy preprocesora Usunięcie dublujących się nazw Częśd główna

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

Podstawy Programowania C++

Podstawy Programowania C++ Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:

Bardziej szczegółowo

7. Pętle for. Przykłady

7. Pętle for. Przykłady . Pętle for Przykłady.1. Bez użycia pętli while ani rekurencji, napisz program, który wypisze na ekran kolejne liczby naturalne od 0 do pewnego danego n. 5 int n; 6 cin >> n; 8 for (int i = 0; i

Bardziej szczegółowo

Wstęp do informatyki- wykład 4 Deklaracja zmiennych Typy

Wstęp do informatyki- wykład 4 Deklaracja zmiennych Typy 1 Wstęp do informatyki- wykład 4 Deklaracja zmiennych Typy Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy

Bardziej szczegółowo