200 likes | 394 Views
Zachodniopomorska Szkoła Biznesu. Podstawy programowania II. Wykład 1: Repetytorium podstaw języka C++. Typy danych liczbowych. Stałe - przykłady. 100 // int 3000000000U // unsigned int 1L // long 0x100 // int (hex), 256 50UL // unsigned long 1.23234 // double
E N D
Zachodniopomorska Szkoła Biznesu Podstawy programowania II Wykład 1: Repetytorium podstaw języka C++
Typy danych liczbowych Podstawy programowania - Podstawy obliczeń w C++
Stałe - przykłady • 100 // int • 3000000000U // unsigned int • 1L // long • 0x100 // int (hex), 256 • 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 • 'A' // char (kod 65) • '\65' // char ('A') Podstawy programowania - Podstawy obliczeń w C++
Operatory • Arytmetyczne: + - (jednoarg.), + - * / % • Logiczne: ! && || • Bitowe: ~ & | >> << • Relacji: == != < > <= >= • Działania z przypisaniem:-= *= /= %= &= |= ^= <<= >>= ++ -- (pre), ++ -- (post) • Konwersja: (typ) • sizeof • Warunkowy: ? : • , Podstawy programowania - Podstawy obliczeń w C++
Zmienne • Deklaracja zmiennej: typ nazwa; int x; typ nazwa1, nazwa2 ... ; int x, y, z; • Inicjalizacja typ nazwa=wyrażenie; int x=5;int x, y=2, z=10, a; • Korzystanie ze zmiennej • Zapis danych: Nazwa zmiennej po lewej operatora = i pochodnych (np. +=) • Odczyt danych:Użycie nazwy zmiennej oznacza odczytanie zapisanej wartości Podstawy programowania - Podstawy obliczeń w C++
Typ wyniku działań arytmetycznych short x=0; float f=1.5; short nic; nic + 2 // short + int = int (???) 10 + 2.5 // int + double = double (12.5) f + 10.0 // float + double = double (11.5) f + 1 // float + int = float (2.5) 2 * 1L // int + long = long (2) 10 && 0 // nonzero && zero = zero (int:0) 0 || -4 // zero || nonzero = nonzero (int:1) ! 0 // ! zero = nonzero (int:1) 10!=5 // prawda = int (1) 2>2 // fałsz = int (0) (int) f // odcięcie ułamka = int (1) Podstawy programowania - Podstawy obliczeń w C++
Instrukcje (1) • Wyrażenie (obliczenia)x=a*b; a+=(x>3); i++; a+1; • Warunkowa (if) - dwie wersjeif (delta==0) x0=-b/(2*a);if (alfa) x=1/sin(alfa); else x=0; • Wielokrotny wybór (switch)switch (ile) { case 1: cout << "jeden"; break; case 2: cout << "dwa"; break; else: cout << "dużo!"; }; Podstawy programowania - Podstawy obliczeń w C++
Instrukcje (2) • Pętle • while: while (x<0) x++; • do ... while: do cin >> kostka; while (x<1 || x>6); • for: for (i=0; i<10; i++) cout << i;for (;;) Podstawy programowania - Podstawy obliczeń w C++
Instrukcje (3) • Skoki • break - wyskok z pętli lub switch • continue - przejście do następnej iteracji pętli • return - wyskok z funkcji • goto - skok do etykiety (nie zalecane) • Instrukcja pusta; • Instrukcja blokowa{ instrukcje;} Podstawy programowania - Podstawy obliczeń w C++
Funkcje • Definicja funkcji typ nazwa(parametry) { deklaracje lokalne instrukcje } • Prototyp funkcji typ nazwa(parametry); • Zwracanie wartości przez funkcję return;return wyrażenie; • Wywołanie funkcji nazwa(wyrażenia odpowiadające parametrom); Podstawy programowania - Podstawy obliczeń w C++
Przykłady funkcji float pi() {return 3.1415; } float Delta(float a, float b, float c) {return b*b-4*a*c; // użycie parametrów } void main() {float aa=1,bb=3,cc=-2, r=2; float P x; P=pi() * r*r;if (Delta(aa,bb,cc+1)==0) x=-b/(2*a); } Podstawy programowania - Podstawy obliczeń w C++
Zmienne globalne i lokalne • Zmienne deklarowane poza funkcjami są globalne • Istnieją przez cały czas pracy programu • Dostępne są we wszystkich funkcjach programu • Inicjalizowane są zerami • Zmienne deklarowane wewnątrz funkcji są lokalne • Istnieją tylko podczas pracy danej funkcji • Są dostępne wyłącznie wewnątrz danej funkcji • Ich wartość początkowa jest przypadkowa • Zmienna lokalna może mieć tę samą nazwę co istniejąca zmienna globalna, ale wówczas przesłania ją • Parametry funkcji są zmiennymi lokalnymi tej funkcji • Można utworzyć zmienne wewnątrz każdego bloku { }.Ich czas życia i dostępność ogranicza się tylko do tego bloku. Podstawy programowania - Podstawy obliczeń w C++
Funkcja main void main() { } int main() {return 0; } void main(int argc, char *argv[]) { for (int i=0; i<argc; i++) cout << argv[i] << endl; } Podstawy programowania - Podstawy obliczeń w C++
Typy złożone - tablice • Tworzymy je gdy wartości tego samego typu i o podobnym charakterze. Indeksowanie zawsze zaczyna się od 0. • jednowymiarowa (wektor) deklaracja: typ nazwa[rozmiar]; int tab[5]; dostęp: nazwa[indeks] cout << tab[3]; • dwuwymiarowa (macierz) deklaracja: typ nazwa[wierszy][kolumn]; int tab[30][5]; dostęp: nazwa[wiersz][kolumna] cout << tab[1][3]; 5 5 30 ... Podstawy programowania - Podstawy obliczeń w C++
Typy złożone - struktury (rekordy) • Tworzymy je gdy chcemy aby zbudować grupę danych o różnych typach opisującą jeden obiekt. Każda z danych składowych to pole, któremu nadaje się nazwę. • Deklaracja: struct NazwaStruktury{ typ pole1; typ pole2; ...} obiekt; NazwaStruktury rekord; • Dostęp do pól: cout << rekord.pole2; obiekt ... pole1: pole2: rekord ... pole1: pole2: Podstawy programowania - Podstawy obliczeń w C++
Typy złożone - tablice rekordów • Typowa struktura tabeli, pozwalająca przechowywać informacje na temat wielu obiektów opisywanych tym samym zestawem parametrów • Deklaracja: struct NazwaStr{ typ pole1; typ pole2; ...} tabela[rozmiar]; // druga tablica:NazwaStr tab2[rozmiar2]; • Dostęp do pól: cout << tabela[2].pole1; tabela 0: 1: 2: ... pole1: pole2: ... pole1: pole2: ... pole1: pole2: ... Podstawy programowania - Podstawy obliczeń w C++
Wskaźniki • Są zmiennymi pozwalającymi zapamiętać adres informacji określonego typu • Deklaracja: typ * nazwa; int *wsk; • Nadanie wartości: int a, tab[10], *wsk;wsk=&a;wsk=tab;wsk=tab+3; • Odczytanie wskazywanej wartości: cout << *wsk << wsk[0] << wsk[2]; • Nazwa tablicy jest wskaźnikiem na jej zerowy element Podstawy programowania - Podstawy obliczeń w C++
Znaki i ciągi znaków (stringi) • Znak w C++ jest daną typu char i reprezentuje go jednobajtowy kod ASCII.Można dzięki temu traktować znak również jako liczbę całkowitą • Stałe znakowe pisze się w apostrofach (np. '\65', 'z') • Ciąg znaków reprezentowany przez wskaźnik do pierwszego znaku (czyli typ char *), przy czym zakłada się, że na końcu ciągu znajduje się znak '\0' (kod: 0) • Zmienna przeznaczona do przechowywania ciągu znaków musi mieć postać tablicy znaków: char nazwisko[20]; // max. 19 liter i '\0' • Nazwa tablicy (np. nazwisko) jest więc typu char * • Stałe tekstowe pisze się w cudzysłowiu (np. "C++"), stała taka jest interpretowana również jako typ char * Podstawy programowania - Podstawy obliczeń w C++
Preprocesor i biblioteki • Najważniejsze dyrektywy:#include <iostream.h>#include "moje.h"#define PI 3.1415#define MAIN#define BLAD { cout << "Błąd!\n"; return; } • Pozostałe dyrektywy:#undef#if #ifdef #ifndef#else #elif #endif#line #error#pragma Podstawy programowania - Podstawy obliczeń w C++
Komentarze • Stanowią informację dla osoby przeglądającej kod (także dla jego twórcy), kompilator je ignoruje • Są bardzo pożądanym składnikiem dobrze napisanego kodu źródłowego • Jako komentarz rozumiane są • Wszystkie znaki od znaków // do końca linii • Wszystkie znaki pomiędzy znakami /* i */Pozwala to stworzyć komentarz zarówno na kilka linii, jak i w środku jednej linii. • Bardzo często wykorzystuje się je do "odwracalnego" usuwania fragmentów kodu, co pozwala na ich szybkie odtworzenie. Podstawy programowania - Podstawy obliczeń w C++