Practica6-may2011

Transcripción

Practica6-may2011
UNIVERSIDAD CENTRAL DE VENEZUELA
FACULTAD DE C IENC IAS
ESCUELA DE COMPUTAC IÓ N
ALGORITMOS Y PROGRAMAC IÓN
PRÁCTICA #6
TIPOS DE DATOS ESTRUCTURADOS:
Arreglos, Registros y Archivos
Sección de revisión de teoría
1. Comente sobre:
1.1. Tipos de Datos Estructurados y sus principales ventajas frente a los Tipos de Dato Simples.
1.2. Semejanzas y diferencias entre Arreglos, Registros y Archivos.
1.3. Comportamiento de los principales algoritmos Búsqueda y de Ordenamiento.
Sección de ejercicios a resolver
2. Dado un arreglo con N elementos de tipo real suministrados por el usuario, se requiere:
2.1. Leer y escribir los valores del arreglo.
2.2. Calcular la suma de los valores del arreglo.
2.3. Calcular la media de los valores del arreglo.
2.4. Calcular la cantidad de números impares y números pares.
2.5. Transformar el arreglo colocando en las posiciones pares un valor dado por el usuario.
3. Dado un arreglo de números enteros de N posiciones, 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.
4. 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.
5. 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],...)
6. Elabore un algoritmo que realice el recorrido de una matriz según los esquemas:
a) matriz de NxM
b) matriz de NxM
c) matriz de NxM
d) matriz de NxN
1
UNIVERSIDAD CENTRAL DE VENEZUELA
FACULTAD DE C IENC IAS
ESCUELA DE COMPUTAC IÓ N
ALGORITMOS Y PROGRAMAC IÓN
7. Dado
7.1.
7.2.
7.3.
7.4.
un arreglo A de enteros de N posiciones, realice los siguientes ordenamientos:
Orden ascendente utilizando el método de Selección Directa.
Orden ascendente utilizando el método de Intercambio (burbuja).
Orden descendente utilizando el método de Selección Directa.
Orden descendente utilizando el método de Intercambio (burbuja).
8. 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 más 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.
9. 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 (“ ”) o es suministrada vacía.
Ud. cuenta con una función abstracta llamada Leer_Archivo(variableArchivo):Caracter, ya
implementada y que 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.
10. 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 C I;
Entero Edad;
Carácter sexo; // sexo „M‟ ó „F‟
Fregistro;
11. Complemente el ejercicio anterior para indicar:
11.1. Promedio general de edad.
11.2. Cantidad de personas mayores a 65 años.
11.3. Distribución porcentual por sexo (porcentaje de hombres y de mujeres).
12. En un archivo se suministra información sobre ventas de gasolina en estaciones de servicio.
Para cada estación se indica código, zona donde está ubicada (Este, Oeste, Sur, Centro,
Metropolita), la cantidad de litros de gasolina vendidos de 91 y de 95 octanos para los meses
de enero y febrero, y el precio de venta de la gasolina para 91 y 95 octanos. El archivo puede
ser suministrado sin datos, en cuyo solicite los datos al usuario.
Se desea que:
12.1. Defina variables y estructuras de datos convenientes para almacenar la información.
12.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 la Zona Centro.
2
UNIVERSIDAD CENTRAL DE VENEZUELA
FACULTAD DE C IENC IAS
ESCUELA DE COMPUTAC IÓ N
ALGORITMOS Y PROGRAMAC IÓN
Sección de ejercicios propuestos
13. Dado un arreglo cuyos elementos son enteros, y un entero K, obtenga el arreglo resultante de
realizar K desplazamientos circula res 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.
14. 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.
15. 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.
15.1. Si el elemento i es menor que cero, se guardará su valor absoluto
15.2. Si el elemento i es mayor que cero, se guardará su cuadrado
15.3. Si es un cero, se guardará tal cual.
16. 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
17. Elabore un algoritmo que realice el recorrido de una matriz según los esquemas:
a) matriz de NxN
b) matriz de NxN
c) matriz de NxN
d) matriz de NxM
18. 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.
3
UNIVERSIDAD CENTRAL DE VENEZUELA
FACULTAD DE C IENC IAS
ESCUELA DE COMPUTAC IÓ N
ALGORITMOS Y PROGRAMAC IÓN
19. 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.
20. 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, Correo Electrónico 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:
20.1. Especifique las estructuras de datos más convenientes y la utilice en la solución
propuesta.
20.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.
20.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.
20.4. Imprima información que permita contactar a los Proveedores de los productos que
fueron incluidos en el archivo Pedidos.
21. En una tienda de electrodomésticos se venden productos a un precio que depende de la
cantidad y el valor de sus piezas. Dado un archivo que contiene como máximo 100 Productos,
se desea:
21.1. Obtener un archivo de salida, con los productos ordenados descendentemente por
código. Escribir la información almacenada en este archivo.
21.2. Indicar cuál (o cuáles) son las piezas más caras que la tienda tiene en sus productos
21.3. Indicar en cual (o cuáles) de las piezas que la tienda compra invierte más dinero
Considere:
-
Cada producto tiene entre 1 y 30 piezas, pudiendo ser todas las piezas iguales.
El rango de códigos de todas las piezas va de 100 a 1100.
Puede utilizar estructuras de datos auxiliares.
Usted propone las estructuras y tipos de datos que considere más conveniente.
Asuma que el archivo de Productos ya tiene datos.
4
UNIVERSIDAD CENTRAL DE VENEZUELA
FACULTAD DE C IENC IAS
ESCUELA DE COMPUTAC IÓ N
ALGORITMOS Y PROGRAMAC IÓN
Sección de ejercicios complementarios
ARREGLOS:
22. Calcular el promedio de los valores de un arreglo de N números reales. Buscar además el
mayor y el menor valor e indicar en qué posición (o posiciones) se encuentran esos valores.
23. Dados los arreglos A y B de enteros y del mismo tamaño, realizar lo siguiente:
23.1. Si la suma de los elementos de A es un valor par, entonces los valores en las posiciones
pares de A se deberán poner en las posiciones pares de B y viceversa.
23.2. Si la suma de los elementos de A es un valor impar, entonces los valores en las
posiciones impares de A se deberán poner en las posiciones impares de B y viceversa.
MATRICES:
24. Leer un arreglo C de enteros de tamaño N y leer una matriz Mat de enteros de tamaño Nx4.
Para cada uno de los valores de C, contar la cantidad de veces que aparece en Mat y mostrarlo
al usuario. No debe permitir que el usuario introduzca valores repetidos al llenar el arreglo C.
25. Dada una matriz de valores reales, ordenarla descendentemente utilizando Selección Directa.
26. Elabore un algoritmo que realice el siguiente recorrido para una matriz de NxN:
ARREGLOS, REGISTROS O ARCHIVOS:
27. Dada la siguiente información referente a vehículos que una empresa oferta para la venta:
- Marca
- Motor (capacidad en litros)
- Precio
27.1. Proponga una estructura de datos que permita almacenar la información de todos los
carros en venta, considerando que el número de carros será suministrado por el usuario.
27.2. Proponga una función o acción (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.
28. Dados dos archivos A y B, ordenados ascendentemente, genere un tercer archivo 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 archivos A y B deben ser
recorridos una sola vez.
Nota: Debe realizar los ejercicios aplicando las acciones y funciones que considere necesarias.
GDAyP, Mayo 2011
5

Documentos relacionados