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

Documentos relacionados