viernes, 22 de enero de 2016

VALIDACION DE LA CEDULA CON FUNCIONES Y PUNTEROS


UNIDAD EDUCATIVA FISCOMISIONAL "DON BOSCO"

NOMBRE:FRIXON CHALUISA
CURSO:2°INF
TEMA: PUNTEROS Y FUNCIONES EN LA CEDULA
OBJETIVO:REALIZAR LA VALIDACION DE LA CEDULA APLICANDO LOS CONCEPTOS DE FUNCIONES Y PUNTEROS PARA AMPLIAR LOS CONOCIMIENTOS 


-Diseñe un programa de validacion de la cedula con funciones y punteros

#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
void ingresar();
void transformar(char ced[]);
void numimppa(int numced[9]);
void cifram(int dec10, int numced[9],int pares, int impares,int imp[4]);
void validar(int sum,int numced[9],int pares, int impares,int dec10, int b,int imp[4]);
void imprimir(int numced[9],int pares, int impares,int dec10, int b,int sum,int validar,int imp[4]);
main()
{

ingresar();

getch();}
void ingresar()
{
char ced[9];


printf("Ingrese:\n");
scanf("%s",&ced);

transformar(ced);
}

void transformar(char ced[9])
{
char *ptrced;
int numced[9];
for(int i=0;i<10;i++){

             ptrced=&ced[i];
                      if(*ptrced==48)
                       {
                       numced[i]=0;
                       }
                      if(*ptrced==49)
                       {
                       numced[i]=1;
                       }
                      if(*ptrced==50)
                       {
                       numced[i]=2;
                       }
                      if(*ptrced==51)
                       {
                       numced[i]=3;
                       }
                      if(*ptrced==52)
                       {
                       numced[i]=4;
                       }
                      if(*ptrced==53)
                       {
                       numced[i]=5;
                       }
                      if(*ptrced==54)
                       {
                       numced[i]=6;
                       }
                      if(*ptrced==55)
                       {
                       numced[i]=7;
                       }
                      if(*ptrced==56)
                       {
                       numced[i]=8;
                       }
                      if(*ptrced==57)
                       {
                       numced[i]=9;
                       }


}
numimppa(numced);

}

void numimppa(int numced[9])
{

int *ptrnumced;
int imp[4];
int impares;
int s;
int pares;
int dec10;
s=0;


for(int i=0;i<5;i++)
{
ptrnumced=&numced[s];

imp[i]=*ptrnumced*2;


if(imp[i]>=9)
{
imp[i]=imp[i]-9;
}
s=s+2;
}
impares=imp[0]+imp[1]+imp[2]+imp[3]+imp[4];
pares=numced[1]+numced[3]+numced[5]+numced[7];
dec10=pares+impares;
cifram(dec10,numced,pares,impares,imp);

}

void cifram(int dec10, int numced[9],int pares, int impares,int imp[4])
{
int a;
int *ptra;
int *ptrb;
int b;
int sum;

a=dec10%10;
a=10-a;
b=dec10 /10;


ptra=&a;
ptrb=&b;
if(*ptra>=6)
{
*ptrb=*ptrb*10;
}
if(*ptra<6)
{
*ptrb=*ptrb+1;
*ptrb=*ptrb*10;
}

b=*ptrb;
sum=b-dec10;

validar(sum,numced,pares,impares,dec10,b,imp);

}

void validar(int sum,int numced[9],int pares, int impares,int dec10, int b,int imp[4])
{
int *ptrsum;
int *ptrnumced;
int validar;


ptrnumced=&numced[9];
ptrsum=&sum;
if(*ptrsum==*ptrnumced)
{
validar=1;

}

if(*ptrsum!=*ptrnumced)
{
validar=0;
}


imprimir(numced,pares,impares,dec10,b,sum,validar,imp);
}
void imprimir(int numced[9],int pares, int impares,int dec10, int b,int sum,int validar,int imp[4])
{
int s;
int *ptrnumced;
int *ptrvalidar;
ptrvalidar=&validar;
printf("\n");
s=1;
for(int i=0;i<10;i++)
{

ptrnumced=&numced[i];
printf("%i) %i\n",s,*ptrnumced);

s++;
}
printf("\n");
printf(" Pares               Impares\n");
printf("%i                   %i\n",numced[1],imp[0]);
printf("%i                   %i\n",numced[3],imp[1]);
printf("%i                   %i\n",numced[5],imp[2]);
printf("%i                   %i\n",numced[7],imp[3]);
printf("                    %i\n",imp[4]);


printf("\n");
printf("Suma de pares: %i\nSuma de impares: %i\n",pares,impares);
printf("Suma total es: %i\nMaxima superior: %i\n",dec10,b);
printf("Decimo dijito resta: %i\n",sum);
printf("Decimo dijito ingresado: %i\n",numced[9]);

if(*ptrvalidar==1)
{
printf("Resultado: Cedula valida\n");

}

if(*ptrvalidar!=1)
{
printf("Resultado: Cedula invalida\n");
}

}



No hay comentarios:

Publicar un comentario