1 Podstawy programowania PP – WYK2 Wojciech Pieprzyca
2 Stałe Za pomocą modyfikatora const możemy zadeklarować stałą tzn. zmienną, której wartości nie można zmieniać w trakcie programu. Każda stała w czasie deklaracji musi być jednocześnie zainicjalizowana tzn. trzeba jej przyporządkować wartość. Deklaracja stałej: const typ nazwa = wartosc; Przykłady: const float pi = 3.14; const int liczba = 5;
3 Zmienne globalne, lokalne, zakresy ważności (1) Zmienne globalne swoim zakresem obejmują cały program, oznacza to, że możemy odwoływać się do nich z dowolnego miejsca w programie, Zmienne lokalne swój zakres ograniczają do bloku programu w którym zostały zadeklarowane, blok programu rozpoczyna się nawiasem klamrowym otwierającym {, a kończy nawiasem zamykającym }. Typowym przykładem bloku jest funkcja. Jeżeli zadeklarujemy zmienną globalną i lokalną o takich samych nazwach, to w ramach bloku z deklaracją zmiennej lokalnej będzie obowiązywała wartość zmiennej lokalnej, a poza nim wartość zmiennej globalnej. Mówimy, wówczas, że zmienna lokalna zasłania wartość zmiennej globalnej.
4 Zmienne globalne, lokalne, zakresy ważności (2) #include //zmienna globalna int zm=100; int main(int argc, char *argv[]) { cout
5 Zmienne globalne, lokalne, zakresy ważności (3) //nowy blok programu { int b = 2; cout
6 Instrukcja warunkowe if (1) Instrukcja if służy do sterowania przebiegiem programu i wyboru jednej z kilku alternatywnych dróg jego realizacji w zależności od aktualnych warunków. Składnia: If (warunek) instrukcja1 else instrukcja2 Warunek jest wyrażeniem, które może przyjmować wartość zero (fałsz) lub wartość różną od zera (prawda).
7 Instrukcja warunkowe if (2) Działanie instrukcji warunkowej if: 1. obliczenie wartości wyrażenia warunkowego, 2. jeżeli wartość wyrażenia jest różna od 0 to wykonywana jest instrukcja1, 3. jeżeli wartość wyrażenia jest równa 0 to wykonywana jest instrukcja2
8 Instrukcja warunkowe if (3) int main(int argc, char *argv[]) { int liczba; cout > liczba; if (liczba>10) cout
9 Operatory Podstawowe operatory arytmetyczne +,-,*,/ Operator przypisania = Operatory porównania,>=,
10 Instrukcja warunkowa switch (1) Switch jest instrukcją warunkową podobną do instrukcji if. Jednak zamiast wielokrotnie sprawdzać warunki dotyczące tej samej zmiennej, możemy uprościć zapis w następujący sposób: switch (zmienna) { case wartosc1 : instrukcja1; break; case wartosc2 : instrukcja2; break; …. case wartoscN : instrukcjaN; break; default : instrukcja_domyslna; break; }
11 Instrukcja warunkowa switch (2) Idea działania instrukcji switch jest następująca: - na początku określana jest wartość zmiennej, - w zależności od wartości zmiennej (wartosc1, wartosc2, …, wartoscN) wybierana jest jedna z instrukcji (instrukcja1 dla wartosci1, instrukcja2 dla wartosci2, …, instrukcjaN dla wartosciN), - instrukcja break powoduje zakończenie wykonywania instrukcji switch, powinno się ją stosować po zakończeniu definiowania instrukcji dla każdego przypadku wartości. Jeżeli tego nie zrobimy to wykonywane będą wszystkie instrukcje poniżej danego przypadku case aż do wystąpienia instrukcji break albo zakończenia bloku switch,
12 Instrukcja warunkowa switch (3) - opcja default określa zachowanie domyślne, wykonywane wtedy, gdy żaden z przypadków (case) nie odpowiada aktualnie określonej wartości, - używane wartości wyboru mogą być typu całkowitego lub znakowego.
13 Instrukcja warunkowa switch (4) Przykład: char znak; cout > znak; switch (znak) { case m : cout
14 Instrukcja warunkowa switch (5) To samo moglibyśmy zrealizować za pomocą ciągu instrukcji warunkowych if. char znak; cout > znak; if (znak==m) cout
15 Pętla for (1) Pętla for służy nam do wielokrotnego wykonania określonego bloku instrukcji. Koncepcja działania pętli for: –na początku inicjalizowana jest zmienna warunkowa, –w kolejnych krokach sprawdza się czy spełniony jest warunek kontynuowania pętli, jeśli nie to kończy się wykonywanie pętli, jeśli tak to przechodzimy do kolejnego kroku wykonywania pętli,
16 Pętla for (2) –w każdym kroku zmienna warunkowa ulega zmianie, co zwykle polega na zmniejszeniu lub zwiększeniu jej wartości, –należy pamiętać o tym, aby zmienna warunkowa była zadeklarowana przed jej użyciem. for (inicjalizacja; warunek; krok) { //instrukcje }
17 Pętla for (3) int i; for (i=1; i
18 Pętla for (4) 5.Sprawdzany warunek jest nadal spełniony (2
19 Pętla while (1) Pętla while podobnie jak pętla for służy do wielokrotnego wykonywania określonego bloku instrukcji. Ten rodzaj pętli stosuje się zwykle wówczas, gdy nie znamy dokładnej liczby iteracji (powtórzeń) pętli. Postać pętli while jest następująca: while (warunek) { //instrukcje }
20 Pętla while (2) Instrukcje umieszczone wewnątrz bloku while są wykonywane tak długo jak spełniony jest warunek. Ze względu na inną składnie pętli while w porównaniu do for, należy pamiętać o samodzielnym zadeklarowaniu i zainicjalizowaniu zmiennej warunkowej, a później odpowiednim zmienianiu jej wartości w ramach pętli while.
21 Pętla while (3) int i=1; while (i
22 Pętla while (4) 4.Sprawdzany warunek jest nadal spełniony (2
23 Pętla while (5) Drugi przykład: Program typu zgadywanie liczby. Najpierw losowana jest liczbę z zakresu 0-9, a następnie użytkownik pytany jest o liczbę tak długo aż jej nie zgadnie. Dodatkowo program udziela podpowiedzi czy szukana liczba jest mniejsza czy większa od wpisanej. Do losowania liczb służą funkcje randomize() oraz rand(). Dodatkowo operator % powoduje, że brane są pod uwage reszty z dzielenie przez 10 (a więc tylko liczby 0..9).
24 Pętla while (6) randomize(); int los = rand()%10; int liczba = -1; while (liczba!=los) { cout > liczba; if (los==liczba) cout liczba) cout
25 Pętla do while (1) Pętla do-while różni się od while jedynie tym, iż warunek wykonania pętli sprawdzany jest na końcu przebiegu pętli, a co za tym idzie, taki rodzaj pętli na pewno wykona się przynajmniej raz, nawet jeżeli wartość wyrażenia warunkowego jest niespełniona już w pierwszej iteracji. do { //instrukcje }while(warunek);
26 Pętla do while (2) Przykład: Int liczba=0; do { cout > liczba; }while(liczba!=0);