Instrukcja warunkowa. Równanie liniowe - dyskusja rozwiązań

Dyskusja rozwiązań równania liniowego ax+b=0 w zależności od wartości a i b

  • jeśli a<>0, to x=-b/a
  • jeśli a=0 i b=0, to równanie jest nieoznaczone (spełnione dla każdego x)
  • jeśli a=0 i b<>0, to równanie jest sprzeczne

Schemat blokowy algorytmu:

alg rownanie liniowe

Przykładowy kod programu - wersja podstawowa:

/*dyskusja rozwiązań równania postaci ax+b=0*/
#include <iostream>
using namespace std;

int main() {
	float a, b, x;
	cout << "podaj a: "; 
	cin >> a;
	cout << "podaj b: "; 
	cin >> b;
	//jeżeli a!=0 to jest pierwiastek x=-b/a
	if (a!=0) {
		x=-b/a;
		cout << "\nrownanie ma pierwiastek x= " << x;
	// w przeciwnym przypadku tzn. gdy a=0 wszystko zależy od b
	} else {
		// jeżeli b=0 to mamy równanie 0x+0=0 --> nieoznaczone
		if (b==0) cout << "\nrownanie jest nieoznaczone (prawdziwe dla dowolnego x)";	
		// w przeciwnym przypadku tzn. b!=0 mamy równanie 0x+b=0, np: 0x+2=0 --> sprzeczne
		else cout << "\nrownanie jest sprzeczne";
	}
	return 0;
}

Wersja z wyświetlaniem równania. Zanim przejdziesz dalej zerknij na film:

Przykładowy kod programu - wersja z wyświetlaniem równania:


#include <iostream>
using namespace std;

int main() {
	float a, b, x;
	cout << "podaj a: "; 
	cin >> a;
	cout << "podaj b: "; 
	cin >> b;
	if (a!=0) {
		x=-b/a;
		if (b>0) cout << "\nrownanie: " << a << "x+" << b <<"=0 ma pierwiastek x=" << x;
		else if (b<0) cout << "\nrownanie: " << a << "x" << b << "=0 ma pierwiastek x=" << x;
		else cout << "\nrownanie: " << a << "x=0 ma pierwiastek x=0";
	} else if (b==0) cout << "\nrownanie 0x+0=0 jest nieoznaczone (prawdziwe dla dowolnego x)";
	else {
		if (b>0) cout << "\nrownanie: " << a << "x+" << b <<"=0 jest sprzeczne";
		else cout << "\nrownanie: " << a << "x" << b << "=0 jest sprzeczne";
	}
	
	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:

  • Zmodyfikuj program w wersji podstawowej tak, aby zamiast warunku: if(a!=0) jako pierwszy był sprawdzany warunek: if(a==0)