Modelo de programación en GNU/Linux (Parámetros función main).
Algoritmo de Verificacion de Cedula Ecuatoriana
Para proceder a verificar si un numero de cedula es correcto tenemos que tener en cuenta lo siguiente:
- La cedula ecuatoriana está formada por los dos primeros dígitos que corresponden a la provincia donde fue expedida, por lo cual los dos primeros números no será mayor a 24 ni menor a 1.
- El tercer digito es un número menor a 6 (0, 1, 2, 3, 4, 5).
- Los siguientes hasta el noveno digito son un número consecutivo.
- Y el décimo digito es el digito verificador.
Los coeficientes usados para verificar el décimo dígito de la cédula, mediante el algoritmo “Módulo 10”
COEFICIENTES = 2.1.2.1.2.1.2.1.2
Una vez que hayamos entendido el algoritmo para validar la cedula proseguimos a realizar el programa:
Implementamos el código respectivo:
Para
empezar con la implementación de nuestro código, lo primero que debemos
hacer es abrir un editor de texto, en
nuestro caso haremos uso de gedit que es uno de los editores de texto de Ubuntu
y crearemos un archivo con el siguiente nombre “cedula.c”.
Para crear este archivo vamos hasta la consola de nuestro sistema operativo y ponemos:
>>gedit cedula.c &
El & nos permite realizar 2 proceso en el terminal.
Una vez realizado esto observamos lo siguiente en nuestra pantalla:
Ahora, dentro de este archivo vamos a implementar el codigo de nuestro programa que es el siguiente:
/*Programa cédula*/
#include <stdio.h>
#include <stdlib.h>
struct cedula{
int x;
};
int main(int argc, char *argv[]){
struct cedula ced[10];
int i;
int sumDigitos=0;
int numRestar=0;
int elementoFinal=0;
if(argc!=11){
printf("Numero de parametros incorrectos. Use: %s x1 x2 x3 x4 x5 x6 x7 x8 x9 x10\n",argv[0]);
return -1;
}
ced[0].x=atoi(argv[1]);
ced[1].x=atoi(argv[2]);
ced[2].x=atoi(argv[3]);
ced[3].x=atoi(argv[4]);
ced[4].x=atoi(argv[5]);
ced[5].x=atoi(argv[6]);
ced[6].x=atoi(argv[7]);
ced[7].x=atoi(argv[8]);
ced[8].x=atoi(argv[9]);
ced[9].x=atoi(argv[10]);
for(i=0;i<9;i++){
if(i==0){
ced[i].x=ced[i].x*2;
if(ced[i].x>=10){ced[i].x=ced[i].x-9;
}
}
if( (i%2==0) && (i != 0) ){
ced[i].x=ced[i].x*2;
if(ced[i].x>=10){
ced[i].x=ced[i].x-9;
}
}
if( (i%2 != 0) && (i!=0) ){
ced[i].x=ced[i].x*1;
if(ced[i].x>=10){
ced[i].x=ced[i].x-9;
}
}
}
for(i=0;i<9;i++){
sumDigitos=sumDigitos+ced[i].x;
}
if(sumDigitos >=20 && sumDigitos<=29){
numRestar=30-sumDigitos;
}
if(sumDigitos >=10 && sumDigitos<=19){
numRestar=20-sumDigitos;
}
if(sumDigitos >=30 && sumDigitos<=39){
numRestar=40-sumDigitos;
}
printf("\n Comprobacion:\n");
elementoFinal=ced[9].x;
if(numRestar == elementoFinal){
printf("Tu cedula es correcta\n");
}
if(numRestar != elementoFinal){
printf("Tu cedula es incorrecta\n");
}
return 0;
}
Analizando un poco el codigo nos damos cuenta que se hace uso de estructuras, sentencias como el if o el for que ya sabemos como utilizarlas.
como una novedad tenemos lo siguiente:
int main(int argc, char *argv[])
Podemos observar dos argumentos dentro del main:
int argc: Cantidad de argumentos que se envian.
char *argv[]: Es un vector de cadenas de caracteres.
Una vez terminado el codigo lo guardamos y procedemos con la compilacion del programa:
Para esto ponemos el siguiente codigo:
- gcc -o validarcedula cedula.c
Ahora podemos continuar con la ejecución de nuestro programa y para esto ponemos lo siguiente:
- ./validarcedula 1 7 2 6 2 6 1 5 0 4
Tambien podemos probar con otro ejemplo para ver el mensaje que nos muestra en caso de no ser correcto el numero.
Y listo, hemos comprobado que nuestro programa funciona a la perfección.
Si
nosotros queremos ejecutar nuestro programa independientemente del directorio
en el que nos encontremos lo que debemos hacer es modificar nuestra variable
PATH. Esta variables contiene un conjunto de rutas de directorios en donde el Shell
busca los comandos que hemos ingresado.
Para lo
cual ponemos lo siguiente:
PATH=$PATH:/home/danny
Export PATH
Claro
que si utilizamos esta forma al momento de que volvamos a iniciar el bash la modificación
no se mantiene, por lo que debemos buscar otra manera de editar la variable de
manera que la modificación hecha se quede guardada permanentemente.
Para
esto vamos a modificar el siguiente archivo:
En
nuestro directorio home de usuario vamos a buscar el siguiente archivo:
.bashrc
Ahora
vamos a modificar este archivo, lo podemos hacer directamente sin abrirlo con
un editor de texto de la siguiente manera:
>> echo
"export PATH=$PATH:/home/danny" >> ~/.bashrc
Terminamos
aplicando el comando source para recargar el archivo ~/.bashrc:
>>
source
~/.bashrc
Y listo
con estos cambios realizados nuestra variable PATH se guardara de manera
permanente.
BIBLIOGRAFIA:
T.Jimenez “Algoritmo de Verificacion de Cedula Ecuatoriana”, (2011).[Online]. Available: http://telesjimenez.blogspot.com/2011/05/algoritmo-de-verificacion-de-cedula.html
HS. Francisco "Añadir un directorio a la variable PATH", Junio (2013). [Online]. Disponible en:
http://yoporlinuxmato.blogspot.com/2013/06/anadir-un-directorio-la-variable-path.html





































