• Nie Znaleziono Wyników

Instrukcja warunkowa w języku C++ Wprowadzenie Przeczytaj Prezentacja mul medialna Sprawdź się Dla nauczyciela

N/A
N/A
Protected

Academic year: 2022

Share "Instrukcja warunkowa w języku C++ Wprowadzenie Przeczytaj Prezentacja mul medialna Sprawdź się Dla nauczyciela"

Copied!
9
0
0

Pełen tekst

(1)

Instrukcja warunkowa w języku C++

Wprowadzenie Przeczytaj

Prezentacja mul medialna Sprawdź się

Dla nauczyciela

(2)

Jedną z najważniejszych własności współczesnych komputerów jest możliwość wykonywania różnych czynności w zależności od postawionego warunku.

Wyobraźmy sobie sytuację, w której chcemy skalkulować koszt biletów lotniczych. W wielu wypadkach podawana jest cena podstawowa biletu, a następnie naliczane są dodatkowe opłaty, m.in. za bagaż czy ubezpieczenie. Jak zatem napisać program, który poda nam koszt zakupu kilku biletów?

Twoje cele

Poznasz składnię instrukcji warunkowej w języku C++.

Dowiesz się, jak zapisać warunki wielokrotnie złożone.

Wykorzystasz instrukcję warunkową do rozwiązywania prostych problemów.

Instrukcja warunkowa w języku C++

Źródło: Javier Allegue Barros, licencja: CC 0.

(3)

Przeczytaj

Instrukcje warunkowe mają różne postacie. Wyobraźmy sobie taką sytuację: bilet lotniczy kosztuje 210 zł – osoby, które chcą przewieźć bagaż cięższy niż 5 kg, muszą do ceny podstawowej dopłacić 80 zł.

Kryterium to jest warunkiem i można zapisać go takim zdaniem: jeśli osoba podróżuje z bagażem cięższym niż 5 kg, to cena biletu wzrasta o 80 zł. Moglibyśmy zatem zapisać ten warunek za pomocą pseudokodu:

jeśli waga_bagażu > 5 to do_zaplaty = cena + 80

W języku C++ powyższy pseudokod zapiszemy:

if (waga_bagazu > 5) { do_zaplaty = cena + 80;

}

Zapis ten oznacza, że jeśli wartość zmiennej waga_bagazu jest większa niż 5, to do wartości zmiennej cena dodamy 80.

Definiowanie warunków

Warunek może przyjąć dwie wartości logiczne: prawda (true) lub fałsz (false). Często oznaczane także 1 (prawda) i 0 (fałsz).

Operacje zawarte w instrukcji warunkowej wykonają się tylko wtedy, kiedy postawiony warunek przyjmie wartość true.

Jedną z podstawowych operacji wykorzystywanych do tworzenia warunków, podobnie jak w przypadku naszego programu obliczającego cenę, jest operacja porównania. W zależności od wyniku działania zwracana jest odpowiednia wartość logiczna, np.

int x = 5;

std::cout << (x == 5) << std::endl; // wyświetli 1 (true) std::cout << (x != 5) << std::endl; // wyświetli 0 (false) std::cout << (x == 7) << std::endl; // wyświetli 0 (false) std::cout << (x > 2) << std::endl; // wyświetli 1 (true) std::cout << (x < 5) << std::endl; // wyświetli 0 (false) std::cout << (x <= 5) << std::endl; // wyświetli 1 (true) std::cout << (x >= 5) << std::endl; // wyświetli 1 (true)

Ważne!

Do przypisania wartości do zmiennej używa się operatora =, natomiast do porównania ze sobą dwóch elementów służą operatory relacyjne. Podwójny znak równości == wskaże, czy dwa elementy są sobie równe. Operator „różne od” zapisujemy jako !=. Do silnych nierówności wykorzystamy > i <,

natomiast do słabych >= i <=.

Warunki złożone

(4)

Choć warunki można zagnieżdżać, to istnieją metody, które ułatwiają zapisywanie złożonych warunków.

Załóżmy, że chcemy rozwinąć przykład z zakupem biletu i dopłatami. Pasażerowie mogą dodatkowo ubezpieczyć swój bagaż za 50 zł, ale jeśli dopłacają już za nadbagaż, to ubezpieczenie kosztuje tylko 35 zł.

Osoby podróżujące klasą biznesową w cenie biletu mają już ubezpieczenie i opłatę za nadbagaż.

Korzystając z samej instrukcji warunkowej, musielibyśmy stworzyć szereg warunków:

do_zaplaty = cena;

