Visual Basic.NET - Verificar Cuil correcto u incorrecto (Arg)

 
Vista:
sin imagen de perfil
Val: 11
Ha aumentado su posición en 12 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

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 :

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 :


Captura
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
-3
Responder