Lekcja 4 — Programowanie: warunki

https://www.youtube.com/watch?v=FMoM5GHbesI 

Warunki w języku C++ to mechanizm, który umożliwia programom podejmowanie decyzji na podstawie określonych warunków i wykonanie różnych działań w zależności od spełnienia tych warunków. W języku C++, warunki są często wykorzystywane w instrukcjach warunkowych, takich jak if, else if i else, oraz w pętlach, takich jak while i for. Oto krótka charakteryzacja warunków w C++:

  1. Instrukcja warunkowa if:

    • Instrukcja warunkowa if pozwala na wykonanie bloku kodu tylko wtedy, gdy określony warunek jest spełniony.
    • Przykład:
      cpp
    • if (warunek) {
      // Ten kod zostanie wykonany, jeśli warunek jest spełniony.
      }
  • Instrukcja warunkowa else if:

    • Instrukcja else if pozwala na sprawdzenie kolejnych warunków, jeśli poprzedni warunek nie jest spełniony.
    • Jest używana po if i przed opcjonalnym blokiem else.
    • Przykład:
      cpp
    • if (warunek1) {
      // Ten kod zostanie wykonany, jeśli warunek1 jest spełniony.
      } else if (warunek2) {
      // Ten kod zostanie wykonany, jeśli warunek2 jest spełniony, a warunek1 nie jest.
      }
  • Instrukcja warunkowa else:

    • Instrukcja else definiuje blok kodu, który zostanie wykonany, jeśli żaden z poprzednich warunków nie jest spełniony.
    • Jest opcjonalna i pojawia się po if lub else if.
    • Przykład:
      cpp
    • if (warunek) {
      // Ten kod zostanie wykonany, jeśli warunek jest spełniony.
      } else {
      // Ten kod zostanie wykonany, jeśli żaden warunek nie jest spełniony.
      }

Warunki są fundamentalnym elementem programowania w C++ i pozwalają na tworzenie programów, które reagują na zmienne warunki i podejmują odpowiednie akcje. Dzięki nim możesz tworzyć bardziej elastyczne i inteligentne programy, które dostosowują się do różnych sytuacji.

kod do zajęć:
#include <iostream>
#include <cmath>

int main() {
int a = 3;
int b = 2;
int c = 4;
int delta = (b*b)-4*a*c;
int pir_delta = sqrt(delta);
int x1 = 0;
int x2 = 0;

if(delta < 0) {
std::cout << "delta mniejsza od zera" << "n";

} else {
std::cout << "delta wieksza od zera" << "n";
x1 =(-b - pir_delta)/2*a;
x2 =(-b + pir_delta)/2*a;
}
std::cout << x1 << "n";
std::cout << x2 << "n";
}

Warunek pozwala wybrać właściwe działanie

Program nie musi wykonywać zawsze tych samych instrukcji. Czasem powinien podjąć decyzję zależną od danych: przyznać punkt, wyświetlić ostrzeżenie albo poprosić o poprawienie liczby. Instrukcja if wykonuje wskazany fragment kodu tylko wtedy, gdy warunek jest prawdziwy. Możemy porównać to do zasady: jeśli pada deszcz, zabierz parasol. W programie warunek umieszczamy w nawiasie po słowie if, a wykonywane instrukcje w klamrach. Warto od początku używać klamer nawet wtedy, gdy wewnątrz znajduje się tylko jedna instrukcja.

Zapis if (punkty >= 10) oznacza sprawdzenie, czy liczba punktów jest większa lub równa dziesięć. Jeśli tak, program może wyświetlić komunikat o zdobyciu odznaki. Jeśli nie, ten fragment zostanie pominięty. Słowo else pozwala opisać drugą możliwość: co zrobić, kiedy warunek nie został spełniony. Obie gałęzie tworzą wtedy jeden wybór. Program wykona odpowiednią gałąź, zamiast uruchamiać oba komunikaty niezależnie od wyniku porównania.

Porównania muszą pasować do treści zadania

Operatory < i > sprawdzają, czy jedna wartość jest mniejsza albo większa od drugiej. Operatory <= i >= uwzględniają także równość. To ważne na granicy przedziału. Jeśli do zaliczenia potrzeba co najmniej dziesięciu punktów, zapis punkty > 10 jest błędny, bo nie uznaje wyniku równego dziesięć. Właściwy warunek to punkty >= 10. Zawsze sprawdzaj trzy przykłady: wartość trochę poniżej granicy, dokładnie równą granicy i trochę powyżej niej.

Równość porównujemy operatorem ==, natomiast nierówność operatorem !=. Pojedynczy znak = służy do przypisywania wartości. Zapisanie przypisania zamiast porównania może spowodować zmianę zmiennej i nieoczekiwany wybór gałęzi. Zwracaj uwagę na ostrzeżenia kompilatora, ponieważ często pomagają zauważyć taki błąd. Warunek nie jest poleceniem ustalenia wartości, lecz pytaniem, na które komputer odpowiada logicznym true albo false.

Kilka wymagań naraz

Operator && oznacza logiczne „i”. Warunek temperatura >= 18 && temperatura <= 25 jest prawdziwy tylko wtedy, gdy temperatura spełnia oba ograniczenia. Tak zapisujemy przedział zamknięty od osiemnastu do dwudziestu pięciu. Operator || oznacza logiczne „lub”: wystarczy spełnienie przynajmniej jednego warunku. Znak ! odwraca wartość logiczną. Jeśli zmienna maKlucz ma wartość false, wyrażenie !maKlucz jest prawdziwe. Dobrze dobrane nazwy sprawiają, że takie wyrażenia można odczytać prawie jak zdanie.

