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

Podobne dokumenty
JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Laboratorium 3. Instrukcje wyboru

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

Część 4 życie programu

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

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

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

1 Podstawy c++ w pigułce.

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

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

3 Przygotował: mgr inż. Maciej Lasota

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

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

Instrukcje sterujące. Programowanie Proceduralne 1

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

I - Microsoft Visual Studio C++

Podstawy Programowania C++

Wstęp do informatyki- wykład 5 Instrukcja selekcji if-else Operatory arytmetyczne i logiczne Wyrażenie warunkowe operator selekcji Instrukcja switch

Wstęp do programowania

1 Podstawy c++ w pigułce.

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

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

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady

Funkcje matematyczne w C. Programowanie w C Marek Pudełko

for (i=0; i<10; i=i+1) instrukcja; instrukcja zostanie wykonana 10 razy for (inicjalizacja; test; aktualizacja) instrukcja;

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

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

dr inż. Jarosław Forenc

Wstęp do programowania

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 informatyki- wykład 5 Instrukcja selekcji if-else Operatory arytmetyczne i logiczne

Podstawy programowania w języku C

Programowanie komputerowe. Zajęcia 1

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Struktura pliku projektu Console Application

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

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

Wstęp do Informatyki

Pętla for. Wynik działania programu:

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

Programowanie w C++ Wykład 3. Katarzyna Grzelak. 12 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 35

PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6

3. Instrukcje warunkowe

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

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2015

Wstęp do informatyki- wykład 7

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

Konstrukcje warunkowe Pętle

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

1. Wypisywanie danych

Programowanie - instrukcje sterujące

Programowanie Obiektowe i C++

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 Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 5

Programowanie - wykład 4

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

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

2 Przygotował: mgr inż. Maciej Lasota

Instrukcje sterujące

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

Instrukcja wyboru, pętle. 2 wykład. Podstawy programowania - Paskal

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

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

Kontrola przebiegu programu

Cw.12 JAVAScript w dokumentach HTML

Klasyfikacja typów w C++

C++ wprowadzanie zmiennych

Wstęp do programowania

Materiał Typy zmiennych Instrukcje warunkowe Pętle Tablice statyczne Wskaźniki Tablice dynamiczne Referencje Funkcje

Podstawy Programowania. Wykład 1

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

Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice.

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

dr inż. Jarosław Forenc

ZASADY PROGRAMOWANIA STRUKTURALNEGO (ZAP - zima 2016) Liczby, znaki, napisy, operatory logiczne, stałe. Pętle typu while.

Instrukcje sterujące mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2012

Programowanie Delphi obliczenia, schematy blokowe

Odczyt danych z klawiatury Operatory w Javie

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

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

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

a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a[10]

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

Tablice. Monika Wrzosek (IM UG) Podstawy Programowania 96 / 119

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

Wstęp do informatyki- wykład 6

Programowanie strukturalne i obiektowe

Opis zagadnieo 1-3. Iteracja, rekurencja i ich realizacja

Proste programy w C++ zadania

Ćwiczenia podstawowe, zestaw 5, część 1

Wstęp do Programowania, laboratorium 02

Język C część 2. Podejmowanie decyzji w programie. if else. switch

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

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

Wstęp do programowania

Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty)

Każdy z nich posiada swoje parametry. W przypadku silnika może to być moc lub pojemność, w przypadku skrzyni biegów można mówić o skrzyni

Podstawy programowania w języku C i C++

1 Wielokrotne powtarzanie tych samych operacji

Pytania z języka C/C++ main dyrektywy preprocesora #include 15. #define 16. #define słowa zastrzeżone \n, \t, \f 26.

Transkrypt:

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 4 1

NAPISY W C++ Tablice znakowe (typu char) kłopotliwe w użyciu Biblioteka standardowa C++ ma zaimplementowaną uogólnioną klasę napisów zwaną string (łańcuch znaków, napis). #include <iostream> using namespace std; int main() string Napis= To jest string ; cout<<napis; return 0; String jest przechowywany w pamięci jako ciąg liter, a na samym jego końcu dodawany jest znak o kodzie 0 (w kodzie ASCII), czyli znak NULL. 2

NAPISY W C++ Klasa string ma zdefiniowanych wiele operatorów, co ułatwia niektóre działania na napisach. Te operatory to m.in. =, ==,!=, +, <, > (o operatorach za chwilę ) Np. : #include <iostream> using namespace std; int main() string Tekst1= Ala ; string Tekst2=Tekst1+ ma kota ; cout<<tekst2; return 0; 3

OPERATORY Operatory arytmetyczne: Symbol Nazwa / działanie Przykład = przypisanie ( staje się ) y=3; + dodawanie c=a+b; - odejmowanie m=n-11.3; * mnożenie d=3*f; / dzielenie h=g/1.3; % modulo, reszta z dzielenia k=8%3; //wynik: 2 ++ inkrementacja (zwiększenie o 1) -- dekrementacja (zmniejszenie o 1) x++; (postinkrementacja) ++x; (preinkrementacja) x--; (postdekrementacja) --x; (predekrementacja) Priorytet operatorów +,-,*,/ jak w matematyce. W razie wątpliwości lepiej użyć nawiasów 4

OPERATORY Uwaga! Wynikiem dzielenia dwu liczb całkowitych jest liczba całkowita, np. wynikiem działania 4/3 będzie 1, a nie spodziewane 1.333(3) Rozwiązanie 1: Przynajmniej jedną z liczb zapisujemy w postaci z kropką, np.: 4.0/3 Rozwiązanie 2: Stosujemy tzw. rzutowanie: #include <iostream> using namespace std; int main() cout.precision(15); //zwiększenie dokładności wyświetlania //(ale nie liczenia) cout<<static_cast<float>(4)/3; //chcemy, by 4 było traktowane jak float cout<<static_cast<double>(4)/3; //a może lepiej jak double return 0; 5

OPERATORY Operatory arytmetyczne cd.: Symbol Nazwa / działanie Przykład += przypisanie sumy y+=3; //y=y+3; -= przypisanie różnicy c-=7.2; //c=c-7.2; *= przypisanie iloczynu m*=2.1; //m=m*2.1; /= przypisanie ilorazu d/=3.38; //d=d/3.38; %= przypisanie modulo w%=7; //w=w%7; Uwaga! Kolejność jest ważna! y+=3 y=+3 //y=y+3 //y=3 - przypisanie do y wartości +3 6

OPERATORY Pre- czy post-? Cztery sposoby dodania 1 do zmiennej : 1. m=m+1; 2. m+=1; 3. ++m; 4. m++; Ad. 3 (operatory z prefiksem): Najpierw dokonywane jest zwiększenie (zmniejszenie) jego wartości o 1. Nowa wartość jest następnie zwracana jako wynik. Ad. 4 (operatory z postfiksem): Najpierw zwracana jest wartość wyrażenia (tworzona jest kopia zmiennej), następnie dokonywane jest zwiększenie (zmniejszenie) jego wartości o 1. Co wybrać? Jeśli to możliwe, to wersję z prefiksem szybsza i mniejsze wymagania pamięciowe. 7

OPERATORY Uwaga na operatory inkrementacji i dekrementacji w wyrażeniach! Ich działanie może sprawiać kłopoty, np: #include <iostream> using namespace std; int main() int a=10, b=10; cout<<"wartosci wyrazen:"<<endl; cout<<++a<<endl; //wyświetla 11 cout<<b++<<endl; //wyświetla 10 cout<<"wartosci zmiennych:"<<endl; cout<<a<<endl; //wyświetla 11 cout<<b<<endl; //wyświetla 11 return 0; Najbezpieczniej jest stosować je jako liczniki w pętlach (zwykle for) i samodzielne instrukcje typu: ++zm; 8

OPERATORY Operatory logiczne: Symbol Nazwa / działanie Przykład < jest mniejszy if(a<3); <= jest mniejszy bądź równy if(b<=11.3); > jest większy if(c>d); >= jest większy bądź równy if(e>=(f+1)); == jest równy if(m==n);! (not) negacja if(!m); //prawda, gdy m==0!= jest różny od if(p!=13); && (and) iloczyn logiczny (AND) if((a>3)&&(b<=11.3)); (or) suma logiczna (OR) if((s== t ) (s== T )); O if i innych instrukcjach wyboru będzie mowa później 9

OPERATORY Uwaga! == oraz = to dwa zupełnie różne operatory! a=7 przypisanie do zmiennej wartości 7 a==7 porównanie a oraz 7 #include <iostream> using namespace std; int main() int a; cout<<"wpisz dowolna cyfre, a powiem Ci, czy podales 7\n"; cin>>a; if(a==7) cout<<"tak! Podales 7"; //if(a=7)cout<<"tak! Podales 7"; // Sprawdź, co się stanie else cout<<"to raczej nie jest 7..."; return 0; 10

