Para empezar a realizar el programa se debe tomar en cuenta lo siguiente:
Análisis de Dígitos:
Para verificar lo dígitos se debe realizar los siguientes cálculos.
Pasos para crear el programa:
1. Abrir un editor de texto en Ubuntu y darle un nombre al archivo en este caso se denominara cedula.c.
Código del programa:
#include<stdio.h>
#include<stdlib.h>
int validarCedula(int cedula[9]);
int suma (int verif2[9]);
int main(int argc, char *argv[]){
int cedula[10];
if(argc !=11){
printf("\nNumero de digitos Incorrecto.\nVerifique que ingrese 10 digitos separados por un espacio\nEj:1_2_3_4_5_6_7_8_9_10\n");//si el numero de digitos es incorrecto, desplegara un mensaje de error y finalizara el programa
return -1;
}
//se transforma un carácter a entero y se va guardando cada dígito en un vector de enteros
cedula[0]=atoi(argv[1]);
cedula[1]=atoi(argv[2]);
cedula[2]=atoi(argv[3]);
cedula[3]=atoi(argv[4]);
cedula[4]=atoi(argv[5]);
cedula[5]=atoi(argv[6]);
cedula[6]=atoi(argv[7]);
cedula[7]=atoi(argv[8]);
cedula[8]=atoi(argv[9]);
cedula[9]=atoi(argv[10]);
if(validarCedula(cedula)){
printf("\nNumero de cedula valido!\n");
}else{
printf("\nNumero de cedula NO valido!\n");
}
return 0;
}
int validarCedula(int cedula[9]){ //Permite validar un número de cédula. Retorna 1 si la cédula es válida y 0 en caso contrario.
int verif[9],num,i;
if(cedula[2]<0 || cedula[2]>6){
printf("Error en el tercer digito.\n");
return 0;
}
if(cedula[0]<0 || cedula[0]>2){
printf("Error en el codigo de provincia.\n");
return 0;
}
if(cedula[0]==2 && (cedula[1]<1 || cedula[1]>4)){
printf("Error en el codigo de provincia.\n");
return 0;
}
for(i=0;i<=8;i++){
if(i%2==0){
verif[i]=cedula[i]*2;
if(verif[i]>=10){
verif[i]=verif[i]-9;
}
}else {
verif[i]=cedula[i]*1;
if(verif[i]>=10){
verif[i]=verif[i]-9;
}
}
}
verif[9]=90 - suma(verif);
num=verif[9]%10;
if(cedula[9]==num){
printf("Digito verificador obtenido: %d.\n",num);
return 1;
}else {
printf("Digito verificador obtenido: %d. Error en el digito verificador.\n",num);
return 0;
}
}
int suma (int verif2[9]){
int i,suma=0;
for (i=0;i<=8;i++){
suma =suma + verif2[i];
}
return suma;
}
3. Guardar y Cerrar
4. Verificar el directorio en el que se encuentra el archivo, se lo hace mediante el comando pwd, este muestra la ruta absoluta del trabajo actual.
Nota: Todos los siguientes pasos se deberá realizar en el directorio en el que se encuentra el archivo.
6. Para ejecutar el programa se deberá colocar el nombre del ejecutable anteponiendo ./ que representa la ruta relativa de trabajo actual y colocar los 10 dígitos separados por un espacio. En el caso que exista algún error el programa mostrara mensajes de aviso.
Listo el programa para verificar el numero de la cedula estará funcionando correctamente. Para poder ejecutar este programa es necesario siempre estar en el directorio en el que se encuentra el archivo ejecutable del mismo. Para modificar esto y lograr que el programa sirva en cualquier directorio que se encuentre es necesario modificar la la variable de entorno PATH.
¿Que es la variable PATH?
Es un conjunto de rutas del sistema, en las que se encuentran archivos ejecutables. Cuando se ejecuta un comando lo primero que hace el sistema operativo es buscarlo en las rutas que se encuentran en la variable PATH.
Para que nuestro programa funcione desde cualquier directorio se debe colocar la ruta del mismo en la variable PATH, si solo se hace lo antes mencionado únicamente valdrá en ese momento y cuando se apague la computadora volverá a su modelo por defecto. Para hacerlo permanentemente se deberá hacer lo siguiente:
1. Ingresar como usuario root
2. Editar el Archivo en el que se encuentra la variable PATH():
3. Editaremos la Forma Original del archivo colocando al final la ruta absoluta en la que se encuentra el archivo ejecutable:
Original
Modificado
4. Guardamos y cerramos.
5. Finalmente Reiniciamos la maquina para que se guarden los cambios realizados.
6. Al iniciar, abrimos un terminal y nos dirigimos a cualquier directorio, y probamos el correcto funcionamiento colocando solo el nombre del ejecutable :
jess@jess-VirtualBox:~/Descargas$ cedula 1 2 3 4 5 6 7 8 9 0
Es de gran ayuda realizar este tipo de molificaciones debido a que ahorramos tiempo, ya no se tendrá que buscar el directorio en el que se encuentra el ejecutable, quizás mucha de las veces lo olvidemos he ahí la gran utilidad de este método.


No hay comentarios:
Publicar un comentario