Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
INGENIERA MATEMTICA
PROGRAMACIN I
PROYECTO:
VERIFICAR CDULA DE IDENTIDAD
INTEGRANTES:
ROY TORRES
ANDRS IPIALES
JESSY CANCN
BRYAN FERNNDEZ
VERIFICADOR DE CDULA
NDICE
NDICE ........................................................................................................................................................ 2
RESUMEN .................................................................................................................................................. 3
CAPTULO I ............................................................................................................................................... 4
EL PROBLEMA ..................................................................................................................................... 4
PLANTEAMIENTO DEL PROBLEMA.......................................................................................... 4
OBJETIVOS ........................................................................................................................................ 5
JUSTIFICACIN ............................................................................................................................... 6
CAPTULO II ............................................................................................................................................. 7
MARCO TERICO ............................................................................................................................... 7
RECOMENDACIONES........................................................................................................................... 26
VERIFICADOR DE CDULA
RESUMEN
VERIFICADOR DE CDULA
CAPTULO I
EL PROBLEMA
VERIFICADOR DE CDULA
OBJETIVOS
Objetivo General:
Objetivos Especficos:
VERIFICADOR DE CDULA
JUSTIFICACIN
El presente trabajo es de gran importancia ya que con este se pretende dar una facilidad
en lo que es el registro y validacin de cdulas de identidad.
Los aspectos novedosos a investigarse en el presente trabajo son: como ingresar cadenas
tipo char para que los datos ingresados sean ledos como una cadena y no por partes.
Al ser este una investigacin interesante y distractora tendr gran acogida puesto que es
fcil de utilizarla, solo se necesita el nmero de cdula de la persona a la cual se desea verificar.
VERIFICADOR DE CDULA
CAPTULO II
MARCO TERICO
CICLOS REPETITIVOS
Los ciclos repetitivos tambin llamados lazos o bucles permiten repetir una operacin o
secuencia de operaciones en funcin de ciertas condiciones. Es un segmento de un algoritmo o
programa cuyas instrucciones se repiten un nmero determinado de veces mientras se cumpla
una determinada condicin. Dentro de los ciclos se utilizan contadores y acumuladores, que
regulan que el ciclo llegue a su fin.
Contador: Es un tipo de variable que incrementa o decrementa su valor en un valor constante
Cuando decimos incrementa estamos sumando. Ejemplo: Veces = Veces + 1
Como se puede observar a la variable veces se le est incrementando un valor constante (1); es
decir a su contenido le sumas el valor y se vuelve a guardar en la misma variable.
Acumulador: Es una variable que incrementa o decrementa su contenido en cantidades
variables.
Ejemplo: Nomina = Nomina + sueldo
Las estructuras de control iterativas se clasifican en tres tipos:
Mientras: (While-do) - el ciclo mientras es la estructura bsica que permite repetir varias veces
una secuencia de operaciones, mientras se cumpla una determina condicin.
Repetir: (repeat-until) - las operaciones de lazo repetir son ejecutadas hasta que la condicin sea
cierta.
Para: (for) se utiliza cuando se puede determinar el nmero de veces que hay que ejecutar las
instrucciones.
VERIFICADOR DE CDULA
ACUMULADORES
El concepto de acumulador guarda relacin estrecha con el de contador. Podramos decir que el
contador es un tipo especfico de acumulador. Definiremos acumulador como un elemento cuyo
contenido actual se genera a partir de su contenido precedente.
En general, los valores del acumulador se van generando a travs de sumas (o restas) sucesivas.
Casos particulares seran los de generacin de valores a partir de multiplicaciones (o divisiones)
u otras operaciones matemticas.
La expresin genrica de la evolucin de un acumulador A sera:
VERIFICADOR DE CDULA
Sumas sucesivas
Restas sucesivas
Multiplicaciones sucesivas
Divisiones sucesivas
A=A+B
A=AB
A=A*B
A=A/B
A=A+C
A=AC
A=A*C
A=A/C
A=A+D
A=AD
A=A*D
A=A/D
A=A+X
A=AX
A=A*X
A=A/X
Ilustracin 3: ACUMULADORES
Llamaremos herramienta a una parte del cdigo cuyo fin es apoyar una construccin ms amplia
y que resulta efectiva en distintos programas. Un martillo es una herramienta que nos ser til
para construir una casa de madera, resultando adems efectivo para otro tipo de construcciones
como una casa de bloques, un garaje, un edificio, un centro comercial, etc. As herramientas
podran ser: una variable, un bucle, una serie de instrucciones... que podemos usar en distintos
programas para cumplir un fin.
[Pseudocdigo Mientras ... Hacer aprenderaprogramar.com]
Mientras i < lmite Hacer
Instruccin 1
Instruccin 2
i=i+1
Repetir
Ilustracin 4: HERRAMIENTAS
9
VERIFICADOR DE CDULA
Por supuesto se pueden introducir variantes en la condicin (i <= lmite, i > lmite, i >= lmite...)
o en el contador (i = i + 2, i = i + 3, i = i + 15, i = i 1, i = i 2, i = i 15, etc.). Es decir, el
contador puede funcionar sumando o restando, contando hacia adelante o hacia atrs, y de uno en
uno, de dos en dos o lo que se desee.
Se ha de tener en cuenta que una mala definicin del contador, lmite y progresin puede dar
lugar a un bucle infinito. Por ejemplo si lmite > i, progresin es i = i 1 y condicin es i <
lmite, el bucle no se acabar nunca ya que la progresin da lugar a que la variable i siempre siga
siendo menor que el lmite.
Es un modo de manejar una gran cantidad de datos del mismo tipo bajo un mismo
nombre o identificador.
DECLARACIN DE UN ARRAY
tipo nombre[tamao];
Tamao: Cantidad de espacios de memoria que queremos reservar para este array
o Importante: Debe ser un entero constante, conocido en tiempo de compilacin.
10
VERIFICADOR DE CDULA
INICIALIZACIN DE UN ARRAY
El nmero de valores entre llaves tiene que ser menor o igual al tamao.
o Si es menor el resto de los valores se quedan sin inicializar.
VERIFICADOR DE CDULA
ARRAYS MULTIDIMENSIONALES
Declaracin
tipo nombre[N1][N2][];
Utilizacin
Nombre[i1][i2]
0 < i1 < N1
0 < i2 < N2
Una instruccin switch (alternativa mltiple) permite seleccionar, por medio de una expresin, el
siguiente bloque de instrucciones a ejecutar de entre varios posibles. En lenguaje C, para escribir
una instruccin alternativa mltiple (switch) se utiliza la sintaxis:
switch ( <expresin> )
{
case <expresin_1> : [ <bloque_de_instrucciones_1> ]
[ break; ]
case <expresin_2> : [ <bloque_de_instrucciones_2> ]
[ break; ]
...
case <expresin_n> : [ <bloque_de_instrucciones_n> ]
[ break; ]
[ default : <bloque_de_instrucciones_n+1> ]
}
12
VERIFICADOR DE CDULA
El resultado de evaluar la <expresin> debe ser un valor perteneciente a un tipo de dato finito y
ordenado, es decir, entero, lgico, carcter, enumerado o subrango.
Dependiendo del valor obtenido al evaluar la <expresin>, se ejecutar un bloque de
instrucciones u otro.
Opcionalmente, se puede escribir un <bloque_de_instrucciones_n+1> despus de default:. Este
bloque de instrucciones se ejecutar en el caso de que el valor obtenido al evaluar la
<expresin>, no se encuentre en ninguna de las expresiones despus de cada case.
El algoritmo completo se presenta enseguida.
CDIGO EN VISUAL BASIC:
1.- Definiremos las variables q vamos a necesitar
Sub Macro1()
Dim str As String, dest As String
Dim digito(20) As Integer
Dim asci As Integer
Dim i As Integer
Dim coeficientes(10) As Integer
Dim acumulador As Integer
Dim a As Integer
Dim b As Integer
Dim c As Integer
Dim verificador As Integer
Dim opciones(24) As Integer
2.-Declaramos la cadena coeficientes 1*1
coeficientes(1) = 2
coeficientes(2) = 1
coeficientes(3) = 2
coeficientes(4) = 1
coeficientes(5) = 2
coeficientes(6) = 1
coeficientes(7) = 2
coeficientes(8) = 1
coeficientes(9) = 2
coeficientes(10) = 0
13
VERIFICADOR DE CDULA
VERIFICADOR DE CDULA
15
VERIFICADOR DE CDULA
4.-Ventanas de resultado
*Digito verificador
16
VERIFICADOR DE CDULA
3.-Ingreso de la cedula
17
VERIFICADOR DE CDULA
18
VERIFICADOR DE CDULA
CDIGO EN C:
#include "stdafx.h"
#include "stdafx.h"
#include "string.h"
#include <stdio.h>
#include <stdlib.h>
int _tmain(int argc, _TCHAR* argv[])
{
int coeficientes[10] = { 2, 1, 2, 1, 2, 1, 2, 1, 2, 0 };
char cedula[20];
int i, temporal[20], multiplicacion, acumulador, verificador, a, b, c, j, dimension;
printf("***********PROGRAMA VERIFICADOR DE CEDULAS***********");
printf("\n");
printf("INGRESE CON CUANTAS CEDULAS DESEA TRABAJAR");
scanf_s("%d", &dimension);
fflush(stdin);
system("cls");
for (j = 0; j < dimension; j++)
{
printf("POR FAVOR INGRESE EL NUMERO DE CEDULA QUE DESEE
COMPROBAR");
gets_s(cedula);
acumulador = 0;
i = 0;
while (i<10)
{
temporal[i] = int(cedula[i] - 48);
multiplicacion = temporal[i] * coeficientes[i];
if (multiplicacion>9)
{
multiplicacion = multiplicacion - 9;
}
acumulador = acumulador + multiplicacion;
i = i + 1;
}
a = (acumulador / 10);
b = a + 1;
c = b * 10;
verificador = c - acumulador;
printf("\n");
19
VERIFICADOR DE CDULA
VERIFICADOR DE CDULA
break;
case 8:
printf("USTED PERTENECE A LA PROVINCIA DE
TUNGURAHUA");
break;
case 9:
printf("USTED PERTENECE A LA PROVINCIA DE
ZAMORA CHINCHIPE");
break;
}
}
else
{
if (int(cedula[0] - 48) == 2)
{
switch (cedula[1] - 48)
{
case 0:
printf("USTED PERTENECE A LA PROVINCIA
DE GALAPAGOS");
break;
case 1:
printf("USTED PERTENECE A LA PROVINCIA
DE SUCUMBIOS");
break;
case 2:
printf("USTED PERTENECE A LA PROVINCIA
DE ORELLANA");
break;
case 3:
printf("USTED PERTENECE A LA PROVINCIA
DE SANTO DOMINGO");
break;
case 4:
printf("USTED PERTENECE A LA PROVINCIA
DE SANTA ELENA");
break;
}
}
else
{
if (int(cedula[0] - 48) == 0)
{
switch (cedula[1] - 48)
{
21
VERIFICADOR DE CDULA
case 1:
printf("USTED PERTENECE
PROVINCIA DE AZUAY");
break;
LA
printf("USTED PERTENECE
PROVINCIA DE BOLIVAR");
break;
LA
printf("USTED PERTENECE
PROVINCIA DE CAAR");
break;
LA
printf("USTED PERTENECE
PROVINCIA DE CARCHI");
break;
LA
printf("USTED PERTENECE
PROVINCIA DE COTOPAXI");
break;
LA
printf("USTED PERTENECE A
PROVINCIA DE CHIMBORAZO");
break;
LA
printf("USTED PERTENECE
PROVINCIA DEL ORO");
break;
LA
printf("USTED PERTENECE A
PROVINCIA DE ESMERALDAS");
break;
LA
printf("USTED PERTENECE
PROVINCIA DE GUAYAS");
break;
LA
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
case 9:
A
}
}
}
}
printf("\n");
printf("-----------------------------------------------------------------------------");
}
else
{
22
VERIFICADOR DE CDULA
CDIGO JAVA:
package javaapplication21;
import java.util.*;
public class JavaApplication21 {
public static void main(String[] args)
{
int i,k,divi,cedula,s,A,d,resta,suma,t,p,v;
int[] vector=new int[100];
int [] coe=new int[100];
int [] multi=new int [100];
Scanner dato = new Scanner(System.in);
System.out.print("cuantas cedulas va a ingresar");
k = dato.nextInt();
for(i=1;i<k+1;i++)
{
System.out.print("Ingrese la cedula " + i + ":");
cedula= dato.nextInt();
divi = cedula / 100000000 ;
if (divi < 24)
{
switch (divi)
{
case 1: System.out.print("la cedula " + i + " pertenece a azuay");
break;
case 2: System.out.print("la cedula " + i + " pertenece a Bolivar");
break;
case 3: System.out.print("la cedula " + i + " pertenece a Caar");
break;
case 4: System.out.print("la cedula " + i + " pertenece a Manabi");
break;
case 5: System.out.print("la cedula " + i + " pertenece a Carchi");
break;
23
VERIFICADOR DE CDULA
VERIFICADOR DE CDULA
coe[1]=2;
coe[2]=1;
coe[3]=2;
coe[4]=1;
coe[5]=2;
coe[6]=1;
coe[7]=2;
coe[8]=1;
coe[9]=2;
t=0;
for(i=1;i<11;i++)
{
vector[i]=(cedula/A);
d=(A*vector[i]);
resta=(cedula-d);
cedula=resta;
s = A/10;
multi[i]=(vector[i]*coe[i]);
A=s;
multi[i]=(vector[i]*coe[i]);
if(multi[i]>10)
{
multi[i]=multi[i]-9;
}
System.out.print(multi[i]);
}
suma=multi[1]+multi[2]+multi[3]+multi[4]+multi[5]+multi[6]+multi[7]+multi[8]
+multi[9];
System.out.print("\n");
System.out.print("la suma es:");
System.out.print(suma);
d=(suma/10);
p=(d+1);
resta=(p*10);
v=(resta - suma);
System.out.print("\n");
System.out.print("el ltimo dgito verificador es:");
System.out.print(v);
}
}
}
25
VERIFICADOR DE CDULA
CONCLUSIONES
RECOMENDACIONES
BIBLIOGRAFA
26
VERIFICADOR DE CDULA
27