WYBRANE FUNKCJE Z BIB. STANDARDOWEJ W pliku nagłówkowym <cmath> Niektóre funkcje trygonometryczne: Funkcja sin(x) cos(x) tan(x) asin(x) acos(x) atan(x) Opis Zwraca wartość sinusa x Zwraca wartość cosinusa x Zwraca wartość tangensa x Funkcja odwrotna do sin(x) Funkcja odwrotna do cos(x) Funkcja odwrotna do tan(x) Uwaga! Funkcje trygonometryczne przyjmują argument w radianach 11

WYBRANE FUNKCJE Z BIB. STANDARDOWEJ W pliku nagłówkowym <cmath> Niektóre funkcje wykładnicze i logarytmiczne: Funkcja Opis exp(x) log(x) log10(x) Zwraca wartość funkcji wykładniczej e x Zwraca wartość logarytmu naturalnego z x Zwraca wartość logarytmu dziesiętnego z x Potęgi i pierwiastki: Funkcja pow(x,y) pow10(x) sqrt(x) cbrt(x) Zwraca wartość x do potęgi y Opis Zwraca wartość 10 x Zwraca wartość pierwiastka kwadratowego z x Zwraca wartość pierwiastka sześciennego z x 12

WYBRANE FUNKCJE Z BIB. STANDARDOWEJ W pliku nagłówkowym <cmath> Inne przydatne funkcje: Funkcja abs(x), fabs(x) round(x) floor(x) ceil(x) Opis Zwraca wartość bezwzględną z x Zwraca wartość naturalnego zaokrąglenia x Zwraca wartość zaokrąglenia x w dół Zwraca wartość zaokrąglenia x w górę Istotniejsze stałe matematyczne: Funkcja M_PI M_E Zwraca wartość stałej p Opis Zwraca wartość stałej Eulera (podstawy logarytmu nat.) e 13

WYBRANE FUNKCJE Z BIB. STANDARDOWEJ W pliku nagłówkowym <cstdlib> Funkcja srand() rand() Opis Ustawia punkt startowy, który jest stosowany do generowania serii pseudolosowych liczb całkowitych Generuje całkowitą liczbę pseudolosową W pliku nagłówkowym <cstdlib> Funkcja Opis time() W pliku nagłówkowym <cctype> Zwraca bieżący czas kalendarzowy w sekundach Funkcja islower() isupper() tolower() toupper() Opis Do określania czy argument jest małą literą Do określania czy argument jest wielką literą Do zamiany wielkich liter na małe Do zamiany liter małych na wielkie 14

INSTRUKCJE STERUJĄCE Instrukcje sterujące to takie instrukcje, które sterują przebiegiem programu w zależności od spełnienia (bądź nie) jakiegoś warunku. Decyzje podejmowane są zależnie od tego, czy dany warunek jest spełniony (wartością wyrażenia jest prawda), czy też nie jest spełniony (wartością wyrażenia jest fałsz). W C++: wartość ZERO odpowiada stanowi FAŁSZ wartość INNA NIŻ ZERO odpowiada stanowi PRAWDA Instrukcje sterujące: 1. instrukcje wyboru; 2. pętle; 3. instrukcje skoku. 15

INSTRUKCJE WYBORU Instrukcja warunkowa if: if(warunek)instrukcja; lub: if(warunek) instrukcja_1; instrukcja_2; // blok instrukcji // ograniczony nawiasami klamrowymi Jeżeli warunek jest spełniony (jego wartość jest różna od zera), to wykonywana jest instrukcja lub blok instrukcji (ciąg instrukcji ograniczonych nawiasami klamrowymi). 16

INSTRUKCJE WYBORU if else Instrukcja warunkowa if else: if(warunek)instrukcja_1; else instrukcja_2; Jeżeli warunek jest spełniony, to wykonywana jest instrukcja lub blok instrukcji występujących po słowie if. Jeżeli warunek nie jest spełniony, to wykonywana jest instrukcja lub blok instrukcji występujących po słowie else. 17

INSTRUKCJE WYBORU if else Przykład: #include <iostream> using namespace std; int main() int a ; cout<<"wpisz prosze 7"<<endl; cin>>a; if (a==7) //if(!(a-7)) //albo tak: wartością (a-7) jest 0 (fałsz) //lub inna liczba (prawda) cout <<"To prawda, ze wpisales 7"<<endl; cout<<"dziekuje za wspolprace"<<endl; else cout<<"wpisales inna liczbe!"<<endl; cout<< Przeciez prosilem grzecznie o 7..."<<endl; return 0; 18

