Práctica # 6
Transcripción
Práctica # 6
Fecha de efectividad: _______________ UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA (UNIDAD MEXICALI) DOCUMENTO DEL SISTEMA DE CALIDAD Formatos para prácticas de laboratorio CARRERA PLAN DE ESTUDIO CLAVE ASIGNATURA NOMBRE DE LA ASIGNATURA LSC 2003-1 5032 Lenguaje de Programación Estructurada PRÁCTICA No. LABORATORIO DE 6 NOMBRE DE LA PRÁCTICA DURACIÓN (HORA) Lic. En Sistemas Computacionales Funciones (uso de archivos makefile) 4 1. INTRODUCCIÓN El lenguaje C esta basado en el concepto de bloques. Un bloque es una subrutina que contiene una o más sentencias de C. Cada función tiene un nombre y ejecuta una tarea específica. En general se le puede dar cualquier nombre a las funciones excepto main() que es la función principal. Las funciones permiten al programador modularizar un programa. 2. OBJETIVO (COMPETENCIA) Aplicar las funciones en programas para desarrollarlos de una manera eficientemente estructurada. 3. FUNDAMENTO Funciones A cada función del programa se le debe asignar un nombre para poder referirnos a ella cuando deseamos que se ejecute. Si un programa contiene varias funciones, sus definiciones deben aparecer en cualquier orden, pero deben ser independientes unas de otras. Existen dos tipos de funciones: 1. Funciones de biblioteca. Estas son parte de C y el usuario no hace más que utilizarlas. 2. Funciones definidas por el usuario. Creadas por el programador. Todas las variables locales declaradas dentro de una función son conocidas solo en la función en la cual están definidas. La mayor parte de las funciones tienen una lista de parámetros. Los parámetros proporcionan la forma de comunicar información entre funciones. Los parámetros de una función también son variables locales. El uso de funciones definidas por el programador permite dividir un programa grande en un cierto número de componentes más pequeños, cada uno de las cuales con un propósito único e identificable. Uso de archivos make La herramienta make se utiliza para compilar de manera condicional. Esto es, compila archivos fuente cuanto éstos Formuló Revisó Ing. Eva Herrera Ramírez Ing. G. Angélica Flores Rivera L.S.C. Mónica Cristina Lam Mora Maestro Aprobó Coordinador de Programa Educativo Autorizó M.C. Miguel Ángel Martínez Romero Gestión de Calidad Director de la Facultad Código GC-N4-017 Revisión 1 Página 1 de 7 Fecha de efectividad: ______________________ UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA (UNIDAD MEXICALI) DOCUMENTO DEL SISTEMA DE CALIDAD Formatos para prácticas de laboratorio son mas nuevos que el archivo destino. Es de especial importancia esta herramienta cuando se desarrollan aplicaciones grandes que constan de múltiples archivos con código fuente. Al compilar, make es útil por que no solo nos ahorra el tener que escribir una larga línea indicando los archivos que deben compilarse, sino que también es útil debido a que solo compila los archivos que han cambiado desde la última compilación. Esto hace que el tiempo para compilar sea menor que si recompilan todos los archivos cada vez que se hace un cambio pequeño en alguno de ellos. Para utilizar make se debe tener un archivo llamado Makefile que le indique a make lo que debe hacer por medio de una serie de reglas. Una regla tiene la siguiente forma: destino: requisitos . . . instrucción . . . . . . Donde destino normalmente es el nombre del archivo que se generará por un programa; por ejemplo archivos ejecutables o archivos objeto. Un destino también puede ser el nombre de una acción a realizar por ejemplo clean. Un requisito es un archivo que se utiliza como entrada para crear un destino. Un destino muchas veces depende de varios archivos. Una instrucción es un archivo que se utiliza como entrada para crear un destino. Un destino muchas veces depende de varios archivos. Una instrucción es la acción que make realiza. Una regla puede tener más de una instrucción, poniendo cada instrucción en su propia línea. Se debe poner el carácter de tabulador al inicio de cada línea de instrucción. El siguiente listado, muestra un Makefile sencillo que describe la manera en que se crea el archivo ejecutable edit. Se puede ver que el ejecutable depende de 8 archivos de código objeto que a su vez dependen de 8 archivos de código fuente de C y de 3 archivos de encabezado. edit : main.o kbd.o command.o display.o insert.o search.o file.o utils.o cc -o edit main.o kdb.o command.o display.o insert.o search.o files.o utils.o main.o : main.c defs.h cc -c main.c kbd.o : kbd.c defs.h cc -c kbd.c command.o : command.c defs.h command.h cc -c command.c display.o : display.c defs.h buffer.h cc -c display.c insert.o : insert.c defs.h buffer.h cc -c insert.c search.o : search.c defs.h buffer.h cc -c search.c files.o : files.c defs.h buffer.h command.h cc -c files.c utils.o : utils.c defs.h cc -c utils.c clean: rm edit main.o kbd.o command.o display.o insert.o search.o files.o utils.o Para generar el archivo objeto utils.o se verifican los archivos utils.c y utils.h de los cuales depende. La instrucción Código GC-N4-017 Revisión 1 Página 2 de 7 Fecha de efectividad: ______________________ UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA (UNIDAD MEXICALI) DOCUMENTO DEL SISTEMA DE CALIDAD Formatos para prácticas de laboratorio para compilar contiene el parámetro -c que le indica al compilador que solo debe generar el código objeto y no llegar al ejecutable. (La extensión defaul de los archivos código objeto es .o bajo Linux. La regla clean provocará que se borren todos los archivos objeto así como el ejecutable. A su vez, esto provoca que se recompilen todos los archivos con código fuente. Para utilizar este makefile para crear el ejecutable edit, solo se debe escribir make. Para utilizarlo para borrar el ejecutable y los objeto, se debe escribir make clean. La herramienta make cuenta con muchas otras funciones que permiten que la creación de ejecutables sea sencilla y rápida. Se recomienda consultar el manual que se encuentra en la sección de referencias para obtener mayor información sobre otras opciones que se pueden dar en los Makefiles. Ejemplo: El siguiente es un ejemplo parcial de un programa que realiza la multiplicación de dos matrices de 3X3 de números enteros. Estos son los archivos que se crearon. [aflores@yaqui mult_matriz]$ ls Makefile correr* menu.c menu.o muestra.c muestra.h muestra.o multiplica.c multiplica.h multiplica.o A continuación tenemos el Makefile del programa de multiplicación de matrices que crea el archivo ejecutable llamado correr. Este archivo depende de los archivos de código objeto que a su vez dependen de los de código fuente de C. El archivo menu.c llama a tres funciones que se hicieron en programas independientes a este: la función de captura.c que permite capturar los datos para dos matrices de 3X3 de números enteros, la función de multiplica.c, en la que se realiza la multiplicación de ambas matrices y la función de muestra.c que muestra en pantalla el resultado de la multiplicación. Nota:Recuerde que estos programas son de código fuente de C que se tienen que hacer también los archivos de encabezado. [aflores@yaqui mult_matriz]$ cat Makefile correr: menu.o captura.o multiplica.o muestra.o cc -o correr menu.o captura.o multiplica.o muestra.o menu.o: menu.c cc -c -g menu.c captura.o: captura.c captura.h cc -c -g captura.c multiplica.o: multiplica.c multiplica.h cc -c -g multiplica.c muestra.o: muestra.c muestra.h cc -c -g muestra.c clean: rm *.o *~ correr Código GC-N4-017 Revisión 1 Página 3 de 7 Fecha de efectividad: ______________________ UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA (UNIDAD MEXICALI) DOCUMENTO DEL SISTEMA DE CALIDAD Formatos para prácticas de laboratorio Archivo menu.c #include "captura.h" #include "multiplica.h" #include "muestra.h" #include <stdio.h> int main() { int mat1[3][3]; int mat2[3][3],mat3[3][3]; int op; do { printf("\nMULTIPLICACION DE MATRICES\n"); printf("\n1] Captura de primera matriz\n"); printf("\n2] Captura de segunda matriz\n"); printf("\n3] Multiplica las matrices\n"); printf("\n4] Muestra las matrices\n"); printf("\n5] Salida\n"); scanf("%d",&op); switch(op) { case 1 : captura(mat1); break; case 2 : captura(mat2); break; case 3 : multiplica(mat1,mat2,mat3); break; case 4 : muestra(mat3); break; case 5 : printf("Salida del programa principal"); break; default: printf("Error"); } }while(op!=5); return 0; } Archivo de cabecera mostrar.h. #ifndef MOSTRAR_H #define MOSTRAR_H void mostrar(int [3][3]); #endif4. PROCEDI 4. PROCEDIMIENTO (DESCRIPCIÓN) A) EQUIPO NECESARIO MATERIAL DE APOYO Computadoras con Linux instalado Consultar manual que se encuentra en la sección de referencias para obtener mayor información sobre las opciones que se pueden dar en los Makefiles. Código GC-N4-017 Revisión 1 Página 4 de 7 Fecha de efectividad: ______________________ UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA (UNIDAD MEXICALI) DOCUMENTO DEL SISTEMA DE CALIDAD Formatos para prácticas de laboratorio B) DESARROLLO DE LA PRÁCTICA Primera parte: 1. Cree un directorio en su HOME con el nombre de practica6. 2. En este directorio grabe todos los archivos necesarios para realizar la práctica. 3. Utilice funciones con parámetros con paso por valor. Una para la captura de datos y otra para mostrar los datos. 4. Utilice arreglos unidimensionales (vectores) y bidimensionales (matrices) como parámetros de las funciones. 5. Mostrar en pantalla un menú de opciones como el siguiente: >> M E N U << a)Captura de Datos b)Mostrar Datos c)Salida del Sistema 6. El programa debe de terminar hasta que el usuario de la opción de salida. 7. De la mejor presentación a su programa. 8. Haga todos los archivos de código fuente de C y de encabezado que sean necesarios. 9. Hacer un Makefile que genere el archivo ejecutable. 10. Hacer el ejercicio que le corresponde al día que le toca su laboratorio. Día Lunes 1. Escriba un programa que presente el siguiente menú de opciones: Opción A. Llenar una matriz de datos con las temperaturas promedio de cada uno de los meses del año pasado para las siguientes ciudades: Mexicali, Tijuana, San Felipe y Ensenada. Opción B. Desplegar la matriz de datos, mostrando además de las temperaturas promedio de cada ciudad en cada mes, lo siguiente: - Las temperaturas promedio anuales de cada ciudad. - La ciudad en la que hizo más calor en todo el año. - El mes en el que hizo más frío en la ciudad de Mexicali. Opción C. Salir Día Martes 2. Escriba un programa para llevar el registro de las calificaciones de la materia de Lenguaje de programación Estructurada, para esto se presentarán las siguientes opciones. Opción A. Pedir los siguientes datos para un máximo de 50 alumnos: Grupo, nombre, matricula, calificación de cada parcial (los cuales son 3), calificación del proyecto final y calificación de tareas. Opción B. Desplegar la siguiente información, para cada alumno: - Nombre - Matricula - Calificaciones - Promedio Final - Si el alumno aprobó, quedó sin derecho o tendrá que hacer examen extraordinario. Los criterios para el promedio del alumno son los siguientes: Los parciales tendrán un valor del 70% de la calificación final, Las tareas el 10% de la calificación final y el proyecto el 20% de la calificación final. Código GC-N4-017 Revisión 1 Página 5 de 7 Fecha de efectividad: ______________________ UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA (UNIDAD MEXICALI) DOCUMENTO DEL SISTEMA DE CALIDAD Formatos para prácticas de laboratorio Día Miércoles 3. Se requiere un programa para llevar el registro de los libros de la Editorial McGrawHill para 6 diferentes librerías de Mexicali. El programa constará del siguiente menú de opciones: Opción A. En esta opción se registrarán los datos de cada libro: ISBN, Nombre, Autor, Cantidad de libros en cada una de las librerías y Precio. Opción B. En esta opción se desplegarán los datos de los libros leídos, además del total de cada uno de los libros repartidos en las 6 librerías. Opción C. Salir Día Jueves 4. Realizar un programa para generar un concentrado de consumo de una compañía de servicio de energía eléctrica de 5 diferentes usuarios. El programa mostrará un menú con las siguientes opciones: Opción A. Pedir el número de medidor, el nombre del usuario, el número de mes hasta el que se desea imprimir los consumos de energía eléctrica y el consumo en watts de cada mes para cada usuario. Opción B. En esta opción se desplegarán los datos de los cinco usuarios capturados, además del consumo total por mes de todos los usuarios, determinar en que mes se consumió más energía eléctrica en general y que usuario consume más este servicio. Opción C. Salir Día Viernes 5. Hacer un programa que calcule la puntuación obtenida de 10 participantes en la modalidad de Investigación para el concurso de Ciencia y Tecnología a nivel secundaria. El programa mostrará un menú con las siguientes opciones: Opción A. Pedir el nombre del participante, clave escolar de la secundaria que representan, dar una puntuación de 0 a 5 para los criterios a evaluar, (1.Originalidad, 2.Presentación del Tema, 3.Contenido temático). Opción B. En esta opción se desplegarán los datos de los diez participantes capturados, el total de los puntos obtenidos por cada participante, desplegar los tres primeros lugares y quienes los ganaron. Opción C. Salir Código GC-N4-017 Revisión 1 Página 6 de 7 Fecha de efectividad: ______________________ UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA (UNIDAD MEXICALI) DOCUMENTO DEL SISTEMA DE CALIDAD Formatos para prácticas de laboratorio C) CÁLCULOS Y REPORTE Preguntas sobre la práctica de forma INDIVIDUAL, que hará el maestro al finalizar la práctica a cada alumno. 5. RESULTADOS Y CONCLUSIONES Los resultados serán solo a nivel visualización, no serán impresos, éstos podrán variar dependiendo de los ejercicios que el alumno realice. 6. ANEXOS 7. REFERENCIAS Código GC-N4-017 Revisión 1 Página 7 de 7