Serwis Edukacyjny w I-LO w Tarnowie Materiały dla uczniów liceum |
Wyjście Spis treści Wstecz Dalej
Autor artykułu: mgr Jerzy Wałaszek |
©2024 mgr Jerzy Wałaszek |
https://www.programiz.com/cpp-programming/online-compiler/
W logice występują jedynie dwie wartości: prawda i fałsz. W języku C++ zdefiniowane są specjalne stałe do reprezentowania wartości logicznych:prawda | = true | = 1 |
fałsz | = false | = 0 |
// Wartości logiczne //------------------ #include <iostream> using namespace std; int main() { cout << "false = " << false << endl << "true = " << true << endl; return 0; } |
Oczywiście zamiast true można stosować 1, a zamiast false 0 - jednakże posługiwanie się tymi stałymi zwiększa znacznie czytelność programu.
Wyrażenie logiczne (ang. logical expresion) jest wyrażeniem, które może przyjmować tylko wartości logiczne true lub false. Tego typu wyrażenia powstają z operatorami porównań.
Operator | Nazwa | Przykład |
---|---|---|
== | równe | a == 15 |
!= | różne | a != b |
< | mniejsze | a < 15 |
<= | mniejsze lub równe | b + 5 <= a |
> | większe | a + 15 > c |
>= | większe lub równe | a >= b + c |
// Operatory porównań //--------------------------- #include <iostream> using namespace std; int main() { int a = 4; cout << (a == 4) << endl << (a == 3) << endl; return 0; } |
// Operatory porównań //--------------------------- #include <iostream> using namespace std; int main() { int a = 4; cout << (a != 4) << endl << (a != 3) << endl; return 0; } |
// Operatory porównań //--------------------------- #include <iostream> using namespace std; int main() { int a = 4; cout << (a < 5) << endl << (a < 3) << endl; return 0; } |
// Operatory porównań //--------------------------- #include <iostream> using namespace std; int main() { int a = 4; cout << (a >= 5) << endl << (a >= 3) << endl; return 0; } |
https://www.programiz.com/cpp-programming/online-compiler/
Instrukcja warunkowa pozwala wykonywać instrukcje programu w zależności od określonego warunku logicznego. Posiada ona następującą składnię:
if(warunek) instrukcja1; else
instrukcja2
;
if - jest słowem kluczowym języka C++ oznaczającym instrukcję warunkową
warunek - jest wyrażeniem logicznym lub arytmetycznym, które zostaje obliczone przez instrukcję if i którego wartość decyduje o sposobie wykonania następnych instrukcji.
instrukcja1 - jest dowolną instrukcją języka C++, która zostanie wykonana przez program tylko wtedy, gdy warunek będzie miał wartość logiczną true (lub różną od zera). Jeśli warunek ma wartość false (lub zerową), to instrukcja1 zostanie całkowicie pominięta.
else - słowo kluczowe języka C++, składnik instrukcji warunkowej if.
instrukcja2 - jest dowolną instrukcją języka C++, która zostanie wykonana tylko wtedy, gdy warunek będzie miał wartość false (lub zero). Jeśli warunek ma wartość true (lub różną od zera), to instrukcja2 zostanie całkowicie pominięta.
Zwróć uwagę, że zawsze wykonywana jest tylko jedna z instrukcji zawartych w instrukcji warunkowej if. Ta własność pozwala komputerowi działać logicznie, dostosowywać operację do zastanych warunków. To dzięki niej programy są "inteligentne".
// Znajdowanie większej z dwóch liczb //----------------------------------- #include <iostream> using namespace std; int main() { int a,b; cin >> a >> b; cout << "Z dwóch liczb " << a << " i " << b << " większą jest liczba "; if(a > b) cout << a; else cout << b; cout << endl; return 0; } |
// Badanie parzystości liczby //--------------------------- #include <iostream> using namespace std; int main() { int a; cin >> a; cout << "Liczba " << a << " jest "; if(a % 2) cout << "nieparzysta"; else cout << "parzysta"; cout << endl; return 0; } |
// Badanie znaku liczby //--------------------- #include <iostream> using namespace std; int main() { int a; cin >> a; cout << "Liczba " << a << " jest "; if(a > 0) cout << "dodatnia"; else if(a == 0) cout << "równa zero"; else cout << "ujemna"; cout << endl; return 0; } |
Często zdarza się tak, iż w instrukcji warunkowej potrzebna nam jest tylko instrukcja1. W takim przypadku fragment z else można pominąć.
if(warunek) instrukcja
;
instrukcja
jest wykonywana tylko wtedy, gdy
warunek jest prawdziwy. Gdy warunek ma wartość false,
to
instrukcja
zostaje pominięta.
// Obliczanie wartości bezwzględnej //--------------------------------- #include <iostream> using namespace std; int main() { int a; cin >> a; if(a < 0) a = -a; cout << a << endl; return 0; } |
// Wyszukiwanie największej liczby z trzech //----------------------------------------- #include <iostream> using namespace std; int main() { int a,b,c,x; cin >> a >> b >> c; x = a; if(b > x) x = b; if(c > x) x = c; cout << x << endl; return 0; } |
Jeśli w ramach instrukcji warunkowej if chcemy wykonać nie pojedynczą instrukcję ale kilka instrukcji, to stosujemy tzw. instrukcję blokową - dowolny ciąg instrukcji ujęty w klamerki. Po klamerkach nie musimy już wstawiać średników:
if(warunek)
{
ciąg
instrukcji wykonywany, gdy
warunek ma wartość true
}
else
{
ciąg instrukcji wykonywanych, gdy
warunek ma wartość false
}
Przykładowy program wykorzystuje prosty algorytm zamieniający nawzajem zawartości dwóch zmiennych. Operacje takie są wykonywane przy porządkowaniu różnych zbiorów. Wymagają one dodatkowej zmiennej pomocniczej, w której umieszczamy chwilowo zawartość jednej ze zmiennych. Postaraj się zrozumieć i zapamiętać ten schemat, ponieważ będziesz go wielokrotnie wykorzystywał w przyszłości:
Operacja zamiany zawartości składa się z trzech instrukcji przypisania:
X = A; // Zapamiętujemy zawartość zmiennej A w X A = B; // Do A przepisujemy zawartość zmiennej B B = X; // Do B przepisujemy zapamiętaną w X zawartość zmiennej A
// Porządkowanie dwóch liczb //-------------------------- #include <iostream> using namespace std; int main() { int a,b,x; cin >> a >> b; if(a > b) { x = a; a = b; b = x; } cout << a << " " << b << endl; return 0; } |
Przy wczytywaniu liczb należy poinformować użytkownika, co ma zrobić. Program uruchom, przetestuj, a następnie prześlij w liście do oceny, W temacie listu wpisz swoje imię, nazwisko, klasę i słowo CW4. Termin oddania mija w przeddzień następnych zajęć (jeśli masz zajęcia w poniedziałek, to termin mija w niedzielę poprzedzającą ten poniedziałek).
https://www.programiz.com/cpp-programming/online-compiler/
Z powodu dużej liczby ocen ndst (odpisywanie programów, przysyłanie programów niezgodnych z treścią zadania, kompletna bezmyślność, itp.) wykonacie sprawdzian. Odpowiedzi należy przesyłać do dnia poprzedzającego przyszłe zajęcia. W temacie listu ma być imię, nazwisko, klasa i kod SP1. W treści listu ma być kod źródłowy programu.
Zadanie przykładowe:
Napisać program, który odczyta 3 liczby całkowite i sprawdzi, czy jedna z nich jest iloczynem dwóch pozostałych. Jeśli tak, to należy wypisać ten iloczyn (może być ich kilka):
// Zadanie przykładowe //-------------------- #include <iostream> using namespace std; int main() { // deklarujemy zmienne int a, b, c; // Odczytujemy dane cout << "Wpisz 3 liczby: "; cin >> a >> b >> c; // Sprawdzamy warunki i wypisujemy wyniki if(a == b * c) cout << a << " = " << b << " * " << c << endl; if(b == a * c) cout << b << " = " << a << " * " << c << endl; if(c == a * b) cout << c << " = " << a << " * " << b << endl; return 0; } |
Zadanie A: (uczniowie o nazwiskach na literę od A do H)
Trójka pitagorejska jest to trójka liczb a, b i c, które spełniają równanie Pitagorasa:
lub
lub
Napisz program, który odczyta 3 liczby całkowite, a następnie sprawdzi, czy tworzą one trójkę pitagorejską. Jeśli tak, to program ma wypisać napis "TRÓJKA PITAGOREJSKA". Jeśli nie, to program nic nie wypisuje.
Zadanie B: (uczniowie o nazwiskach na literę od I do R)
Napisz program, który wczyta 4 liczby całkowite, a następnie wypisze w osobnych wierszach wszystkie pary liczb równych.
Na przykład dla danych:
3 1 1 3
Program ma wypisać:
3 3
1 1
Kolejność tych par jest dowolna. Uwaga: jeśli liczby a i b są równe, to powinieneś wypisać tylko parę a i b, pary b i a już nie wypisuj, bo to jest ta sama para liczb. Musisz przemyśleć i odpowiednio zorganizować sprawdzanie warunków w twoim programie.
Zadanie C: (uczniowie o nazwiskach na literę od S do Ź)
Napisz program, który wczyta 3 liczby całkowite, a następnie sprawdzi, czy jedna z nich nie jest różnicą dwóch pozostałych. Jeśli tak, to program ma wypisać tę różnicę.
Na przykład dla danych
2 1 1
Program ma wypisać:
2 - 1 = 1
2 - 1 = 1
Zespół Przedmiotowy Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2024 mgr Jerzy Wałaszek |
Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone pod warunkiem podania źródła oraz niepobierania za to pieniędzy.
Pytania proszę przesyłać na adres email:
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.