AlgyProg_Practica 7

Anuncio
UNIVERSIDAD CENTRAL DE VENEZUELA
FACULTAD DE CIENCIAS, ESCUELA DE COMPUTACIÓN
ALGORITMOS Y PROGRAMACIÓN
Visita la nueva página de Algoritmos
www.ciens.ucv.ve/algoritmosyprogramacion
PRÁCTICA #7 -- Tipos de Datos Estructurados
Parte 1: Arreglos, Matrices, Recorridos y Búsquedas
1. Dado un arreglo de enteros con N elementos de tipo real suministrados por el usuario, se
quiere:
1.1. Leer y escribir los valores del arreglo.
1.2. Calcular la suma de los valores del arreglo.
1.3. Calcular la media de los valores del arreglo.
1.4. Calcular la cantidad de números impares y números pares.
1.5. Calcular cuántos números son mayores que la media y cuántos son menores.
1.6. Transformar el arreglo colocando en las posiciones pares un valor dado por el usuario.
2. Dado un arreglo unidimensional de N posiciones, donde el tipo base del arreglo es entero, se
desea que usted elabore un algoritmo que determine el valor máximo y el mínimo del arreglo,
además debe decir el número de ocurrencias de los mismos dentro de la estructura.
3. Dado un arreglo cuyos elementos son enteros, y un entero K, obtenga el arreglo resultante de
realizar K desplazamientos circulares sobre el arreglo de entrada. Los desplazamientos serán a
la derecha si K es mayor que 0 y a la izquierda en caso contrario.
4. Dado un arreglo de enteros S, escriba un algoritmo que guarde en un arreglo T la secuencia de
sumas parciales de S. (S[1], S[1]+S[2], S[1]+S[2]+S[3],...)
5. Dados dos arreglos A y B de enteros, los cuales debe ordenar en forma ascendente, se desea
que genere otro arreglo C con el mismo orden a partir de la mezcla de los dos
arreglos anteriores, adicionalmente se pide que el arreglo C no contenga elementos repetidos.
6. Dado un arreglo de caracteres y una letra, determinar si un elemento dado pertenece al
arreglo e indicar el número de veces que aparezca.
7. Escriba un algoritmo que lea una secuencia de enteros la almacene en un arreglo de tamaño N
y guarde en otro arreglo de igual tamaño una nueva secuencia aplicando las siguientes reglas
al primer arreglo.
7.1. Si el elemento i es menor que cero, se guardará su valor absoluto
7.2. Si el elemento i es mayor que cero, se guardará su cuadrado
7.3. Si es un cero, se guardará tal cual.
8. Dada una secuencia de enteros guardada en un arreglo S, escriba un algoritmo que indique si
alguno de sus elementos coincide con la suma de los elementos de la secuencia que le siguen.
El problema debe resolverse sin acceder más de dos veces a cada elemento de la secuencia.
Ejemplo: dado S = [-1, 2, 4, -2, 8, 3, -2, -3], el tercer elemento cumpliría la propiedad
9. Dado un arreglo de enteros de tamaño N par, se desea que:
9.1. Escriba una acción Intercalar que reciba un arreglo unidimensional ordenado e intercale su
“mitad inferior” con su “mitad superior”. Ejemplo: Dado el arreglo [1, 2, 3, 4, 5, 6, 7, 8]
genere el arreglo [5, 1, 6, 2, 7, 3, 8, 4]
9.2. Escriba una función Numero que reciba un arreglo ordenado y retorne el número
de intercalaciones necesarias para restaurarlo en su orden original.
Ejemplo: Dado el arreglo [1,2,3,4,5,6,7,8]  [5,1,6,2,7,3,8,4]  [7,5,3,1,8,6,4,2]  … 
[2,4,6,8,1,3,5,7]  [1,2,3,4,5,6,7,8] el número de intercalaciones es 4
1
UNIVERSIDAD CENTRAL DE VENEZUELA
FACULTAD DE CIENCIAS, ESCUELA DE COMPUTACIÓN
ALGORITMOS Y PROGRAMACIÓN
10. Dado un arreglo A de enteros de N posiciones, construya un algoritmo para crear arreglos de
apuntadores a las posiciones de A. Se desea generar el arreglo apuntador para cada uno de los
siguientes casos:
10.1. Orden ascendente utilizando el método de selección.
10.2. Orden ascendente utilizando el método de burbuja.
10.3. Orden descendente utilizando el método de selección.
10.4. Orden descendente utilizando el método de burbuja.
11. Dada una matriz A de enteros de NxM posiciones, donde el valor de M es par, se desea que
realice lo siguiente
11.1. Por fila, intercambie el valor de la 1era columna con el valor de la M-esima columna, el
valor de la 2da columna con el de la M-1 columna, y así sucesivamente, tantas veces
como lo indique el valor de la penúltima posición de la fila.
Ejemplo:
Original
5
7
1
7
7
8
4
5
1
9 14
12
4
8
7
3
7
2
7
5
1
2
3
1
3
Resultado
3
0
8
18
6
3
0
8
18
6
8
2
3
12
3
4
1
2
4
5
3
7
12
7
7
1
5
9
1
8
5
7
1
7
7
Nota: asuma que el valor de la penúltima posición es válido
12. Dada una matriz de dimensión NxN, cuyos elementos son números enteros. Construya
un algoritmo que imprima los valores de las diagonales secundarias de la matriz.
Entrada
1
5
9
13
2
6
1
0
14
3
7
11
15
4
8
12
16
9
13
14
Salida
1
5
2
6
3
10
7
11
8
15
12
16
4
13. Elabore un algoritmo que realice el recorrido de una matriz según el esquema:
a) matriz de NxM
b) matriz de NxM
2
UNIVERSIDAD CENTRAL DE VENEZUELA
FACULTAD DE CIENCIAS, ESCUELA DE COMPUTACIÓN
ALGORITMOS Y PROGRAMACIÓN
c) matriz de NxM
d) matriz de NxN
e) matriz de NxN
f) matriz de NxN
g) matriz de NxN
h) matriz de NxN
i) matriz de NxN
j) matriz de NxN
k) matriz de NxM
3
UNIVERSIDAD CENTRAL DE VENEZUELA
FACULTAD DE CIENCIAS, ESCUELA DE COMPUTACIÓN
ALGORITMOS Y PROGRAMACIÓN
Buscamos por aquí …
Buscamos por allá …
y estos son los ejercicios
preferidos para un parcial
PARTE 2: Combinación de Arreglos, Registros y Archivos
14. Dada una secuencia de caracteres suministrada en un archivo de texto llamado Letras.txt,
proponga un algoritmo que calcule la frecuencia de todas las letras presentes en la secuencia y
cuantas veces aparece cada letra.
Suponga:

