Prácticas de Laboratorio
Lugar: Laboratorio AT-220
Día : Todos los martes
Horario: 18:00 - 21:00 hrs.
Ambiente:Linux - Distribución Ubuntu
Práctica 1
Fecha de Elaboración:
Martes 24 de Junio del 2008
Fecha de Limite de Entrega:Martes 1 de Julio del 2008
Lista de Calificaciones:Lista_Practicas1.pdf
- Estudiar las características del Sistema Operativo (S. O.) LINUX.
- Familiarizarse con el S. O. LINUX practicando varios de sus comandos a través de una ventana de “shell”.
- Entender el concepto de compilador y las partes que lo constituyen.
- Aprender a utilizar gcc, el compilador del lenguaje de programación “C” en LINUX.
- Entender los pasos que se deben realizar para generar un programa ejecutable.
- Utilizar el diseño de programación ascendente y descendente en el enfoque de programación modular (enfoque “divide y vencerás”) para la resolución de problemas mediante el uso de módulos que serán traducidos a funciones (y/o procedimientos) en el lenguaje C.
- Definir la declaración e invocación de funciones dentro de un programa fuente.
- Utilizar los mecanismos de paso de parámetros en las funciones para la resolución de subproblemas dentro de un programa.
- Utilizar el mecanismo de valor de regreso que se define en el uso de funciones para devolver el resultado de alguna operación que se desarrollo dentro de una función.
- Determinar como declarar, utilizar y enviar como paso de parámetros, arreglos dentro de un programa.
- Paso de parámetros por valor y por referencia.
Descarga versión del PDF: Practica_1.pdf
"Aviso"
En el reporte incluir el desarrollo y resultado de las actividades 2 y 3.
Práctica 2
Fecha de Elaboración:
Martes 1 de Julio del 2008
Fecha de Limite de Entrega:Martes 8 de Julio del 2008
Lista de Calificaciones:Lista_Practicas2.pdf
- Utilizar comandos dentro del entorno de Linux para facilitar las fases de codificación, compilación, ejecución y pruebas, en el desarrollo de programas.
- Utilizar el diseño de programación ascendente y descendente en el enfoque de programación modular (enfoque “divide y vencerás”) para la resolución de problemas mediante el uso de módulos que serán traducidos a funciones (y/o procedimientos) en el lenguaje C.
- Utilizar el paso de parámetros al programa utilizando gcc.
- Utilizar funciones que permiten determinar el tiempo de ejecución de un programa.
- Implementar los algoritmos de ordenamiento: “Burbuja”, “Inserción Directa” y “Selección Directa”.
- Integrar un mecanismo de medición de tiempo para determinar el desempeño de los algoritmos con distintos datos, con el objetivo de determinar las diferencia del tiempo de respuesta de cada uno de los algoritmos de ordenamiento.
Descarga versión del PDF:
Practica_2.pdf
"Aviso"
En el reporte incluir el desarrollo y resultado de las actividades 2 y 3.
"Ejemplo de Evidencia de Ejecución"
Visualizar
"Recuerdar que para el reporte de la actividad 3 se requiere capturar la evidencia de ejecución de los tres algoritmos para los tres tipos de datos de pruebas que son proporcionados en la práctica"
Práctica 3
Fecha de Elaboración:
Martes 8 de Julio del 2008
Fecha de Limite de Entrega:Martes 15 de Julio del 2008
- Utilizar comandos dentro del entorno de Linux para facilitar las fases de codificación, compilación, ejecución y pruebas, en el desarrollo de programas.
- Utilizar el diseño de programación ascendente y descendente en el enfoque de programación modular (enfoque “divide y vencerás”) para la resolución de problemas mediante el uso de módulos que serán traducidos a funciones (y/o procedimientos) en el lenguaje C.
- Implementar los algoritmos de búsqueda: “Secuencial” y “Binaria”.
- Integrar un mecanismo de medición de tiempo para determinar el desempeño de los algoritmos con distintos datos, con el objetivo de determinar las diferencia del tiempo de respuesta de cada uno de los algoritmos de ordenamiento.
- Integra módulos que permitan la extracción de los datos desde un archivo de texto.
Descarga los archivos de texto: Archivo1.txt
Archivo2.txt
Archivo3.txt
"Aviso"
En el reporte incluir el desarrollo y resultado de las actividades 2 y 3.
Práctica 4
Fecha de Elaboración:
Martes 15 de Julio del 2008
Fecha de Limite de Entrega:Martes 22 de Julio del 2008
Objetivos:
- Utilizar el diseño de programación ascendente y descendente en el enfoque de programación modular (enfoque “divide y vencerás”) para la resolución de problemas mediante el uso de módulos que serán traducidos a funciones (y/o procedimientos) en el lenguaje C.
- Hacer uso de estructura o registros en el lenguaje C, para definir nuevos tipos de datos.
- Utilizar funciones de escritura a un archivo para almacenar la información que se tiene en una lista de registros en memoria a un archivo binario.
- Utilizar funciones de lectura a un archivo para recuperar la información que se tiene en un archivo binario y almacenarla en una lista de registros en memoria.
- Reutilizar y modificar algunos de los algoritmos de búsqueda y algoritmos de ordenamiento para trabajar con la lista de registros.
"Aviso"
En el reporte incluir el desarrollo y resultado de TODAS las actividades .
Práctica 5
Fecha de Elaboración:
Martes 22 de Julio del 2008
Fecha de Limite de Entrega:Martes 29 de Julio del 2008
Objetivos:
- Utilizar el diseño de programación ascendente y descendente en el enfoque de programación modular (enfoque “divide y vencerás”) para la resolución de problemas mediante el uso de módulos que serán traducidos a funciones (y/o procedimientos) en el lenguaje C.
- Utilizar mecanismos de recursividad para el desarrollo de algoritmos que permitan su aplicación.
- Hacer uso de archivos de texto para la extracción de datos con los cuales se trabajarán.
- Utilizar funciones que permitan la asignación dinámica a memoria de un tipo de dato básico.
- Definir los algoritmos de búsqueda y algoritmos de ordenamiento recursivos para trabajar con arreglos.
- Reutilizar los algoritmos de búsqueda y algoritmos de ordenamiento iterativos para trabajar con arreglos.
- Evaluar el desempeño de los algoritmos de ordenamiento y búsqueda de acuerdo al tiempo de ejecución del programa, utilizando las funciones de la librería time.h y el comando de Linux time.
Archivo actividad 1: Actividad1.c
Archivo actividad 2: Plantilla.c
Archivos de Datos: Archivo20.txt
ArchivoAsc1.txt
ArchivoDesc1.txt
ArchivoAlea1.txt
ArchivoAsc2.txt
ArchivoDesc2.txt
ArchivoAlea2.txt
"Avisos"
En el reporte incluir el desarrollo y resultado de TODAS las actividades .
Enviar por correo del curso con copia al correo de la ayudante
SE ENTREGARÁ EL REPORTE Y CÓDIGO FUENTE IMPRESOS EL JUEVES EN EL HORARIO DE ASESORIA DE LA AYUDANTE SUSANA AGUIRRE
Práctica 6
Fecha de Elaboración:
Martes 29 de Julio del 2008
Fecha de Limite de Entrega:Jueves 7 de Agosto del 2008
Objetivos:
- Utilizar el diseño de programación ascendente y descendente en el enfoque de programación modular (enfoque “divide y vencerás”) para la resolución de problemas mediante el uso de módulos que serán traducidos a funciones (y/o procedimientos) en el lenguaje C.
- Utilizar la herramienta make para optimizar y automatizar la creación de proyectos en C bajo el ambiente de Linux
- Implementar la especificación del TDA Lista Secuencial haciendo uso de un arreglo de elementos definido por el usuario.
- Definir e implementar el conjunto de valores que especificaran el TDA Lista.
- Implementar el conjunto de operaciones que permiten manipular el TDA.
Descarga versión del PDF:
Practica_6.pdf
Archivos actividad 1:
Principal.c
LibreriaPrueba.h
Saludos.c
Despedidas.c
Makefile
Archivos actividad 2:
Principal.c
LibTDAListaSec.h
ListaSecuencial.c
Error.c
Makefile
"Avisos"
En el reporte incluir el desarrollo y resultado de TODAS las actividades .
Enviar por correo del curso con copia al correo de la ayudante
SE ENTREGARÁ EL REPORTE Y CÓDIGO FUENTE IMPRESOS
EL JUEVES EN EL HORARIO DE ASESORIA DE LA AYUDANTE SUSANA AGUIRRE
Práctica 7
Fecha de Elaboración:
Martes 5 de Agosto del 2008
Fecha de Limite de Entrega:Jueves 14 de Agosto del 2008
Objetivos:
- Utilizar el diseño de programación ascendente y descendente en el enfoque de programación modular (enfoque “divide y vencerás”) para la resolución de problemas mediante el uso de módulos que serán traducidos a funciones (y/o procedimientos) en el lenguaje C.
- Utilizar la herramienta make para optimizar y automatizar la creación de proyectos en C bajo el ambiente de Linux
- Implementar la especificación del TDA Lista Ligada solicitando al sistema memoria para cada nodo de la lista.
- Definir e implementar el conjunto de valores que especificaran el TDA Lista.
- Implementar el conjunto de operaciones que permiten manipular el TDA.
Descarga versión del PDF:
Practica_7.pdf
"Avisos"
En el reporte incluir el desarrollo y resultado de TODAS las actividades .
Enviar por correo del curso con copia al correo de la ayudante
SE ENTREGARÁ EL REPORTE Y CÓDIGO FUENTE IMPRESOS
EL JUEVES EN EL HORARIO DE ASESORIA DE LA AYUDANTE SUSANA AGUIRRE
Práctica 8
Fecha de Elaboración:
Martes 19 de Agosto del 2008
Fecha de Limite de Entrega:Martes 26 de Agosto del 2008
Objetivos:
- Utilizar el diseño de programación ascendente y descendente en el enfoque de programación modular (enfoque “divide y vencerás”) para la resolución de problemas mediante el uso de módulos que serán traducidos a funciones (y/o procedimientos) en el lenguaje C.
- Utilizar la herramienta make para optimizar y automatizar la creación de proyectos en C bajo el ambiente de Linux
- Implementar la especificación del TDA Pila Secuencial mediante el uso de un arreglo de elementos definidos por el usuario.
- Implementar la especificación del TDA Pila Ligada solicitando al sistema memoria para cada nodo de la lista.
- Definir e implementar el conjunto de valores e implementar el conjunto de operaciones que permiten manipular el TDA para ambas versiones.
- Utilización del TDA para determinar si una cadena de caracteres es un palíndromo.
Descarga versión del PDF:
Practica_8.pdf
"Avisos"
En el reporte incluir el desarrollo y resultado de TODAS las actividades .
Enviar por correo del curso con copia al correo de la ayudante
La práctica se desarrollará en equipo de máximo dos personas.