INSTRUKCJE WYBORU if else if else, wybór wielowariantowy: if(warunek_1)instrukcja_1; else if(warunek_2) instrukcja_2; else if(warunek_3) instrukcja_3; else instrukcja_n; if else, zagnieżdżanie: if(warunek1) if(warunek2) instrukcja_1; instrukcja_2; else instrukcja_n; Jeżeli nawiasy klamrowe nie określają inaczej, to else odnosi się do najbliższego if. 19

INSTRUKCJE WYBORU if else Przykład: #include <iostream> using namespace std; int main() int temperatura ; cout<<"podaj, jaka jest dzis temperatura w stopniach"<<endl; cin>>temperatura; if (temperatura>30) cout<<"upalnie"; else if (temperatura>20) cout<<"przyjemnie cieplo"; else if (temperatura>10) cout<<"moze byc Ci chlodno"; else if (temperatura>=0) cout<<"dosc chlodno"; else cout<<"temperatura jest ujemna!"; return 0; 20

INSTRUKCJE WYBORU switch Instrukcja wielokrotnego wyboru switch: switch(wyrażenie_warunkowe) case wyrażenie_stałe_1 instrukcja_1; break; //break jest opcjonalne case wyrażenie_stałe_2 instrukcja_2; instrukcja_3; break; default //gdy żadne wyrażenie stałe nie //jest prawdziwe (opcjonalne) instrukcja_n; 21

INSTRUKCJE WYBORU switch Przykład: #include <iostream> using namespace std; int main() int karta; cout<<"zagrajmy w trzy karty.\n"; cout<<"podaj numer karty do odsloniecia:"<<endl; cin>>karta; switch(karta) case 1: cout<<"pierwsza karta odslonieta."; break; case 2: cout<<"druga karta odslonieta."; break; case 3: cout<<"trzecia karta odslonieta."; break; default: cout<<"nie ma takiej karty..."; return 0; 22

INSTRUKCJE WYBORU switch Przykład: #include <iostream> using namespace std; int main() char odpowiedz; int T_zlicz=0,N_zlicz=0; cout<<"odpowiedz T lub N (tak lub nie)"<<endl; cin>>odpowiedz; switch(odpowiedz) case 'T': case 't': //zauwaz, ze po case 'T' nie było break... cout<<"odpowiedziales twierdzaco"<<endl; ++T_zlicz; break; //wyjście ze switch case 'N': case 'n': cout<<"odpowiedziales przeczaco"<<endl; ++N_zlicz; break; //wyjście ze switch default: cout<<"nie odpowiedziales prawidlowo..."<<endl; //switch return 0; 23

INSTRUKCJE WYBORU switch vs. if else (czyli: co wybrać ) Obiekt wybierający co to?: a) switch(obiekt_wybierający) b) if(obiekt_wybierający==wyrażenie) Wybór: 1. Ze względu na obiekt wybierający: a) dla switch musi być to obiekt lub wyrażenie całkowite; b) dla if else typ obiektu wybierającego nie ma znaczenia. 24

INSTRUKCJE WYBORU 2. Ze względu na to, z czym porównywany jest obiekt wybierający: a) dla switch obiekt wybierający jest porównywany ze stałymi wartościami całkowitymi znanymi w momencie pisania programu; b) dla if else obiekt wybierający można porównać z wyrażeniem, którego wartość jest znana dopiero podczas wykonywania programu. 3. Ze względu na operację porównana: a) dla switch porównanie to sprawdzenie, czy jest spełniona równość; b) dla if else porównanie może być dowolnym operatorem logicznym, dającym w wyniku prawda/fałsz. 25

PĘTLE for Pętle są to instrukcje, które umożliwiają wykonywanie pojedynczej instrukcji bądź ich bloku tak długo, jak długo dopóki spełniony jest warunek. Pętla for: for(instrukcja_inicjalizujaca; wyrazenie_warunkowe; krok) instrukcja_1; instrukcja_2; instrukcja_inicjalizujaca instrukcja wykonywania jednokrotnie przed wykonaniem właściwej części pętli. wyrazenie_warunkowe wyrażenie, którego wartość jest obliczana przed każdym obiegiem pętli. Jeśli jest prawdziwe wykonywane są instrukcje w treści pętli. krok instrukcja wykonywana na zakończenie obiegu pętli (zwykle zwiększenie licznika ) 26

