24.2.3.24010430. Napisati program koji traži da se sa tastature unese neki podatak, a koji u zavisnosti od toga kakav je uneseni podatak ispisuje jedan od sljedećih pet komentara: Uneseni podatak je prirodan broj. Uneseni podatak je cijeli broj, ali nije prirodan. Uneseni podatak je realan broj, ali nije cijeli. Uneseni podatak je kompleksan broj, ali nije realan. Uneseni podatak nije broj. Obavezno testirajte sve navedene slučajeve.

Opis rješenja: Prvo probajte unijeti podatak u kompleksnu promjenljivu, a zatim testirajte ispravnost ulaznog toka. Ukoliko tok nije ispravan, podatak nije broj. U suprotnom, testirajte imaginarni dio promjenljive da provjerite da li je broj realan. Ukoliko je broj realan, njegovu cijelost ćete testirati ispitivanjem da li se odsjecanjem decimala (tj. konverzijom u cjelobrojnu vrijenost) zadržava ista vrijednost.

Listing programa:

#include <iostream>
#include <conio.h>
#include <complex>
using namespace std;
int main()
{
cout<<"Unesite neki broj/znak:\n"; 
complexa;
cin>>a;
cout<<"\n Unijeli ste ";
if(!cin)cout<<"ne-broj.";
else if(imag(a)!=0)cout<<"complexan broj.";
else if(real(a)!=int(real(a)))cout<<"realan broj.";
else if(real(a)>0)cout<<"prirodan broj.";
else cout<<"cio broj.";
getch();
return 0;}

Ispis na ekranu:

Riješeni zadaci 2    Index