1 / 31

Podstawy programowania

Zachodniopomorska Szkoła Biznesu. Podstawy programowania. Wykład 2: Przetwarzanie danych w C++. Podstawy tworzenia kodu w C++. Case-sensitive czyli rozmiar ma znaczenie Ignorowanie odstępów ( whitespace - białe znaki) Spacje Tabulacje Znaki nowej linii

maxime
Download Presentation

Podstawy programowania

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Zachodniopomorska Szkoła Biznesu Podstawy programowania Wykład 2: Przetwarzanie danych w C++

  2. Podstawy tworzenia kodu w C++ • Case-sensitive czyli rozmiar ma znaczenie • Ignorowanie odstępów (whitespace - białe znaki) • Spacje • Tabulacje • Znaki nowej linii • Komentarze: symbol // lub para /* - */ • Układ graficzny i wielkość liter w służbie czytelności • Konwencje • Układ graficzny • Nadawane nazwy • Język • Komentarze z grafiką Podstawy programowania - Przetwarzanie danych w C++

  3. Kolejność kompilacji i wykonania • Podstawową zasadą programowania jest zapis poleceń w kolejności, w jakiej mają być wykonywane, od góry do dołu, a jeżeli kilka instrukcji znajduje się w jednej linii kodu: od lewej do prawej • Kolejność ta nie zawsze dotyczy całości pliku programu ze względu na strukturę programu w języku C++, można jednak założyć, że obowiązuje wewnątrz każdego wydzielonego bloku • Kompilacja: zgodna z kolejnością znaków w pliku,a więc od góry do dołu i od lewej do prawej Podstawy programowania - Przetwarzanie danych w C++

  4. Dane i ich rodzaje • Pracę programu należy rozumieć jako przetwarzanie danych • Przykłady danych różnych rodzajów: • liczba • tekst • znak • adres w pamięci • data i czas • obraz, dźwięk, video • Kodowanie w postaci kombinacji (ciągu) bitów interpretowanych jako liczby • Sposób kodowania danych to reprezentacja Podstawy programowania - Przetwarzanie danych w C++

  5. Typy danych w C++ • Wszystkie dane w programie muszą mieć określony typ definiujący jednoznacznie ich zapis w pamięci • Typy całkowite • Typy zmiennoprzecinkowe • Typ znakowy • Typy pochodne • Wskaźnik • Referencja • Typy złożone • Tablica • Rekord lub klasa • Unia • Pole bitowe Podstawy programowania - Przetwarzanie danych w C++

  6. Typy całkowitoliczbowe • Stosowane do zapisu wartości niewymagających użycia ułamków; ilości, numerów porządkowych itp. • Typ int • Zakres liczb - modyfikatory: short, longtypy: short int = short, long int = long • Określenie znaku - modyfikatory: signed, unsigned typy: signed int = signed unsigned int = unsigned signed/unsigned short [int] signed/unsigned long [int] • Typ znakowychar może być również traktowany jako liczba całkowita Podstawy programowania - Przetwarzanie danych w C++

  7. Typy całkowite i ich zakresy • Rozmiar typu int zależy od kompilatora i z założenia powinien odpowiadać szerokości szyny danych komputera, (obecnie 32b) • Typy int, short i long domyślnie posiadają znak (signed) • Dla typu char własność ta zależy od kompilatora Podstawy programowania - Przetwarzanie danych w C++

  8. Typy zmiennoprzecinkowe • Zapis wartości zawierających ułamki lub zbyt dużych aby reprezentować je za pomocą typów całkowitych • Typy float, double i long double • Różnią się one precyzją zapisu i zakresem dopuszczalnych wartości oraz liczbą bajtów zajętej pamięci: Podstawy programowania - Przetwarzanie danych w C++

  9. Stałe liczbowe w programie • Liczby całkowite wpisane wprost w tekście programu traktowane są jako typ int, chyba że ich wartość wykracza poza zakres tego typu. Wtedy stosowany jest typ całkowity o większym zakresie (np. long lub int64) lub kompilacja kończy się błędem • Znak U po liczbie wymusza utworzenie stałej o typie nieznakowanym (unsigned) • Znak L wymusza utworzenie stałej o typie long • Para znaków UL po liczbie wymusza utworzenie stałej o typie unsigned long • Liczba zawierająca kropkę dziesiętną lub wartość w tzw. notacji naukowej traktowana jest jako double Podstawy programowania - Przetwarzanie danych w C++

  10. Stałe liczbowe - przykłady • 100 // int • -23000U // unsigned int! • 1L // long • 5000000000 (5mld) // int64! • 50UL // unsigned long • 1.23234 // double • 26. // double, 26.0 • .5 // double, 0.5 • -1.434e25 // double, -1.434*10^25 • 1e6 // double, 1 mln • 5e-1 // double, 0.5 Podstawy programowania - Przetwarzanie danych w C++

  11. Stałe ósemkowe i szesnastkowe • Liczby całkowite można podawać, oprócz postaci dziesiętnej, również w kodzie ósemkowym lub szesnastkowym • Stała całkowita rozpoczynająca się od 0 traktowana jest jako liczba ósemkowa, a od 0x jako szesnastkowa, np. • 010 // 8 • -077 // -63 • 0xff // 255 • -0x10 // -16 Podstawy programowania - Przetwarzanie danych w C++

  12. Zmienne • Jeżeli w programie zachodzi potrzeba zapamiętania pewnej wartości lub jej przetwarzania należy zarezerwować odpowiedni obszar w pamięci nadając mu nazwę oraz typ. • Obszar taki wraz z nazwą i typem nazywa się zmienną. • Zmienna zawsze zawiera wartość • Składnia deklaracji (utworzenia) zmiennej: typ nazwa_zmiennej; typ nazwa_zmiennej1, nazwa_zmiennej2,...; • Ograniczenia nazwy: litery wielkie i małe (bez polskich znaków), cyfry oraz znak ‘_’, nie może zaczynać się od cyfry, zwykle max. 32 znaki • Przykłady: int x; unsigned long _Bardzo_Dluga_Nazwa_Zmiennej; float Pole_Kola1, Pole_Kola2; Podstawy programowania - Przetwarzanie danych w C++

  13. Korzystanie ze zmiennej • Zapamiętanie wartości w zmiennej odbywa się dzięki operatorowi przypisania= Składnia: zmienna = wartość; • Od chwili utworzenia zmiennej użycie jej nazwy(za wyjątkiem lewej strony przypisania)oznacza odczyt wartości w niej zapisanej • Przykłady int x,y; // utworzenie zmiennych x=25; // przypisanie wartości zmiennej x y=x; // odczyt wartości ze zmiennej x // i przypisanie tej wartości zmiennej y Podstawy programowania - Przetwarzanie danych w C++

  14. Inicjalizacja zmiennej • Jeżeli chcemy nadać zmiennej pewną wartość początkową, możemy dokonać zwykłego przypisania po jej utworzeniu, np.:int x; x=5; • Możliwe jest jednak połączenie obu czynności czyli nadanie wartości zmiennej już w chwili tworzenia - inicjalizacja, np.: int x=5; float f, d=0.5; long a1=100L, a2, a3=5; • Powoduje to skrócenie zapisu, a w niektórych przypadkach może być jedyną szansą nadania wartości zmiennej(np. zmienne typu const) Podstawy programowania - Przetwarzanie danych w C++

  15. Wyrażenia • Wyrażenie to ciąg symboli, któremu w danej chwili działania programu można przypisać konkretną wartość określonego typu • Do budowy wyrażeń używa się operatorów oraz m.in. stałych i zmiennych odgrywających rolę operandów • Przykłady wyrażeń: 1 x // wyrażenia bez operatora -a 2*x+(a-1) // działania arytmetyczne a>1 a==x+1 // relacje x &&(a>1) // działania logiczne Podstawy programowania - Przetwarzanie danych w C++

  16. Operatory • Operator to symbol oznaczający wykonanie pewnego działania. Obiektem działania jest symbol lub symbole sąsiadujące z operatorem, zwane operandami. • Operatory arytmetyczne jednoargumentowe: + - Przykłady: -a +b // ‘+’ nie daje efektu • Operatory arytmetyczne dwuargumentowe: + - * / % (tylko całkowite) • Przykłady: a+b x-y 2*p rok/12.0 // dzielenie „arytmetyczne” 10/3 10%3 // dzielenie całkowite i reszta Podstawy programowania - Przetwarzanie danych w C++

  17. Typ wyniku działań arytmetycznych • Jeżeli operandy działań arytmetycznych są całkowite , wynik jest typu int, chyba że jeden z operandów był typu long • Jeżeli chociaż jeden z operandów był zmiennoprzecinkowy, wynik jest zmiennoprzecinkowy (takiego typu jak ten operand) • Jeżeli zakres wartości typów operandów jest różny, wynik posiada typ o zakresie odpowiadającym większemu z zakresów operandów • Przykłady: short x; float f; x+2 // short + int = int 10+2.5 // int + double = double f + 10.0 // float + double = double f + 1 // float + int = float 2 * 1L // int + long = long Podstawy programowania - Przetwarzanie danych w C++

  18. Operator konwersji • Opisane wyżej sytuacje dotyczą tzw. konwersji niejawnych czyli zmian typu niezależnych od programisty • Możliwa jest również zmiana typu poprzez konwersję jawną (tzw. rzutowanie) za pomocą operatora () • Składnia: (typ) wyrażenie • Przykłady: short x=1; float f; f= x / 5; // 0 dzielenie całkowite f= (float) x / 5; // 0.2, dzielenie zwykłe x= f * 5; // 0.2 * 5 = 1.0 x= (int) f * 5; // 0 * 5 = 0 x= 2* (int)(1.0/10+1);// 2*(int) 1.1 = 2*1=2 Podstawy programowania - Przetwarzanie danych w C++

  19. Operatory relacji • Operatory relacji: > (większe) < (mniejsze)>= (większe lub równe) <= (mniejsze lub równe) oraz porównania: == (równe) != (różne) Są to operatory dwuargumentowe generujące wartość typu int równą 1 (prawda) lub 0 (fałsz) w zależności od prawdziwości relacji dla podanych operandów • Przykłady: 1==0 // 0 2>=2 // 1 2<1 // 0 0!=0 // 0 x+1 > 2*y-5 // wynik zależy od zmiennych // dla x=5 i y=2: 1 Podstawy programowania - Przetwarzanie danych w C++

  20. Operatory logiczne • Operatory logiczne:! (negacja/not) && (i/and) || (lub/or) Negacja jest jednoargumentowa, pozostałe są dwuargumentowe. Wykonują działania logiczne przy założeniu, że wartość operandu równa jest: 1 (prawda) jeżeli jest on różny od zera 0 (fałsz) jeżeli jest on równy zero Podstawy programowania - Przetwarzanie danych w C++

  21. Operatory bitowe • Operatory bitowe:~ (negacja/not) & (i/and) | (lub/or) ^ (xor) Działanie jest bardzo podobne do działania operatorów logicznych, jednak w tym przypadku działania wykonywane są na każdej z odpowiadających sobie par bitów. Podstawy programowania - Przetwarzanie danych w C++

  22. Operatory logiczne i bitowe • Przykład: 10 && 25 // 1(nie-zero) && 25(nie-zero) = 1 10 & 25 // 00000000000000000000000000001010 // & 00000000000000000000000000011001 //------------------------------------ // = 00000000000000000000000000001000 // = 16 Podstawy programowania - Przetwarzanie danych w C++

  23. Operatory przesunięć bitowych • Operatory: >> (przesunięcie bitowe w prawo) << (przesunięcie bitowe w lewo) powodują przesunięcie wszystkich bitów lewego operandu o liczbę miejsc określoną przez prawy operand.Oba operandy muszą być całkowite. Wypadające bity giną, a wchodzące przyjmują wartość 0(Przy operatorze >> dla wartości ujemnych, z lewej strony wchodzą 1 - powielenie bitu znaku) • Efekt działania operatora >> jest zbliżony do podzielenia liczby przez 2, a operatora << do pomnożenia. • Przykłady: 50 << 1 // 50(32b): 00000000000000000000000000110010 // 100 : 00000000000000000000000001100100 -50 >> 2 // -50: 11111111111111111111111111001110 // -12: 11111111111111111111111111110011 Podstawy programowania - Przetwarzanie danych w C++

  24. Operatory działań z przypisaniem • Operator += (operator zwiększenia) Zapis: x += 5; oznacza: x = x + 5; • Zaletą tego podejścia jest skrócenie zapisu oraz przyspieszenie działania tej operacji (wygenerowany kod maszynowy jest krótszy). Nieco obniża się czytelność tych operacji. • Analogiczne operatory to: -= *= /= %= &= |= ^= <<= >>= • Przykład: int x=5; x+=10; // x=x+10; 15 x/=2; // x=x/2; 7 (dzielenie całkowite) x%=5; // x=x%7; 2 (reszta z dzielenia) x>>=1; // x=x>>2; 1 Podstawy programowania - Przetwarzanie danych w C++

  25. Wartość operacji przypisania • Wartość operacji przypisania równa jest zmiennej po przypisaniu, np. wyrażenie a=5+5 ma wartość 10. • Operacja przypisania może być więc użyta w wyrażeniach, np.: zapis: y = 3+ (a=10); // nawias konieczny oznacza: a = 10; y = 3+a; // czyli 13 • Powoduje to skrócenie zapisu oraz przyspieszenie działania tych operacji kosztem spadku czytelności • Analogicznie działają operatory: -= *= /= %= &= |= ^= <<= >>= • Przykłady: int x, y; y= 1+ (x=4); // x=4, y=1+4=5; y= 2* (x+=11); // x=15, y=2*15=30; y+= 5+(x/=3); // x=5, y=y+5+5=40 y= (x*=2) + (x+=3); // wartości niepewne (kolejność)! Podstawy programowania - Przetwarzanie danych w C++

  26. Inkrementacja i dekrementacja • Inkrementacja to zmiana pewnej wartości na następną.W praktyce zwykle oznacza to jej zwiększenie o 1Dekrementacja to operacja odwrotna (zmniejszenie o 1) • W języku C i C++ operatory tych działań to: ++ i -- • Zapis: ++x; lub x++; oznacza: x = x+1; --x; lub x--; oznacza: x = x-1; • Preinkrementacja Predekrementacja: Postinkrementacja Postdekrementacja: • Przykłady: int x, y=5; x= y++ +1; // x= 6; y=6; x= --y *10 // x=50; y=5 Podstawy programowania - Przetwarzanie danych w C++

  27. Operator warunkowy • Wykorzystuje się go w sytuacji gdy chcemy przypisać zmiennej jedną z dwóch wartości w zależności od pewnego warunku. • Jest to jedyny operator trzyargumentowy (warunek oraz dwie wartości alternatywne) • Zapisywany jest za pomocą symboli: ? i : • Składnia:(warunek) ? wartosc_gdy_niezero : wartosc_gdy_zeroWarunek to dowolne wyrażenie, istotne jest czy jego wartość wynosi zero czy nie. Nawias jest obowiązkowy. • Przykłady: int x, y=5; x= (y>0) ? 1 : 0; // x=1, y=5 y= (x--) ? 100 : 0; // x=0, y=100 y= 25 + ((x<5) ? 25 : 10)); // x=0, y=25+25=50 Podstawy programowania - Przetwarzanie danych w C++

  28. Operator , • Umożliwia on podanie kilku wyrażeń w sytuacji, gdy oczekiwane jest tylko jedno, np. x= (1, b=2); Wartość całego wyrażenia w nawiasie równa jest wartości najbardziej prawego z wyrażeń oddzielonych przecinkami: 2 Wartości wyrażeń wyliczane są w kolejności od lewej do prawej • Przykłady: int x, y; x= (y=1, y+5); // x=6, y=1 y= (1,2,3,4,5); // y=5 x+= (++x, y++); // x=12, y=6 Podstawy programowania - Przetwarzanie danych w C++

  29. Operator sizeof • Operator ten pozwala uzyskać liczbę bajtów konieczną do zapisania podanej wartości lub podanego typu • Składnia: sizeof(wyrażenie) sizeof(nazwa typu) • Przykłady: int x,y; x= sizeof (int); // zwykle 4 x= sizeof(10.0/3); // sizeof(double), zwykle 8 x= sizeof(y)*8; /// liczba bitów dla int: 32 Podstawy programowania - Przetwarzanie danych w C++

  30. Priorytety operatorów • Kolejność interpretowania operatorów nie jest dowolna, regulują ją tzw. priorytety • Na przykład w wyrażeniu: x + 5 * a pierwsze zostanie wykonane mnożenie (ma wyższy priorytet), kolejność ta jest w tym wypadku podyktowana zasadami algebry • Jeżeli oba działania dotyczące pewnego operandu mają jednakowy priorytet, kolejność ich wykonania zależy od kompilatora, zazwyczaj od lewej do prawej • Zmianę kolejności można wymusić za pomocą nawiasów ( ) Podstawy programowania - Przetwarzanie danych w C++

  31. Priorytety poznanych operatorów Podstawy programowania - Przetwarzanie danych w C++

More Related