if (klasa_biznes == false) { if (waga_bagazu > 5) { do_zaplaty = cena + 80;

}

if (ubezpieczenie == true) { do_zaplaty += 50;

if (waga_bagazu > 5) { do_zaplaty -= 15;

} }

}

W języku C++ mamy do dyspozycji zestaw trzech operatorów logicznych.

Koniunkcję wyrażamy za pomocą operatora &&. Zwróci on wartość true wtedy i tylko wtedy, gdy wszystkie argumenty mają wartość true.

Operator || reprezentuje alternatywę. Zwróci on wartość true, gdy przynajmniej jeden argument ma wartość true.

Istnieje również jednoargumentowy operator negacji !. Zwróci on wartość true dla argumentu o wartości false i false dla argumentu o wartości true.

bool t = true;

bool f = false;

bool wynik;

wynik = t && t; // wynik = true wynik = t && f; // wynik = false wynik = f && t; // wynik = false wynik = f && f; // wynik = false wynik = t || t; // wynik = true wynik = t || f; // wynik = true wynik = f || t; // wynik = true wynik = f || f; // wynik = false wynik = !t; // wynik = false wynik = !f; // wynik = true

Wykorzystując operatory logiczne, możemy znacznie uprościć kod obliczający cenę biletu:

do_zaplaty = cena;

(5)

if (klasa_biznes == false && waga_bagazu > 5) { do_zaplaty = cena + 80;

}

if (klasa_biznes == false && ubezpieczenie == true) { do_zaplaty += 50;

if (waga_bagazu > 5) { do_zaplaty -= 15;

} }

Język C++ ma również dwie dodatkowe instrukcje: else oraz else if. Pierwsza pozwala wykonać alternatywny blok kodu, kiedy kryterium instrukcji warunkowej nie zostanie spełnione. Druga jest połączeniem obu wspomnianych instrukcji, a więc wykona blok kodu, jeśli instrukcja warunkowa nie zostanie spełniona, ale jeśli zostanie spełniony nowy warunek. Możemy zatem jeszcze raz zmodyfikować nasz program:

if (klasa_biznes == false && ubezpieczenie == true && waga_bagazu > 5) { do_zaplaty = cena + 115;

} else if (klasa_biznes == false && waga_bagazu > 5) { do_zaplaty = cena + 80;

} else if (klasa_biznes == false && ubezpieczenie == true) { do_zaplaty = cena + 50;

} else {

do_zaplaty = cena;

}

Ważne!

Koniunkcja i alternatywa mają niższy priorytet od operatorów relacyjnych. Oznacza to, że najpierw wykonane zostanie porównanie wartości ze sobą, a dopiero potem operacja logiczna. Dlatego nie musimy dodawać nawiasów, aby kontrolować kolejność działań.

Słownik

zagnieżdżenie

umieszczenie jednej operacji wewnątrz drugiej operator logiczny

operator pozwalający na wykonywanie podstawowych operacji algebry Boole'a, takich jak koniunkcja, alternatywa czy negacja

(6)

Prezentacja mul medialna

Polecenie 1

Przeanalizuj prezentację, a następnie przedstaw wynik działania tego warunku, używając danych o dowolnej osobie z twojego otoczenia. Doprowadź wszystkie działania obok instrukcji if, else if oraz else do momentu, w którym będą one miały wartość true lub false.

(7)

Sprawdź się

Ćwiczenie 1 Ćwiczenie 2 Ćwiczenie 3

(8)

Dla nauczyciela

Autor: Zespół Gromar.eu Przedmiot: informatyka

Temat: Instrukcja warunkowa w języku C++.

Grupa docelowa: III etap edukacyjny, liceum, technikum Podstawa programowa:

zakres podstawowy

I. Rozumienie, analizowanie i rozwiązywanie problemów. Uczeń:

2) stosuje przy rozwiązywaniu problemów z różnych dziedzin algorytmy poznane w szkole podstawowej oraz algorytmy:

a) na liczbach: badania pierwszości liczby, zamiany reprezentacji liczb między pozycyjnymi systemami liczbowymi, działań na ułamkach z wykorzystaniem NWD i NWW.

II. Programowanie i rozwiązywanie problemów z wykorzystaniem komputera i innych urządzeń cyfrowych. Uczeń:

1) projektuje i programuje rozwiązania problemów z różnych dziedzin, stosuje przy tym: instrukcje wejścia/wyjścia, wyrażenia arytmetyczne i logiczne, instrukcje warunkowe, instrukcje iteracyjne, funkcje z parametrami i bez parametrów, testuje poprawność programów dla różnych danych; w szczególności programuje algorytmy z punktu I.2).

Kształtowane kompetencje kluczowe:

kompetencje w zakresie rozumienia i tworzenia informacji;

