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:
Przeanalizujmy kilka przykładów:
$$|3|=3$$
ponieważ:
$$|-3,5|=3,5$$
ponieważ:
$$\left|1-\sqrt{5}\right|=\sqrt{5}-1$$
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;
}