arreglotrabajo

10
 ARREGLOS DE UNA DIMENSIÓN Los ejercicios de programación deben resolverse utilizando funciones que modularicen las soluciones. 1. Suponga las siguientes declaraciones: int puntos [500]; int prueba, menor, indice; ¿Cuál segmento de programa encontrará el valor más pequeño de este arreglo y almacenará el subíndice del elemento donde está guardado este valor? a) for (prueba = 0; prueba < 500; prueba++) if (puntos[prueba] < menor) menor = puntos[menor]; b) for (prueba = 0; prueba < 500; prueba++) if (puntos[prueba] < menor) menor = prueba; c) menor = puntos[0]; for (prueba = 1; prueba < 500; prueba++) if (puntos[prueba] < menor) menor = puntos[prueba]; d) indice = 0; for (prueba = 1; prueba < 500; prueba++) if (puntos[prueba] < puntos[indice]) indice = prueba; e) indice = 0; for (prueba = 1; prueba < 500; prueba++) if (puntos[prueba] < indice) indice = prueba;  Arreglos de Una Dimensión 42

Upload: alberto-mora

Post on 05-Apr-2018

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: arreglotrabajo

7/31/2019 arreglotrabajo

http://slidepdf.com/reader/full/arreglotrabajo 1/10

 

ARREGLOS DE UNA DIMENSIÓN

Los ejercicios de programación deben resolverse utilizando funciones que modularicen las

soluciones.

1. Suponga las siguientes declaraciones:

int puntos [500];int prueba, menor, indice;

¿Cuál segmento de programa encontrará el valor más pequeño de este arreglo yalmacenará el subíndice del elemento donde está guardado este valor?

a) for (prueba = 0; prueba < 500; prueba++)if (puntos[prueba] < menor)

menor = puntos[menor];

b) for (prueba = 0; prueba < 500; prueba++)if (puntos[prueba] < menor)

menor = prueba;

c) menor = puntos[0];for (prueba = 1; prueba < 500; prueba++)

if (puntos[prueba] < menor)menor = puntos[prueba];

d) indice = 0;for (prueba = 1; prueba < 500; prueba++)

if (puntos[prueba] < puntos[indice])indice = prueba;

e) indice = 0;for (prueba = 1; prueba < 500; prueba++)

if (puntos[prueba] < indice)indice = prueba;

 Arreglos de Una Dimensión 42

Page 2: arreglotrabajo

7/31/2019 arreglotrabajo

http://slidepdf.com/reader/full/arreglotrabajo 2/10

 2. Sean los datos enteros:

n, k  (en la primera línea)a0  (en la segunda línea)a1 (en la tercera línea)

.an-1 (en la última línea)

Con: |k| ≤  n; 1 ≤  n ≤  50  

Elabore un programa completo que resuelva progresivamente por funciones cadauno de los siguientes incisos:

a) Leer los datos y almacenarlos en un arreglo vec , de tal manera quequeden:

vec 

a0  a1 . . . an-1 

b) Copiar los datos a otro arreglo llamado inverso, de tal forma que quedenalmacenados como se indica a continuación:

inverso

an-1 . . . a0  

c) Reemplazar cada ai  en vec por (ai  * 2 i ) sin utilizar la función de potencia yoptimizando el número de operaciones:

vec 

ao* 2 0  (a1* 2 1 ) . . .

d) Correr los elementos del vec anterior 

|k| lugares a la derecha si k  > 0 , y|k| lugares a la izquierda si k < 0  

 Al correr los elementos, Elabore entrar ceros a los lugares vacíos; así, si k = 2  sepierden los dos últimos datos (an-2   y an-1 ) y el arreglo quedaría:

0 0 ao a1 . . . an-3 

3. Los tres arreglos reales  x, y  y z , tienen almacenados m, n, y o valores,respectivamente. Elabore un programa que lea los datos de cada arreglo y calculee imprima las sumatorias de todos sus elementos, para lo cual deberá contar conuna función para sumar todos los elementos de un arreglo y una función para leer los datos de un arreglo. Considere que las dimensiones de los arreglos se leen enel programa principal con 1 ≤  m,n,o ≤  50. 

 Arreglos de Una Dimensión 43

Page 3: arreglotrabajo

