Nasze zadanie polega na znalezieniu rozwiązania równania liniowego. Ogólną postać równania liniowego możemy zapisać następująco:
ax + b = 0
gdzie a i b są znanymi liczbami rzeczywistymi, zwanymi współczynnikami równania. Szukamy takiej wartości, lub takich wartości, zmiennej x, dla której (których) to równanie będzie spełnione - lewa strona równości będzie równa prawej. Pierwszym przekształceniem jakie wykonujemy rozwiązując równanie jest przeniesienie ze zmienionym znakiem współczynnika b (nie zawierającego niewiadomej) na prawą stronę równania (bardziej precyzyjnie: do obu stron równania dodajemy -b). Otrzymujemy:
ax = -b
Kolejnym nasuwającym się przekształceniem jest podzielenie obu stron równania przez współczynnik a, tak aby po lewej stronie równania pozostało samo x. Zanim to zrobimy przypomnijmy sobie, że współczynnik a jest ustaloną, znaną liczbą rzeczywistą, w szczególności może być równe 0, a przez 0 dzielić nie możemy. Przed wykonaniem dzielenia musimy więc sprawdzić czy a jest różne od 0. Jeśli tak, to otrzymamy rozwiązanie naszego równania:
x = -b/a (a≠0)
Algorytm musi jeszcze uwzględnić przypadek a = 0. W takim przypadku nasze równanie wygląda następująco:
0·x=-b
Oczywiście 0·x dla każdej wartości x jest zawsze równe 0, czyli otrzymujemy:
0=-b
Lewa strona powyższej równości równa się prawej stronie tylko wtedy gdy b=0. Tak więc, gdy współczynnik a równania liniowego jest równy 0 mamy do czynienia z dwoma możliwymi sytuacjami: b = 0 - równanie jest spełnione dla każdej wartości x (takie równanie nazywamy równaniem tożsamościowym) oraz b≠0 - równanie nigdy nie jest spełnione (takie równanie nazywamy równaniem sprzecznym).
Podsumujmy naszą wiedzę na temat równań liniowych:
- Gdy a≠0 równanie posiada jedno rozwiązanie x=-b/a.
- Gdy a=0 mamy dwie możliwości:
- b=0 - równanie tożsamościowe, rozwiązaniem jest każda liczba x należąca do zbioru liczb rzeczywistych (nieskończenie wiele rozwiązań),
- b≠0 - równanie sprzeczne (brak rozwiązań).
Ostatecznie algorytm rozwiązania równania liniowego ax + b = 0 uwzględniający wszystkie możliwe przypadki będzie wyglądał następująco:
Realizacja algorytmu w języku: Pascal, C++, Java, Python, JavaScript
Opis algorytmu:
- Start - tu rozpoczyna się nasz algorytm.
- Wczytujemy dane wejściowe - współczynniki a i b równania.
- Sprawdzamy czy współczynnik a równania jest równy 0.
- Jeśli a=0 sprawdzamy czy współczynnik b równania jest równy 0.
- b=0 - wypisujemy informację, że równanie jest równaniem tożsamościowym.
- b≠0 - wypisujemy informację, że równanie jest równaniem sprzecznym.
- a≠0 - obliczamy rozwiązanie równania x = -b/a.
- a≠0 - wypisujemy wynik (obliczoną wcześniej wartość x).
- Stop - wspólny dla wszystkich dróg koniec algorytmu