Lunes 16 de Diciembre de 2024, 00:49
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Validacion De Un Numero
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Validacion De Un Numero (Leído 6931 veces)
Fulgore
Nuevo Miembro
Mensajes: 3
Validacion De Un Numero
«
en:
Sábado 30 de Abril de 2005, 22:03 »
0
Hola soy estudiante de informatica de primer año, y estoy dando mis primeros pasos en programacion en c++. Y tengo la siguiente duda necesito validar un numero de rut(cedula de identidad), hice el programa y arroja un resultado correcto pero necesito ke ingrese solo 8 numeros y no letras..... he intentado poner un vector de 8 y rellenarlo con un ciclo iterativo pero al final me arroja resultados erroneos. Aqui mando el codigo del programa, si alguien me puede guiar en mi problema de ante mano gracias.
#include<stdio.h>
#include<conio.h>
int oper,incre,fac,k,total_suma;
int dig,resto,resto2,aux,y;
long int rut;
main()
{
printf("***VALIDACION DEL DIGITO VERIFICADOR***");
printf("\n\nIngrese el Numero de Rut sin Digito Verificador...:");
scanf("%8ld",&rut);
incre=0;
fac=2;
total_suma=0;
while(incre<8)
{
resto=rut%10;
rut=rut/10;
aux=resto*fac;
total_suma=total_suma+aux;
fac++;
if(fac>7)
{
fac=2;
}
incre++;
aux=0;
}
/*Operacion para encontrar el digito verificador*/
y=11;
resto2=total_suma%y;
dig=y-resto2;
/*condicion utilizada para saber si el digito es k o un numero*/
if(dig==10)
/*Muestra por pantalla el digito verificad*/
printf("\nEl digito verificador es...: %d",k);
else
/*Muestra por pantalla el digito verificador*/
printf("\nEl digito verificador es...: %d",dig);
}
Tweet
fuhrer
Miembro MUY activo
Mensajes: 329
Nacionalidad:
Re: Validacion De Un Numero
«
Respuesta #1 en:
Sábado 30 de Abril de 2005, 23:09 »
0
Hola que tal.
No entiendo muy bien que es lo que tratas de hacer, ya corri tu programa y me da ciertos resultados, los cuales no se si estan bien.
Asi que si deseas que se te ayude, podrias proporcionar tus datos de entrada y lo que deseas obtener, y también cual es tu mayor duda, es decir, que es lo que no puedes hacer o no sale como tu quieres.
Hasta luego.
Tienda México
Busquenos En Internet
Tuxiber
Fulgore
Nuevo Miembro
Mensajes: 3
Re: Validacion De Un Numero
«
Respuesta #2 en:
Domingo 1 de Mayo de 2005, 18:13 »
0
Hola FUHRER......
Te explico mejor el problema. Lo ke hace el programa es encontrar el digito verificador de la cedula de identidad de una persona por ejemplo el
CI de una persona es (15905824-7).
el numero 7 seria el digito verificador de este numero, ese es el resultado que arroja el programa. Lo que no me resulta es que el usuario ingrese solo numeros y no leltras y que a su vez ingrese solo 8 numeros, por ejemplo tomando el caso anterior solo debe ingresar el numero (15905824).
ahora me exprese mejor......gracias.
fuhrer
Miembro MUY activo
Mensajes: 329
Nacionalidad:
Re: Validacion De Un Numero
«
Respuesta #3 en:
Domingo 1 de Mayo de 2005, 19:20 »
0
Bueno, lo que creo que puedes hacer es declarar un areglo de caracteres, entonces tu número lo lees y lo almacenas en ese areglo como una cadena, puedes leerlo como lo hacer:
Código: Text
char cadena[10];
printf("\n\nIngrese el Numero de Rut sin Digito Verificador...:");
scanf("%8s",&s);
de esta forma lo que el usuario escriba desues de lo 8 caracteres iniciales, no los tomas en cuenta. Ahora que si quieres que exactamente sean 8 caracteres, entonces declara un arreglo de mayor longitud, lees todo lo que te den y una vez que tengas la cadena obtienes la longitud con la función
strlen();
y si es mayor o menor que 8 entonces vuelves a pedir el número:
Código: Text
char cadena[100];
do{
printf("\n\nIngrese el Numero de Rut sin Digito Verificador...:");
scanf("%s",&s);
}while(strlen(cadena) != 8);
Una vez que ya esas seguro que solo tienes 8 caracteres, los cuales no sabes que son, entonces usa la función
atoi()
para convertir tu cadena a número, finalmente compara si tu número contiene 8 digitos, esto lo puedes hacer volviendo a convertir tu número a cadena y si la longitud de esta con la anterior es igual, entonces ya tienes lo que querias y si no pues vuelves a pedir tu número.
Espero te sirva.
Hasta luego.
Tienda México
Busquenos En Internet
Tuxiber
carmamezo
Miembro MUY activo
Mensajes: 232
Re: Validacion De Un Numero
«
Respuesta #4 en:
Martes 3 de Mayo de 2005, 12:35 »
0
Puedes hacer lo siguiente:
Código: Text
#include<stdio.h>
#include<conio.h>
int oper,incre,fac,k,total_suma;
int dig,resto,resto2,aux,y;
long int rut;
main()
{
printf("***VALIDACION DEL DIGITO VERIFICADOR***");
do
{
printf("\n\nIngrese el Numero de Rut sin Digito Verificador...:");
scanf("%ld",&rut);
fflush(stdin);
if(rut<9999999 || rut>100000000)
printf("\n\t\aERROR: el numero debe contener 8 cifras!!");
}while(rut<9999999 || rut>100000000);
incre=0;
fac=2;
total_suma=0;
while(incre<8)
{
resto=rut%10;
rut=rut/10;
aux=resto*fac;
total_suma=total_suma+aux;
fac++;
if(fac>7)
{
fac=2;
}
incre++;
aux=0;
}
/*Operacion para encontrar el digito verificador*/
y=11;
resto2=total_suma%y;
dig=y-resto2;
/*condicion utilizada para saber si el digito es k o un numero*/
if(dig==10)
/*Muestra por pantalla el digito verificad*/
printf("\nEl digito verificador es...: %d",k);
else
/*Muestra por pantalla el digito verificador*/
printf("\nEl digito verificador es...: %d",dig);
}
Espero que te sirva de ayuda.
Un saludo.
No hay tonto más molesto que el ingenioso.
Fulgore
Nuevo Miembro
Mensajes: 3
Re: Validacion De Un Numero
«
Respuesta #5 en:
Martes 3 de Mayo de 2005, 23:36 »
0
FUHRER y CARMAMEZO gracias por su ayuda.....
ke la fuerza los acompañe.......
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Validacion De Un Numero