7/31/2019 arreglotrabajo

http://slidepdf.com/reader/full/arreglotrabajo 3/10

4. Se tiene el arreglo

ventas0 1 2 10 11

v ene v feb v mar  . . v nov  v dic  

donde se almacenan las ventas mensuales de una empresa.

Elabore una función que regrese los siguientes datos:

a) ¿En qué mes se dieron las ventas máximas de la empresa?b) ¿A cuánto ascendieron las ventas máximas?c) ¿Cuál fue el total de las ventas?d) ¿Cuál fue el promedio de las ventas?

5. Dados los datos:

n, a0 ,a1,. . .,an-1, b0 ,b1, . . . ,bn-1

con: 1 ≤  n ≤  50 , enteroa

i , bi   reales

Elabore funciones por separado para calcular:

∑=

1-n

0i

i *ai

b

 

∑=

−−

1-n

0i

1i *ain

b

 

¿Requiere de arreglos? ¿Cuántos? ¿Por qué?

6. Una fábrica de llantas quiere un programa para calcular el costo total deproducción de los n modelos de llantas que produce. Los datos con que cuentason los siguientes:

n, ao, a1, ..., an-1, c 0 , c 1, ..., c n-1,

con: 1 ≤   n ≤   50 , enteroai  enterosc i  enteros

Donde:

ai  representa la cantidad de llantas producidas del modelo i  c i  representa el costo de producción de una llanta del modelo i  

 Arreglos de Una Dimensión 44

Page 4: arreglotrabajo

7/31/2019 arreglotrabajo

http://slidepdf.com/reader/full/arreglotrabajo 4/10

7. Se tienen los siguientes datos:

n, ic 0, ic 

1, ..., ic n-1

con: 1 ≤   n ≤   32 , enteroic i reales

Donde:

ic i  representa el ingreso per cápita de cada entidad federativa de la RepúblicaMexicana.

Elabore una función para calcular e imprimir el ingreso per cápita promedio de laRepública, así como para escribir cuántas entidades tienen un ingreso menor queeste promedio y cuántas lo tienen mayor o igual.

8. Sean los datos:

n, x 1, x 2 , . . . , x n

con: 1 ≤  n ≤  25 , entero x i  reales

Elabore un programa que realice funciones por cada inciso y la función principalque las mande llamar e imprima los resultados:

a) Lea los datos y almacene los x i  en un arreglo.b) Calcule e imprima la media de los datos dada por la fórmula:

n

 xn

ii

 x∑−== 1

 

c) Calcule e imprima la desviación estándar dada por la fórmula:

a

 x x

n

i

i

n

=

−−

=

∑ ( )2

1

 

9. Un casino desea llevar a cabo unas estadísticas sobre el juego de ruleta. Sesolicita un programa modular que cuente el número de veces que cada número esganador en una jornada y al final del día imprima un reporte con lo siguiente:

a) ¿Cuántas veces resultó ganador cada elemento de la ruleta?b) ¿Cuáles elementos no resultaron ganadores en toda la jornada?c) ¿Cuál fue el número de cada color que ganó más veces?(suponga que sólo

hay uno)d) ¿Cuál fue el elemento que ganó en más ocasiones?

 Arreglos de Una Dimensión 45

Page 5: arreglotrabajo

7/31/2019 arreglotrabajo

http://slidepdf.com/reader/full/arreglotrabajo 5/10

 Recuerde que la ruleta está formada por 70 elementos. Existen del 1 al 34 rojos,del 1 al 34 negros, el 0 y el 00. El casino desconoce el número de juegos de una

 jornada. Los datos que el casino proporcionará son los siguientes:

número, color 

número, color ...-1, X 

Donde:número representa el número correspondiente al elemento ganador 

con 0 ≤  número≤  34 donde el 0 se representa como un 0 rojo y el 00 se representa comoun 0 negro.

color  representa el color correspondiente al elemento ganador.con: R = rojo, N = negro

-1,X  representan el fin de la jornada

