Fundamentos de Programacion 507
Fundamentos de Programacion 507
Fundamentos de Programacion 507
PROYECTO FINAL
TERCER PARCIAL
INTEGRANTES
CHUGA JHONNY
BRAVO JONATHAN
USHIÑA ALEX
OBJETIVOS
OBJETIVO GENERAL
OBJETIVO ESPECFICO
FUNDAMENTACION TEORICA.-
QUÉ ES UN LENGUAJE DE PROGRAMACIÓN
EL LENGUAJE C++
C++ es un lenguaje de programación diseñado a mediados de los años 1980 por Bjarne
Stroustrup. La intención de su creación fue el extender al exitoso lenguaje de
programación C con mecanismos que permitan la manipulación de objetos. En ese
sentido, desde el punto de vista de los lenguajes orientados a objetos, el C++ es un
lenguaje híbrido.
Actualmente existe un estándar, denominado ISO C++, al que se han adherido la mayoría
de los fabricantes de compiladores más modernos. Existen también algunos intérpretes,
tales como ROOT.
Una particularidad del C++ es la posibilidad de redefinir los operadores, y de poder crear
nuevos tipos que se comporten como tipos fundamentales.
El nombre C++ fue propuesto por Rick Mascitti en el año 1983, cuando el lenguaje fue
utilizado por primera vez fuera de un laboratorio científico. Antes se había usado el
nombre "C con clases". En C++, la expresión "C++" significa "incremento de C" y se refiere
a que C++ es una extensión de C.
CÓDIGO FUENTE:
COMPILACIÓN:
VARIABLES
Una variable en informátca al igual que en matemáticas viene a ser cualquier letra (a, e, X,
b, c, Y, etc.) o palabra (pedro_1, numero, Juan15, fido, variable, etc.) que nosotros
escogeremos para que almacene algo interior.
Definir una variable es buscar la variable que necesitemos para luego darle un nombre. En
Borland C++ dicho nombre no puede empezar nunca con cualquer caracter especial
excepto el _. Por ejemplo sí definiera una variable con el nombre 4auto sería rápidamente
detectado como error en la sintaxis por el compilador. Pero sí podría definir así: _auto.
Además tampoco se puede definir el nombre de una variable con las palabras reservadas
del lenguaje, puesto que estas palabras junto con la sintaxis conforman al lenguaje
Borland C++.
ESTRUCTURA DE UN PROGRAMA
Todo programa en Borland C++ deberá especificar las bibliotecas que se usarán en el
programa. Para eso se seguirá la sintaxis: #include<NombreDeLaBiblioteca>
Todo programa en Borland C++ tiene una función principal llamada main. Para eso se
seguirá la siguiente estructura: tipoDeDato main(tipoDeDato){ }
LIBRERIAS
FUNCIONES
Una función es un conjunto de líneas de código que realizan una tarea específica y puede
retornar un valor. Las funciones pueden tomar parámetros que modifiquen su
funcionamiento. Las funciones son utilizadas para descomponer grandes problemas en
tareas simples y para implementar operaciones que son comúnmente utilizadas durante
un programa y de esta manera reducir la cantidad de código. Cuando una función es
invocada se le pasa el control a la misma, una vez que esta finalizó con su tarea el control
es devuelto al punto desde el cual la función fue llamada.
VARIABLE PUNTERO
Es una variable qu almacena una dirección dememoria deotra variable siendo esta
dirección la posición interna de la variable en la memoria RAM del computador. Es decir,
una variable apuntando a otra.
Almacenar los datos de registro de una persona los mismos q podrán ser eliminados o
editados, por otra parte se puede buscar a los datos de un usuario mediante el ingreso de
su número de cedula, seguidamente para q el usuario pueda ingresar a un juego deberá
pasar una serie de pasos y requisitos como son la validación de sus datos identificando su
número de cedula y una contraseña.
Una vez accedido puede elegir el juego q desea jugar y el programa empezara a ejecutar el
juego hasta q el usuario gane o pierda, en cualquiera de los dos casos se preguntara si
desea continuar con una nueva partida o si desea salir.
La esencia del programa en general es el uso de funciones ademas también del uso de
parámetros, para el diseño final y la posterior codificación del programa es necesario
ampliar nuestro conocimiento.
Esto implica una consulta sobre librerías como es la DOS la cual nos permite una mejor
visualización con lo que consecuentemente el programa se torna más agradable
convirtiéndose así en un programa de estructura sencilla de nivel medio en lenguaje C++
que no requiere la utilización de herramientas o de conocimientos muy avanzados ni
complicados.
<conio.h>
La librería conio se utiliza más que nada por sus comandos: getch(), clrscr(), gotoxy(),
textcolor(), y textbackground(), los cuales usamos para darle mejor presentación a
nuestros programas. Pero pensandolo bien, ¿en verdad necesitamos que los programas en
consola se vean bien? La verdad es que no, lo que importa es que funcionen.
<math.h>
<ctype.h>
<dos.h>
Archivo de cabecera dos.h del lenguaje C contiene funciones para el manejo de las
interrupciones, la producción de funciones de sonido, fecha y hora, etc
Funciones de <dos.h>
delay
getdate
gettime
nosound
setdate
sleep
sound
FUNCIONES
gotoxy(int x, int y)
Mueve el cursos a la posicion indicada, si se ingresa coordenadas no validas, esta funcion
es ignorada
textcolor(int newcolor)
Esta funcion da color al texto, el parametro ingresado puede ser un numero, los cuales se
encuentran tabulados o se puede escribir el nombre del color en ingles.
cprintf
Esta funcion sirve para imprimir texto en pantalla, con la diferencia que acepta una serie
de argumentos.
delay
Utiliza la biblioteca <dos.h>, con la llamada a esta funcion el programa se suspende la
contidad de milisegundos que se ingrese como argumento.
randomize
Con la llamada a esta función, el programa devuelve números enteros generados al azar.
tolower
Esta función convierte un tipo de dato a minúscula, se basa en la tabla ASCII
#define TRUE 1
#define FALSE 0
void menu();
void guardar_c();
void buscar_c();
void modificar_c();
void eliminar_c();
void usuario(void);
void imprimir(void);
char verificar(void);
char matriz[3][3];
void juego(void);
void maquina(void);
void creditos();
//VARIABLES GLOBALES
int i,h,j;
char cod[5],telefono[15],pago_form[50],nom_con[100];
char nomb[30],ape[30],ced[9];
char var = 'x';
char pass[100];
void main()
do{
clrscr();
gotoxy(19,2); printf("イイイイイイイイイイイイイイイイイイイイイイイイイイイイイイイイイイイイイイイイイイイイイ
");
gotoxy(21,4); printf("*-* BIENVENIDOS A LOS JUEGOS ONORATO *-*");
gotoxy(19,6); printf("イイイイイイイイイイイイイイイイイイイイイイイイイイイイイイイイイイイイイイイイイイイイイ
");
gotoxy(19,9); printf("A. INGRESAR A JUGAR");
gotoxy(19,11); puts("B. REGISTRARSE");
gotoxy(19,13); puts("C. APAGAR");
gotoxy(19,15); printf("ヘ> ");
do{opcion=toupper(getch());
if(!strchr("ABC",opcion))
putchar('\a');
else
break;
}while(TRUE);
switch(opcion){
case'A':
do{
buscar_c();
scanf("%s",&pass);
if( strcmp(pass,nom_con)==0)
break;
else {
gotoxy(43,11);printf("R.REGRESAR");
do{
op=toupper(getch());
if(!strchr("ABCR",op))
putchar('\a');
else
break;
}while(TRUE);
bandera=TRUE;
switch(op){
case 'A'://EN RAYA
{clrscr();
char
hecho;
gotoxy(30,2);
printf("Tres en raya");
gotoxy(29,4);
imprimir();
usuario();
clrscr();
maquina();
hecho=verificar(); /*Ganador*/}
while(hecho==' ');
if(hecho=='X') {
for(int q=1;q<16;q++){
textcolor(q);
clrscr();
imprimir();
//Fin
}break;
case 'B': //BINGO
int
B[4],I[4],N[4],G[4],O[4],a,r,q,y,m,w,p,e,s,t,re,ve;
char u;
{ clrscr();
do{
q=0;
a=0; m=0; p=0; w=0;
clrscr();
randomize();
e=7;
re=0;
for(y=5;y<=20;y++){
while (a<=4) {
r=random(100);
if
((r>0)&&(r<=20)){
B[a]=r;
gotoxy(18,e);cout<<r;
re=r;
a=a++;
e=e+3; }}}
randomize();
e=4;
for(y=5;y<=20;y++){
while (q<=4)
{
r=random(100);
if ((r>20)&&(r<=40)){
I[q]=r;
e=e+3;
q++;
gotoxy(29,e);cout<<r;}}}
randomize();
e=4;
for(y=5;y<=20;y++)
{
while (m<=4)
{
r=random(100);
if ((r>40)&&(r<=60)){
N[m]=r;
e=e+3;
m++;
gotoxy(40,e);cout<<r; }}}
randomize();
e=4;
for(y=5;y<=20;y++){
while (p<=4){
r=random(100);
if ((r>60)&&(r<=80)){
G[p]=r;
e=e+3;
p++;
gotoxy(51,e);cout<<r;}}}
randomize();
e=4;
for(y=5;y<=20;y++){
while (w<=4){
r=random(100);
if ((r>80)&&(r<=100)){
O[w]=r;
e=e+3;
w++;
gotoxy(62,e);cout<<r;
}
}}gotoxy(37,13); cout<<" 0 ";
gotoxy(ve,2);printf("ヘ");
gotoxy(ve,4);printf("ヘ");
gotoxy(15,3);cout<<" B I N G O";}
int jo;
gotoxy(13,jo);printf("イ");
gotoxy(68,jo);printf("イ"); }
gotoxy(13,2);printf("ノ");
gotoxy(13,4);printf("ネ");
gotoxy(68,2);printf("サ");
gotoxy(68,4);printf("シ");
gotoxy(x,21);printf("ヘ");
gotoxy(x,5);printf("ヘ");}
gotoxy(x1,17);printf("ヘ");
gotoxy(x1,8);printf("ヘ");}
gotoxy(x2,14);printf("ヘ");
gotoxy(x2,11);printf("ヘ");}
gotoxy(35,y2);printf("イ");
gotoxy(56,y2);printf("イ");}
gotoxy(13,y);printf("イ");
gotoxy(68,y);printf("イ");}
gotoxy(25,y1);printf("イ");
gotoxy(45,y1);printf("イ");}
gotoxy(13,5);printf("ノ"); gotoxy(68,5);printf("サ
"); gotoxy(13,21);printf("ネ");
gotoxy(68,21);printf("シ");gotoxy(25,5);printf("ヒ
"); gotoxy(35,5);printf("ヒ");
gotoxy(45,5);printf("ヒ"); gotoxy(56,5);printf("ヒ
"); gotoxy(25,21);printf("ハ");
gotoxy(35,21);printf("ハ");gotoxy(45,21);printf("
ハ");gotoxy(56,21);printf("ハ");
}while(toupper(u)=='S');
}
if(toupper(u)=='N')
break;
case 'C':
{char
palabra[20],letra,auxcad[20],c[20];
int
termino=0,contador=0,flat,error = 0,s,k,r,i,j;
clrscr();
gotoxy(25,1);printf("EL AHORCADO");
strcpy(auxcad,palabra);
clrscr();
for( s = 0; s <
strlen(palabra);s++){
c[s] = '-'; //
Pasa de a minuscula
palabra[s] =
tolower(palabra[s]);
auxcad[s] =
tolower(auxcad[s]);}
do{ clrscr();
printf("[");
flat = 0;
for(k = 0; k <
strlen(palabra);k++){
if(letra ==
auxcad[k]){
c[k] =
auxcad[k]; }}
for(r = 0; r <
strlen(palabra);r++){
printf("%c",c[r]);}
printf("]
Ingrese letra:");
fflush(stdin);
scanf("%c",&letra);
letra =
tolower(letra);
for(i = 0;
i < strlen(palabra); i++){
if(letra
== palabra[i]){
palabra[i]
= '0';
flat = 1;
contador+
+;}}
if(flat ==
0){
error +=
1;
if(palabra[j] == '0'){
termino +=
1;}} if(termino == strlen(palabra))
for(int
q=1;q<16;q++){
textcolor(q);
clrscr();
gotoxy(18,12);
cprintf("GANASTE"); delay(200); }
else
printf("\n イ イ Perdiste la palabra era [%s] イ イ",auxcad);
delay(200); break; }
case 'R':
bandera=FALSE;
puts("\n");
break;
}//swich
}while(bandera);
break;
case'B':do{ clrscr();
gotoxy(23,3);puts("ヘヘヘヘヘヘヘヘヘヘヘ
ヘヘヘヘヘヘヘヘヘヘヘヘヘヘ");
gotoxy(27,4); printf("PROCESO
DE REGISTRO");
gotoxy(23,5);puts("ヘヘヘヘヘヘヘヘヘヘヘ
ヘヘヘヘヘヘヘヘヘヘヘヘヘヘ");
gotoxy(15,8); printf("A-
REGISTRAR CLIENTE");
gotoxy(41,8); printf("B-BUSCAR
CLIENTE");
gotoxy(15,11); printf("C-
MODIFICAR CLIENTE");
gotoxy(41,11); printf("D-
ELIMINAR DE REGISTRO");
gotoxy(15,15); printf("R-
REGRESAR");
gotoxy(15,17); printf("Ingrese
opcion: ");
do{
op=toupper(getch());
if(!
strchr("ABCDR",op))
putchar('\a');
else
break;
}while(TRUE);
bandera=TRUE;
switch(op){
puts("\n");
break;}
} while(bandera);
break;
case 'C': creditos();
exit(0);}
}while(TRUE);
}
void guardar_c()
{
FILE *pt;
pt=fopen("clientes.dat","a");
if(fopen==NULL)
{
clrscr();
printf("Error al Abrir El ARCHIVO...");
getch();
}
else
{
clrscr();
gotoxy(20,5); printf("JUGADOR");
gotoxy(10,10); printf("Nombre o <Alias>: ");
scanf("%s",nomb);
gotoxy(10,13); printf("Apellido: ");
scanf("%s",ape);
gotoxy(10,16); printf("Cedula: ");
scanf("%s",ced);
gotoxy(10,18); printf("Telefono: ");
scanf("%s",telefono);
gotoxy(10,20); printf("Forma de pago: ");
scanf("%s",pago_form);
gotoxy(10,22); printf("Contrase: ");
scanf("%s",nom_con);
fprintf(pt,"%s %s %s %s %s
%s\n",nomb,ape,ced,telefono,pago_form,nom_con);
}
fclose(pt);
clrscr();
gotoxy(15,19);printf("DATOS GUARDADOS");
getch();
}
void buscar_c()
{
FILE *pt;
int aux=0;
char cedt[15];
if(!(pt=fopen("clientes.dat","r")))
{
clrscr();
printf("No existen Datos Almacenados");
getch();
}
else
{
clrscr();
gotoxy(20,5); printf("Jugador");
gotoxy(6,10); printf("Ingrese cedula para buscar en registro:
");
scanf("%s",cedt);
aux=0;
fscanf(pt,"%s %s %s %s %s
%s",nomb,ape,ced,telefono,pago_form,nom_con);
while(!feof(pt))
{
if(strcmp(ced,cedt)==0)
{
clrscr();
gotoxy(20,5); printf("Jugador");
gotoxy(15,10); printf("Cliente Registrado:");
gotoxy(9,13); printf("Nombre:\t
%s",strupr(nomb));
gotoxy(9,14); printf("Apellido:\t
%s",strupr(ape));
gotoxy(9,15); printf("Cedula:\t %s",ced);
gotoxy(9,16); printf("Telefono:\t
%s",telefono);
gotoxy(9,17); printf("Tipo de pago:
%s",pago_form);
aux=1;
break;
}
else
{
fscanf(pt,"%s %s %s %s %s
%s",nomb,ape,ced,telefono,pago_form,nom_con);
}
}
fscanf(pt,"%s %s %s %s %s
%s",nomb,ape,ced,telefono,pago_form,nom_con);
}
if(aux==0)
{
clrscr();
gotoxy(12,3);printf("POSIBLEMENTE NO SE ENCUENTRA
REGISTRADO!!!...");
}
getch();
fclose(pt);
return;
}
void modificar_c()
{
FILE *pt1,*temp;
char cedt[20];
int op4,ax1=0;
temp=fopen("temporal.dat","w");
if(!(pt1=fopen("clientes.dat","r")))
{
clrscr();
printf(" Imposible Abrir archivo..");
getch();
exit(0);
}
else
{
clrscr();
gotoxy(20,5); printf("Jugador");
gotoxy(10,10); printf("ingrese Cedula Del Cliente a Modificar: ");
scanf("%s",cedt);
fscanf(pt1,"%s %s %s %s %s
%s",nomb,ape,ced,telefono,pago_form,nom_con);
ax1=0;
while(!feof(pt1))
{
if(strcmp(ced,cedt)==0)
{
clrscr();
gotoxy(20,5); printf("Jugador");
gotoxy(5,9); printf("Cedula Encontrada");
gotoxy(10,11); printf("Que Desea Modificar?");
gotoxy(12,13); printf("Pulse (n) para modificar NOMBRE");
gotoxy(12,14); printf("Pulse (a) para modificar
APELLIDO");
gotoxy(12,15); printf("Pulse (c) para modificar CEDULA");
gotoxy(12,16); printf("Pulse (t) para modificar TODO");
gotoxy(14,18); printf("Datos del Cliente:");
gotoxy(16,20); printf("Nombre: %s",strupr(nomb));
gotoxy(16,21); printf("Apellido: %s",strupr(ape));
gotoxy(16,22); printf("Cedula: %s",ced);
gotoxy(16,23); printf("Telefono: %s",telefono);
gotoxy(16,24); printf("Tipo de pago: %s",pago_form);
gotoxy(16,25); printf("Contrase:\t******");
gotoxy(19,27); printf("\nIntruduzca campo a modificar:
");
op4=getche();
if(op4!='n'&&op4!='a'&&op4!='c'&&op4!='t')
{
getch();
menu();
}
switch(op4)
{
case'n':
{
clrscr();
gotoxy(20,5); printf("Jugador");
printf("\n\n\n %s %s %s",nomb,ape,ced);
printf("\n Ingrese Nuevo Nombre para el Jugado: ");
scanf("%s",nomb);
printf("\n\n\n\n Nuevos Datos Son:");
printf("\n\n\n %s %s
%s",strupr(nomb),strupr(ape),ced);
fprintf(temp,"%s %s %s %s %s
%s\n",nomb,ape,ced,telefono,pago_form,nom_con);
ax1=1;
printf("\n\n NOMBRE EDITADO");
getch();
break;
}
case'a':
{
clrscr();
gotoxy(20,5); printf("Jugador");
printf("\n\n\n %s %s %s",nomb,ape,ced);
printf("\n Ingrese Nuevo Apellido para el Cliente: ");
scanf("%s",ape);
printf("\n\n\n\n Nuevos Datos Son:");
printf("\n\n\n %s %s
%s",strupr(nomb),strupr(ape),ced);
fprintf(temp,"%s %s %s %s %s
%s\n",nomb,ape,ced,telefono,pago_form,nom_con);
ax1=1;
printf("\n\n APELLIDO EDITADO");
getch();
break;
}
case'c':
{
clrscr();
gotoxy(20,5); printf("Jugador");
printf("\n\n\n %s %s %s",nomb,ape,ced);
printf("\n Ingrese Nueva CEDULA: ");
scanf("%s",ced);
printf("\n\n\n\n Nuevos Datos Son:");
printf("\n\n\n %s %s %s",nomb,ape,ced);
fprintf(temp,"%s %s %s %s %s
%s\n",nomb,ape,ced,telefono,pago_form,nom_con);
ax1=1;
printf("\n\n CEDULA EDITADA");
getch();
break;
}
case't':
{
clrscr();
gotoxy(20,5); printf("Jugador");
printf("\n\n\n %s %s %s",nomb,ape,ced);
printf("\n\n\nModificara todo el campo...");
guardar_c();
ax1=1;
printf("\n\n EDITADO TODO EL CAMPO");
getch();
break;
}
}
}
else
{
fprintf(temp,"%s %s %s %s %s
%s\n",nomb,ape,ced,telefono,pago_form,nom_con);}
fscanf(pt1,"%s %s %s %s %s
%s",nomb,ape,ced,telefono,pago_form,nom_con);
}
if(ax1==0)
{ clrscr();
printf("\n NO EXISTE NINGUN");
printf("\n REGISTRO CON ESE NUMERO DE CEDULA");
getch();
}
}
fclose(pt1);
fclose(temp);
remove("clientes.dat");
rename("temporal.dat","clientes.dat");
return;
}
void eliminar_c()
{
FILE *pt1,*temp;
char cedt[20],con[20];
int ax1=0;
temp=fopen("temporal.dat","w");
if(!(pt1=fopen("clientes.dat","r")))
{
clrscr();
printf(" Imposible Abrir archivo..");
getch();
exit(0);
}
else
{
clrscr();
gotoxy(20,5); printf("Jugador");
gotoxy(10,10); printf("ingrese cedula para buscar en Registro: ");
scanf("%s",cedt);
gotoxy(10,12); printf("ingrese contase para para proceder a
eliminar: ");
scanf("%s",con);
fscanf(pt1,"%s %s %s %s %s
%s",nomb,ape,ced,telefono,pago_form,nom_con);
ax1=0;
while(!feof(pt1))
{
if(strcmp(ced,cedt)==0&&strcmp(nom_con,con)==0)
{
clrscr();
gotoxy(20,5); printf("Jugador");
gotoxy(5,9); printf("CLIENTE ENCONTRADO");
gotoxy(14,11); printf("Datos del Cliente:");
gotoxy(16,12); printf("Nombre: %s",strupr(nomb));
gotoxy(16,13); printf("Apellido: %s",strupr(ape));
gotoxy(16,14); printf("Cedula: %s",ced);
gotoxy(16,15); printf("Telefono: %s",telefono);
gotoxy(16,16); printf("Tipo de pago: %s",pago_form);
gotoxy(16,17); printf("Contrase: %s",nom_con);
gotoxy(16,19); printf("ELIMINADO DEL REGISTRO");
gotoxy(16,20); printf("PULSE CUALQUIER TECLA PARA VOLVER AL MENU");
ax1=1;
getch();
}
else
{
fprintf(temp,"%s %s %s %s %s
%s\n",nomb,ape,ced,telefono,pago_form,nom_con);}
fscanf(pt1,"%s %s %s %s %s
%s",nomb,ape,ced,telefono,pago_form,nom_con);
}
if(ax1==0)
{ clrscr();
printf("\n NO EXISTE NINGUN REGISTRO");
printf("\n CON ESOS DATOS INGRESADOS");
getch();
}
fclose(pt1);
fclose(temp);
remove("clientes.dat");
rename("temporal.dat","clientes.dat");
return;
}
//FUNCIONES PARA 3 EN RAYA
/*Inicializar la matriz*/
void juego(void){
int i, j;
for(i=0; i<3; i++)
{
for(j=0; j<3; j++)
{
matriz[i] [j] = ' ';
}
}
}
x=x-1; y=y-1;
//Fin
}
/*Obtener un movimiento de la computadora*/
void maquina(void)
{
int i, j;
if(i*j==9)
{
printf ("EMPATE.\n");
exit(0);
}
else matriz[i] [j] = 'O';
//Fin
}
char verificar(void)
{
int i;
for(i=0; i<3; i++) /*verificar filas*/
{
if(matriz[i][0] == matriz[i][1] && matriz[i][0]
== matriz[i][2]) return matriz[i][0];
}
void creditos()
{ // efecto letra por letra y cambio de color en creditos
int i;
char nombre[1000]="INTEGRANTES:BRAVO JONATHAN \nCHUGA
JHONNY \nUSHINA ALEX";
textmode(C40);
textcolor(CYAN);
gotoxy(5,18);
cprintf("DOCENTE: Ing. MENESES");
gotoxy(2,2);
textcolor(BROWN);
cprintf("]]ESUELA POLITECNICA DEL EJERCITO[[\n\n \t\t\t\tFUNDAMENTOS DE
PROGRAMACION\t\t\t");
gotoxy(2,10);
textcolor(GREEN);
delay(750);
for(i=0;i<=strlen(nombre);i++)
{
cprintf("%c",nombre[i]);
delay(100);
}
delay(2000);
return;
}
PRUEBAS Y ANÁLISIS DE RESULTADOS.
Después de realizar la respectiva compilación del presente programa se ha podido
comprobar q no presenta ningún tipo de error en su síntesis ni en su ejecución.
El programa presenta los resultados esperados por lo que el proyecto ha sido todo un
éxito.
CONCLUSIONES
Se logró una comprensión profunda de lo que es realizar programas utilizando el
lenguaje de programación C++.
RECOMENDACIONES.
Declarar todas las variables q se van a utilizar siempre teniendo en cuenta de que
tipo son para que al momento de compilar no nos produzca error.