VERIFICAR CÉDULA DE IDENTIDAD

19
PROYECTO: VERIFICAR CÉDULA DE IDENTIDAD INTEGRANTES: ROY TORRES ANDRÉS IPIALES JESSY CANCÁN BRYAN FERNÁNDEZ UNIVERSIDAD CENTRAL DEL ECUADOR INGENIERÍA MATEMÁTICA PROGRAMACIÓN I

Transcript of VERIFICAR CÉDULA DE IDENTIDAD

  

PROYECTO:VERIFICAR CÉDULA DE IDENTIDAD

  

INTEGRANTES: •ROY TORRES

•ANDRÉS IPIALES •JESSY CANCÁN

•BRYAN FERNÁNDEZ

UNIVERSIDAD CENTRAL DEL ECUADORINGENIERÍA MATEMÁTICA

PROGRAMACIÓN I

RESUMEN

• El presente proyecto académico, muestra algunos ejemplos de programas relacionados con la teoría vista en clases. Además mostramos un poco de conceptos básicos relacionados también con los ciclos, contadores, acumuladores y vectores, que nos ayudan como una herramienta extra para comprender mejor la programación.

INTRODUCCIÓN

•El proyecto académico está dirigido a estudiar y comprender la forma en cómo se trabaja en programación con ciclos repetitivos, acumuladores y contadores. Para lo cual se diseñará y empleará una página web en donde se explica nuestro ejemplo usando las herramientas nombras.

OBJETIVO

•Estudiar y comprender los ciclos repetitivos, contadores, acumuladores y vectores, su uso para poder tener mayores facilidades a la hora de resolver ciertos algoritmos que requieren de estas estructuras.Codificar una tarea sencilla convenientemente especificada utilizando lo estudiado.Crear un programa que facilite el registro de números de cedula y verificar si estos son o no reales.

MARCO TEÓRICO

ALGORITMO DE VERIFICACION DE CEDULA ECUATORIANA

• CICLOS REPETITIVOS

Los ciclos repetitivos también llamados lazos o bucles permiten repetir una operación o secuencia de operaciones en función de ciertas condiciones. Es un segmento de un algoritmo o programa cuyas instrucciones se repiten un número determinado de veces mientras se cumpla una determinada condición. Dentro de los ciclos se utilizan contadores y acumuladores, que regulan que el ciclo llegue a su fin.

ACUMULADORES

• El concepto de acumulador guarda relación estrecha con el de contador. Podríamos decir que el contador es un tipo específico 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 través de sumas (o restas) sucesivas. Casos particulares serían los de generación de valores a partir de multiplicaciones (o divisiones) u otras operaciones matemáticas.

• USO DEL SWITCH

Una instrucción switch (alternativa múltiple) permite seleccionar, por medio de una expresión, el siguiente bloque de instrucciones a ejecutar de entre varios posibles. En lenguaje C, para escribir una instrucción alternativa múltiple (switch) se utiliza la sintaxis:

switch ( <expresión> )

{

case <expresión_1> : [ <bloque_de_instrucciones_1> ]

[ break; ]

case <expresión_2> : [ <bloque_de_instrucciones_2> ]

[ break; ]

case <expresión_n> : [ <bloque_de_instrucciones_n> ]

[ break; ]

[ default : <bloque_de_instrucciones_n+1> ]

}

INICIALIZACIÓN DE UN ARRAY

TIPO NOMBRE[TAMAÑO] = {A, B, C,…};

• El número de valores entre llaves tiene que ser menor o igual al tamaño.

-Si es menor el resto de los valores se quedan sin inicializar.

• Existe una forma alternativa:

TIPO NOMBRE[ ] = {A, B, C,…};

• Si no se especifica el tamaño se reservarán tantos espacios como elementos haya entre llaves.

ACCESO A LOS ELEMENTOS DE UN ARRAY

Para un array de tamaño N y nombre V accederemos al elemento i como V[i].

Ese valor puede ser leído (imprimido, asignado a otra variable,…) o modificado (dándole un valor) como cualquier otra variable.

V[I] = VALOR;

VECTORES ARRAYS O ARREGLOS

• En C a los vectores también se les llama arrays o arreglos.

• Los arrays son:

-Conjuntos de variables del mismo tipo.

-Que tienen el mismo nombre.

-Y se diferencian en el índice.

• Es un modo de manejar una gran cantidad de datos del mismo tipo bajo un mismo nombre o identificador.

DECLARACIÓN DE UN ARRAY

TIPO NOMBRE[TAMAÑO];

• Tipo: Tipo que tienen el conjunto de variables int, float, double,…

• Nombre: Identificador con el nombre del array

• Tamaño: Cantidad de espacios de memoria que queremos reservar para este array

-Importante: Debe ser un entero constante, conocido en tiempo de compilación.

PROGRAMA 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");

printf("LA SUMA DE LOS DIGITOS DE SU CEDULA ES:\t%d\n", acumulador);

printf("\n");

printf("EL DIGITO VERIFICADOR ES:\t%d\n", verificador);

printf("\n");

}

if (int(cedula[9] - 48) == verificador)

{

printf("LA CEDULA ES VALIDA \n");

printf("\n");

if (int(cedula[0] - 48) == 1)

{

{

printf("LA CEDULA ES VALIDA \n");

printf("\n");

if (int(cedula[0] - 48) == 1)

{

switch (cedula[1] - 48)

{

case 0:

printf("USTED PERTENECE A LA PROVINCIA DE IMBABURA");

break;

case 1:

printf("USTED PERTENECE A LA PROVINCIA DE LOJA");

break;

case 2:

printf("USTED PERTENECE A LA PROVINCIA DE LOS RIOS");

break;

case 3:

printf("USTED PERTENECE A LA PROVINCIA DE MANABI");

break;

case 4:

printf("USTED PERTENECE A LA PROVINCIA DE MORONA SANTIAGO");

break;

case 5:

printf("USTED PERTENECE A LA PROVINCIA DE NAPO");

break;

case 6:

printf("USTED PERTENECE A LA PROVINCIA DE PASTAZA");

break;

case 7:

printf("USTED PERTENECE A LA PROVINCIA DE PICHINCHA");

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)

{

case 1:

printf("USTED PERTENECE A LA PROVINCIA DE AZUAY");

break;

case 2:

printf("USTED PERTENECE A LA PROVINCIA DE BOLIVAR");

break;

case 3:

printf("USTED PERTENECE A LA PROVINCIA DE CAÑAR");

break;

case 4:

printf("USTED PERTENECE A LA PROVINCIA DE CARCHI");

break;

case 5:

printf("USTED PERTENECE A LA PROVINCIA DE COTOPAXI");

break;

case 6:

printf("USTED PERTENECE A LA PROVINCIA DE CHIMBORAZO");

break;

case 7:

printf("USTED PERTENECE A LA PROVINCIA DEL ORO");

break;

case 8:

printf("USTED PERTENECE A LA PROVINCIA DE ESMERALDAS");

break;

case 9:

printf("USTED PERTENECE A LA PROVINCIA DE GUAYAS");

break;

}

}

}

}

printf("\n"); printf("-----------------------------------------------------------------------"); } else { printf("LA CEDULA QUE INGRESO ES ES FALSA"); printf("\n"); } } printf("\n"); getchar(); getchar(); return 0;}