La secuencia suministrada solo contiene letras y espacios (“ ”) y podría ser suministrada
vacía.

Ud. cuenta con una función abstracta llamada Leer_Archivo(variableArchivo):Caracter,
ya implementada y que puede usar para obtener el próximo carácter en la secuencia
del archivo.

La frecuencia de cada letra se calcula dividiendo la cantidad de veces que se ha contado
esa letra, entre la cantidad total de letras de la secuencia.
15. Dada la siguiente información referente a vehículos que una empresa oferta para la venta:
- Marca
- Motor (capacidad en litros)
- Precio

Proponga una estructura de datos que permita almacenar la información de todos los
carros en venta, asuma que el usuario le indicará el número de carros que se están
vendiendo.

Proponga una función, acción o método (lo que ud. prefiera) que permita consultar y
guardar la posición o índice de los vehículos cuyo precio es menor o igual a un precio P
suministrado por el usuario. UTILICE UNA ESTRUCTURA EFICIENTE para guardar la
información de estos vehículos.

Proponga un método que permita hallar el vehículo más económico de 2.2 litros
16. Dada un archivo llamado “GENTE.bin” que contiene: nombre, cédula, sexo y edad de un grupo
de personas, se desea generar otro archivo llamado “Menores.bin” que contenga sólo la
información de las mujeres menores en edad que la primera persona del archivo. La estructura
de datos que almacena la información de cada persona es la siguiente
Tipo Registro Persona =
String Nombre;
Entero CI;
Entero Edad;
Carácter sexo;
Fregistro;
// sexo ‘M’ ó ‘F’
17. Dado un arreglo de 1000 números enteros (todos entre -100 y 100), haga una acción que imprima cuál
es el número que más se repite entre ellos. En caso de que exista mas de un número con estas
condiciones, imprímalos todos. Por ejemplo, si el arreglo contiene los elementos: -2, 4, 1, -2, 3, 1, la
salida debería ser: -2 1.
18. La compañía T-shirt tiene 2 almacenes en Caracas: el almacén TRINITI, y el almacén GUACAMAYA. Esta
compañía está dedicada a la venta de franelas. En cada almacén se conocen las tallas de franelas que
tienen dentro del almacén. Suponiendo que no hay más de 50 tallas distintas, el dueño de la compañía
requiere saber qué tallas no están en los dos almacenes a la vez (tallas críticas). Para ello, usted ha sido
elegido para elaborar un algoritmo que, dado dos arreglos de tallas, correspondientes a cada almacén,
imprima las tallas críticas ordenadas descendentemente.
4
UNIVERSIDAD CENTRAL DE VENEZUELA
FACULTAD DE CIENCIAS, ESCUELA DE COMPUTACIÓN
ALGORITMOS Y PROGRAMACIÓN
19. Un escritor escribe un texto y lo guarda en un archivo llamado “relato.txt”. Por razones
esotéricas, nos interesa saber la cantidad de palabras en dicho texto, específicamente en
cuanto a su longitud (número de letras). Para ello, se desea que ud. haga un algoritmo que lea
dicho archivo y genere un reporte con la cantidad de palabras existentes por longitud, es decir,
debe indicar cuántas palabras hay de una sola letra, cuántas palabras hay de dos letras,
cuántas de tres y así sucesivamente hasta llegar a diez letras. En el caso de haber palabras de
más de diez letras, éstas deben ser contabilizadas junto con las de 10 letras. Nota: el archivo
de entrada debe ser leído caracter por caracter, y no hay otros caracteres sino las alfabéticas y
los espacios en blanco.
20. Dados dos arreglos A y B de M y N enteros respectivamente, ordenados ascendentemente,
genere un tercer arreglo de a lo sumo N+M elementos que contenga los elementos de A y B
ordenados ascendentemente, pero sin elementos repetidos. Nota: no debe utilizar ningún
algoritmo de ordenamiento, y los arreglos A y B deben ser recorridos una sola vez.
21. Se desea desarrollar un sistema que permita realizar la gestión de un almacén y los productos
guardados en él. La información es almacenada en un archivo llamado Productos y los datos
relevantes de cada producto se reflejan en el siguiente registro:
Tipo Registro Producto =
Entero Código;
String Nombre;
Entero stockActual;
// el stock es la cantidad de ese producto que hay en el almacén
Entero stockMínimo; // cantidad mínima que debe haber de ese producto
Entero stockMáximo; // cantidad máxima del producto que se puede almacenar
Entero IDProveedor; // número del proveedor para el producto
Fregistro;
El sistema también almacena el Código, Nombre, Email y Teléfono de los trece (13) Proveedores con
que trabaja la empresa.
Se desea que usted proponga una solución algorítmica con acciones o funciones que:
21.1. Especifique las estructuras de datos más convenientes y la utilice en la solución
propuesta.
21.2. Lea e inicialice los datos a almacenar en el archivo de productos. Los datos será
suministrados por el usuario. La cantidad de productos a almacenar no es conocida
previamente, ni es suministrada en el archivo, siendo el usuario el encargado de indicar
cuando termina la entrada de información.
21.3. Genere un archivo Pedidos en donde se almacene la información de los productos cuyo
stockActual es menor al stockMínimo. En el archivo Pedidos se desea mantener la mínima
información que identifique al producto, la cantidad a pedir y el proveedor que lo
suministra. La cantidad a pedir debe permitir que el nuevo stock del producto sea igual a
su stock máximo.
21.4. Imprima información que permita contactar a los Proveedores de los productos que
fueron incluidos en el archivo Pedidos.
22. El Observatorio “Parque Sierra Nevada” desea desarrollar un sistema que le permita monitorear las
temperaturas de los páramos venezolanos. Para ello se recopila información en 21 puntos de observación
ubicados a diferentes alturas en la Cordillera Andina. Para cada día del mes se registra, en cada uno de
los puntos, la temperatura mínima y la temperatura máxima alcanzada y medida en ºC.
5
UNIVERSIDAD CENTRAL DE VENEZUELA
FACULTAD DE CIENCIAS, ESCUELA DE COMPUTACIÓN
ALGORITMOS Y PROGRAMACIÓN
La información recopilada en un año le será suministrada en el archivo TemperaturasAnuales, el cual
no está ordenado y en donde se le dan los datos: númeroMes, númeroDía, codPuntoObs, tempMín y
tempMáx.
Se desea que usted proponga una solución algorítmica con acciones o funciones que:
22.1. Especifique las estructuras de datos más convenientes y las utilice en la solución
propuesta.
22.2. Indique para cada mes la temperatura mínima, la temperatura máxima y donde fue
recopilada.
22.3. Almacene e indique los puntos que presentaron más de 30 observaciones con
temperaturas inferiores a los –4ºC.
22.4. Indique los puntos que presentaron la menor y la mayor temperatura del año, además en
que mes y día ocurrió.
El archivo TemperaturasAnuales, sólo puede ser recorrido una sola vez. Debe utilizar las estructuras
auxiliares en forma eficiente.
23. En un archivo se suministra información sobre estaciones de servicio y venta de gasolina. Para
cada estación se indica su código, zona del país donde está ubicada (Este, Oeste, Sur, Centro,
Metropolita) y la cantidad de litros de gasolina vendidos de 91 y de 95 octanos para los meses
de enero, febrero y marzo.
Adicionalmente se suministra los precios de venta de gasolina para 91 y 95 octanos.
Se desea que:
23.1. Defina variables y estructuras de datos convenientes para almacenar la información del
problema.
23.2. Elabore un algoritmo en donde se calcule e informe:

La cantidad total y el monto total de litros vendidos para cada octanaje.

La estación en donde se vendió la máxima cantidad de litros para el mes de febrero.

El monto promedio de las ventas de gasolina en cada mes para las estaciones de la
Zona Metropolitana.
Considere que el archivo no necesariamente será suministrado con datos.
GDAyP. Mayo 2008
"Los obstáculos son esas cosas que las personas ven
cuando dejan de mirar sus metas."
- Joseph Cossman
6
Documentos relacionados
Descargar