Programación de calculadora de cuatro operaciones aritméticas mixtas en lenguaje c
#include
#include
#include
char token[61] /*Matriz para almacenar la cadena de expresión*/
int n=0
void error(void) /*Función de informe de error*/
{
printf("¡ERROR!\n");
salir(1);
}
coincidencia nula( char esperado) /*Función para comprobar la coincidencia de caracteres*/
{
if(token[n]==esperado)
token[++ n] =getchar();
else error();
}
double term(void); p>
double factor(void); /*Función que maneja paréntesis y números*/
double exp(void) /*Función que calcula sumas y restas*/
{
doble temp=term();
mientras((token[n]=='+')||(token[n]=='-')) < / p>
switch(token[n])
{
case'+':match('+'); ( );
romper;
caso'-':match('-'); p >romper;
}
temperatura de retorno;
}
término doble (nulo)
{
doble div;
doble temp=factor();
mientras((token[n]=='*')||(token[n] ] =='/'))
switch(token[n])
{
case'*':match('*'); /p>
{
case'*':match('*');
p>
temp*=factor(); p>romper;
caso'/':match('/');
div=factor ();
if(div==0) /*Maneja el caso donde el divisor es cero*/
{
printf("¡El divisor es cero! \n");
}
temp/=div
romper
}
retorno temporal; /p>
}
factor doble (vacío)
{
temperatura doble
número de carácter[61];
int i=0;
if(token[n]=='(')
{
match('( ');
temp=exp();
coincidencia(')';
}
else if(isdigit( token[n])||token[n]=='.')
{
while(isdigit(token[n])||token[n]=='.') /*Convertir cadena a número de coma flotante*/
{
número[i++]=token[n++];
token[n]=getchar()
}
número[i]='\0';
temp=atof(número);
}
else error();
temperatura de retorno;
}
main()
{
doble resultado; *data=fopen("61590_4.dat","at");
if(data==NULL)
data=fopen("61590_4.dat","wt "
if(data==NULL)
devuelve 0
token[n]=getchar(); =exp();
if(token[n]=='\n')
{
token[n]='\0' ;
printf("%s=%g\n",token,resultado);
fprintf(datos,"%s=%g\n",token,resultado);
}
else error();
fclose(datos);
devuelve 0
getch; ();
}
¡Creo que esto es suficiente!