Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


practica 6 arrays, Ejercicios de Informática

Asignatura: MTP 1, Profesor: , Carrera: Ingeniería Técnica de Informática de Gestión, Universidad: UJAEN

Tipo: Ejercicios

Antes del 2010

Subido el 19/12/2007

helena_vv
helena_vv 🇪🇸

3.9

(14)

59 documentos

1 / 4

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Metodología y Tecnología de la
Programación I
Práctica 6: Arrays
Objetivos de la práctica:
¾ Entender la necesidad de utilizar estructuras de datos.
¾ Aprender a utilizar arrays unidimensionales y multidimensionales.
¾ Comprender qué información se puede representar con los arrays y qué
información no.
¾ Identificar los problemas en los que los arrays constituyen la estructura de
datos que mejor se adapta para resolverlos.
¾ Aprender a utilizar arrays como parámetros de funciones
Requisitos previos:
¾ Entender el funcionamiento del tipo estructurado Array.
¾ Conocer la sintaxis de declaración y manejo de arrays.
Actividades básicas:
1. Un número primo es un entero mayor que 1 cuyos únicos divisores enteros
positivos son el 1 y él mismo. Un método para encontrar todos los números
primos en un rango de 1 a N es el conocido como Criba de Eratóstenes.
Considere la lista de números entre el 2 y N. 2 es el primer número primo,
pero sus múltiplos (4, 6, 8, ...) no lo son, por lo que se tachan de la lista. El
siguiente número, después del 2 que no está tachado es el 3, el siguiente
primo. Entonces tachamos de la lista todos los múltiplos de 3 (6, 9, 12, ...). El
siguiente número que no está tachado es el 5, el siguiente primo, y entonces
tachamos todos los múltiplos de 5 (10, 15, 20, ...). Repetimos este
procedimiento hasta que lleguemos al primer elemento de la lista que no esté
tachado y cuyo cuadrado sea mayor que N. Todos los números que no se han
tachado en la lista son los primos entre 2 y N.
2. En un congreso cuya duración es de 5 días, tienen lugar conferencias en 5
salas. Se desea saber:
a. El total de congresistas que asisten a cada una de las salas.
b. El total de congresistas asistentes cada día al congreso.
c. La media de asistencia a cada sala.
d. La media de asistencia diaria.
e. Imprimir una tabla mostrando la diferencia porcentual ( + ó -) respecto a
la media de asistencia a cada sala.
Como datos de entrada tendremos el número de asistentes para las diferentes
salas, para cada uno de los días del congreso. Diseñar un programa que
permita el cálculo de toda esta información.
3. Dada una matriz NOTAS cuyo elemento NOTAS[I,J] contiene la calificación del
J-ésimo problema de un examen del I-ésimo estudiante, y un factor de
ponderación PESOS, cuyo elemento PESOS[J] denota la ponderación
correspondiente al J-ésimo problema de un examen, diseñar un programa que
construya un vector ALUMNO, de tal forma que ALUMNO[I] contenga la
calificación final del I-ésimo estudiante. El programa debe leer los datos de
pf3
pf4

Vista previa parcial del texto

¡Descarga practica 6 arrays y más Ejercicios en PDF de Informática solo en Docsity!

Metodología y Tecnología de la

Programación I

Práctica 6: Arrays

Objetivos de la práctica: ¾ Entender la necesidad de utilizar estructuras de datos. ¾ Aprender a utilizar arrays unidimensionales y multidimensionales. ¾ Comprender qué información se puede representar con los arrays y qué información no. ¾ Identificar los problemas en los que los arrays constituyen la estructura de datos que mejor se adapta para resolverlos. ¾ Aprender a utilizar arrays como parámetros de funciones Requisitos previos: ¾ Entender el funcionamiento del tipo estructurado Array. ¾ Conocer la sintaxis de declaración y manejo de arrays.

Actividades básicas:

  1. Un número primo es un entero mayor que 1 cuyos únicos divisores enteros positivos son el 1 y él mismo. Un método para encontrar todos los números primos en un rango de 1 a N es el conocido como Criba de Eratóstenes. Considere la lista de números entre el 2 y N. 2 es el primer número primo, pero sus múltiplos (4, 6, 8, ...) no lo son, por lo que se tachan de la lista. El siguiente número, después del 2 que no está tachado es el 3, el siguiente primo. Entonces tachamos de la lista todos los múltiplos de 3 (6, 9, 12, ...). El siguiente número que no está tachado es el 5, el siguiente primo, y entonces tachamos todos los múltiplos de 5 (10, 15, 20, ...). Repetimos este procedimiento hasta que lleguemos al primer elemento de la lista que no esté tachado y cuyo cuadrado sea mayor que N. Todos los números que no se han tachado en la lista son los primos entre 2 y N.
  2. En un congreso cuya duración es de 5 días, tienen lugar conferencias en 5 salas. Se desea saber: a. El total de congresistas que asisten a cada una de las salas. b. El total de congresistas asistentes cada día al congreso. c. La media de asistencia a cada sala. d. La media de asistencia diaria. e. Imprimir una tabla mostrando la diferencia porcentual ( + ó -) respecto a la media de asistencia a cada sala.

