CI2621 COMPUTACIÓN II PRÁCTICAS Y LABORATORIOS ENE-MAR 08 LABORATORIO 2 (ASIGNACION 1)

Anuncio
CI2621 COMPUTACIÓN II
PRÁCTICAS Y LABORATORIOS ENE-MAR 08
LABORATORIO 2 (ASIGNACION 1)
Funciones, parámetros, alcance y arreglos en Lenguaje C
1. OBJETIVOS:
 Reconocer y construir funciones, integrándolas en un programa.
 Identificar los parámetros por valor y referencia que deben ser pasados a las funciones para que éstas puedan realizar las tareas
para las cuales fueron diseñadas.
 Diferenciar las variables locales, globales y externas, las automáticas y estáticas.
 Utilizar arreglos en programas de lenguaje C, conociendo la forma como se declaran, inicializan, se accede a sus valores y se pasan
como parámetros a las funciones.
2. PRE-LABORATORIO
Antes de entrar al Laboratorio 2 (martes de semana 3) usted debe RESOLVER el siguiente ejercicio:
Escribir un programa que dada una matriz cuadrada M de números enteros y
dimensión d, permita realizar cálculos y modificaciones a la misma,
considerando los elementos de los anillos de la matriz (ver figura). En el
siguiente ejemplo, aparece una matriz de dimensión 6 con sus tres anillos.
Observe que los anillos de una matriz se enumeran de fuera hacia adentro.
Notar también, que cada anillo está formado por dos filas y por dos columnas.
Por ejemplo, para la matriz que se muestra en el ejemplo, si queremos sumar
los elementos del anillo 1, el resultado sería 21.
Para ello, se deberán realizar las siguientes actividades:
a) Declarar una matriz cuadrada de DIM x DIM posiciones, donde DIM es una constante con valor 100.
La matriz debe ser local en la función main.
b) Escribir una función que se encargue de leer del teclado un número entero, validando que sea
mayor que un límite mínimo dado y menor o igual que un límite máximo dado. Esta función servirá
para leer y validar números enteros. El prototipo de la función es el siguiente:
int LeerEntero(int min, int max);
/* PARAMETROS: min corresponde al límite mínimo permitido para el entero
max corresponde al límite máximo permitido para el entero
PRE: min  max
POST: LeerEntero devuelve un entero min  n  max
*/
c) Escribir una función que lea los valores de la matriz. El prototipo de la función es el siguiente:
void LeerMatriz(int matriz[][DIM],int d);
/* PARAMETROS: matriz (entrada-salida) es el arreglo de enteros
d (entrada) es la dimensión del arreglo
PRE: d  DIM
POST: Se ha almacenado en matriz los valores leídos del teclado
*/
d) Escribir una función de nombre CuentaAnillos que calcule y retorne cuántos anillos tiene una
matriz de dimensión d. Determinar cómo sería el prototipo y los comentarios correspondientes a
parámetros, pre y postcondición.
e) Escribir una función de nombre SumarAnillo que reciba una matriz, su dimensión y un número de
anillo, y calcule y retorne la suma de los elementos de ese anillo. Determinar cómo sería el prototipo
y los comentarios correspondientes a parámetros, pre y postcondición.
f)
Escribir el programa principal que realice lo siguiente:
-
Lea la dimensión del arreglo, usando la función LeerEntero.
Lea los valores de la matriz, usando la función LeerMatriz
Calcule y muestre en pantalla el número de anillos que tiene la matriz.
Lea el número del anillo cuyos elementos se desean sumar, usando LeerEntero.
Calcule y muestre en pantalla la suma de los elementos
DEBE ENVIAR POR CORREO ELECTRÓNICO A [email protected],
LABORATORIO EL ARCHIVO FUENTE DE SU PROGRAMA (anillos.c)
ANTES DE
INICIAR
EL
Descargar