Program dla problemu "Pole trójkąta":
- W podręczniku mamy to w ćwiczeniu 8 na stronie 150.
- Dodatkowo 2 sposób. Opis i komentarze w kodzie programu.
Przykładowy kod programu:
//podręcznik, str.150, ćw.8 - pole trójkąta #include <iostream> using namespace std; int main() { float a; //długość podstawy float h; //długość wysokści float pole; //pole trójkąta //Wczytuję dane wejściowe cout << "Podaj dlugosc podstawy trojkata a: "; cin >> a; cout << "Podaj dlugosc wysokosci trojkata h: "; cin >> h; /* SPOSÓB 1: Sprawdzam jednym warunkiem złożonym czy obie liczby a i h są dodatnie. Jeśli tak będzie, to obliczam pole i wyświetlam wynik. W przeciwnym razie wyświetlam komunikat o błędnych danych */ cout << "\nSPOSOB 1"; if(a>0 && h>0) { pole=0.5*a*h; cout << "\nPole trojkata wynosi: " << pole; } else cout << "\nBLAD!!! Obie liczby musza byc dodatnie"; /* SPOSÓB 2: Program ma wskazać odpowiednim komunikatem która długość odcinka (a, h) została podana błędnie. Mamy 4 przypadki: 1) a>0 i h>0 --> wtedy liczymy pole 2) a>0 i h<=0 --> błąd wysokości 3) a<=0 i h>0 --> błąd podstawy 4) a<=0 i h<=0 --> błąd wysokości i błąd podstawy */ cout << "\n\nSPOSOB 2"; if(a>0) { if (h>0){ pole=0.5*a*h; cout << "\nPole trojkata wynosi: " << pole; } else cout << "\nBLAD!!! Dlugosc wysokosci trojkata musi byc liczba dodatnia"; } else if(!(h>0)) { // Znak ! to zaprzeczenie. Warunek !(h>0) jest równoważny z h<=0 cout << "\nBLAD!!! Dlugosc wysokosci trojkata musi byc liczba dodatnia"; cout << "\nBLAD!!! Dlugosc podstawy trojkata musi byc liczba dodatnia"; } else cout << "\nBLAD!!! Dlugosc podstawy trojkata musi byc liczba dodatnia"; return 0; }
Użycie kodu:
- Powyższy kod można wykorzystać w środowisku Dev C++ lub innym. Wystarczy utworzyć nowy projekt i wkleić ten kod zamiast istniejącego.
- Można też użyć kodu na jednej ze stron WWW z kompilatorami on-line, na przykład na stronie: www.cpp.sh
Zadanie 1:
- Przeanalizuj użyte w programie instrukcje warunkowe.
- Sprawdź działanie programu we wszystkich 4 przypadkach opisanych w SPOSOBIE 2
- Dla SPOSOBU 1 tego problemu w programie Magiczbe Bloczki utwórz schemat blokowy algorytmu i sprawdź jego działanie.
Zadanie 2:
- Zmodyfikuj kod programu tak, aby NIE użyć nierówności >