C/Visual C - !!Urgente RUT!! Tengo el prog.en pasc.necest en C.

 
Vista:

!!Urgente RUT!! Tengo el prog.en pasc.necest en C.

Publicado por Carlos Valdés (4 intervenciones) el 30/11/2001 08:21:01

Necesito pasar este programa de pascal a C pues aqui esta el validador de rut , lo necesito en C, Por favor.

program digitoverif;
uses wincrt;
VAR
r : string;

function verificarut(rut : string):boolean;

VAR

l,c,i,m,kode, ac: integer;
resta : integer;
dv,dvi : string;
BEGIN

ac := 0;

l := length(rut);
dvi := copy(rut,l,1);

m := 2;
for i:= l-2 downto 1 do

begin
val(copy(rut,i,1),c,kode);
ac := ac + c * m;
m := m + 1;
if m > 7 then
m := 2;

end;
resta := ac mod 11;
resta := 11 - resta;
CASE resta of
10 : dv := 'K';
11 : dv := '0';
else
str(resta,dv);
END;

if dv = dvi then
verificarut := true
else
verificarut := false;
END;

BEGIN

write( 'Ingrese Rut : ');
readln (r);
if verificarut(r) then
write ('Rut CORRECTO' )
else
write ('Rut INCORRECTO');

end.




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:!!Urgente RUT!! Tengo el prog.en pasc.necest en

Publicado por UPC (2 intervenciones) el 16/02/2002 06:48:46
aqui tienes una funcion para validar el rut:

int valrut(char ruta[10])
{
int i,la,largo,sum=0,mul,fin,ese=2,resto,n;
long num;
char aux[8],raya;
largo=strlen(ruta);

for(i=0;i<=largo-2;i++)
aux[i]=ruta[i];
num=atol(aux);
while(num>0)
{
n=num % 10;
num=num/10;

sum=sum+(n*ese);

ese++;

if(ese==8)ese=2;
}//while
resto=(sum%11);
fin=11-resto;


switch(fin)
{
case 10:{raya='k';break;}
case 11:{raya='0';break;}
case 1:{raya='1';break;}
case 2:{raya='2';break;}
case 3:{raya='3';break;}
case 4:{raya='4';break;}
case 5:{raya='5';break;}
case 6:{raya='6';break;}
case 7:{raya='7';break;}
case 8:{raya='8';break;}
case 9:{raya='9';break;}
}//switchfin
if(ruta[largo-1]!=raya)
{
return(0);
}
else
{
return(1);
}
}

tienes que mandar el rut a la funcion, por ejemplo:
te declaras una variable int variable;
y llamas a la funcion:

variable=valrut(aqui mandas la variable donde aceptas el rut);
la funcion devuelve 0 si el rut es incorecto y 1
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