ROZDZIAŁ 2. Operatory

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

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

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

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

2 Przygotował: mgr inż. Maciej Lasota

Symfonia C++ standard : programowanie w języku C++ orientowane obiektowo. T. 1 / Jerzy Grębosz. Wyd. 3 C - popr. Kraków, 2015.

Operatory. Operatory bitowe i uzupełnienie informacji o pozostałych operatorach. Programowanie Proceduralne 1

Podstawy programowania. Wykład: 4. Instrukcje sterujące, operatory. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

operator zmiany znaku operatory mnożenia, dzielenia, dzielenia modulo operatory dodawania, odejmowania

Język C zajęcia nr 11. Funkcje

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

Programowanie strukturalne i obiektowe

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

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

Opus Magnum C++11 : programowanie w języku C++. Tom 1 / Jerzy Grębosz. Gliwice, cop Spis treści

Słowa kluczowe i nazwy

Język ludzki kod maszynowy

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

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

MATERIAŁY DO ZAJĘĆ II

Część 4 życie programu

( wykł. dr Marek Piasecki )

1 Podstawy c++ w pigułce.

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

Wykład 8: klasy cz. 4

Zmienne, stałe i operatory

C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów

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

1 Podstawy c++ w pigułce.

Podstawy programowania w języku C

Wyrażenia arytmetyczne

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

Programowanie obiektowe

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

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

I - Microsoft Visual Studio C++

Podstawy i języki programowania

C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy WSKAŹNIKI KLASOWE

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

Podstawy programowania w języku C i C++

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

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

Materiały pomocnicze do wykładu 3 - Elementy języka Java

Programowanie w języku C++

Operatory w C++ Operatory arytmetyczne. Operatory relacyjne (porównania) Operatory logiczne. + dodawanie - odejmowanie * mnożenie / dzielenie % modulo

Podstawy Programowania Obiektowego

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

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

Język C - podstawowe informacje

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Programowanie Komputerów

Operatory cd. Relacyjne: ==!= < > <= >= bool b; int i =10, j =20; dzielenie całkowitych wynik jest całkowity! Łączenie tekstu: + string s = "Ala ma ";

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

Instrukcje sterujące. Programowanie Proceduralne 1

Programowanie strukturalne i obiektowe : podręcznik do nauki zawodu technik informatyk / Adam Majczak. Gliwice, cop

Szablony klas, zastosowanie szablonów w programach

PARADYGMATY PROGRAMOWANIA Wykład 4

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

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

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),

Program w C. wer. 10 z drobnymi modyfikacjami! Wojciech Myszka :28:

C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy INNE SPOSOBY INICJALIZACJI SKŁADOWYCH OBIEKTU

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

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

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

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

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

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

Wstęp do programowania obiektowego. WYKŁAD 3 Dziedziczenie Pola i funkcje statyczne Funkcje zaprzyjaźnione, this

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

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

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

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

wykład II uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - funkcje, tablice i wskaźniki wykład II dr Jarosław Mederski Spis

Języki programowania - podstawy

Microsoft IT Academy kurs programowania

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

Zofia Kruczkiewicz, Programowanie obiektowe - java, wykład 2 1

Materiały pomocnicze do wykładu 3 - Elementy języka Java

C++ wprowadzanie zmiennych

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

Część I Programowanie niskiego poziomu w języku C 19

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

Programowanie I C / C++ laboratorium 02 Składnia pętli, typy zmiennych, operatory

Dodatkowo klasa powinna mieć destruktor zwalniający pamięć.

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

Program w C. wer. 12 z drobnymi modyfikacjami! Wojciech Myszka :59:

Wstęp do programowania

Stuck in the loop. Sterowanie. Marcin Makowski. 29 października Zak lad Chemii Teoretycznej UJ

Wskaźniki. Informatyka

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

Informacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char

Wstęp do programowania

Języki i paradygmaty programowania

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

ZMIENNE P R O G R A M O W A N I E C + +

