Respuestas Guia 04 (arreglos)

  • May 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Respuestas Guia 04 (arreglos) as PDF for free.

More details

  • Words: 2,310
  • Pages: 10
Página 1 de 10

Fundamentos de Programación 2008 UNIDAD 4 Arreglos Prof. Gerardo Sas Respuestas a los ejercicios de la Guía Nº 4

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. Proceso Ejercicio42 Dimension AP(100), NoAp(100); May2 <- 0; May1 <- 0; Nomb2 <- ' '; Cnap <- 0; Cap <- 0; Escribir "Ingrese la cantidad de Numeros: "; Leer N; Para i <- 1 hasta N hacer Escribir "Ingrese Nombre"; Leer Nombre; Escribir "Ingrese Nota"; Leer Nota; Si Nota > May1 entonces May2 <- May1; Nomb2 <- Nomb1; May1 <- Nota; Nomb1 <- Nombre; Sino Si Nota > May2 entonces May2 <- Nota; Nomb2 <- Nombre; FinSi

FinSi Si Nota >= 7 entonces Cap <- Cap+1; AP[Cap] <- Nombre; Sino Cnap <- Cnap+1; NoAP[Cnap] <- Nombre; FinSi FinPara //a) Listado de los alumnos aprobados Para x <- 1 hasta Cap hacer Escribir AP[x]; FinPara //b) Las dos mayores notas y sus nombres Escribir May1, May2; //c) Listado de los alumnos no aprobados Para x <- 1 hasta Cnap hacer Escribir NoAP[x]; FinPara FinProceso

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. Proceso Ejercicio43 Dimension A(100), Not(100); Ap <- 0; Escribir "Ingrese la cantidad de Alumnos:"; Leer N; Para x <- 1 hasta N hacer Escribir "Ingrese Nombre:"; Leer Nomb; Escribir "Ingrese Nota:";

Leer Nota; Si (Nota >= 8) entonces Ap <- Ap + 1; A[Ap] <-Nomb; Not[Ap] <-Nota; FinSi FinPara Si Ap = 0 entonces Escribir 'Nadie aprobo con 8 o mas'

Página 3 de 10 Sino Para x <- 1 hasta Ap hacer Escribir A[x],' ',Not[x];

FinPara FinSi 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 N 2 ( x1 − m ) + ( x 2 − m ) 2 +........ + ( xn − m ) 2 DS = N M=

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 Mientras (C <= 60) & (N[c] <> "Juan Lopez") hacer C <- C + 1; FinMientras Si (C > 60) entonces Escribir "Juan Lopez no se encuentra en la lista" Sino Para x <- C hasta 59 hacer N[x] <- N[ x + 1]; FinPara Escribir "Se ha Eliminado a Juan Lopez de la lista, ahora cuenta con 59 elementos" FinSi FinProceso. 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 FinPara FinPara Para r <- 1 hasta conta hacer Escribir V[r]; FinPara

Para c <- 1 hasta 10 hacer Escribir M[ 7, c]; FinPara FinProceso.

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. Proceso Ejercicio410 Dimension E[4, 10]; Para S <- 1 hasta 4 hacer Para A <- 1 hasta 10 hacer Escribir "Cantidad de articulos:"; Leer E[ S, A]; FinPara FinPara Para A <- 1 hasta 10 hacer Sum <- 0; Para S <- 1 hasta 4 hacer

Sum <- Sum + E[S, A]; FinPara Escribir Sum; FinPara Sum <- 0; Para A <- 1 hasta 10 hacer Sum <- Sum + E[3, A]; FinPara Escribir "Total Sucursal 3: ", Sum; Escribir "Sucursal 1, articulo 6: ", E[1,6]; FinProceso.

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. Proceso Ejercicio411 Dimension E[4, 10], V[10]; Total <- 0; Mayor <- 0; Suc <- 0; Para S <- 1 hasta 4 hacer Para A <- 1 hasta 10 hacer Escribir "Cantidad de articulos:"; Leer E[ S, A]; FinPara FinPara Para x <- 1 hasta 10 hacer Escribir "Precio de articulo:"; Leer V[ x ];

FinPara Para S <- 1 hasta 4 hacer Sum <- 0; Para A <- 1 hasta 10 hacer Sum <- Sum + E[S, A] * V[S]; FinPara Escribir "Total recaudado por cada Sucursal: ", Sum; Total <- Total + Sum; Si Sum > Mayor entonces Mayor <- Sum; Suc <- S; FinSi

Página 7 de 10 FinPara Escribir "Total Recaudado por la empresa: ", Total;

Escribir "La Sucursal que mas recaudo fue: ", Suc, ' ',Mayor; FinProceso.

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 4.5 ¿Cuál es el objeto de dimensionar el tamaño de una arreglo ?. Reservar el espacio en memoria ¿En un algoritmo se puede usar en un arreglo un tamaño [longitud] diferente del propuesto en la dimensión correspondiente ?. Explique. Siempre que longitud sea menor (o igual) al tamaño propuesto en la dimensión.

Página 10 de 10

Fundamentos de Programación 2007 Prof. Gerardo Sas Email [email protected]

Related Documents

Guia 04 (arreglos)
May 2020 0
Arreglos
June 2020 6
Arreglos
October 2019 13
Arreglos
November 2019 12
Guia Terceros Respuestas
November 2019 8