Validaciones 2 digitos en c++

Iniciado por socram7, 13 Junio 2013, 01:10 AM

0 Miembros y 1 Visitante están viendo este tema.

socram7

Hola nuevamente el siguiente codigo realiza una derivada ya logre validar los signos para que no introduzcan letras, numeros y signos que no sean "+" "-", sin embargo en la siguiente  parte del codigo esta valido para que no me reciba numeros a menos que sean los digitos del 0 al 9, sin embargo necesito que se puedan ingresar numeros que contengan 2 digitos como por ejemplo: 11, 12, 13, 14, 15, 16, 17....... hasta el 99, si me dieran la idea de como hacerlo me ayudarían de gran manera:
Código (cpp) [Seleccionar]

    do {
    gotoxy (7,6);cout<<"                                              ";
    gotoxy(7,6);cout<<"\t\Ingrese el grado de la ecuaci\xA2n: ";
cin>>n1;
                   } while (n1<48|| n1>58);
n=n1-48;



Este es el código completo de mi programa:
Código (cpp) [Seleccionar]

#include <iostream>
#include <conio>
#include <stdlib>
#include <windows>
using namespace std;
int main ()
{
clrscr();
system ("color 4F");
int numero[100],total[100],i,n;
char sign[100], numero1[100], n1;


    do {
    gotoxy (7,6);cout<<"                                              ";
    gotoxy(7,6);cout<<"\t\Ingrese el grado de la ecuaci\xA2n: ";
cin>>n1;
                   } while (n1<48|| n1>58);
n=n1-48;
                   {
for(i=0;i<n;i++)  {
{

do{
             gotoxy(7,7); cout<<"                                             ";
             gotoxy(7,7);cout<<"\t\tIngrese el signo del "<<" x"<<"^"<<(i+1)<<": ";
cin>>sign[i];
                 }while((sign[i]!='+')&&(sign[i]!='-'));  }
                    do {
                    gotoxy(7,8); cout<<"                                                            ";
gotoxy(7,8);cout<<"\t\tIngrese el coeficiente numerico"<<" x"<<"^"<<(i+1)<<": ";
cin>>numero1[i];
                    } while (numero1[i]<48|| numero1[i]>58);

                       }

cout<<endl;
   cout<<endl;
  cout<<"\t\tLa ecuaci\xA2n a derivar es:"<<endl;
  cout<<endl;
  cout<<endl;
for(i=0;i<n;i++)  {
numero[i]=numero1[i]-48;}
for(i=0;i<n;i++)  {
     cout<<sign[i]<<numero[i]<<"x^"<<(i+1); }

  for(i=0;i<n;i++)  {
  total[i]=numero[i]*(i+1);
  }
   cout<<endl;
   cout<<endl;
  cout<<"\t\tLos n\xA3meros son:"<<endl;
  cout<<endl;
  cout<<endl;
for(i=0;i<n;i++){

  cout<<sign[i]<<total[i]<<"x^"<<(i);  }

  cout<<endl;
  getch();
      }
  }


Desde ya muchas gracias  ;-) ;-) ;-) ;-)

Danyfirex

Creo que podrías hacer algo así


Código (cpp) [Seleccionar]
(!(num<0 || num>99))

así compruebas que este entre esos rangos

saludos

socram7

Cita de: Danyfirex en 13 Junio 2013, 08:06 AM
Creo que podrías hacer algo así


Código (cpp) [Seleccionar]
(!(num<0 || num>99))

así compruebas que este entre esos rangos

saludos


gracias por tu respuesta pero de esa forma me marca error en esta parte:

Código (cpp) [Seleccionar]
  }while((sign[i]!='+')&&(sign[i]!='-'));

alguna idea :S

pacoperico

Cita de: socram7 en 13 Junio 2013, 22:52 PM

gracias por tu respuesta pero de esa forma me marca error en esta parte:

Código (cpp) [Seleccionar]
  }while((sign[i]!='+')&&(sign[i]!='-'));

alguna idea :S


Lo unico anormal que veo es el ; al final de la linea con lo que ese ciclo while no tendria ningun enunciado que ejecutar. Por lo demas, la construccion de la condicion del ciclo while parece totalmente valida.