Documente Academic
Documente Profesional
Documente Cultură
UNIDAD 4
Arreglos
Prof. Gerardo Sas
Ejercicio 4.1
Escribir un algoritmo que permita leer una lista de N datos numéricos (N mayor o igual a 23) e
informar solamente los elementos del mismo que ocupan las posiciones 7, 23 y N. Determinar e
informar además, cuántos elementos son divisibles por 6.
Proceso Ejercicio41
Dimension V(100);
C <- 0
Escribir "Ingrese la cantidad de Números: ";
Leer N;
Para i <- 1 Hasta N hacer
Leer V ( i );
Si (Trunc(V ( i )/6) = V ( i ) / 6) entonces
C <- C + 1
FinSi
FinPara
Escribir V (7), V(23), V (N);
Escribir C,' elementos son divisibles por 6 ';
FinProceso
Página 2 de 10
Ejercicio 4.2
Leer las calificaciones y nombres de un grupo de alumnos que asistieron a una evaluación parcial
de programación. Generar un vector con los nombres de los alumnos aprobados y otro con los
nombres de los no aprobados [ Nota<7 ]. Se desea obtener como información de salida en el
orden indicado:
a. Un listado de los nombres de los alumnos aprobados.
b. Las 2 mayores calificaciones y los nombres de los alumnos que las obtuvieron.
c. Un listado con los nombres de los alumnos que no aprobaron la evaluación.
Ejercicio 4.3
Leer las calificaciones y nombres de un grupo de alumnos que asistieron a una evaluación parcial
de programación. Generar un arreglo con los nombres y otro con las notas de aquellos alumnos
que obtuvieron calificación igual o superior a 8. Informar las listas obtenidas. Si ningún alumno
obtuvo 8 o más emitir un mensaje correspondiente.
Sino FinPara
Para x <- 1 hasta Ap hacer FinSi
Escribir A[x],' ',Not[x]; FinProceso.
Ejercicio 4.4
Codifique un algoritmo que ingrese como datos un vector A de 120 elementos y un valor
numérico en la variable M. Insertar M en la posición 32 del arreglo. Informar el vector
modificado.
Proceso Ejercicio44
Dimension A[121];
Para x <- 1 hasta 120 hacer
Escribir 'Ingrese datos: ';
Leer A[x];
FinPara
Escribir "Ingrese M:";
Leer M;
Para x <- 121 hasta 33 hacer
A[x] <- A[x - 1];
FinPara
A[32] <- M;
Para x <- 1 hasta 121 hacer
Escribir A[x];
FinPara
FinProceso.
Ejercicio 4.5
Leer una arreglo lineal de 120 elementos. Informar separadamente:
a. El menor de la lista
b. Los elementos que ocupan las posiciones pares.
c. Los elementos que sean múltiplos de 9. Si no hay, indicar tal situación.
Proceso Ejercicio45
Dimension A[121];
Menor <- 9999; Bandera <- 1;
Para x <- 1 hasta 120 hacer
Escribir "Ingrese Numero: ";
Leer A[x];
Si A[x] < Menor entonces
Menor <- A[x];
FinSi
FinPara
Escribir "El menor es: ", Menor;
Para x <- 2 hasta 120 con paso 2 hacer
Escribir A[x];
FinPara
Para x <- 1 hasta 120 hacer
Si (A[x]/9) = (Trunc(A[x]/9)) entonces
Página 4 de 10
Escribir A[x];
Bandera <- 1;
FinSi
FinPara
Si Bandera = 0 entonces
Escribir "No hay multiplos de 9";
FinSi
FinProceso.
Ejercicio 4.6
Leer N datos numéricos. Obtener la media M y la desviación standard DS de la lista. Las
expresiones para el cálculo son las siguientes:
x1 + x2 + x3 +........ + xn
M=
N
( x1 − m ) + ( x 2 − m ) 2 +........ + ( xn − m ) 2
2
DS =
N
Proceso Ejercicio46
Dimension A[100];
Sum <- 0;
Escribir "Ingrese la cantidad de Datos:";
Leer N;
Para x <- 1 hasta N hacer
Escribir "Ingrese Dato:";
Leer A[x];
Sum <- Sum + A[x];
FinPara
M <- Sum / N;
Sum <- 0;
Para x <- 1 hasta N hacer
Sum <- Sum + (A[x] - M)^2;
FinPara
DS <- RC (Sum / N);
Escribir "Media: ",M," D.S.:",DS;
FinProceso.
Ejercicio 4.7
Leer en un arreglo lineal una lista de 60 nombres. Eliminar del arreglo el nombre 'Juan López'. Si
hubiera más de uno, eliminar solamente el que esté ubicado antes en la lista.
Proceso Ejercicio47
Dimension N[60];
Para x <- 1 hasta 60 hacer
Escribir x," Ingrese Nombre:";
Leer N[x];
FinPara
C <- 1;
Página 5 de 10
Ejercicio 4.8
Leer una matriz de 6x4 elementos. Informar el elemento ubicado en la fila 2 columna 4 con un
mensaje alusivo. Obtener también los elementos de la 3er columna y fila 5.
Proceso Ejercicio48
Dimension M[6,4];
Para f <- 1 hasta 6 hacer
Para c <- 1 hasta 4 hacer
Escribir "Leer dato:";
Leer M[ f, c];
FinPara
FinPara
Escribir 'Fila 2, Columna 4= ', M[2, 4];
Escribir 'Columna 3 ';
Para f <- 1 hasta 6 hacer
Escribir M[f, 3];
FinPara
Escribir 'Fila 5 ';
Para c <- 1 hasta 4 hacer
Escribir M[5, c];
FinPara
FinProceso.
Ejercicio 4.9
Leer una matriz cuadrada de 10x10 elementos. Generar un vector con los elementos que estén por
encima de la diagonal principal. Informar el vector generado y los elementos de la fila 7 de la
matriz.
Proceso Ejercicio49 FinPara
Dimension M[10, 10], V[45]; conta <- 0;
Para f <- 1 hasta 10 hacer Para f <- 1 hasta 10 hacer
Para c <- 1 hasta 10 hacer Para c <- 1 hasta 10 hacer
Escribir "Leer dato: "; si c < f entonces
Leer M[ f, c]; conta <- conta + 1;
FinPara V[conta] <- M[ f, c] ;
Escribir ' '; FinSi
Página 6 de 10
Ejercicio 4.10
Una empresa distribuidora comercializa 10 artículos. Posee 4 sucursales y desea analizar el
desempeño de las mismas. Para ello se ingresan los datos correspondientes a las cantidades
vendidas de cada artículo por cada sucursal en cierto período. Primero las 10 cantidades de la
sucursal 1, luego las 10 de la sucursal 2,... ,hasta la 4ta sucursal.
Determine e informe:
a. Las cantidades vendidas por la empresa de cada artículo.
b. El total de unidades vendidas por la sucursal 3, sumando todos los artículos.
c. La cantidad vendida por la sucursal 1 del artículo 6.
Ejercicio 4.11
Considere los mismos datos del problema anterior. Además leer un vector con los precios de los
10 artículos que comercializa la empresa.
Determine e informe: a) La recaudación de cada sucursal. b) La recaudación de la empresa. c) La
sucursal que obtuvo mayor recaudación.
Ejercicio 4.12
Una empresa constructora tiene un equipo de 6 arquitectos que trabajan individualmente en
diferentes proyectos. La empresa construye diferentes construcciones de 3 calidades: Tipo 1, Tipo
2, y Tipo 3.
Se desea confeccionar una tabla con los m2 construidos sobre la base de los proyectos de cada
arquitecto y por cada tipo de construcción en lo que va del año. Para ello se ingresan como datos:
Nro. arquitecto, Tipo de construcción , Cantidad de m2 , donde Nro. arquitecto es un valor entre 1
y 6; Tipo de construcción un número entre 1 y 3 y Cantidad de m2, la superficie involucrada en el
proyecto. Estos datos finalizan con Nro. de arquitecto igual a 0. Estas ternas de datos llegan sin
orden alguno. Y cada arquitecto ha realizado varios proyectos. Determine e informe: a) El total
en m2 proyectado por cada arquitecto de cada tipo de construcción. b) El total en m2 proyectado
por la empresa computando todos los tipos.
Proceso Ejercicio412
Dimension M[6, 3];
Para Tipo <- 1 hasta 3 hacer
Para Arq <- 1 hasta 6 hacer
M[Arq, Tipo] <- 0;
FinPara
FinPara
Total <- 0;
Escribir "Ingrese Num de Arquitecto (1-6): ";
Leer Arq;
Mientras (Arq <> 0) hacer
Escribir "Tipo de Obra (1-3): ";
Leer Tipo;
Escribir "Metros Cuadrados: ";
Leer M2;
M[Arq, Tipo] <- M[Arq, Tipo] + M2;
Total <- Total + M2;
Escribir "Ingrese Num de Arquitecto (1-6): ";
Leer Arq;
FinMientras
Para Tipo <- 1 hasta 3 hacer
Escribir 'Obra Tipo ',Tipo;
Para Arq <- 1 hasta 6 hacer
Escribir M[Arq, Tipo];
FinPara
FinPara
Escribir "Total de M2 proyectado por la empresa: ", Total;
FinProceso.
Ejercicio 4.13
Página 8 de 10
Leer 2 matrices A y B de 8x12 elementos cada una. Calcular e informar la matriz suma y la matriz
promedio.
Proceso Ejercicio413
Dimension A[8, 12], B[8, 12], C[8, 12], D[8, 12];
Para fila <- 1 hasta 8 hacer
Para columna <- 1 hasta 12 hacer
A[fila, columna]<- fila+columna; //Leer A[fila, columna] ;
B[fila, columna]<- fila+columna; //Leer B[fila, columna] ;
C[fila, columna] <- A[fila, columna] + B[fila, columna];
D[fila, columna] <- C[fila, columna] / 2;
FinPara
FinPara
Para fila <- 1 hasta 8 hacer
Para columna <- 1 hasta 12 hacer
Escribir C[fila, columna] ;
FinPara
FinPara
Para fila <- 1 hasta 8 hacer
Para columna <- 1 hasta 12 hacer
Escribir D[fila, columna] ;
FinPara
FinPara
FinProceso.
Ejercicio 4.14
En un curso de 30 alumnos se conocen los datos de 4 evaluaciones de cierta asignatura y los
nombres de los estudiantes. Se desea determinar la lista con los alumnos regulares
(Promedio>=50) y la lista con los promovidos (Promedio >=75). Los datos se ingresan por cada
evaluación y sin orden alguno: Nro. Alumno, Nro. evaluación, Nota
Proceso Ejercicio413
Dimension Notas[30, 4], Nombres[30], Regulares[30], Promovidos[30];
Para c <- 1 hasta 30 hacer
Escribir "Ingrese el Nombre del Alumno:";
Leer Nombres[ c ];
FinPara
Para c <- 1 hasta 120 hacer
Escribir "Ingrese el Num de Alumno: ";
Leer NumAlumno;
Escribir "Ingrese el Num de Evaluacion: ";
Leer NumEvaluacion;
Escribir "Ingrese la Nota: ";
Leer Notas[NumAlumno, NumEvaluacion];
FinPara
R <- 0; P <- 0;
Para A <- 1 hasta 30 hacer
Prom <- 0;
Para E <- 1 hasta 4 hacer
Prom <- Prom + Notas[A, E];
Página 9 de 10
FinPara
Prom <- Prom/4;
Si Prom >= 75 entonces
P <- P + 1;
Promovidos[P] <- Nombres[A];
Sino
Si Prom >= 50 entonces
R <- R + 1;
Regulares[R] <- Nombres[A];
FinSi
FinSi
FinPara
Para x <- 1 hasta R hacer
Escribir "Regular: ", Regulares[x] ;
FinPara
Para x <- 1 hasta P hacer
Escribir "Promovido: ", Promovidos[x];
FinPara
FinProceso.
CUESTIONARIO
Mencione las ventajas y desventajas del empleo de arreglos.
Ventaja variable con subíndice, desventaja reserva un lugar constante de memoria.
4.2 ¿Es posible combinar datos de distinto tipo en una estructura de tipo arreglo ?.
NO
4.3 ¿Cómo se organizan los datos de un arreglo en memoria ?.
Ocupan posiciones contiguas de memoria.
¿Qué tipo de dato debe tener el índice de un arreglo en pseudocódigo?
Tipo Ordinal
¿Es posible plantear una expresión como índice ?.
Si