Ejer Arreglos
Ejer Arreglos
Ejer Arreglos
2. Dado un vector A de n nmeros reales, obtngase la diferencia ms grande entre dos elementos consecutivos de este vector.
3.
Reptase el ejercicio nmero 2 y determnese la menor diferencia entre dos elementos consecutivos.
4. Formlese un algoritmo para obtener los siguientes valores estadsticos para un vector X compuesto de n elementos:
Intervalo (R) = mximo {Xl, X2, ... XN}, mnimo {Xl, X2, X.} Medio geomtrico (GM) = x, x x2 x . . . x x. 5. Disese un algoritmo que lea un vector desordenado A, compuesto de n enteros e imprmase este vector en la misma secuencia, pero ignorando los valores duplicados que se encuentren en l. Tambin se necesita saber el nmero de elementos que permanecen (m); por ejemplo, dado el siguiente vector
Al A2 A3 A4 A5 A6 A7 A8 A9 A10 15 31 23 15 75 23 41 15 31 85 compuesto de 10 enteros, el vector comprimido que resulta estar dado por A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 15 31 23 75 41 85 con m = 6.
6. Formlese un algoritmo para convertir enteros decimales (en base 10) a sus representaciones octales (en base 8), por medio de sucesivas divisiones. La variable NUMBER seala el entero que se va a transformar y BASE la base a la cual se va a convertir (8 en este caso). Por ejemplo, para calcular la representacin octal de 150, se divide sucesivamente por 8 y los residuos que van quedando se almacenan ordenadamente. 7. Dado un polinomio p(x) de la forma
p(x) = a0xn + a1xn-1+ - - - + an-1x+an donde ao, al, .... an son nmeros reales que indican los coeficientes del polinomio, constryase un algoritmo que lea n, seguido de estos coeficientes y una secuencia de valores de x. Para cada uno de estos valores de x, debe calcularse el valor de p(x).
8. (El problema de la distancia entre caracteres.) Examnese una fila de entrada de n caracteres (compuesta slo por letras del alfabeto) y frmese una fila resultante de valores numricos, uno por cada carcter de entrada. Cada posicin de la fila resultante ser ocupada por un nmero que representa la cantidad de caracteres que lo separan al carcter all situado del ms prximo carcter idntico situado hacia su izquierda en la fila de entrada. No se anotarn distancias superiores a 9. Cualquier carcter que no tenga hacia su izquierda otro similar a una distancia menor o igual a nueve, se le asignar un cero en la fila. Por ejemplo, a partir de la fila AABCDBEFFEABGBWB dar el resultado 0100030013960202. Formlese un algoritmo para resolver este problema suponiendo, para propsitos de la entrada, sin embargo, que cada carcter est comprendido entre comillas. Por ejemplo, la fila de entrada del ejemplo precedente debera tener la siguiente forma:
16 nmero de caracteres 'A' 'A' 'B' 'C' 'D' 'B' 'E' 'F' F 'E' ' A' B' 'G' 'B 'W' 'B'
9. Cuando las paredes de los socavones de una mina cercana de potasa se colaron, algunas muestras del concreto utilizado fueron tomadas y probadas para determinar su resistencia mxima. La informacin correspondiente a la profundidad del pozo contra la resistencia del concreto se perfor en tarjetas de la siguiente manera:
La primera tarjeta contiene la profundidad inicial del pozo y el nmero total de pruebas realizadas para incrementos consecutivos de un pie hacia abajo del pozo.
Las siguientes tarjetas contienen 10 resultados cada una, pero la ltima puede contener menos de 10, segn el nmero total de resultados obtenidos. El promedio deslizante de ocho resultados se utiliza como una indicacin de la resistencia promedio del concreto, y seala cualquier seccin extremadamente dbil del pozo. El promedio deslizante es el promedio de las lecturas a esa profundidad y en los siguientes 7 pies que siguen hacia abajo. El promedio deslizante de los ltimos 7 pies es el promedio de las restantes lecturas. Obtngase un algoritmo para generar una tabla de promedios deslizantes como la siguiente:
2318 2319
4560 3920
4341 4256
2339
4820
4515
2345
4500
4500
La longitud del promedio deslizante, en este caso 8 pies, vara segn la aplicacin. Una vez que se haya obtenido una solucin, generalcese el algoritmo de manera que slo sea necesario cambiar una tarjeta para cambiar la longitud del promedio deslizante.
10. La siguiente frmula proporciona la variancia de los valores de un vector x (X denota el promedio de los n valores del vector): Disese un algoritmo para leer los elementos de un vector x y calcular el promedio y la variancia de los valores usando esta frmula para la variancia. Puede verse alguna ventaja, desde el punto de vista del clculo, al determinar la variancia en esta forma, en vez de emplear la frmula ms conocida que se indica a continuacin? 11. Un importante problema de estadstica se refiere a la predecibilidad de un valor de una variable, a partir del valor de otra. Dos variables que pueden usarse en esta forma con buenas probabilidades de xito, se dice que estn fuertemente correlacionadas. La fuerza de la correlacin se determina mediante el coeficiente de correlacin. Se desea dirigir un experimento para determinar la correlacin entre la calificacin promedio final preuniversitaria, con la calificacin promedio obtenida en el primer ao de estudios universitarios, para un estudiante cualquiera. Despus de los exmenes finales, se prepara una tarjeta para cada estudiante de primer ao que contiene dos valores reales: el promedio preuniversitario (H) y el promedio del primer ao (F). Supngase que en este estudio se consideran N estudiantes y disese un algoritmo para leer estos datos en dos vectores, H[i] y F[i], para i = 1, 2, ..., N. R enseguida, se debe calcular el coeficiente de correlacin r de acuerdo con la siguiente frmula: NH[i]F[i] - H[i]F[i] =----------------------------------------------RAIZ (NH[i]2 (H[I]2)(NF[i])2)
Si el coeficiente de correlacin excede 0.85, se imprimir un mensaje que indique que estas variables estn fuertemente correlacionadas.
12. En todo experimento existe cierta cantidad de incertidumbre asociada con cualquier medicin. Una tcnica conocida como ajuste de curvas puede utilizarse para reducir el error en el anlisis de estos resultados. Supngase que una serie de valores reales ha sido registrada de N rplicas de un experimento en particular, los cuales se almacenan en un vector llamado V. Antes de proceder al anlisis de estos resultados experimentales, la siguiente operacin de ajuste simple debe aplicarse a los valores de V. Para cada valor (excepto el primero y el ltimo, los que deben permanecer sin cambios), Vi debe reemplazarse por (Vi-i + Vi + Vi+i)/3
Disese un algoritmo para leer las mediciones iniciales y enseguida imprimir los valores observados y los ajustados. Estos ltimos valores debern ser almacenados en un vector separado llamado SMOOTH.
13. Las empresas cinematogrficas de Hollywood carecen especialmente de imaginacin al producir pelculas de monstruos. Despus del xito de Frankenstein sigui una serie de derivadas, como El hijo de Frankenstein y La novia de Frankenstein. Cuando hubo un par de monstruos rivales, como Frankenstein y Drcula, se hicieron otras pelculas, como Frankenstein encuentra a Drcula. a) Desarrllese un algoritmo para generar posibles ttulos de pelculas de monstruos, a partir de una lista de monstruos famosos. El algoritmo debe usar como ttulo patrn los siguientes cuatro casos:
4. ______ MEETS_______
Con este patrn especial, el algoritmo debe ser capaz de generar todos los ttulos posibles a partir de una lista de monstruos. b) Comprubese el algoritmo a mano, con los siguientes datos de entrada. Mustrese claramente la operacin del algoritmo y la salida que produce.
'KING KONG' 'MOTHRA' 'GODZILLA sese el mtodo del fin de archivo para determinar el fin de los datos de entrada.
14. Una compaa de bienes races tiene 25 vendedores. Cada operacin que hace un vendedor se registra en una tarjeta . Esta tarjeta contiene lo siguiente
El nmero de tarjetas de entrada no se conoce y el de ventas registradas puede variar de un vendedor a otro. Por ejemplo, un vendedor puede haber realizado 12, mientras que otro solamente 10. Las tarjetas de entrada no se encuentran en secuencia. Formlese un algoritmo que genere el monto total de las ventas para cada vendedor por separado. El informe deber ser como el siguiente:
SALESPERSON NO. 1 2
SALESPERSON NAME TOTAL AMOUNT JOHN DOE SUE BROWN 50240.75 71326.50
25
BILL SMITH
21375.00
Debe usarse el mtodo del fin de archivo para determinar el trmino de los datos de entrada, y deben efectuarse menciones especiales para los vendedores que logren los dos montos ms elevados de ventas. Disese el algoritmo de manera que estas dos personas aparezcan especialmente destacadas. 15. Desarrllese un algoritmo que genere un informe anual de ventas. Este informe debe sealar las ventas mnimas de cada mes y del ao completo. Cada operacin de venta se registra en una tarjeta que tiene el siguiente formato: monto de la venta, nmero del mes donde cada mes del ao recibe un nmero del 1 al 12. No se conoce el nmero de tarjetas de entrada, las que no se encuentran ordenadas. sese el mtodo del fin de archivo para detectar el fin de la entrada. 1.Considrese un vector X que contiene 10 elementos. Supngase que la distribucin de demanda de cada elemento de este vector se muestra en la tabla 4-9. TABLA 4-9 i 2 3 4 5 6 Distribucin de solicitudes (%) 10 5 20 5 25 10
7 8 9 10 a) b) 1
5 5 5 10
Calclese el nmero promedio de comparaciones de una bsqueda secuencias en este vector. Sugirase una distribucin ms eficiente de los datos de entrada. Con base en ella, recalclese el nmero promedio de comparaciones que se necesitaran en una bsqueda secuencias.
Dado un vector X de n elementos reales, donde n es impar, disese un algoritmo para calcular la mediana de este vector. La mediana se define como el valor mayor que la mitad de los nmeros y menor que la otra mitad. Por ejemplo, en el siguiente vector x, 17 x, -3 x, 21 x, 2 x, 9 x, -4 x, 6 x, 8 x, 11
que est compuesto de nueve elementos, el algoritmo debe encontrar que la solucin es 8. 3. El algoritmo MERGE-SORT que se proporciona en el texto trabaja nicamente si n = 2'. Extindase este algoritmo de manera que pueda trabajar con un nmero n cualquiera. Un rastreo de este proceso ms general de intercalacin a partir de dos fuentes para un vector de 10 elementos se muestra en la figura 45. 4. Otro mtodo conocido de ordenamiento es el ordenamiento de burbuja. Difiere del mtodo de ordenamiento por seleccin en que en lugar de buscar el elemento con el menor valor y luego realizar el intercambio, se intercambian dos elemento en forma inmediata, una vez que han sido comparados convenientemente. Utilizando este enfoque, se requieren al menos n - 1 pasadas. Durante la primera, se comparan K, y K2, intercambindose si no estn ordenados; este proceso se repite para los elementos K2 y K3, K3 y K4, y con los dems. Este mtodo consigue que los elementos con los valores ms bajos suban como burbujas. Despus de la primera pasada, el elemento con el valor ms elevado quedar situado en el n-simo lugar. En las pasadas sucesivas, los elementos con los siguientes valores ms elevados quedarn situados en las posiciones n - 1, n - 2, .... 2, respectivamente. Despus de cada pasada deber realizarse una comprobacin para ver si se han hecho o no modificaciones en esta pasada. Si no se ha hecho ninguna modificacin, entonces el vector se encuentra ordenado y, en consecuencia, no se requiere continuar. Una prueba del comportamiento de este proceso de ordenamiento se encuentra en la tabla 4-10. TABLA 4-10 Operacin del ordenamiento de burbuja Desordenado K, 1 2 3 4 5 6 7 8 9 10 73 65 52 24 83 17 35 96 41 9 1 65 52 24 73 17 35 83 41 9 96 Nmero de la pasada 2 52 24 65 17 35 73 41 9 83 96 3 24 52 17 35 65 41 9 73 83 96 4 5 6 Ordenado 7 8 9 9 17 24 35 41 52 65 3 83 96
24 17 17 17 24 24 35 35 35 52 41 9 41 9 419 572 52 65 65 65 73 73 73 83 83 83 96 96 96
17 1 24 9 9 24 35 35 41 41 52 52 65 65 73 713 83 83 96 96
Formlese un algoritmo para poner en prctica este mtodo de ordenamiento. 5. Modifquese el algoritmo resultante del ejercicio 4 para tomar en cuenta el hecho que todos los elementos inferiores al ltimo en ser cambiado de posicin (y este mismo) deben estar en el orden correcto; en consecuencia, estos elementos no necesitan ser examinados de nuevo. Modifquese el algoritmo obtenido en el ejercicio 5 de modo que las sucesivas pasadas se dirijan en direcciones opuestas. Es decir, durante la primera pasada el elemento con el valor ms alto quedar situado i final del vector; durante la segunda pasada, el elemento con el mnimo valor deber quedar situado en la primera posicin del vector, y as sucesivamente. Una muestra del comportamiento de este mtodo modificado se muestra en la tabla 4-11. Una gran empresa tiene plantas en cinco ciudades diferentes y un total de n empleados. A cada uno de stos corresponde un registro que contiene (entre otra) la siguiente informacin: nombre del empleado, ciudad, nmero del empleado TABLA 4-11 Operacin de ordenamiento de burbuja modificado Desordenado j Kj 1 2 3 4 5 6 7 8 9 10 73 65 52 24 83 17 35 96 41 9 1 65 52 24 73 17 35 83 41 9 96 Nmero de la pasada Ordenado 2 3 4 5 6 7 9 9 65- 572 52 24 24 65 73 73 17 17 35 35 83 41 41 83 96 96 9 17 52 24 65 73 35 41 83 96 9 17 24 52 65 35 41 73 83 96 9 17 24 35 52 65 41 73 83 96 8 9
6.
7.
9 9 9 17 1 '/ 17 24 24 24 35 35 35 52 52 41 41 41 52 65 65 75 73 73 '/ 3 83 83 83 96 96 96
Estos registros no se almacenan en orden. Suponiendo que el lugar de la ciudad es un cdigo entero cuyos valores son de 1 a 5, y que la informacin concerniente a los empleados puede representarse por medio de los tres vectores: NAME, CITY y NUMBER, desarrllese un algoritmo que ordene todos los registros de los empleados de tal manera que se impriman por orden creciente del nmero de empleado para cada ciudad. Es decir, el formato deber ser el siguiente: Primera ciudad: name name Segunda ciudad: name name Quinta ciudad: name number number number number
number
name number 8. Los sistemas de informacin para los negocios se estn haciendo ms y ms comunes. Estos sistemas permiten a un administrador plantear una consulta a la computadora y obtener de ella una respuesta. En este problema se considera una de estas preguntas: dado el nombre de un empleado, encontrar el departamento en el cual trabaja. La consulta se proporciona mediante la palabra clave 'DEPARTMENT' seguida del nombre del empleado. La ltima de estas consultas debe estar compuesta de la palabra clave 'FINISHED'. Con objeto de responder a estas consultas, se dispone de la siguiente informacin. Primero, existe un archivo con la informacin de los empleados, que contiene el nombre de los mismos y el de su jefe inmediato. Estos datos se encuentran ordenados alfabticamente por el nombre del empleado y el ltimo registro del archivo es un nombre centinela 'ZZZZZ'. La compaa tiene un nmero grande de empleados, que es actualmente de 134 (pero puede variar en el tiempo). Como el nmero de empleados es grande y el archivo est ordenado por orden alfabtico segn los nombres de los empleados, cuando se explora el archivo en busca del nombre de uno de ellos, deber usarse una bsqueda binaria. Se sabe, adems, que el jefe inmediato de cada empleado es tambin el jefe del departamento. Por tanto, con objeto de determinar el departamento en que trabaja un empleado basta determinar el nombre del jefe del departamento. Esta ltima informacin se obtiene de un segundo archivo, correspondiente a los departamentos, el cual contiene el nombre de cada departamento y el nombre del jefe. Este archivo se encuentra ordenado i alfabticamente por los nombres de los departamentos. Considrese que siempre hay menos de 50 departamentos. Formlese un algoritmo para responder a este tipo de consultas, Supngase que entre los datos, el archivo de departamentos se encuentra primero, precedido por un nmero que especifica la cantidad de departamentos que hay en el archivo. El siguiente archivo corresponde al de los empleados. Por ltimo, se encuentra la consulta mencionada.
1.- Formlese un algoritmo para leer una matriz y obtener la transpuesta. 2. Desarrllese un algoritmo para leer una matriz y determinar cundo se trata de una simtrica o no. 3. Escrbase un algoritmo cuyas entradas sean A y B y que calcule el producto de ellas. 4. Desarrllese un algoritmo para calcular el tringulo de Pascal de coeficientes binomiales. Este tringulo tiene la siguiente forma 1 1 1 1 1 1 5 4 10 3 6 10 etc. 2 3 4 5 1 1 1 1 1
donde, en general, cada rengln se determina mediante el procedimiento de calcular la suma de los dos elementos inmediatamente arriba de cada elemento del rengln. Genrense los 10 primeros renglones de este tringulo. S. Dada una matriz GRADE cuyos elementos GRADE [I, J] contienen la J-sima calificacin del Isimo estudiante y un factor de ponderacin WEIGHT, cuyo elemento WEIGHT[J] denota la ponderacin correspondiente al J-simo problema de un examen, formlese un algoritmo que establezca niveles entre los estudiantes. Los niveles deben registrarse en un vector aparte llamado RANK, de tal forma que RANK[I] indique la posicin del I-simo estudiante de la clase. El algoritmo debe leer los
datos de entrada para N estudiantes y M problemas. Por ejemplo, las siguientes formaciones contienen la calificacin, los problemas y la informacin del nivel de un curso compuesto de cinco estudiantes y de un examen de tres problemas. En este ejemplo, el promedio del primer estudiante es (3 x 65 + 2 x 80 + 1 x 85)/6 = 73.3 con lo cual este estudiante se clasifica cuarto en el curso de cinco asistentes. WEIGHT 3 2 GRADE 65 80 75 100 100 6. 80 60 50 50 80 85 90 50 75 70 1 RANK -4 3 5 2 1
Un examen final tiene 100 preguntas de eleccin mltiple. Cada pregunta tiene cinco respuestas a elegir, de las cuales slo una es correcta. Los resultados del examen y la informacin concerniente al estudiante pueden representarse de la siguiente forma ANSWERS 1 2 3. .......... 99 100
1 1 2 n
NAME
donde ANSWERS contiene las respuestas correctas del examen, SCORE es una matriz cuyos renglones son las respuestas a las 100 preguntas de eleccin mltiple dadas por los estudiantes y el vector NAME est compuesto por los nombres de ellos. Las respuestas de cada pregunta se codifican entre 1 y 5. Cuando se indic ms de una respuesta, esta posibilidad se indica con 6. Disese un algoritmo cuya salida sean los nombres de los estudiantes que aprobaron el examen. Se requiere una calificacin mnima de 60 para aprobar. 7. Disese un algoritmo que calcule el salario de un grupo de 100 vendedores. El sueldo de cada uno de ellos se paga con base en una comisin sobre las ventas realizadas y cada uno vende 50 artculos. Los datos de entrada constan de un paquete de tarjetas, que contienen los nmeros del vendedor, y del artculo vendido, el precio por unidad y el nmero de las que se han vendido. Las tarjetas no se encuentran en secuencia ordenada, por lo que debe usarse el mtodo del fin de archivo para detectar que
ya no hay ms datos en la entrada. Supngase que la comisin que se paga es del 5% en todos los artculos. 8. Se est realizando un anlisis de los accidentes que ocurren en el centro de Manhattan. Por simplificar, las calles y avenidas se representan por una retcula como la siguiente: 30 31 32 33 34 35 58 1 2 9
l0 donde los encabezados de los renglones indican las avenidas, desde la Primera hasta la Dcima, y los encabezados sealan las calles, desde la 30.a hasta la 58.1 Las posiciones en la formacin indican el nmero de accidentes que han ocurrido en las cercanas de dicha interseccin durante el ltimo perodo registrado. Por ejemplo, en el caso que se muestra, se han presentado nueve accidentes cerca de la interseccin de la Segunda Avenida y la calle 35.' Deber leerse una cantidad de accidentes no determinada exactamente, donde cada uno de ellos se represente por medio de un par de nmeros que sealan su ubicacin. Por ejemplo, el par 7,42 indica un accidente que ha ocurrido en las cercanas de la Segunda Avenida y la Calle 42.1 Formlese un algoritmo para leer estos datos y preparar una formacin con el formato que se ha indicado. sese el mtodo del centinela para indicar que los datos se han terminado. Asegrese de incorporar una comprobacin de intervalo, para estar seguro de que todos los datos que se proporcionen estn comprendidos nicamente entre las avenidas y calles mencionadas. Rechcese cualquier dato no vlido mediante un mensaje apropiado. Una vez que los datos han sido ledos y almacenados, elabrese una lista que incluya las diez intersecciones ms peligrosas del conjunto. 9. sese la formacin tridimensional CARS descrita previamente en esta misma seccin para disear un algoritmo que calcule los siguientes datos estadsticos: a) Nmero de automviles fabricados antes de 1910 considerados como buenos o excelentes. b) La marca de automvil ms popular, segn el nmero de unidades que haya de todos los fabricantes. c) Determnese el fabricante cuyos automviles aparecen en las mejores condiciones promedio.