kompetencje w zakresie wielojęzyczności;

kompetencje matematyczne oraz kompetencje w zakresie nauk przyrodniczych, technologii i inżynierii;

kompetencje cyfrowe.

Cele operacyjne:

Uczeń:

poznaje składnię instrukcji warunkowej w języku C++;

wykorzystuje instrukcję warunkową do rozwiązywania prostych problemów;

potrafi zapisać warunki wielokrotnie złożone.

Strategie nauczania:

konstruktywizm.

Metody i techniki nauczania:

rozmowa kierowana;

dyskusja;

burza mózgów;

mapa skojarzeń;

analiza kodu;

programowanie.

(9)

Formy pracy:

praca indywidualna;

praca w parach;

praca całego zespołu klasowego.

Środki dydaktyczne:

komputery z głośnikami i dostępem do internetu, słuchawki;

zasoby multimedialne zawarte w e‑materiale;

środowisko programistyczne C++;

tablica interaktywna/tablica, pisak/kreda.

Przebieg zajęć:

Faza wstępna

1. Nauczyciel podaje temat i cele zajęć oraz wspólnie z uczniami ustala kryteria sukcesu.

2. Burza mózgów. Uczniowie odpowiadają na pytania: „Co to jest instrukcja warunkowa? W jakich językach programowania występuje?”. Zapisują swoje propozycje w formie mapy skojarzeń. Po fazie twórczej następuje weryfikacja pomysłów i sformułowanie wniosków.

Faza realizacyjna

1. Praca w parach. Uczniowie zapoznają się z informacjami na temat definiowania warunków. Następnie chętne/wybrane pary przedstawiają wnioski na forum klasy. Pozostali weryfikują i w miarę potrzeby uzupełniają wypowiedzi kolegów i koleżanek.

2. Podczas rozmowy kierowanej uczniowie omawiają warunki złożone i działanie operatorów logicznych.

Dyskusja i przedstawienie wniosków.

3. Praca z multimedium bazowym – prezentacja przedstawia analizę działania warunku złożonego.

Uczniowie powinni zwrócić szczególną uwagę na to, które warunki są spełnione oraz jaka jest kolejność ich weryfikowania. Następnie wykonują polecenie.

4. Uczniowie piszą algorytmy, które są od razu sprawdzane.

Faza podsumowująca

1. Wybrani uczniowie podsumowują zajęcia, zwracając uwagę na nabyte umiejętności. W razie konieczności nauczyciel zadaje pytania pomocnicze, np.

W jakich sytuacjach instrukcja warunkowa nie jest potrzebna?

W jakich sytuacjach instrukcja warunkowa jest konieczna?

W jakiej sytuacji kolejność występowania warunków ma znaczenie?

2. Nauczyciel omawia przebieg zajęć, wskazuje mocne i słabe strony pracy uczniów, udzielając im tym samym informacji zwrotnej.

Materiały pomocnicze:

Dokumentacja dla C++.

Wskazówki metodyczne opisujące różne zastosowania multimedium:

Prezentację multimedialną można wykorzystać w nauczaniu wyprzedzającym. Uczniowie przed lekcją przygotowują indywidualnie lub w grupach narrację i prezentują ją podczas zajęć.

Cytaty

Powiązane dokumenty

Rewolucja przemysłowa rozpoczęła się w Anglii. Nasuwa się pytanie, dlaczego właśnie tam, w jakich warunkach do tego doszło? Wielkie odkrycia geograficzne stały się bodźcem

Zapoznaj się ze sposobami doboru rezystora do diody LED, a następnie dobierz wartości rezystora dla diody żółtej oraz niebieskiej... Nagranie dostępne na portalu

Rzecznik Praw Dziecka stoi na straży praw dziecka, a szczególnie prawa do życia i ochrony zdrowia, prawa do wychowania w rodzinie, prawa do godziwych warunków socjalnych i prawa

Zabezpieczenie praw człowieka i obywatela stwarza potrzebę władzy publicznej (aparatu przymusu), władza ta zatem jest ustanowioną ku pożytkowi ogółu, nie zaś dla korzyści

Relewantność partii określana jest przez poziom poparcia wyborczego, potencjał koalicyjny (możliwość wchodzenia w koalicje rządowe) oraz potencjał szantażu

Dowiesz się, jak zmierzyć temperaturę za pomocą czujnika TMP36.. Poznasz możliwości

Warunek pętli sprawdzany jest na końcu, dlatego instrukcje zawarte w pętli wykonają się co najmniej jeden raz}.

Źródło: Vladimirov, Ivan Alekseevich, Stanford University, Hoover Ins tu on, Library&amp;Archives.. Życie