Nie zapisuj w C++ przedziału jako 18 <= temperatura <= 25. Taki zapis nie oznacza dwóch porównań w sensie znanym z matematyki. Potrzebne są dwa osobne porównania połączone operatorem &&. W dłuższych warunkach dodawaj nawiasy, aby pokazać grupowanie. Pamiętaj też, że operatory && oraz || mogą nie obliczać drugiej części wyrażenia, jeśli wynik jest już rozstrzygnięty. Dzięki temu warunek dzielnik != 0 && licznik / dzielnik > 2 nie wykonuje dzielenia przez zero.

Kolejność sprawdzania ma znaczenie

Gdy możliwych wyników jest więcej, stosujemy if, następnie else if i na końcu else. Komputer wybiera pierwszą pasującą gałąź. Jeśli sprawdzasz progi punktowe od najwyższego, zacznij od największego wymagania, na przykład dziewięćdziesięciu punktów. Gdy rozpoczniesz od niższego progu, wynik dziewięćdziesiąt pięć może trafić do pierwszej gałęzi i nigdy nie dotrzeć do właściwej nagrody. Osobne instrukcje if mają inne znaczenie: każda z nich jest sprawdzana niezależnie.

Zagnieżdżenie oznacza umieszczenie kolejnej decyzji wewnątrz wybranej gałęzi. Na przykład najpierw sprawdzamy, czy gracz ma klucz, a dopiero potem, czy stoi przy drzwiach. Nie warto jednak tworzyć wielu poziomów klamer, jeśli prosty warunek logiczny opisuje sytuację czytelniej. Najważniejszy jest zrozumiały przepływ programu. Wcięcia pomagają zobaczyć, które instrukcje należą do danej gałęzi, chociaż to klamry wyznaczają ich rzeczywisty zakres.

Ćwiczenie: decyzja o wejściu do gry

Przygotuj program, który otrzymuje wiek uczestnika i informację, czy uczestnik zna regulamin. Ustal dla tego fikcyjnego ćwiczenia minimalny wiek na dwanaście lat. Wejście jest możliwe, gdy wiek wynosi co najmniej dwanaście i znajomość regulaminu jest potwierdzona. Przetestuj cztery przypadki: młodszy uczestnik znający regulamin, starszy uczestnik nieznający regulaminu, uczestnik dokładnie w wymaganym wieku oraz starszy uczestnik spełniający oba wymagania.

Przed uruchomieniem wypisz przewidywane decyzje w tabeli. Następnie porównaj je z komunikatami programu i wyjaśnij każdy wynik. W drugim etapie dodaj kontrolę błędnych danych, na przykład ujemnego wieku. Program powinien odróżniać niespełnienie warunków wejścia od niepoprawnej informacji. Takie rozróżnienie jest ważne w rzeczywistych formularzach: użytkownik powinien wiedzieć, czy musi poprawić dane, czy otrzymał decyzję wynikającą z zasad zadania.

Dodatkowy sprawdzian decyzji

Wybierz jedną granicę z własnego programu i zapisz pięć wartości po obu jej stronach. Dla każdej uzasadnij wybór gałęzi. Jeśli uzasadnienie nie pasuje do kodu, popraw warunek przed dodawaniem następnej funkcji.

Sprawdź, co pamiętasz

Pytania kontrolne

1. Jaki jest główny temat artykułu „Lekcja 4 — Programowanie: warunki”?

Wskazówka: Odpowiedz własnymi słowami i wskaż najważniejszy cel lub problem opisany w materiale.

2. Które trzy pojęcia, zasady albo etapy z artykułu warto zapamiętać?

Wskazówka: Wybierz informacje potrzebne do wykonania zadania lub wyjaśnienia tematu innej osobie.

3. Jak można wykorzystać tę wiedzę w praktyce?

Wskazówka: Podaj konkretny przykład z lekcji, pracy przy komputerze albo codziennej sytuacji.

4. Jakie kroki należy wykonać, aby poprawnie zrealizować opisane zadanie?

Wskazówka: Ułóż najważniejsze czynności we właściwej kolejności.

5. Jakich narzędzi, funkcji lub materiałów potrzeba do wykonania zadania?

Wskazówka: Wymień elementy wskazane w artykule i krótko opisz ich rolę.

6. Która zasada opisana w artykule jest najważniejsza i dlaczego?

Wskazówka: Uzasadnij wybór przykładem z materiału.

7. Jaki błąd można popełnić podczas wykonywania zadania i jak go uniknąć?

Wskazówka: Wskaż możliwą trudność oraz sposób jej rozwiązania.

8. Jak wyjaśnisz ten temat osobie, która poznaje go po raz pierwszy?

Wskazówka: Użyj prostych słów i najważniejszych pojęć z artykułu.

9. Co zmieniłoby się, gdyby pominąć jeden z opisanych etapów lub zasad?

Wskazówka: Przewidź skutek i uzasadnij odpowiedź.

10. Jakie własne ćwiczenie lub przykład można przygotować na podstawie artykułu?

Wskazówka: Zaproponuj zadanie, które sprawdza zrozumienie materiału.

Komentarze

Dodaj komentarz