ICM00794. Fundamentos de Computación
www.icm.espol.edu.ec/materias/icm00794
Conceptos: Arreglos de una Dimensión
Al disponer de varios de datos de igual tipo pero que están relacionados, tal como una lista de calificaciones de una lección o las edades de los estudiantes, se tiene la necesidad de manejar los datos como un conjunto. El conjunto de datos se maneja como el término “arreglo” que tiene las siguientes características:
- Todos los datos son de igual tipo (enteros, reales, lógicos, etc.)
- Se conoce su “tamaño”, es decir la cantidad de elementos en el arreglo. - El arreglo se identifica por medio del nombre de una variable.
- Cada elemento se identifica por una variable índice que da su posición. Un arreglo se puede representar como una lista de datos enteros:
estudiante edad [estudiante]
1 17
2 21 ← edad del estudiante 2
Tamaño n: 3 19
En éste ejemplo se puede observar que todos los datos de las edades son tipo entero, que todos tienen un nombre en común “edad”. Sin embargo, se puede encontrar la edad de un determinado estudiante mediante su posición en la lista, para el caso mostrado se encuentra que la edad del estudiante 2 en la segunda posición es de 21 años. La cantidad de estudiantes es finita y es representada por la variable n=3. Para el estudiante 2, la edad es edad[2]=21
Otra forma de representar un arreglo con datos tipo real:
Tamaño n=4
día 1 2 3 4
Temperatura[día] 28.6 24.9 26.5 25.1
Temperatura del día 2
Para éste caso, el arreglo contiene las mediciones de temperatura en varios días, para éste caso es de 4 días, por lo que el arreglo es de tamaño 4. Todos los datos son números reales, si se quiere conocer la temperatura de un día específico se usa la variable índice día, con lo que se obtiene el valor de 24.9. Arreglos en algoritmos
En el caso que se usen arreglos, los bloques de ingreso deben reflejar las acciones para llenar los datos. Por ejemplo la primera pregunta para llenar una lista de notas de estudiantes es conocer cuántos se encuentran registrados. Por lo que primero se preguntará el tamaño del arreglo.
ICM00794. Fundamentos de Computación
www.icm.espol.edu.ec/materias/icm00794
Inicio dia 1 temperatura[dia] dia dia+1 dia>n 1 V F n IngresoEl mismo esquema se debe seguir en el procedimiento para las operaciones que sean necesarias realizar para cada elemento del arreglo.
En el caso del bloque de salida para la presentación de datos, se dicta o se escribe uno por uno. A pesar que en algunos lenguajes estructurados existen formas de presentar todo el conjunto mediante una sola
instrucción.
Ejercicios con Arreglos: Vectores
Ejercicio 1Un atleta se ha propuesto recorrer una misma ruta durante un año, corriendo 7 días a la semana, para así saber su promedio de tiempo por cada semana, por cada mes y por todo el año. Suponga que todos los meses son de 30 días. Los datos que se proporcionan son 360 valores reales en minutos, indicando el tiempo del recorrido de cada día.
Elabore el algoritmo que proporcione al atleta la información que desea conocer.
DIA 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...
TIEMPO 40.5 39.8 41.3 38.8 40.1 39.4 41.2 41.1 40.9 39.8 42.1 40.3 38.7 38.4 ... ...
SEMANA 40.15 40.18 ...
MES 39.8
Referencia: ESPOL-FCNM. ICM00794-Fundamentos de Computación.
Parcial II Término 2005 - 2006. Diciembre 06, 2005. Tema 3.ICM00794. Fundamentos de Computación
www.icm.espol.edu.ec/materias/icm00794
Inicio Ingreso dia 1 tiempo(dia) dia dia+1 dia>n 1 V F n 360 Nota: se asume que se ingresan los 360 valoresProcedimiento Promedio Anual dia 1 dia dia+1 dia>n 2 V F 1 s 0 pranual s/n s s+tiempo(dia) Salida pranual 2 Fin
Para el promedio mensual, desarrollar el algoritmo para el primer mes (día 1 al 30), luego revisar la relación que existe entre el primer día del mes y el número del mes, revisar también para el último día del mes.
Inicio Ingreso dia 1 tiempo(dia) dia dia+1 dia>n 1 V F n 360 Nota: se asume que se ingresan los 360 valores
ICM00794. Fundamentos de Computación
www.icm.espol.edu.ec/materias/icm00794
En el caso de promedios por meses, el resultado es un arreglo de promedios con 12 elementos, uno por cada mes. Por lo que el bloque de salida, en caso de mostrar cada uno de los promedios es necesario realizar el dictado de cada uno de ellos conforme se muestra en el algoritmo.
Como ejercicio de práctica, determine la relación también para los días de la semana y el número de la semana, comparar resultados.
Ejercicio 2
Se dispone de un vehículo con una capacidad de transportación de max Kilogramos y espacio para ubicar solo 2 cajas del mismo tamaño pero de diferente peso.
Se tiene una lista con los pesos de n cajas (también en kilogramos) de igual tamaño. Si se desea transportar los paquetes agrupándolos de 2 en 2, indique:
- ¿Cuántas combinaciones de las posibles ternas se pueden transportar a la vez?
caja pesos(caja)
1
50
2
40
3
30
4
20
5
50
6
10
capacidad max=80 Kg y 6 cajas en lista de pesos Total de Ternas: Suma Peso= 50+40=90 0 Suma Peso= 50+30=80 1 Suma Peso= 50+20=70 2 Suma Peso= 50+50=100 0 Suma Peso= 50+10=60 3 ... Suma Peso= 40+30=70 4 Suma Peso= 40+20=60 5 Desarrollo:
Se inicia solicitando el valor para la capacidad máxima, la cantidad de cajas y el peso respectivo de cada una ingresado en un arreglo tipo vector.
El procedimiento a seguir es escoger una caja “a” y añadirle el peso de la caja “b”, para comparar si la suma de los pesos es menor o igual a la capacidad. Si la suma de los pesos es aún menor a la capacidad se cuenta una pareja posible de cargar con el vehículo.
ICM00794. Fundamentos de Computación
www.icm.espol.edu.ec/materias/icm00794
Se cambia la caja “a” a la siguiente, probando nuevamente con todas las cajas “b”, hasta que “a” llegue al penúltimo.
ICM00794. Fundamentos de Computación
www.icm.espol.edu.ec/materias/icm00794
En pseudocódigo se representa como
Proceso
cargadosendos
Leer
capacidad
Leer
n
cajas←1
Repetir
Leer peso(caja)
caja←caja+1
Hasta Que
caja>n
parejas←0
a←1
Repetir
b←a+1
Repetir
suma=peso(a)+peso(b)
Si
capacidad>=suma
Entonces
pareja←pareja+1
FinSi
b←b+1
Hasta Que
b>n
a=a+1
Hasta Que
a>=n
Mostrar
parejas
FinProceso
Ejercicio 3
Este ejercicio se desarrolla a partir del tema anterior, en este caso se considera tres cajas, por lo que se pide contar las ternas.
Se dispone de un vehículo con una capacidad de transportación de max Kilogramos y espacio para ubicar solo 3 paquetes del mismo tamaño pero de diferente peso.
Se tiene una lista con los pesos de n paquetes (también en kilogramos) de igual tamaño. Si se desea transportar los paquetes agrupándolos de 3 en 3, indique:
- ¿Cuántas combinaciones de las posibles ternas se pueden transportar a la vez?
- Elabore un algoritmo que solicite al usuario los valores de max, n, Pesos individuales y muestre la información solicitada.
Ejemplo: