PROGRAMOWANIE I ALGORYTMY

Wartość bezwzględna z liczby


Zad. 4. Napisz pogram, który obliczy wartość bezwzględną z liczby rzeczywistej.

Rozwiązanie

Zacznę najpierw od definicji wartości bezwzględnej. 

Def. Wartością bezwzględną liczby rzeczywistej $$x$$ nazywamy odległość tej liczby na osi liczbowej od 0. Oznacza to, że wartość bezwzględna jest zawsze liczbą nieujemną. Inna nazwa - moduł z liczby $$x$$ . Wartość bezwzględną zapisujemy w nawiasach pionowych "|liczba|".

Matematycznie zapiszemy to tak:

wartość bezwzględna

Przeanalizujmy kilka przykładów:

Przykład 1

$$|3|=3$$

ponieważ:

wartość bezwzględna z 3

Przykład 2

$$|-3,5|=3,5$$

ponieważ:

wartość bezwzględna z -3,5

Przykład 3

$$\left|1-\sqrt{5}\right|=\sqrt{5}-1$$

wartość bezwzględna z dwóch liczb

Podsumowując:  

Jeśli mamy liczbę dodatnią lub równą 0, wtedy wynik jest taki sam jak liczba w wartości bezwzględnej, w przeciwnym wypadku zmieniamy znak liczby na przeciwny. (gdy liczba składa się z kilku członów - tak jak w przykładzie trzecim, znaki trzeba zmienić każdej liczbie)

 Rozwiązanie 1

#include<iostream>
#include<cstdlib>

using namespace std;

int main()
{
	double x;
	cout<<"Podaj liczbę: ";
	cin>>x;
	
	cout<<"|"<<x<<"| = ";
	
	if(x<0) //jesli jest ujemna, należy zmienić znak
		cout<<-x<<endl; 
	else //w przeciwnym razie nic się nie zmienia
		cout<<x<<endl; 
	
	system("pause");
	return 0;
}

Rozwiązanie 2

#include<iostream>
#include<cstdlib>

using namespace std;

double modul(double x)
{
	if(x<0) //jesli jest ujemna, to zmieniamy znak
		return -x;
	//else możemy opuscić
	return x; //w przeciwnym razie nic nie zmieniami
}

int main()
{
	double x;
	cout<<"Podaj liczbę: ";
	cin>>x;
	
	cout<<"|"<<x<<"| = "<<modul(x)<<endl;
	
	system("pause");
	return 0;
}

Rozwiązanie 3

#include<iostream>
#include<cstdlib>

using namespace std;

double modul(double x)
{
	//wykorzystanie trójargumentowego operatora
	return x<0?-x:x; 
}

int main()
{
	double x;
	cout<<"Podaj liczbę: ";
	cin>>x;
	
	cout<<"|"<<x<<"| = "<<modul(x)<<endl;
	
	system("pause");
	return 0;
}