elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Validación de datos con Do while y condicionales en función C++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Validación de datos con Do while y condicionales en función C++  (Leído 4,172 veces)
SojatDotar

Desconectado Desconectado

Mensajes: 40


Ver Perfil
Validación de datos con Do while y condicionales en función C++
« en: 4 Diciembre 2015, 21:12 pm »

Buenas, quieor implementar una función que dados 4 datos, validar que esten ingresados correctamente y en caso contrario que los vuelva a pedir, lo hice con un do while pero no funciona como quería, si podrían ver que hice mal por favor
Código:
#include <iostream>
            using name space std;

int verificacion (int a, int b, int c, int d ){
int n2=0;

do { //ciclo que se repite mientras los datos suministrados esten malos
       //cuando sean validos los datos se sale
       //correcto b>a y d>c
cout<<"suministre a"<<endl;
cin>>a;
cout<<"suministre b"<<endl;
cin>>b;
cout<<"suministre c"<<endl;
cin>>c;
cout<<"suministre d"<<endl;
cin>>d;
cout<<" Vuelva a suministrar los datos"<<endl;
} while (a>b and c>d)

if (n2==0){ // si los datos son erroneos que la funcion retorne el siguiente mensaje
cout<<"datos suministrados erroneos"<<endl;
return n2;
n2++
}

else { // en otro caso que retorne este mensaje
cout<<"Datos suministrado correctos"<<endl;
return n2;
}



}



int main () {
int a,b,c,d,n1;

n1=verificacion(a,b,c,d);
cout<<"Los datos son :"<<n1<<endl;









}


En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Validación de datos con Do while y condicionales en función C++
« Respuesta #1 en: 5 Diciembre 2015, 19:29 pm »

Muy buenas.

Pues bien, hay varias cosas que te fallan en el código, a saber:

1. Llamas a la función con los argumentos a, b, c y d; pero dentro de ella les das unos valores nuevos que, por otra parte, son locales de la función, no podrás saber que has guardado fuera de ella. Por tanto:
1.1. Llama a la función sin argumentos y declaras dentro de ella las cuatro variables. O
1.2. Haz que los argumentos sean punteros o referencias, entonces los valores que les des dentro de la función serán los que verás en esas mismas variables cuándo ésta regrese.

2. Dentro de la función la lógica está mal planteada: después de pedir las variables hay una cadena que pide al usuario que vuelva a introducir los datos, estén estos bien o no. Eso debería formar parte de la parte del tratamiento de error. Puedes:
2.1. Usar un if para saber si los datos introducidos son correctos, lo que tienes dentro de while. Si falla pon n2 e informa al usuario de que ha habido un fallo. Dentro del while mira si n2==0 para repetir el bucle en caso afirmativo.

3. Regresas un dato con n2 al término de la función pero, contrariamente a tu planteamiento, a juzgar por el código de main, n2 no regresa los cuatro números sino que siempre te retornará 0. Por otra parte una vez que has hecho que una función devuelva el control con return todo código que haya escrito después de esta instrucción es código que no se va a ejecutar. Puedes:
3.1. Hacer que la instrucción no devuelva nada y, junto a lo dicho en el punto 1.2. la función main recibirá los resultados en la variables usadas como argumentos de llamada. O
3.2. Hacer que la función devuelva un puntero a entero y llamarla sin argumentos. Mediante la memoria dinámica creas un array que llenarás con los cuatro números y eso será lo que devolverá la función. En main recogerás ese puntero a una variable puntero local.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
validacion de datos
Programación Visual Basic
tony12 1 1,698 Último mensaje 18 Febrero 2006, 19:08 pm
por zhidow
[mod] validación de tipos de datos en un formulario
Java
Azulf 6 6,302 Último mensaje 7 Junio 2007, 15:23 pm
por »~^~«CkNU!»~^~«
Ayuda en la validación de entrada de datos en C++
Programación C/C++
theluigy13etv 7 9,367 Último mensaje 30 Junio 2011, 06:51 am
por leogtz
Ayuda! Validacion de Datos en Ordenamiento.
Programación C/C++
BKsiragon 9 3,098 Último mensaje 2 Febrero 2013, 21:30 pm
por leosansan
ayuda con una validacion de solo numeros con la funcion isdigit
Programación General
geshiro 1 1,875 Último mensaje 12 Agosto 2015, 05:32 am
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines