Verificar Cuil correcto u incorrecto (Arg)
Publicado por gabriel (1 intervención) el 12/09/2020 03:27:36
Hola buenas, estuve varias horas intentando hacer funcionar el programa, pero todavía no encuentro el error, revise todo varias veces, realice un algoritmo antes de hacer el programa pero no pude encontrar la falla.
Adjunto el código :
Adjunto el Algoritmo (estoy seguro que aca debe estar el error pero no logro encontrarlo)
PD : lo que esta entre // // son comentarios
Adjunto el enunciado de mi problema :
Adjunto el código :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
Module Module1
Sub Main()
Dim cuil, cuil2, cuil3 As Long
Dim acumulando3, acumulando2, acumulando1 As Integer
Dim digito, contador, verificador, suma As Integer
Console.Write("ingrese su numero de Cuil :")
cuil = Console.ReadLine()
suma = 0
contador = 0
cuil2 = cuil 'guardo la variable original para usarla despues'
cuil3 = cuil 'guardo por segunda vez una copia de la variable original'
acumulando1 = 0
Do
cuil = cuil / 10 'este puede ser un posible ERROR en la division'
contador = contador + 1
Loop Until (cuil = 0)
If (contador = 11) Then
cuil2 = cuil2 / 10
For i = 2 To 7 'este for debe ir del 2 al 7 ' <--- 234567
digito = cuil2 Mod 10
cuil2 = cuil2 / 10
suma = (suma + digito) * i
acumulando1 = acumulando1 + suma
Next
For i = 2 To 5 'este for debe ir del 2 al 7 ' <--- 2345
digito = cuil2 Mod 10
cuil2 = cuil2 / 10
suma = (suma + digito) * i
acumulando1 = acumulando1 + suma
Next
Else
Console.Write("numero de cuil incorrecto, verifique que sean 11 digitos")
End If
acumulando2 = acumulando1 Mod 11
acumulando3 = 11 - acumulando2
verificador = cuil3 Mod 10
If (acumulando3 = verificador) Then
Console.Write("el numero de Cuil ingresado es correcto : ")
End If
Console.ReadKey()
End Sub
End Module
Adjunto el Algoritmo (estoy seguro que aca debe estar el error pero no logro encontrarlo)
PD : lo que esta entre // // son comentarios
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
Comienzo
Ingresar ("ingrese el numero de su cuil");
Leer (cuil);
Repetir
cuil <--- cuil DIV 10
contador <--- contador +1
Hasta (cuil = 0)
Si (contador = 11)
entonces
cuil <--- cuil //el valor del cuil queda almacenado sin modificarse //
sino
mostrar ("numero de cuil incorrecto ingrese solo 11 digitos")
FinSi
cuil <---- cuil DIV 10 //elimino el digito verificador para no usarlo //
repetir desde ( i <---- 2 hasta 7) hacer //va desde el 2 al 6 // <-- 23457
digito <--- cuil MOD 10 //voy eliminando cada digito de derecha a izaquiera //
cuil <---- cuil DIV 10
Suma <----- (suma + digito) * i //en la variable suma se va a ir guardando las multiplicaciones //
Acumulando1 <--- acumulado1 + suma // guardo las sumas de las multipliaciones//
Fin repetir
Al momento de salir del repetir tienen que haber sucedido 2 cosas.
• El cuil debera estar reducido (solo tienen que quedar 5 digitos)
• La variable acumulando1 tiene que tener la suma de las multiplicaciones
Repetir desde (i <--- 2 hasta 5) hacer // vad desde el 2 al 5// <--- 2345
digito <--- cuil MOD 10
cuil <---- cuil DIV 10
Suma <----- (suma + digito) * i
Acumulando1 <--- acumulado1 + suma
Fin repetir
Acumulando2 <--- acumulando1 MOD 11 //el resultado de dividir por 11 lo guardo en la variable acumulando2 //
Acumulando3 <--- 11 - acumulando2 // obtengo el posible codigo de verificacion//
//contenedor donde quedo una copia del cuil original//
verificador <--- Cuil2 MOD 10
Si (Acumulando3 = verificador )
entonces
mostrar ("el numero de cuil ingresado es correcto" )
FinSi
FinAlgoritmo;
Adjunto el enunciado de mi problema :
Valora esta pregunta
-3