PROGRAMOWANIE w C prolog

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

Wskaźniki. Przemysław Gawroński D-10, p marca Wykład 2. (Wykład 2) Wskaźniki 8 marca / 17

Transkrypt:

Bibliografia [1] Jerzy Grębosz, Symfonia C++, Oficyna Kallimach, Kraków, 1999, [2] Jerzy Grębosz, Pasja C++, Oficyna Kallimach, Kraków, 1999, [3] Bjarne Stroustrup, Język C++, WNT, Warszawa, 1997, [4] Davis Chapman, Visual C++ dla każdego, Helion, Gliwice, 1999. 1

ROZDZIAŁ 1 Wstęp (1) Język C++ - język funkcji - funkcja main(). (2) Operacje we/wy. (3) Dyrektywa preprocesora #include (4) Kompilator - linker - preprocesor (5) Język wolnego formatu (6) Deklaracja - definicja 2

ROZDZIAŁ 2 Operatory (1) Operator przypisania = a = 1 (2) Operatory arytmetyczne + dodawanie - odejmowanie * mnożenie / dzielenie (3) Operator % - modulo - reszta z dzielenia np. 10%3 = 1. (4) Operatory jednoargumentowe - + i (5) Operatory inkrementacji i dekrementacji Forma przedrostkowa a = + + i b = i Forma przyrostkowa a = i + + b = i (6) Operatory logiczne Operatory logiczne < -mniejszy niż <= - mniejszy lub równy > - większy niż >= - większy lub równy == - równy! = - różny Operator negacji! Jednoargumentowy operator negacji (wykrzyknik). 3

Operatory sumy logicznej ( ) i iloczynu logicznego (&&) (7) Operatory bitowe Przeunięcie w lewo zmienna << ile miejsc bity z lewego brzegu są gubione, z prawego brzegu uzupełniane są zerami Przesunięcie w prawo zmienna >> ile miejsc - bity z prawego brzegu są gubione, a z lewego - -zależne od typu zmiennej (unsigned lub signed (ale jest to akurat liczba dodatnia) - to bity są uzupełniane zerami) - signed liczba ujemna - bity uzupełniane są 0 lub 1. & - bitowa koniunkcja - bitowa alternatywa - bitowa różnica symetryczna - bitowa negacja Przykład 2.1. Operatory bitowe m 0000 1111 0000 1111 k 0000 1111 1111 0000 m&k 0000 1111 0000 0000 m k 0000 1111 1111 1111 m 1111 0000 1111 0000 m k 0000 0000 1111 1111 (8) Pozostałe operatory przypisania 4

i+ = 2 i = i + 2 i = 2 i = i 2 i = 2 i = i 2 i/ = 2 i = i/2 i% = 2 i = i%2 i >>= 2 i = i >> 2 i <<= 2 i = i << 2 i& = 2 i = i&2 i = 2 i = i 2 i = 2 i = i 2 (9) Operator sizeof sizeof(nazwa typu) sizeof(nazwa obiektu) (10) Operator rzutowania (nazwa typu) obiekt nazwa typu (obiekt) (11) Operator przecinek a=22; b=(a,a+4,a++);//23 (12) Wyrażenie warunkowe (warunek)? wartość1 : wartość2 Przykład c=(x>y)? 5: 12; za c zostanie podstawiona wartość 5, gdy x > y lub 12 w przeciwnym razie. 5

ROZDZIAŁ 3 Instrukcje sterujące (1) Prawda fałsz. (2) Instrukcja warunkowa if if (wyrażenie) instrukcja1; if (wyrażenie) instrukcja1; else instrukcja2; if (wyrażenie) instrukcja1; else if (wyrażenie) instrukcja2; else instrukcja3; (3) Instrukcja while. while (wyrażenie) instrukcja; while (wyrażenie) { instrukcje } (4) Pętla do... while... do { instrukcje } while (wyrażenie); (5) Pętla for for (wyrażenie1; wyrażenie2; wyrażenie3) instrukcja; for (wyrażenie1; wyrażenie2; wyrażenie3) { instrukcje; } for (;;;) (6) Instrukcja switch switch (wyrażenie) {case wartość1 : instrukcja1; \\ break; case wartość2 : instrukcja2; \\break; case wartość3 : instrukcja3; 6

\\break; default : instrucja4; \\break; } (7) Instrukcja break (8) Instrukcje continue 7

ROZDZIAŁ 4 Typy (1) Typy podstawowe w języku C++. (a) Typy reprezentujące liczby całkowite short int (short) -32.767-32.767 (0-65.535) int -2miliardy - 2 miliardy long int (long). (b) Typ reprezentujący obiekty zadeklarowane jako znaki alfanumeryczne char (-128-127) (0-255). Powyższe typy mogą występować w dwóch wariantach ze znakiem (signed) - reprezentuje liczbę dodatnią lub ujemną bez znaku (unsigned) - reprezentuje liczbę dodatnią (c) Typy reprezentujące liczby zmiennoprzecinkowe - umożliwiają pracę na liczbach rzeczywistych z różną dokładnością float 1.1 10 38 3.4 10 38-6 cyfr znaczących double 2.2 10 308 1.79 10 308-15 cyfr znaczących long double 3.3 10 4932 1.1 10 4932-18 cyfr znaczących. L = mantysa 10 cecha (d) Typ pusty (void) (e) Typ wyliczeniowy enum nazwa typu {lista wyliczeniowa} ; (f) Typ logiczny (bool) - true, false. 8

(2) Zakres ważności nazwy obiektu (a) lokalny (b) blok funkcji (c) zakres pliku (3) Zasłanianie nazw (4) Modyfikator const 9

ROZDZIAŁ 5 Funkcje (1) Podprogram (2) Funkcja (3) Deklaracja a definicja funkcji (4) Przesyłanie argumentów do funkcji (przez wartość i referencję) (5) Argumenty domniemane int multi (int x, float m, int a a=4, float y= 6.55, int k=10); wywołania multi(2,3.14); multi(2,3.14,7); multi(2,3.14,7,0.3); multi(2,3.14,7,,5); - błąd multi(2,3.14,7,0.3,5); (6) Funkcje inline (7) Rekurencja Ciąg Fibonacciego a 0 = 0, a 1 = 1, a n = a n 2 + a n 1. long Fib(int N) {long t; if (N == 0) t = 0; else if (N == 1) t = 1; else t = Fib(N - 1) + Fib(N - 2); return t; } (8) Szablony funkcji template <class dowolny_typ> dowolny_typ nazwa(dowlny_typ arg) //-jeden argument 10

template <class dowolny_typ> void nazwa(dowolny_typ arg1,dowolny_typ arg2)// - dwa argumenty template <class d_typ> d_typ MAX(d_typ a, d_typ b) {return (a>b)? a:b;} (9) Funkcje biblioteczne Plik nagłówkowy math.h int abs(int); double acos(double); double asin(double); double atan(double); double cos(double); double cosh(double); double exp(double); double fabs(double); long labs(long); double log(double); double log10(double); double pow(double, double); double sin(double); double sinh(double); double tan(double); double tanh(double); double sqrt(double); (10) Przeładowanie nazw funkcji 11

ROZDZIAŁ 6 Tablice (1) Tablica typ elementów nazwa tablicy [rozmiar] (2) Inicjalizacja tablic (3) Przesyłanie tablic do funkcji (4) Tablice znakowe (5) Tablice wielowymiarowe 12

ROZDZIAŁ 7 Wskaźniki (1) Definicje wskaźników int * w; float * f; char * zn; (2) Nadawanie wartości początkowej (3) Wskaźniki a tablice (4) Zastosowanie wskaźników w argumentach funkcji int tafla[4]={1,2,3,4} void funwsk1(int *wsk, int rozmiar); void funtabl(int tab[], int rozmiar); funtab(tafla,4) funwsk1(tafla,4); (5) Rezerwacja obszarów pamięci (6) Dynamiczna alokacja tablicy (7) Cechy obiektów stworzonych operatorem new Obiekty istnieją od momentu utworzenia operatorem new do czasu skasowania operatorem delete. Obiekty nie mają nazwy. Można nim operować tylko za pomocą wskaźników. Nie obowiązują zwykłe zasady o zakresie ważności. Jeżeli istnieje choć jeden wskaźnik pokazujący na obiekt, to mamy do tego obiektu dostęp. Obiekty tworzone dynamicznie nie są inicjalizowane zerami. (8) Stałe wskaźniki, wskaźniki do stałych (9) Wskaźniki a stringi 13

ROZDZIAŁ 8 Klasy class nowy_typ { składniki klasy metody (funkcje) klasy }; (1) Składniki klasy (a) public (b) private (c) protected (2) Różnice między klasą, strukturą i unią. (3) Konstruktor - funkcja składowa, która (a) nazywa się tak samo jak klasa. (b) nie ma wyspecyfikowanego żadnego typu wartości zwracanej (po słowie return może być tylko średnik). (c) ma na celu nadać wartości początkowe składnikom klasy. (d) jest wywoływany automatycznie w chwili definicji każdego obiektu zaraz po przydziale pamięci. (e) może być przeładowana. (f) nie może być funkcją typu const, static. (4) Konstruktor domniemany. (5) Lista inicjalizacyjna konstruktora. (6) Konstruktor kopiujący. (7) Destruktor - klasy K funkcja składowa o nazwie K. Destruktor jako funkcja nie może zwracać żadnej wartości (nawet void), nie jest wywoływana z żadnymi argumentami. Funkcja ta jest wywoływana automatycznie gdy obiekt jest likwidowany. (8) Konstrukcja i destrukcja obiektu, którego składnikiem jest obiekt innej klasy. 14

(9) Składnik statyczny (10) Statyczna funkcja składowa (11) Funkcje zaprzyjaźnione (12) Konwersje Konwersje obiektu typu A na typ B Konstruktor konwertujący - określa konwersję od typu który przyjmuje do typu klasy do której należy K:K(T); T K class zespolona {public: float re,im; public: zespolona(float a,float b):re(a),im(b){}; zespolona():re(0),im(0){}; void wypisz() {cout<<re<<" "<<im<<"\n";} }; Konstruktory postaci zespolona ::zespolona(float a) :re(a){}; zespolona ::zespolona(float a, float b=0):re(a),im(0){}; określają konwersję typu float zespolona. Takie konstruktory mogą być wywoływane niejawnie (zawsze gdy wymagana jest konwersja), lub jawnie. Konwesja nie musi dotyczyć tylko typów wbudowanych Funkcja konwertująca przekształcenie odwrotne tzn. z typu swojej klasy K na innego typ T. K::operator T( ); - gdzie T- nazwa typu na który przekształcamy (nie tylko typ wbudowany) K T musi być funkcją składową klasy nie ma określenia typu rezultatu zwracanego ma pustą listę argumentów Przykład. Konwersja z klasy K na typ float 15

operator float() {return re;} Uwagi: nie można zdefiniować konstruktora dla typu wbudowanego nie można zdefiniować konstruktora dla klasy, która nie jest naszą własnością aby zapewnić konwersję na typ wbudowany należy posłużyć się funkcją konwertującą Konwersja zachodzi gdy: w wywołaniu funkcji zachodzi niezgodność typów argumentów formalnych i aktualnych, a konwersja może tę niezgodność usunąć. przy zwracaniu rezultatu przez funkcje obiekt stojący po słowie return jest innego typu niż deklarowany dla funkcji typ rezultatu. w obecności operatorów w wyrażeniach if (obiekt) switch (obiekt) while (obiekt) oczekiwane jest wyrażenie typu int w wyrażeniach inicjalizujących. 16