VERte][
02.07.2007, 16:18
Решил ввиде тренировки написать калькулятор (т.к. только начал самостоятельно изучать С++), но на последних страничках компилятор на меня начал ругаться...
Вот код:
//калькулятор
#include<iostream>
#include<cmath>
using namespace std;
const double PI(3.14159);
int main()
{
do
{
double x,y,z;
char vibor,znak,func,ex;
cout<<"Чтобы произвести стандартные действия(+,-,/,*) с двумя числами введите 'a'"<<endl<<"Чтобы вычислить тригонометрические выражения или корень из числа введите 'b'"<<endl;
cin >>vibor;
cout <<endl;
if (vibor=='a')
{
cout <<"Введите выражение с двумя числами используя (+,-,/,*): "<<endl;
cin >>x,znak,y;
if (znak=='+')
cout <<x<<"+"<<y<<"="<<x+y;
if (znak=='-')
cout <<x<<"-"<<y<<"="<<x-y;
if (znak=='*')
cout <<x<<"*"<<y<<"="<<x*y;
if ((znak=='/') && (y!=0))
cout <<x<<"*"<<y<<"="<<x*y;
if ((znak=='/') && (y==0))
cout<<"Деление на 0 - недопустимая операция";
}
if (vibor=='b')
{
cout <<"Введите тригонометрическое выражение (sin,cos,tg,ctg,asin,acos,atg) или выражение с корнем (sqr): "<<endl;
cin >>func,z;
cout <<endl;
if (func=='sin')
{
z=PI*z/180;
cout<<"sin"<<z<<"="<<sin(z);
}
if (func=='cos')
{
z=PI*z/180;
cout<<"cos"<<z<<"="<<cos(z);
}
if (func=='tg')
{
z=PI*z/180;
cout<<"tg"<<z<<"="<<tan(z);
}
if (func=='ctg')
{
z=PI*z/180;
cout<<"ctg"<<z<<"="<<1/tan(z);
}
if (func=='asin')
cout<<"arcsin"<<z<<"="<<asin(z)*180/PI;
if (func=='acos')
cout<<"arccos"<<z<<"="<<acos(z)*180/PI;
if (func=='atg')
cout<<"arctg"<<z<<"="<<atan(z)*180/PI;
//if ((f=='tg') && (n==)
}
cout<<endl<<"Чтобы повторить вычисления нажмите 'r' или любую другую клавишу чтобы выйти (reset нажимать не надо): ";
cin>>ex;
} while (ex=='r');
return 0;
}
строчка } while (ex=='r'); помечена, в ней ошибка, вот что пишет компилятор: main.cpp:66: error: `ex' undeclared (first use this function)
main.cpp:66: error: (Each undeclared identifier is reported only once for each function it appears in.)
Process terminated with status 1 (0 minutes, 2 seconds)
В чём может быть ошибка, я ведь вроде обозначил переменную ex в char???
Вот код:
//калькулятор
#include<iostream>
#include<cmath>
using namespace std;
const double PI(3.14159);
int main()
{
do
{
double x,y,z;
char vibor,znak,func,ex;
cout<<"Чтобы произвести стандартные действия(+,-,/,*) с двумя числами введите 'a'"<<endl<<"Чтобы вычислить тригонометрические выражения или корень из числа введите 'b'"<<endl;
cin >>vibor;
cout <<endl;
if (vibor=='a')
{
cout <<"Введите выражение с двумя числами используя (+,-,/,*): "<<endl;
cin >>x,znak,y;
if (znak=='+')
cout <<x<<"+"<<y<<"="<<x+y;
if (znak=='-')
cout <<x<<"-"<<y<<"="<<x-y;
if (znak=='*')
cout <<x<<"*"<<y<<"="<<x*y;
if ((znak=='/') && (y!=0))
cout <<x<<"*"<<y<<"="<<x*y;
if ((znak=='/') && (y==0))
cout<<"Деление на 0 - недопустимая операция";
}
if (vibor=='b')
{
cout <<"Введите тригонометрическое выражение (sin,cos,tg,ctg,asin,acos,atg) или выражение с корнем (sqr): "<<endl;
cin >>func,z;
cout <<endl;
if (func=='sin')
{
z=PI*z/180;
cout<<"sin"<<z<<"="<<sin(z);
}
if (func=='cos')
{
z=PI*z/180;
cout<<"cos"<<z<<"="<<cos(z);
}
if (func=='tg')
{
z=PI*z/180;
cout<<"tg"<<z<<"="<<tan(z);
}
if (func=='ctg')
{
z=PI*z/180;
cout<<"ctg"<<z<<"="<<1/tan(z);
}
if (func=='asin')
cout<<"arcsin"<<z<<"="<<asin(z)*180/PI;
if (func=='acos')
cout<<"arccos"<<z<<"="<<acos(z)*180/PI;
if (func=='atg')
cout<<"arctg"<<z<<"="<<atan(z)*180/PI;
//if ((f=='tg') && (n==)
}
cout<<endl<<"Чтобы повторить вычисления нажмите 'r' или любую другую клавишу чтобы выйти (reset нажимать не надо): ";
cin>>ex;
} while (ex=='r');
return 0;
}
строчка } while (ex=='r'); помечена, в ней ошибка, вот что пишет компилятор: main.cpp:66: error: `ex' undeclared (first use this function)
main.cpp:66: error: (Each undeclared identifier is reported only once for each function it appears in.)
Process terminated with status 1 (0 minutes, 2 seconds)
В чём может быть ошибка, я ведь вроде обозначил переменную ex в char???