Witam! Potrzebuje pomocy odnośnie programu zamieszczonego poniżej. Mam dwa problemy:
- Po pierwsze, po 'case' jest problem, ponieważ program wraca do menu, ale nie czyści wyniku wykonanego działania. Próbowałem rożnych opcji, ale gdy doszedłem do etapu gdy czyści konsole całą i wyświetla tylko menu to robi to od razu i nie czeka na żaden przycisk.
- Po drugie, 'case3' i 'case4' w ogóle nie działa i nie mam pojęcia czemu.
Bardzo proszę o pomoc i z góry dziękuje.
#include <iostream>
#include <cmath>
#include <cstdlib>
#include <unistd.h>
#include <stdio.h>
using namespace std;
int z, w, wyb, wybor;
long double x, y, bb, bw, a, b, c, d;
int main()
{
// cout<<"*******************MENU********************"<<endl;
// cout<<"1.Obicz blad wzgledny"<<endl;
// cout<<"2.Oblicz blad bezwzgledny"<<endl;
// cout<<"3.Oblicz wartosc przyblizona"<<endl;
// cout<<"4.Oblicz wartosc dokladna"<<endl;
// cout<<"5.Wyjscie z programu"<<endl;
// cout<<"Wybieram : ";
// cin>>g;
for(;;)
{
cout<<"*******************MENU********************"<<endl;
cout<<"1.Obicz blad wzgledny"<<endl;
cout<<"2.Oblicz blad bezwzgledny"<<endl;
cout<<"3.Oblicz wartosc przyblizona"<<endl;
cout<<"4.Oblicz wartosc dokladna"<<endl;
cout<<"5.Wyjscie z programu"<<endl;
cout<<"Wybieram : ";
cin>>wybor;
system("cls");
switch (wybor)
{
case 1:
cout << "Podaj wartosc dokladna: " ;
cin >> x ;
cout << "Podaj wartosc przyblizona: " ;
cin >> y ;
bw=(fabs(x-y)/x)*100 ;
cout << "- Blad wzgledny wynosi: " << bw << "%" << endl ;
break;
case 2:
cout << "Podaj wartosc dokladna: " ;
cin >> x ;
cout << "Podaj wartosc przyblizona: " ;
cin >> y ;
bb=fabs(x-y) ;
cout << "- Blad bezwzgledny wynosi: " << bb << endl ;
break;
case 3:
cout << "Chcialbys obliczyc wartosc przyblizona z bledu wzglednego czy z bledu bezwzglednego? " << endl;
cout << "z - blad wzgledny" << endl;
cout << "w - blad bezwzgledny" <<endl;
cin >> wyb ;
{
if(wyb==z)
{
cout << "Podaj wartosc dokladna: " ;
cin >> x ;
cout << "Podaj wartosc bledu wzglednego: " ;
cin >> bw ;
a=x+((bw*x)/100);
b=x-((bw*x)/100);
cout << "Wartosc przyblizona wynosi; " << a <<"lub " << b << endl;
}
if(wyb==w)
{
cout << "Podaj wartosc dokladna: " ;
cin >> x ;
cout << "Podaj wartosc bledu bezwzglednego: " ;
cin >> bb ;
a=x+bb;
b=x-bb;
cout << "Wartosc przyblizona wynosi; " << a <<"lub " << b << endl;
return 0;
}
break;
}
case 4:
cout << "Chcialbys obliczyc wartosc dokladna z bledu wzglednego czy z bledu bezwzglednego? " << endl;
cout << "z - blad wzgledny" << endl;
cout << "w - blad bezwzgledny" << endl;
cin >> wyb ;
{
if(wyb==z)
{
cout << "Podaj wartosc przyblizona: ";
cin >> y;
cout << "Podaj wartosc bledu wzglednego: ";
cin >> bw;
c=((100*y)/(bw+100));
d=((100*y)/(100-bw));
cout << "Wartosc dokladna wynosi: " << c << "lub " << d << endl;
}
if(wyb==w)
{
cout << "Podaj wartosc przyblizona: ";
cin >> y;
cout << "Podaj wartosc bledu bezwzglednego: ";
cin >> bb;
c=y-bb;
d=y+bb;
cout << "Wartosc dokladna wynosi: " << c << "lub " << d << endl;
}
break;
}
case 5:
return 0;
break;
}
}