Pascal/Turbo Pascal - verificar rut

 
Vista:

verificar rut

Publicado por pelao (1 intervención) el 28/11/2002 21:33:02
alguien me puede ayudar o decir como puedeo hacer una rutina para verificar si el rut ingresado es correcto
gracias por su ayuda
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:verificar rut

Publicado por Ricardo Ramirez (Perú) (16 intervenciones) el 30/11/2002 14:47:49
Rut ... Ruta pe tio !

Ruta+archivo , preguntar si existe fichero si es cierto tons.. existe ruta :)

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:verificar rut

Publicado por julio (12 intervenciones) el 07/12/2002 03:54:45
Hola.

Yo nunca lo he realizado en Turbo Pascal pero si en Turbo Basic. Pero el algoritmo es aplicable, creo, perfectamente en Pascal.

1º Ingresa cada número en una variable.
2º El primer número de derecha a izquierda multiplícalo por dos, el siguiente por 3 y así sucesivamente hasta el séptimo número de derecha a izquierda. A partir del octavo número vuelves a multiplicar por 2, el noveno por 3 y asi sucesivamente.
3º Suma todos los resultados de las multiplicaciones.
4º Divide la suma de las mutiplicaciones por 11.
5º Si el resto de la división es 10, significa que el digito es K, en caso contrario, el resto se debe restar siempre al número 11 y ahí esta el dígito verificador.

Veamos cómo sería en forma manual:

9 2 3 8 9 3 1 - 6 <-- Rut a verificar
2 7 6 5 4 3 2 <-- Factor de multiplicación
18 +14 +18 +40+36 +9 +2 = 137

137 : 11 = 12
5

11 - 5 = 6 (en este caso 6 es el dígito verificador).

Espero que esto te ayude a resolver tu problema. Si no lo tienes muy claro aún, escríbeme.

Julio
[email protected]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:verificar rut

Publicado por Marcos Matamala (2 intervenciones) el 21/12/2002 03:44:14
Espero esto te ayude estas funcion asigna el digito verificador como me enseñaron por ejemplo ami me enseñaron que si el resto era 1
era k , si era cero entonces era 0 y si era mayor a 1 se opteneia de 11 - resto
Eso si creo que existen muchas formas de implementar este metodo
Function DV(Rut:String):String;
Var i:Byte;
Cont:String[30];
Begin
Cont:='';
For i:=1 to Length(Rut) do
Begin
If Rut[i] in ['0'..'9']
Then Begin
Cont:=Cont+Rut[i];
End;
End;
DV:=Cont;
End;
Function DVDos(Rut:String):Char;
Var Num,x,Code,Resto,Cont,Aux:Integer;
DV:Char;
Begin
Cont:=Length(Rut); Aux:=2; x:=0; Code:=0; Resto:=0;
Repeat
Val(Rut[Cont],x,Code);
Num:=x*Aux;
If (Aux=7)
Then Aux:=2
Else Aux:=Aux+1;
Resto:=Resto+Num;
Cont:=Cont-1;
Until (Cont=0);
Resto:= Resto Mod 11;
If (Resto>1)
Then DV:=Chr((11-Resto)+48);
If (Resto=0)
Then DV:='0';
If (Resto=1)
Then DV:='K';
DVDos:=DV;
End;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar