Przejdź do głównej zawartości

Warunki » Przykłady

Sprawdzacz Prawo Jazdy

Ten przykład był tworzony przez całą lekcję o warunkach.

#include <iostream>

int main() {
std::cout << "Welcome to the Driver's License Oracle 5500\n";

int year_of_birth;
std::cout << "Please enter your year of birth: ";
std::cin >> year_of_birth;

int num_crashes;
std::cout << "Please enter the number of crashes you have had: \n";
std::cin >> num_crashes;

char license_class = 'X'; // X jest wybraną wartością reprezentującą, że użytkownik nie dostał prawa jazdy
std::string illegal_reason;

if (num_crashes < 2) {
// W momencie pisania tej lekcji mamy 2022 rok
int age = 2022 - year_of_birth;

if ((age >= 18 and age <= 21) or (age >= 51 and age <= 64)) {
license_class = 'C';
} else if (age >= 22 and age <= 30) {
license_class = 'B';
} else if (age >= 31 and age <= 50) {
license_class = 'A';
} else {
illegal_reason = "you are not between 18 and 64 years old";
}
} else {
illegal_reason = "you have " + std::to_string(num_crashes) + " accidents";
}

if (license_class != 'X') {
std::cout << "You can legally get a Class " << license_class << " driver's license\n";
} else {
std::cout << "You cannot legally get a driver's license because " << illegal_reason << "\n";
}
}

Interaktywny kalkulator logiki boolowskiej

#include <iostream>
#include <iomanip>
#include <string>

int main() {
// Pytamy o dwa wejścia logiczne
std::cout << "Welcome to the Boolean Logic Calculator!\n"
<< "Please enter two values of either true or false exactly:\n";

bool input_a;
bool input_b;

// Używamy std::boolalpha aby móc pobrać wejście w postaci "true" i "false"
std::cin >> std::boolalpha >> input_a >> input_b;

// Pytamy o operację
std::cout << "\n\nNow enter a logical operation.\n"
<< "Valid options are AND, NAND, OR, NOR, XOR, XNOR (exactly):\n";

std::string op;
std::cin >> op;

// Liczymy wynik
bool result;

if (op == "AND") {
result = input_a and input_b;
} else if (op == "NAND") {
result = not (input_a and input_b);
} else if (op == "OR") {
result = input_a or input_b;
} else if (op == "NOR") {
result = not (input_a or input_b);
} else if (op == "XOR") {
result = input_a != input_b; // XOR to odpowiednik "nie równa się" dla booli
} else if (op == "XNOR") {
result = input_a == input_b; // XNOR to odpowiednik "równa się" dla booli
} else {
std::cout << "Error! Invalid choice. Quitting.";

// Używamy tutaj instrukcji return, aby opuścić funkcję main,
// co kończy program
// 1 oznacza, że program zakończył się z błędem.
// Więcej o funkcjach poznasz w lekcji Funkcje
return 1;
}

std::cout << std::boolalpha; // Ustawiamy cout tak, żeby wypisywał true/false dla booli
std::cout << "\n\nThe answer of " << input_a << " " << op << " " << input_b << " is " << result;
}

Liczenie właściwości liczb

#include <iostream>

int main() {
int value1;
bool is_value1_even;

std::cout << "Input a number: ";
std::cin >> value1;

// Liczymy parzystość liczby
if (value1 % 2 == 0) {
is_value1_even = true;

std::cout << "Your number is even!\n";
if (value1 == 0) {
// Wiele ludzi nie wie czy 0 jest liczbą parzystą
std::cout << "But does zero count as an even number?\n";
}
} else {
is_value1_even = false;
std::cout << "Your number is odd!\n";
}

// Liczym znak liczby
if (value1 > 0) {
std::cout << "Your number is positive!\n";
} else if (value1 < 0) {
std::cout << "Your number is negative!\n";
} else {
std::cout << "Zero is neither positive nor negative.\n";
}

// Pytamy użytkownika o drugą liczbę dla porównania
int value2;

std::cout << "\nNow, input a number again: ";
std::cin >> value2;

// Liczymy czy liczba była mniejsza, większa czy równa
if (value1 != value2) {
std::cout << "You entered a different number... ";

if (value1 > value2) {
std::cout << "And it was smaller than the previous one!\n";
} else {
std::cout << "And it was bigger than the previous one!\n";
}
} else {
std::cout << "You entered the same number!\n";
}

// Teraz sprawdzamy "magiczną właściwość"
// Liczbą są magiczne, jeśli obie są parzyste i ich różniac jest podzielna przez 7
int diff = value1 - value2;
bool is_value2_even= value2 % 2 == 0;

if (is_value1_even && is_value2_even&& (diff % 7 == 0)) {
std::cout << "Your numbers are special!";
}
}