10. Una compañía ha clasificado a sus n (1 ≤ n ≤ 50) empleados dentro de los grupos1 y 2. Cada empleado del grupo 1 recibirá, a partir de ahora, un aumento de$250.00 a la semana sobre su sueldo actual, mientras que a cada uno de los delgrupo 2 sólo se le dará $150.00 adicionales por semana. La información que seproporciona de cada empleado es: clave del empleado (comprendida entre 100 y2500, inclusive), grupo al que pertenece (1 o 2) y sueldo semanal actual (entre$300.00 y $6000.00). Si un empleado del grupo 1 con el nuevo sueldo ganasemanalmente más que el sueldo promedio del grupo, entonces debe cambiar algrupo 2.

Elabore un programa modular que:

a) Lea la información de los n empleados e imprima la clave, grupo y sueldosemanal nuevo para cada empleado, actualizando el grupo si es el caso.

b) Calcule el sueldo promedio de los empleados por grupo y calcule tambiénel promedio general de todos, sin considerar el grupo.

c) Indique cuántos empleados cambiaron del grupo 1 al 2.

11. Se tienen n alumnos (1 ≤ n ≤ 50) de los cuales se conoce la clave y la calificaciónfinal. Elabore un programa modular que:

a) Lea dicha información, la cual se da ya ordenada en forma descendente,con respecto a la clave.

b) Imprima la clave y calificación de todos los alumnos que obtuvieroncalificación superior al promedio del grupo.

c) Imprima la calificación que obtuvieron los alumnos cuyas clavesproporcionará el usuario. Se sabrá que el usuario ya no quiere conocer máscalificaciones cuando, en lugar de una clave, proporcione un cero. Utilicebúsqueda binaria para buscar las claves que el usuario solicita.

 Arreglos de Una Dimensión 46

Page 6: arreglotrabajo

7/31/2019 arreglotrabajo

http://slidepdf.com/reader/full/arreglotrabajo 6/10

12. Se tiene un conjunto de n parejas de datos X i , Y i  donde cada pareja representa lascoordenadas del punto i  de un polígono irregular de n lados. Suponga que lascoordenadas se proporcionarán en orden adyacente. Elabore una función paraleer el número de lados del polígono, leer las coordenadas de los puntos y obtener el área del polígono irregular utilizando la siguiente fórmula:

 Area = [(X 0 +X 1 )*(Y 0 -Y 1 ) + (X 1+X 2  )*(Y 1-Y 2  )+. . .+ (X n-1+X 0  )*(Y n-1-Y 0  ) ]  /2 

Suponga que los X i  ,Y i  son reales y n es entero con 1 ≤  n ≤  50 .

13. Elabore una serie de funciones para leer una serie de n datos desordenados,almacenarlos en el arreglo val (de máximo 50 localidades), ordenarlos de maneracreciente, utilizando el algoritmo de selección directa, en ese mismo arreglo y, por último, imprimirlos en orden.

val 0 1 2 n-1 49

v o v 1 v 2  . . v n-1 . . .

Variante: En el arreglo final no debe haber datos repetidos.

14. Partiendo del ejercicio anterior, elabore un programa que contenga funciones para:

a) Buscar un valor  x  dentro del arreglo utilizando el algoritmo de búsquedasecuencial. La función debe regresar como resultado la posición en la quese encuentra el valor buscado. Si x no se encuentra en el arreglo, la funcióncalcula la posición en la que debería encontrarse y regresa: (–posición –1).

b) Buscar un valor  x  dentro del arreglo utilizando el algoritmo de búsquedabinaria.

c) Insertar un valor  x  en el arreglo de tal forma que se siga conservando elorden ascendente de los valores. Al insertar se debe verificar que hayaespacio libre y que x no exista en el arreglo. La función debe regresar comoresultado 1 si se insertó x en el arreglo, 0 si x ya existía en el arreglo y –1 sino existe espacio libre en el arreglo.

d) Eliminar un valor  x del arreglo, compactando si es necesario para que nohaya espacios libres entre valores. La función debe regresar comoresultado 1 si se eliminó x, 0 si x no se encontraba en el arreglo y –1 si el

arreglo estaba vacío.

e) Sustituir un valor  x ya existente en el arreglo con un valor y de tal maneraque el arreglo siga conservando su orden creciente. La función deberegresar como resultado 1 si se hizo la sustitución, 0 si x no se encontrabaen el arreglo y –1 si el arreglo estaba vació.

 Arreglos de Una Dimensión 47