Como datos de entrada tendremos el número de asistentes para las diferentes salas, para cada uno de los días del congreso. Diseñar un programa que permita el cálculo de toda esta información.

  1. Dada una matriz NOTAS cuyo elemento NOTAS[I,J] contiene la calificación del J-ésimo problema de un examen del I-ésimo estudiante, y un factor de ponderación PESOS, cuyo elemento PESOS[J] denota la ponderación correspondiente al J-ésimo problema de un examen, diseñar un programa que construya un vector ALUMNO, de tal forma que ALUMNO[I] contenga la calificación final del I-ésimo estudiante. El programa debe leer los datos de

entrada para N estudiantes y M problemas, así como las M ponderaciones para cada problema.

Actividades de refuerzo:

  1. El producto escalar de dos vectores A y B de magnitud N se define como:

n n

n

i

A • B =∑ ai bi = ab + ab + + ab

=

1

a) Diseñar una función con tres parámetros A, B y N, que calcule el producto escalar

b) Si el producto escalar de dos vectores es cero se dice que los vectores son ortogonales. Escribir un programa que llame a la función de la parte a) y que imprima VECTORES ORTOGONALES cuando el valor que regrese de la función sea cero.

  1. Escribir un programa que lea un vector A de N elementos (N es un dato entero suministrado por el usuario). Una vez leído el vector, el programa debe permitir al usuario elegir a través de un menú la ejecución de las siguientes opciones:

a) Volver a leer los datos del vector

b) Calcular el elemento mayor y menor del vector

c) Calcular la suma de los elementos que componen el vector (ΣA[i]=A[1]+A[2]+…+A[N])

d) Calcular la media de los elementos que componen el vector (ΣA[i]/N)

e) Calcular el producto de los elementos que componen el vector (ΠA[i]=A[1]A[2]…*A[N])

f) Crear un nuevo vector que contenga los elementos del array transpuestos, es decir, B[1] contiene el elemento A[N], B[2] contiene el elemento A[N-1], …, B[N] contiene el elemento A[1]

g) Crear un nuevo vector que contenga los elementos del vector A pero con una posición corrida, es decir, B[1] contiene el elemento A[2], B[2] contiene el elemento A[3], …, B[N] contiene el elemento A[1]

h) Crear un nuevo vector que contenga los elementos del vector A pero con M posiciones corridas (siendo M<N), es decir, B[1] contiene el elemento A[M+1], B[2] contiene el elemento A[M+2], …

i) Salir del programa

  1. Diséñese una función SIGMA para calcular la suma de los n elementos del vector X (X y n son parámetros de la función).

n i n

i

x x x x

c) Si el número es -1, significa que la emisión de votos ha finalizado.

d) Si el número es distinto a los anteriores, el voto se considera “voto nulo”.

El programa debe mostrar el número total de votos emitidos, el número total de votos nulos, el número total de votos en blanco, el número de votos conseguidos por cada candidato mostrando además su nombre. Por último, el algoritmo debe determinar los candidatos que ha resultado elegidos como delegado y subdelegado mostrando su nombre DNI y fecha de nacimiento.

  1. Un observatorio astronómico toma datos de sus telescopios, dividiendo el cielo en casillas. En cada observación se toman datos de la intensidad lumínica de cada área del cielo (como un dato entero entre 0 y 9), pretendiendo con ello determinar las estrellas. Según sus cálculos, la observación encuentra una estrella cuando, además de en la propia casilla, existen tres casillas adyacentes (de las 8 adyacentes posibles) en las que la intensidad lumínica supera cierto umbral (el umbral es introducido por el usuario a través del teclado). Para afirmar con rotundidad que el objeto es una estrella, dichas condiciones deben darse en tres observaciones seguidas. Realizar un programa que encuentre estrellas en el cielo tras tres observaciones.
  2. Realizar un programa que implemente el juego del BUSCAMINAS. Dicho juego consiste en lo siguiente: Existe una matriz bidimensional de NxM en la que se sitúan aleatóriamente K minas. Una vez distribuidas las minas en el tablero, el jugador especifica una casilla de la tabla, de manera que, si en dicha casilla existe una mina, el juego termina. Si en la casilla no existe mina, el programa debe devolver el número de minas que se encuentran en las casillas adyacentes a la casilla en cuestión, entendiendo por adyacentes todas aquellas casillas que se encuentren encima, debajo, a la izquierda, a la derecha, y en las cuatro esquinas. El juego se gana cuando el jugador es capaz de levantar todas las casillas libres del tablero sin haber “explotado” con ninguna mina.

Cuestionario:

  1. En el ejercicio 1, ¿cómo se han tachado los números?
  2. En el ejercicio 1 ¿Qué valores se devuelven cuando la entrada es N=1? ¿y con N=2?
  3. Si en el ejercicio 2 el número de días y/o el número de salas cambiase, ¿qué habría que cambiar en el programa?
  4. Después de leer todos los datos del ejercicio 3 ¿cuánto debe valer ΣPESOS[J], con J=1..M?
  5. En el ejercicio 3, si se desease almacenar no solo las notas de los alumnos para un único examen sino para varios exámenes (todos del mismo tipo, es decir todos con M problemas), ¿cómo definirías la estructura de datos a utilizar?. Razonar la respuesta.