Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ejercicios de Arreglos PDF
Ejercicios de Arreglos PDF
Los ejercicios de programación deben resolverse utilizando funciones. Para ello divida el
problema en sub-problemas y programe la solución de cada uno de ellos por medio de las
funciones.
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;
1 2 3 4 5 6 7 8 9 10 11 12 13 14
3. Observe el siguiente trozo de programa y diga qué imprime, suponiendo que los
datos son:
5 41 68 32 74 55
int i, j, n, sor[25];
scanf (“%i”,&n);
i = 0;
while (i <= n - 1) {
scanf (“%i ”, &sor[i]);
i++;
}
for (i = 0; i <= n - 1; i++) {
printf (“%i \n”, sor[i]);
for (j = n - 1; j > i; j--)
printf (“%i “,sor[i]);
}
Con: |k| ≤ n; 1 ≤ n ≤ 50
vec
a0 a1 . . . an-1
b) Copiar los datos a otro arreglo llamado inverso, de tal forma que queden
almacenados como se indica a continuación:
inverso
an-1 . . . a0
c) Reemplazar cada ai en vec por (ai * 2i) sin utilizar la función de potencia y
optimizando el número de operaciones:
vec
ao* 20 (a1* 21) . . .
Al correr los elementos, Elabore entrar ceros a los lugares vacíos; así, si k = 2 se
pierden los dos últimos datos (an-2 y an-1) y el arreglo quedaría:
0 0 ao a1 . . . an-3
ventas
0 1 2 10 11
vene vfeb vmar . . vnov vdic
n -1
∑
i=0
a i * bi
n -1
∑
i=0
a i * bn −1−i
Donde:
Donde:
Elabore una función para calcular e imprimir el ingreso per cápita promedio de la
República, así como para escribir cuántas entidades tienen un ingreso menor que
este promedio y cuántas lo tienen mayor o igual.
n, x1, x2, . . . , xn
Elabore un programa que realice funciones por cada inciso y la función principal
que las mande llamar e imprima los resultados:
n
− ∑ xi
x= i =1
n
c) Calcule e imprima la desviación estándar dada por la fórmula:
n −
∑ (x i − x) 2
a= i =1
n
11. Un casino desea llevar a cabo unas estadísticas sobre el juego de ruleta. Se
solicita un programa modular que cuente el número de veces que cada número es
ganador en una jornada y al final del día imprima un reporte con lo siguiente:
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 como
un 0 negro.
color representa el color correspondiente al elemento ganador.
con: R = rojo, N = negro
-1,X representan el fin de la jornada
12. Una compañía ha clasificado a sus n (1 ≤ n ≤ 50) empleados dentro de los grupos
1 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 del
grupo 2 sólo se le dará $150.00 adicionales por semana. La información que se
proporciona de cada empleado es: clave del empleado (comprendida entre 100 y
2500, 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 gana
semanalmente más que el sueldo promedio del grupo, entonces debe cambiar al
grupo 2.
15. 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 manera
creciente, utilizando el algoritmo de selección directa, en ese mismo arreglo y, por
último, imprimirlos en orden.
val
0 1 2 n-1 49
vo v1 v2 . . vn-1 ...
16. Partiendo del ejercicio anterior, elabore un programa que contenga funciones para:
17. Elabore un programa modular que lea dos arreglos de diferente número de
elementos, los ordene y posteriormente los mezcle en un tercer arreglo guardando
el orden. Ho hay repetidos.
18. Elabore un programa modular para leer un arreglo cuyos datos se proporcionan en
orden ascendente, leer un segundo arreglo cuyos datos se proporcionan en orden
descendente, mezclarlos en un tercer arreglo cuyos datos aparezcan en orden
ascendente, y por último, imprimir el arreglo resultante.
n
pe(n,a,b) = ∑ a(i) * b(i)
i =1
la norma de un vector de n componentes se define de la siguiente forma:
n
norma(n,a) = ∑ a(i) * a(i) =
i =1
pe(n, a, a )
∑ a(i) * b(i)
i =1 pe(n, a, b)
coseno(n,a,b) = =
n n norma(n, a) * norma(n, b)
∑ a(i) * a(i) *
i =1
∑ b(i) * b(i)
i =1
a) Haga un módulo llamado leerArreglo que lea los datos del arreglo (los
datos son reales).
b) Haga un módulo llamado calcularProdEscalar que calcule y regrese el
producto escalar.
c) Haga un módulo llamado calcularNorma que calcule y regrese la norma,
utilizando el módulo calcularProdEscalar.
d) Haga un módulo llamado calcularCosen que calcule y regrese el coseno
utilizando los módulos anteriores.
e) Por último, haga el módulo principal, incluyendo las declaraciones
necesarias, para leer el número (n) de datos que el usuario va a ingresar (1
≤ n ≤ 50), mandar llamar a las funciones anteriores e imprimir el producto
escalar, la norma y el coseno.
21. Elabore un programa modular que lea los datos de dos polinomios como se explica
posteriormente y que, utilizando un menú, efectúe las siguientes operaciones
sobre polinomios:
a) Suma.
b) Resta.
c) Multiplicación.
Al seleccionar el usuario una de estas tres opciones dará los polinomios sobre los
cuales se realizará la operación solicitada.
Los datos que el usuario proporcionará son los coeficientes (reales) y los
exponentes (enteros, ≥ 0 y ≤ 15) de ambos polinomios, los cuales pueden o no
estar ordenados. El final de cada polinomio está dado por un –1 como coeficiente
y como exponente.
± cX ^e
Donde:
2.5 3 -4 2 6.5 1 3 4 -1 -1
-2 2 -3 4 9.1 1 6.9 8 -1 -1
y se desplegaría como:
Por ejemplo, si n = 6174, entonces el número mayor que se puede formar es 7641
y el menor 1467.
23. Elabore un programa que utilizando “la criba de Eratóstenes” encuentre los
números primos entre 1 y 999, la cual funciona como sigue:
b) Comience con el índice i=2 del arreglo. Recorra el arreglo, del elemento i+1
al último, y cada vez que encuentre un elemento cuyo valor sea 1, póngale
0 si su índice es múltiplo de i. Vuelva a hacer lo mismo, pero ahora
considerando el primer elemento que sea 1 y cuyo índice sea mayor a i.
Continúe este proceso hasta que haya probado todos los elementos iguales
a 1.
Cuando se haya terminado este proceso, los índices del arreglo cuyos elementos
sean 1 son primos.
24. Se necesita programar una materia para el próximo semestre. En principio se han
establecido 10 grupos para la misma. Para conocer cuántos alumnos hay
interesados en cada uno de ellos, se les pidió que votaran indicando su
preferencia. La información se proporciona de la siguiente manera:
clavealumno votogrupo
clavealumno votogrupo
.
.
.
-1 -1
donde:
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.
a) Haga una función que calcule las suma de votos y regrese cuántos
alumnos 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.
Producto Cantidad
0 0
1 1
2 2
… …
99 99
f) Saber: ¿cuál es la clave del producto que tiene la mayor cantidad de cajas?
(Función llamada mayor que reciba como parámetro el arreglo Cantidad y
regrese el índice de la mayor cantidad de cajas. Asuma que no habrá
cantidades iguales.)
g) Saber: ¿cuáles son los productos que necesita pedir al proveedor ya que
tiene más de una caja y menos de 50 cajas en existencia?
(Función llamada pedido que regrese como parámetro el total de productos
que necesita pedir al proveedor y generar un vector con las claves de los
productos cuya cantidad sea 0<cantidad<50)
h) Eliminar los productos que tengan cero cajas en existencia.
(Función llamada eliminar que elimine la clave del producto y la cantidad
correspondiente al producto que tiene cero cajas. Realizando las
validaciones pertinentes)
i) Ya eliminados Ordenar en forma descendente ( de mayor a menor) por
clave del producto.
(Función llamada Ordenar que ordene en forma descendente la clave del
producto con su respectiva cantidad)
Hacer el programa principal que mande llamar cada una de las funciones
anteriores e imprima la información requerida en cada uno de los incisos.
n
x0 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 xi
valx es el valor de x con el que se va a trabajar.
a) Leer la información: N (1≤ N ≤ 50) y las toneladas por tipo de naranja de cada
una 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ño
su producción total fue 0.