Page 7: arreglotrabajo

7/31/2019 arreglotrabajo

http://slidepdf.com/reader/full/arreglotrabajo 7/10

15. Elabore un programa modular que lea dos arreglos de diferente número deelementos, los ordene y posteriormente los mezcle en un tercer arreglo guardandoel orden.

Restricción: no se deben unir los arreglos en desorden, ni copiar un arreglocompleto, es decir, los elementos que se almacenen en el tercer arreglo se deben

ir guardando en orden.

16. Elabore un programa modular para leer un arreglo cuyos datos se proporcionan enorden ascendente, leer un segundo arreglo cuyos datos se proporcionan en ordendescendente, mezclarlos en un tercer arreglo cuyos datos aparezcan en ordenascendente, y por último, imprimir el arreglo resultante.

17. Elabore un programa modular que lea los datos de dos polinomios como se explicaposteriormente y que, utilizando un menú, efectúe las siguientes operacionessobre polinomios:

a) Suma.

b) Resta.c) Multiplicación.

 Al seleccionar el usuario una de estas tres opciones dará los polinomios sobre loscuales se realizará la operación solicitada.

Los datos que el usuario proporcionará son los coeficientes (reales) y losexponentes (enteros, ≥  0 y ≤  15 ) de ambos polinomios, los cuales pueden o noestar ordenados. El final de cada polinomio está dado por un –1 como coeficientey como exponente.

Los términos del polinomio resultante deberán ser desplegados en orden

descendente, observando el siguiente formato:

± cX ^e

Donde:

± representa el signo del términoc representa el coeficiente del término^ significa exponenciacióne representa el valor del exponente

Por ejemplo, suponga que los datos son:

2.5 3 -4 2 6.5 1 3 4 -1 -1-2 2 -3 4 9.1 1 6.9 8 -1 -1

Entonces, los polinomios que se van a operar son:

+2.5X3 - 4X2 + 6.5X1 + 3X4 -2X2 - 3X4 + 9.1X1 + 6.9X8 

 Arreglos de Una Dimensión 48

Page 8: arreglotrabajo

7/31/2019 arreglotrabajo

http://slidepdf.com/reader/full/arreglotrabajo 8/10

De tal forma que el resultado de la suma es:

6.9X8 + 2.5X3 - 6X2 + 15.6X1 

y se desplegaría como:

+ 6.9X^8 + 2.5X^3 - 6X^2 + 15.6X^1

18. Dado un número natural n de 4 cifras, no todas iguales, encuentre e imprima elnúmero mayor y el menor que se puede formar con las mismas cifras.

Por ejemplo, si n = 6174, entonces el número mayor que se puede formar es 7641y el menor 1467.

19. Elabore un programa que utilizando “la criba de Eratóstenes” encuentre losnúmeros primos entre 1 y 999, la cual funciona como sigue:

a) Inicialice todos los elementos de un arreglo (comenzando en el índice 2),

de 1000 enteros, con 1 (verdadero). Los elementos con índices 0 y 1 debeninicializarse con 0 (falso).

b) Comience con el índice i=2 del arreglo. Recorra el arreglo, del elemento i+1al último, y cada vez que encuentre un elemento cuyo valor sea 1, póngale0 si su índice es múltiplo de i. Vuelva a hacer lo mismo, pero ahoraconsiderando el primer elemento que sea 1 y cuyo índice sea mayor a i.Continúe este proceso hasta que haya probado todos los elementos igualesa 1.

Cuando se haya terminado este proceso, los índices del arreglo cuyos elementossean 1 son primos.

20. Se necesita programar una materia para el próximo semestre. En principio se hanestablecido 10 grupos para la misma. Para conocer cuántos alumnos hayinteresados en cada uno de ellos, se les pidió que votaran indicando supreferencia. La información se proporciona de la siguiente manera:

clavealumno votogrupoclavealumno votogrupo...-1 -1

donde:

clavealumno es un entero positivo que representa la clave única del alumno.votogrupo es un entero entre 1 y 10 para elegir al grupo que prefiere el alumno.

Se desea conocer el total de alumnos que votaron por cada grupo de la materia,para saber cuáles grupos se abren o se cancelan.

 Arreglos de Una Dimensión 49

