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=∑
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