PĘTLE for Przykład: #include <iostream> using namespace std; int main() for (int i=0; i<10; ++i) //wykonaj 10 razy cout<<i+1 <<" "; // wypisanie 1 2 9 10 // int i=0 bardzo częste return 0; Każdy z elementów występujących w nawiasie za for może zostać pominięty (za wyjątkiem znaków ;). Np.: for(;;) oznacza pętlę nieskończoną (już samo opuszczenie wyrażenia warunkowego jest traktowane tak, jak gdyby było ono zawsze prawdziwe). 27

PĘTLE while Pętla while: while(wyrazenie_warunkowe) instrukcja_1; instrukcja_2; Blok instrukcji jest wykonywany tak długo, jak długo prawdziwe jest wyrazenie_warunkowe. Jeśli wyrazenie_warunkowe od razu nie jest prawdziwe, to pętla nie wykona się ani raz. 28

PĘTLE while Przykład: #include <iostream> using namespace std; int main() int i=1; while(i<=10) cout<<i<<" "; // wypisanie 1 2 9 10 ++i; return 0; 29

PĘTLE do while Pętla do while: do instrukcja_1; instrukcja_2; while(wyrazenie_warunkowe); Blok instrukcji jest wykonywany tak długo, jak długo prawdziwe jest wyrazenie_warunkowe. Jeśli wyrazenie_warunkowe od razu nie jest prawdziwe, to pętla wykona się dokładnie 1 raz. 30

PĘTLE do while Przykład: #include <iostream> using namespace std; int main() int i=1; do cout<<i<<" "; // wypisanie 1 2 9 10 ++i; while(i<=10); return 0; Mając do wyboru pętle while i do while zaleca się wybierać tą pierwszą (mniej podatna na błędy). 31

ZAGADKA Z MORAŁEM Znalezione w sieci: Małgosia dała Jasiowi dwa jabłka a Krysia trzy. Ile jabłek ma Jasio? Prawidłowa odpowiedź: nie wiadomo. A morał z tego: Programisto, zawsze inicjalizuj zmienne. Przykład: #include <iostream> using namespace std; int main() int liczba1=5; int liczba2, wynik; //brak inicjalizacji zmiennej "liczba2" wynik=liczba1+liczba2; //sprawdź, jaki jest rezultat... cout<<"wynik dodawania to: "<<wynik<<endl; return 0; 32

POZOSTAŁE INSTRUKCJE STERUJĄCE Instrukcja break: Instrukcja ta w przypadku pętli powoduje natychmiastowe wyjście z pętli, np.: Przykład: #include <iostream> using namespace std; int main() int i=1; while(i<=10) if(i>5) break; cout<<i<<" "; //wypisanie: 1 2 3 4 5 ++i; return 0; 33

POZOSTAŁE INSTRUKCJE STERUJĄCE Instrukcja continue: Instrukcja ta w przypadku pętli powoduje pominięcie instrukcji występujących za nią i przejście do następnej iteracji (pętla nie zostaje przerwana). Przykład: #include <iostream> using namespace std; int main() int i=0; while(i<10) ++i; //i<10, bo za chwilę ++i; //inkrementacja tu, bo inaczej po continue //pętla nieskończona if((i==5) (i==7) (i==9)) continue; cout <<i<<" "; //wypisanie: 1 2 3 4 6 8 10 return 0; 34

POZOSTAŁE INSTRUKCJE STERUJĄCE Instrukcja return: Instrukcja ta powoduje zwrot przez funkcję wartości stojącej po prawej stronie instrukcji. Wartością tą może być dowolne wyrażenie lub wywołanie innej lub tej samej (tzw. wywołanie rekurencyjne) funkcji. Więcej przy omawianiu funkcji Instrukcja skoku goto: Instrukcja ta powoduje przeniesienie wykonywania programu do miejsca, gdzie jest dana etykieta, której nazwa stoi po prawej stronie instrukcji, np.: cout<<"ala ma kota\n"; goto etykieta_1; etykieta_1: cout<<"bardzo wazny tekst "; Używanie instrukcji goto jest odradzane! jej użycia prawie zawsze da się uniknąć. Instrukcja ta powoduje, że kod programu staje się nieczytelny i trudny do kompilacji. 35