Page 9: arreglotrabajo

7/31/2019 arreglotrabajo

http://slidepdf.com/reader/full/arreglotrabajo 9/10

a) Haga una función que calcule las suma de votos y regrese cuántosalumnos votaron en total.

b) Haga una función que elimine los grupos que tienen menos de 25 alumnos.c) Haga una función que imprima los grupos que pertenecerán abiertos. (son

aquellos que tienen 25 o más alumnos)d) Haga la función principal que mande llamar las dos funciones anteriores.

21. En estadística, la moda de una serie de números es aquel número que aparececon más frecuencia. Por ejemplo, dada la lista 1,2,2,3,6,4,7,5,4,6,9,4, la moda es4, ya que aparece tres veces. Calcule e imprima la moda. Si todos los númerosson diferentes entonces no hay moda, con lo cual se debe indicar que hubo error.Haga un programa completo en C que deberá tener una función que lea la serie denúmeros, otra función que reciba como parámetro la serie de números y arroje lamoda o si no la hay –1 y la función principal que mande llamar las anteriores eimprima la moda (número que mas veces se repitió en caso de haber dos iguales omás mencione el primero).

22. Se tienen los siguientes datos

nx0 f (x0)x1 f (x1)...xn-1 f (xn-1)valx

donde:n es el número de xi y f(xi) que se proporcionarán (1<= n <= 50)xi son los valores de x (en orden creciente)f(xi) es el valor de una función para xivalx es el valor de x con el que se va a trabajar.

Realiza un programa en C que:

Lea en arreglos paralelos los valores de x y f(x).Si existe una xi = valx, imprima f(valx).Si no existe una xi = valx, calcule f(valx) de acuerdo a la fórmula que se da a

continuación, inserte este nuevo valor de x (valx) así como el valor calculadof(valx) en sus respectivos arreglos manteniendo el orden creciente de las x´s sinutilizar ningún algoritmo de ordenamiento, e imprima el valor calculado de f(valx) .

Suponiendo que valx debe insertarse en la posición k,si k=0 entonces f(valx)=f(x0)si k=n entonces f(valx)=f(xn-1)en cualquier otro caso

f(valx) = f(xk-1) + ( (valx - xk-1)* (f(xk) – f(xk-1))/(xk- xk-1) )

 Arreglos de Una Dimensión 50

Page 10: arreglotrabajo

7/31/2019 arreglotrabajo

http://slidepdf.com/reader/full/arreglotrabajo 10/10

 23. Una cooperativa de productores de naranjas almacena el total de toneladas

cosechadas durante el último año en N parcelas (1≤ N ≤ 50). En cada parcela sepueden cultivar dos tipos de naranjas: para jugo y para comer. Se conoce el totalde toneladas cosechadas de cada uno de los tipos de naranjas. Si en una parcelano se hubiera cosechado alguno de los tipos, entonces habrá 0.

La información se almacena en un arreglo como se muestra en el siguienteejemplo:

 Naranjas para Naranjas paracomer comer 

 Naranjas para Naranjas paraugougo

11--MAXMAX112N2N--222N2N--5533 442200 11

. . .. . .. . .. . .70070080080000600600500500100100

 

Parcela 1Parcela 1 Parcela 2Parcela 2 Parcela 3Parcela 3 Parcela NParcela N 

• En la parcela 1 se cosecharon: 100 toneladas de naranjas para jugo y 500toneladas de naranjas para comer.

• En la parcela 2 se cosecharon: 600 toneladas de naranjas para jugo y 0 toneladasde naranjas para comer.

NOTA: Observe que la información de una misma parcela ocupa posicionesconsecutivas en el arreglo.

Se le pide que haga un programa en C, usando módulos, que pueda:

a) Leer la información: N (1≤ N ≤ 50) y las toneladas por tipo de naranja de cadauna las parcelas.

b) Calcular e imprimir el total de la producción por parcela.c) Eliminar la información de una parcela. El dato requerido para esta opción es el

número de parcela a eliminar.d) Buscar e imprimir el número de una parcela (si hubiera) que no haya tenido

producción de ninguno de los tipos de naranjas. Es decir, durante el último añosu producción total fue 0.

 Arreglos de Una Dimensión 51