Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1/10
Fundamentos de Informática PRÁCTICA 9. Otros aspectos de la programación en C
de ellos poseerá la función main. El nombre del fichero ejecutable sera el mismo del
fichero de proyecto, pero lógicamente con la extensión “.EXE”.
Es importante saber que los distintos módulos de la aplicación deben poder
compilarse de forma independiente. Es decir, como en C el proceso de compilación se
realiza completo antes de pasar al enlazado de los módulos, cada módulo debe
compilarse correctamente; aunque sólo tendrá sentido cuando las referencias a otros
módulos sean conocidas, lo cual ocurrirá después de que el enlazador cree el programa
final (“.EXE”).
El proceso de creación de un fichero de proyecto varía dependiendo del
compilador utilizado. Mostraremos aquí el proceso a seguir en el caso del compilador
Borland C++.
Para crear un fichero de proyecto dentro del compilador Borland C++ habrá que
seleccionar la opción “Project” dentro del menú principal. Al elegir esta opción se
desplegará otro menú. La opción “Open Project” permite crear un fichero de proyecto
o abrir uno ya existente. Al seleccionar esta opción aparece un cuadro de diálogo similar
al usado para abrir o guardar un fichero. Si se indica un nombre de fichero de proyecto
no existente éste se creará, en caso contrario se abrirá el fichero indicado.
En cualquier caso, tras seleccionar el fichero de proyecto se abrirá en pantalla
una ventana de proyecto. Dentro de la misma aparece el nombre de los ficheros de
implementación (“.C”) que componen el proyecto, así como otros datos asociados con
los mismos (número de líneas que poseen, su localización en el disco,...). Si la ventana
de proyecto no apareciera puede obtenerse mediante la opción “Project” perteneciente
al menú “Window”.
Para añadir nuevos ficheros de implementación a nuestro proyecto se utilizaría la
opción “Add item” perteneciente también al menú “Project”. Al seleccionar esta
opción aparecerá un cuadro de diálogo similar al usuado para abrir o guardar un fichero,
pudiendo seleccionar los ficheros de implementación que formarán parte de ese
proyecto. En este cuadro de diálogo, el botón “Add” permite añadir otro fichero de
implementación al proyecto, y el botón “Done” permite finalizar la introducción de los
ficheros de implementación.
A partir de este momento, la compilación, una vez abierto el proyecto,
conllevaría la compilación de todos los ficheros de implementación indicados, para
posteriormente enlazarlos formando el ejecutable final de nuestro programa. Para esta
compilación sólo es necesario que se encuentre abierto el fichero de proyecto. No es
necesario que los ficheros de implementación se encuentren abiertos en ventanas.
El menú “Project” presenta otras opciones de interés como: “Close project”
(cierra el proyecto actual), “Delete item” (elimina un fichero de implementación de
nuestro proyecto), “Include files” (muestra los ficheros de cabecera “.h” que se han
incluido en un fichero de implementación de nuestro proyecto), etc.
2/10
Fundamentos de Informática PRÁCTICA 9. Otros aspectos de la programación en C
int main(void)
{
FILE * Fichero;
TipoRegistro Registro;
int i;
/* Cerrar fichero */
fclose(Fichero);
printf("\n¡Fichero creado! Pulse una tecla para proceder a su lectura...");
getch();
clrscr(); // Borra la pantalla
3/10
Fundamentos de Informática PRÁCTICA 9. Otros aspectos de la programación en C
/* Siguiente alumno */
i++;
}
/* Cerrar fichero */
fclose(Fichero);
return(OK);
}
#include <conio.h>
#include <stdio.h>
TipoPila Pila;
*/
4/10
Fundamentos de Informática PRÁCTICA 9. Otros aspectos de la programación en C
Elemento=Pila->Contenido[Pila->PuntCima];
Pila->PuntCima--;
return(Elemento);
}
IniciarPila(&PilaEjemplo);
printf("Introduzca los caracteres en la pila ('.' para finalizar):\n");
ElemEjemplo=getch();
// La inserción de elementos finaliza al introducir un “.” o llenarse la pila
while ((ElemEjemplo != '.') && (! LlenaPila(PilaEjemplo)))
{
InsertarPila(&PilaEjemplo,ElemEjemplo);
putch(ElemEjemplo); // Escribir el carácter, se ha insertado en la pila
ElemEjemplo=getch();
}
printf("\n\rPila:\n");
while (! VaciaPila(PilaEjemplo))
{
ElemEjemplo=SacarPila(&PilaEjemplo);
putch(ElemEjemplo);
}
}
#include <conio.h>
#include <stdio.h>
5/10
Fundamentos de Informática PRÁCTICA 9. Otros aspectos de la programación en C
/* Definimos el tipo para los elementos de la cola, así como una nueva
estructura de datos con el formato de la cola.
La definición de la cola es estática, por lo que sólo necesitamos un
array y un puntero a la cabeza y otro al final de la cola */
typedef char TipoElem; // Aquí se cambiaría fácilmente el tipo de los elementos
typedef struct {TipoElem Contenido[MAXCOLA];
int PuntCabeza;
int PuntFinal;
} TipoCola;
TipoCola Cola;
*/
6/10
Fundamentos de Informática PRÁCTICA 9. Otros aspectos de la programación en C
else FinalSig=Cola.PuntFinal+1;
if (FinalSig == Cola.PuntCabeza) return(SI);
return(NO);
}
IniciarCola(&ColaEjemplo);
printf("Introduzca los caracteres en la cola ('.' para finalizar):\n");
ElemEjemplo=getch();
// La inserción de elementos finaliza al introducir un “.” o llenarse la cola
while ((ElemEjemplo != '.') && (! LlenaCola(ColaEjemplo)))
{
InsertarCola(&ColaEjemplo,ElemEjemplo);
putch(ElemEjemplo); // Escribir el carácter, se ha insertado en la cola
ElemEjemplo=getch();
}
printf("\n\rCola:\n");
while (! VaciaCola(ColaEjemplo))
{
ElemEjemplo=SacarCola(&ColaEjemplo);
putch(ElemEjemplo);
}
}
#include <alloc.h>
#include <conio.h>
#include <stdio.h>
7/10
Fundamentos de Informática PRÁCTICA 9. Otros aspectos de la programación en C
typedef struct {
TipoNodo * PuntCabeza;
} TipoLista;
TipoLista Lista;
*/
PuntAnt=NULL;
PuntAct=Lista.PuntCabeza;
while (PuntAct != NULL)
if (PuntAct->Contenido < Elemento)
{PuntAnt=PuntAct;
PuntAct=PuntAct->PuntSig;
}
else PuntAct=NULL;
return(PuntAnt);
}
8/10
Fundamentos de Informática PRÁCTICA 9. Otros aspectos de la programación en C
9/10
Fundamentos de Informática PRÁCTICA 9. Otros aspectos de la programación en C
free(PuntElem);
}
else return(NOEXISTE); /* Elemento no existe */
}
return(OK); /* Eliminación correcta */
}
Puntero=Lista.PuntCabeza;
while (Puntero != NULL)
{/* Escribir el contenido de cada elemento de la lista, en este caso "putch()"
al ser sólo un carácter */
putch(Puntero->Contenido);
Puntero=Puntero->PuntSig;
}
}
IniciarLista(&ListaEjemplo);
printf("Introduzca los caracteres en la lista ('.' para finalizar):\n");
Retorno=OK;
ElemEjemplo=getch();
// La inserción de elementos finaliza al introducir un “.” o acabarse la memoria
while ((ElemEjemplo != '.') && (Retorno != NOMEM))
{
Retorno=InsertarLista(&ListaEjemplo,ElemEjemplo);
if (Retorno == OK) putch(ElemEjemplo); // Escribir el carácter, insertado en la lista
if (Retorno != NOMEM) ElemEjemplo=getch();
}
putch(13); // Salto de línea (código ASCII 13 = RETURN) para mostrar la lista introducida
VerLista(ListaEjemplo);
10/10