Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
1
Instrukcje sterujące część 1
Reprezentacja wartości logicznych, instrukcje warunkowe if, if..else..
2
Wprowadzenie Są to bardzo przydatne polecenia służące do sterowania przebiegiem programu. Występują one w każdym języku programowania i nawet wszędzie mają podobny wygląd. Wszystkie omawiane instrukcje sterujące są różnymi wariantami predykatu znanego z algorytmów: W instrukcjach sterujących podejmowane są decyzje o wykonaniu tych czy innych instrukcji programu. Decyzje te podejmowane są w zależności od spełnienia lub niespełnienia jakiegoś warunku. Inaczej mówiąc, od prawdziwości lub fałszywości jakiegoś wyrażenia. Najpierw więc wyjaśnijmy sobie co to jest prawda, a co fałsz w języku C++.
3
Prawda i fałsz w języku C++
W języku C++ nie ma specjalnego typu określającego zmienne logiczne - czyli takie, które przyjmują wartości: prawda – fałsz. Do przechowywania takiej informacji nadaje się każdy typ. Zasada jest genialnie prosta: Sprawdza się czy wartość danego obiektu - np. zmiennej - jest równa zero, czy różna od zera. Wartość zero - odpowiada stanowi: fałsz 0 fałsz Wartość inna niż zero - odpowiada stanowi: prawda nie 0 prawda Nie musi to być nawet zawartość jednego obiektu. Może to być także bardziej skomplikowane wyrażenie, które trzeba obliczyć, aby przekonać się jaka jest jego wartość.
4
Ćwiczenia Które z poniższych wyrażeń jest logiczną prawdą, a które fałszem? 2* *3 5/2 6/4-3/2 (24-6)* *4 (-12+3)*4 8/(2-4) 5>(10/2) 5>=(10/2) 6>10/2 (1-5)>2
5
Instrukcja warunkowa if, if...else...
Instrukcja if może mieć 2 formy: if (wyrażenie) instrukcja; if (wyrażenie) instrukcja1; else instrukcja2;
6
Instrukcja if Przykład 1 if (wyrażenie) instrukcja;
Wyrażenie to tutaj coś, co ma jakąś wartość. Może być to po prostu obiekt wybrany przez nas do przechowywania zmiennej logicznej, ale może to być też naprawdę wyrażenie, które najpierw trzeba obliczyć, by w rezultacie tego poznać jego wartość. Najpierw zatem obliczana jest wartość wyrażenia. Jeśli jest ona niezerowa (prawda), to wykonywana jest instrukcja. Jeśli wartość wyrażenia jest zero (fałsz), to instrukcja1 nie jest wykonywana. Przykład 1 if (5>3) cout << ”pięć jest większe od trzech”; Obliczone wyrażenie 5>3 zwróci wartość 1 (prawda) więc zostanie wykonana instrukcja i w rezultacie na monitorze zostanie wypisany komunikat: pięć jest większe od trzech
7
Instrukcja if... else... if (wyrażenie) instrukcja1; else instrukcja2;
W drugiej wersji instrukcji if widzimy dodatkowo słowo else, co można przetłumaczyć jako: „w przeciwnym razie". A zatem jeśli w tej drugiej sytuacji wartość wyrażenia jest niezerowa (prawda), to zostanie wykonana instrukcja1, w przeciwnym razie (else), czyli gdy wartość wyrażenia jest zerowa (fałsz), zostanie wykonana instrukcja2. Wynik wyrażenia może być różnego typu (całkowity, rzeczywisty itd). Sprawdza się tylko czy jest równy zero czy nie
8
Przykład 2 /* Program do nauki latania */ int i ; // definicja obiektu int o nazwie i cout << "Podaj jakaś liczbę: " ; cin >> i ; if(i-4) cout << " zmienna i miała wartość inną niż 4"; else cout << " zmienna i miała wartość równą 4"; Załóżmy, że podaliśmy liczbę 15. Wyrażeniem było tu: i-4. Obliczana jest więc jego wartość: 15-4=11, a to jest różne od 0 (zatem: prawda), więc wykonana zostaje instrukcja pierwsza. Gdybyśmy podali liczbę 4, wówczas do zmiennej i podstawione zostałoby 4. Wyrażenie i-4 miałoby wartość 0 (czyli: fałsz) i wtedy wykonana zostałaby instrukcja druga.
9
Blok instrukcji Często się zdarza, że chodzi nam o wykonanie warunkowe nie jednej instrukcji, a całego bloku (kilku) instrukcji. Stosujemy wówczas instrukcję składaną zwaną inaczej blokiem. Są to po prostu zwykłe instrukcje ograniczone nawiasami { } . Zauważ, że po klamrze nie trzeba stawiać średnika. { instrl; instr2; instr3; }
10
Przykład Oto przykład programu, w którym stosujemy instrukcje składane. #include <iostream.h> main () { int wys, punkty_karne; // definicja dwóch zmiennych // typu int. Obie są tego samego typu wiec // wystarczy przecinek odzielający nazwy cout << "Na jakiej wysokości lecimy ? [w metrach] : "; cin >> wys ; // rozważamy sytuacje if (wys < 500) cout << "\n" << wys << " metrów to za nisko !\n"; punkty_karne = l ; } else cout << " \nNa wysokości " << wys << " metrów jesteś już bezpieczny \n" ; punkty_karne = O ; // ocena Twoich wyników cout << "Masz " << punkty_karne << " punktów karnych \n" ; if(punkty_karne) cout << "Popraw się !" ; } blok
11
Oto przykładowy wygląd ekranu po wykonaniu tego programu
Na jakiej wysokości lecimy ? [w metrach] : 2500 Na wysokości 2500 metrów jesteś już bezpieczny Masz 0 punktów karnych Jeśli na zadane pytanie odpowiemy inaczej, to ekran może wyglądać tak: Na jakiej wysokości lecimy ? [w metrach] : 100 metrów to za nisko ! Masz l punktów karnych. Popraw się ! Zauważ jak prosto wypisuje się na ekranie wartość zmiennej wys. Wystarczyła instrukcja: cout << wys;
12
Wybór wielowariantowy
Przy użyciu słowa else mieliśmy więc możliwość dwuwariantowego wyboru: Robimy to, w przeciwnym razie robimy tamto. Możemy jednak pójść dalej – za słowem else możemy postawić następną instrukcję if. Dzięki temu zyskamy możliwość wyboru wielowariantowego: if (warunek1) instrukcja1; else if (warunek2) instrukcja2; else if (warunek3) instrukcja3; else if (warunek4) instrukcja4;
13
Zadania Zadanie 1 Narysuj algorytm do przykładu 2 - programu nauki latania., a następnie napisz pełny program z instrukcjami #include..., funkcją main( ).. Zadanie 2 – instrukcja if... Napisz program wczytujący liczbę i sprawdzający czy jest ona dodatnia Zadanie 3 – instrukcja if..else.. Napisz program dla Urzędu Skarbowego sprawdzający, czy petent przekroczył pierwszy próg podatkowy. Program ma wczytywać wartość zarobków rocznych i sprawdzać czy przekroczyły one próg zł Zadanie 4 – wybór wielowariantowy Napisz program dla Urzędu Skarbowego sprawdzający, w którym progu podatkowym mieści się petent. Program ma wczytywać wartość zarobków rocznych i sprawdzać czy przekroczyły one: pierwszy próg zł – jeżeli tak to należy sprawdzić czy zarobki nie przekroczyły drugiego progu zł. W zależności od wprowadzonej kwoty program ma wypisać: ”próg pierwszy nie przekroczony”, ”próg pierwszy przekroczony”, ”próg drugi przekroczony”
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.