Menu
Coddy logo textTech

Operatory logiczne — część 3

Część sekcji Podstawy ścieżki C w Coddy. Lekcja 23 z 63.

Podczas sprawdzania wielu warunków program przestaje je sprawdzać, gdy tylko zna ostateczną odpowiedź. Nazywa się to ewaluacją zwarciową.

Na przykład:

int x = 0;
int y = 5;
int result = (x != 0) && (y / x > 2);

Tutaj x jest równe 0, dlatego warunek y / x > 2 nie zostanie obliczony. Gdybyśmy odwrócili kolejność:

int result = (y / x > 2) && (x != 0);

Spowoduje to błąd, ponieważ y zostanie podzielone przez 0, co w języku C jest niezdefiniowane. Dlatego warto dokładnie przemyśleć operacje, aby napisać poprawny i skuteczny kod bez błędów.

Ta technika służy do optymalizacji obliczania wyrażeń logicznych. Na przykład:

int a = 0;
int b = 2;
int c = 3;
int d = 5;
int result = (a > 0 && b < 2) || (c < -5 && d < 10);

W tym przykładzie b < 2 i d < 10 nie zostaną obliczone, ponieważ zarówno a > 0, jak i c < -5 są fałszywe.

challenge icon

Wyzwanie

Łatwy

Utwórz program, który zdecyduje, czy to dobry dzień na produkcję energii przez panele słoneczne

Zainicjuj te zmienne:

  • isSunny wartością 1 (prawda)
  • windSpeed wartością 5.4
  • temperature wartością 23
  • solarPanelOutput wartością 9
  • isCloudy wartością 0 (fałsz)

Utwórz jedno wyrażenie logiczne, które sprawdza WSZYSTKIE te warunki:

  • Jest słonecznie
  • Prędkość wiatru jest mniejsza niż 10
  • Wydajność paneli słonecznych jest mniejsza niż 15
  • Temperatura przekracza 20 LUB nie ma chmur

Wypisz "Good day for solar energy", jeśli wszystkie warunki są spełnione, w przeciwnym razie wypisz "Not ideal for solar energy".

Spróbuj swoich sił

#include <stdio.h>

int main() {
    // Zainicjalizuj zmienne
    int isSunny = 1;
    float windSpeed = 5.4;
    int temperature = 23;
    int solarPanelOutput = 9;
    int isCloudy = 0;
    
    // Utwórz wyrażenie logiczne
    int isGoodDay = 
    
    // Nie zmieniaj kodu poniżej
    if (isGoodDay) {
        printf("Good day for solar energy\n");
    } else {
        printf("Not ideal for solar energy\n");
    }
    
    return 0;
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Kompilator C online