Warunki » Przykłady

Sprawdzacz Prawo Jazdy

Ten przykład był tworzony przez całą lekcję o warunkach.

#include <iostream>

int main() {
std::cout << "Welcome to the Driver's License Oracle 5500\n";

int year_of_birth;
std::cout << "Please enter your year of birth: ";
std::cin >> year_of_birth;

int num_crashes;
std::cout << "Please enter the number of crashes you have had: \n";
std::cin >> num_crashes;

char license_class = 'X'; // X jest wybraną wartością reprezentującą, że użytkownik nie dostał prawa jazdy
std::string illegal_reason;

if (num_crashes < 2) {
// W momencie pisania tej lekcji mamy 2022 rok
int age = 2022 - year_of_birth;

if ((age >= 18 and age <= 21) or (age >= 51 and age <= 64)) {
license_class = 'C';
} else if (age >= 22 and age <= 30) {
license_class = 'B';
} else if (age >= 31 and age <= 50) {
license_class = 'A';
} else {
illegal_reason = "you are not between 18 and 64 years old";
}
} else {
illegal_reason = "you have " + std::to_string(num_crashes) + " accidents";
}

if (license_class != 'X') {
std::cout << "You can legally get a Class " << license_class << " driver's license\n";
} else {
std::cout << "You cannot legally get a driver's license because " << illegal_reason << "\n";
}
}

Interaktywny kalkulator logiki boolowskiej

#include <iostream>
#include <iomanip>
#include <string>

int main() {
// Pytamy o dwa wejścia logiczne
std::cout << "Welcome to the Boolean Logic Calculator!\n"
<< "Please enter two values of either true or false exactly:\n";

bool input_a;
bool input_b;

// Używamy std::boolalpha aby móc pobrać wejście w postaci "true" i "false"
std::cin >> std::boolalpha >> input_a >> input_b;

// Pytamy o operację
std::cout << "\n\nNow enter a logical operation.\n"
<< "Valid options are AND, NAND, OR, NOR, XOR, XNOR (exactly):\n";

std::string op;
std::cin >> op;

// Liczymy wynik
bool result;

if (op == "AND") {
result = input_a and input_b;
} else if (op == "NAND") {
result = not (input_a and input_b);
} else if (op == "OR") {
result = input_a or input_b;
} else if (op == "NOR") {
result = not (input_a or input_b);
} else if (op == "XOR") {
result = input_a != input_b; // XOR to odpowiednik "nie równa się" dla booli
} else if (op == "XNOR") {
result = input_a == input_b; // XNOR to odpowiednik "równa się" dla booli
} else {
std::cout << "Error! Invalid choice. Quitting.";

// Używamy tutaj instrukcji return, aby opuścić funkcję main,
// co kończy program
// 1 oznacza, że program zakończył się z błędem.
// Więcej o funkcjach poznasz w lekcji Funkcje
return 1;
}

std::cout << std::boolalpha; // Ustawiamy cout tak, żeby wypisywał true/false dla booli
std::cout << "\n\nThe answer of " << input_a << " " << op << " " << input_b << " is " << result;
}

Liczenie właściwości liczb

#include <iostream>

int main() {
int value1;
bool is_value1_even;

std::cout << "Input a number: ";
std::cin >> value1;

// Liczymy parzystość liczby
if (value1 % 2 == 0) {
is_value1_even = true;

std::cout << "Your number is even!\n";
if (value1 == 0) {
// Wiele ludzi nie wie czy 0 jest liczbą parzystą
std::cout << "But does zero count as an even number?\n";
}
} else {
is_value1_even = false;
std::cout << "Your number is odd!\n";
}

// Liczym znak liczby
if (value1 > 0) {
std::cout << "Your number is positive!\n";
} else if (value1 < 0) {
std::cout << "Your number is negative!\n";
} else {
std::cout << "Zero is neither positive nor negative.\n";
}

// Pytamy użytkownika o drugą liczbę dla porównania
int value2;

std::cout << "\nNow, input a number again: ";
std::cin >> value2;

// Liczymy czy liczba była mniejsza, większa czy równa
if (value1 != value2) {
std::cout << "You entered a different number... ";

if (value1 > value2) {
std::cout << "And it was smaller than the previous one!\n";
} else {
std::cout << "And it was bigger than the previous one!\n";
}
} else {
std::cout << "You entered the same number!\n";
}

// Teraz sprawdzamy "magiczną właściwość"
// Liczbą są magiczne, jeśli obie są parzyste i ich różniac jest podzielna przez 7
int diff = value1 - value2;
bool is_value2_even= value2 % 2 == 0;

if (is_value1_even && is_value2_even&& (diff % 7 == 0)) {
std::cout << "Your numbers are special!";
}
}