• Lunes 29 de Abril de 2024, 01:20

Autor Tema:  Interpretar algoritmo  (Leído 2377 veces)

darksito

  • Miembro MUY activo
  • ***
  • Mensajes: 145
  • Nacionalidad: pe
    • Ver Perfil
Interpretar algoritmo
« en: Viernes 5 de Febrero de 2010, 15:59 »
0
Hola que tal amigos foreros bueno es un gusto contar con ustedes estaba paseando por una web contable y me tope con un foro que decia como validar un ruc ( Pais Peru, el numero de indentificacion de una empresa) y para lograr esto era simplemente un algoritmo y lanzar el mensaje ruc valido o no valido y de ejemplo pusieron este .

suponiendo q cada digito del ruc esta representado por una letra

a = digito 1 * 5
b = digito 2 * 4
c = digito 3 * 3
d = digito 4 * 2
e = digito 5 * 7
f = digito 6 * 6
g = digito 7 * 5
h = digito 8 * 4
i = digito 9 * 3
j = digito 10 * 2
k = digito 11

suma = a+b+c+d+e+f+g+h+i+j

* Resto de la dividir la suma / 11
resto = mod(wsuma, 11)

ultimodigito = 11-wresto

si ultimodigito<>k
si no ((resto=1 .and. k=0) .or. (resto=0 .and. k=1))
* Ruc No Valido
findesi
findesi

* Ruc correcto ....

Y este otro que esta hecho en visualfoxpro

SET TALK OFF
SET ECHO OFF
CLEAR
@ 04,05 say "Ingrese ruc :"
@ 05,05 get a01 pict "9" size 1,2 defa 0
@ 05,07 get b02 pict "9" size 1,2 defa 0
@ 05,09 get c03 pict "9" size 1,2 defa 0
@ 05,11 get d04 pict "9" size 1,2 defa 0
@ 05,13 get e05 pict "9" size 1,2 defa 0
@ 05,15 get f06 pict "9" size 1,2 defa 0
@ 05,17 get g07 pict "9" size 1,2 defa 0
@ 05,19 get h08 pict "9" size 1,2 defa 0
@ 05,21 get i09 pict "9" size 1,2 defa 0
@ 05,23 get j10 pict "9" size 1,2 defa 0
@ 05,25 get k11 pict "9" size 1,2 defa 0
READ
@08, 05 say a01+b02+c03+d04+e05+f06+g07+h08+i09+j10+k11
*
a = a01 * 5
b = b02 * 4
c = c03 * 3
d = d04 * 2
e = e05 * 7
f = f06 * 6
g = g07 * 5
h = h08 * 4
i = i09 * 3
j = j10 * 2
k = k11
*
dsuma = a+b+c+d+e+f+g+h+i+j
@08,05 say "suma digitos:"
@08,15 say dsuma pict "99999"
*
* Resto de la dividir la dsuma / 11
kresto = mod(dsuma, 11)
@10,05 say "Residuo:"
@10,15 say kresto pict "99999"
*
findigi = 11-kresto
@10,05 say "Ult.digito:"
@10,15 say findigi pict "99999"
*
IF findigi = k
g_ok = MESSAGEBOX("Verificacion de ruc",32,
"RUC Correcto")
ELSE
g_ok = MESSAGEBOX("Verificacion de ruc",32,
"RUC No Valido")
ENDIF
RETURN

Quisiera saber como interpretar ese algoritmo en powerbuilder , ojala me puedan ayudar gracias :)