Está en la página 1de 13

ARREGLOS DE UNA DIMENSIN

Los ejercicios de programacin deben resolverse utilizando funciones. Para ello divida el problema en sub-problemas y programe la solucin de cada uno de ellos por medio de las funciones. 1. Suponga las siguientes declaraciones: int puntos [500]; int prueba, menor, indice; Cul segmento de programa encontrar el valor ms pequeo de este arreglo y almacenar el subndice del elemento donde est guardado este valor? a) for (prueba = 0; prueba < 500; prueba++) if (puntos[prueba] < menor) menor = puntos[menor]; for (prueba = 0; prueba < 500; prueba++) if (puntos[prueba] < menor) menor = prueba; menor = puntos[0]; for (prueba = 1; prueba < 500; prueba++) if (puntos[prueba] < menor) menor = puntos[prueba]; indice = 0; for (prueba = 1; prueba < 500; prueba++) if (puntos[prueba] < puntos[indice]) indice = prueba; indice = 0; for (prueba = 1; prueba < 500; prueba++) if (puntos[prueba] < indice) indice = prueba;

b)

c)

d)

e)

Arreglos de Una Dimensin

43

2.

Considere el segmento: int arreglo1[4], arreglo2[4], i, j; for (i = 0; i <= 3; i++) { scanf (%i, &arreglo1[i]); for (j = i; j <= 3; j++) scanf (%i, &arreglo2[ j]); } y los datos de entrada: 1 2 3 4 5 6 7 8 9 10 11 12 13 14

Despus de ejecutarse el cdigo, cul ser el contenido de los arreglos arreglo1 y arreglo2? a) arreglo1: 1 2 3 4 arreglo2: 5 6 7 8 d) arreglo1: 1 6 10 13 arreglo2: 2 7 11 14 3. b) arreglo1: 1 6 7 8 arreglo2: 2 3 4 5 e) arreglo1: 1 2 3 4 arreglo2: 12 13 14 15 c) arreglo1: 1 6 10 13 arreglo2: 2 7 12 14 f) faltan datos de entrada

Observe el siguiente trozo de programa y diga qu imprime, suponiendo que los datos son: 5 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]); } 41 68 32 74 55

Arreglos de Una Dimensin

44

4.

Sean los datos enteros: n, k a0 a1 . an-1 Con: (en la primera lnea) (en la segunda lnea) (en la tercera lnea) (en la ltima lnea) |k| n; 1 n 50

Elabore un programa completo que resuelva progresivamente por funciones cada uno de los siguientes incisos: a) Leer los datos y almacenarlos en un arreglo vec, de tal manera que queden: vec a0 b) a1 . . . an-1

Copiar los datos a otro arreglo llamado inverso, de tal forma que queden almacenados como se indica a continuacin: inverso an-1 . . . a0

c)

Reemplazar cada ai en vec por (ai * 2i) sin utilizar la funcin de potencia y optimizando el nmero de operaciones: vec ao* 20 (a1* 21) . . .

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 vacos; as, si k = 2 se pierden los dos ltimos datos (an-2 y an-1) y el arreglo quedara: 0 5. 0 ao a1 . . . an-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 calcule e imprima las sumatorias de todos sus elementos, para lo cual deber contar con una funcin para sumar todos los elementos de un arreglo y una funcin para leer los datos de un arreglo. Considere que las dimensiones de los arreglos se leen en el programa principal con 1 m,n,o 50.

Arreglos de Una Dimensin

45

6.

Se tiene el arreglo ventas 0 vene 1 vfeb 2 vmar . . 10 vnov 11 vdic

donde se almacenan las ventas mensuales de una empresa. Elabore una funcin que regrese los siguientes datos: a) b) c) d) 7. En qu mes se dieron las ventas mximas de la empresa? A cunto ascendieron las ventas mximas? Cul fue el total de las ventas? Cul fue el promedio de las ventas?

Dados los datos: n, a0,a1,. . .,an-1, con: b0,b1, . . . ,bn-1

1 n 50, entero ai, bi reales

Elabore funciones por separado para calcular:


n -1

i=0

a i * bi

i=0

n -1

a i * bn 1i

Requiere de arreglos? Cuntos? Por qu? 8. Una fbrica de llantas quiere un programa para calcular el costo total de produccin de los n modelos de llantas que produce. Los datos con que cuenta son los siguientes: n, ao, a1, ..., an-1, c0, c1, ..., cn-1, con: 1 n 50, entero ai enteros ci enteros

Donde: ai ci representa la cantidad de llantas producidas del modelo i representa el costo de produccin de una llanta del modelo i

Arreglos de Una Dimensin

46

9.

Se tienen los siguientes datos: n, ic0, ic1, ..., icn-1 con: 1 n 32, entero ici reales

Donde: ici representa el ingreso per cpita de cada entidad federativa de la Repblica Mexicana. Elabore una funcin para calcular e imprimir el ingreso per cpita promedio de la Repblica, as como para escribir cuntas entidades tienen un ingreso menor que este promedio y cuntas lo tienen mayor o igual. 10. Sean los datos: n, x1, x2, . . . , xn con: 1 n 25, entero xi reales

Elabore un programa que realice funciones por cada inciso y la funcin principal que las mande llamar e imprima los resultados: a) b) Lea los datos y almacene los xi en un arreglo. Calcule e imprima la media de los datos dada por la frmula:

x=
c)
n

i =1

xi n

Calcule e imprima la desviacin estndar dada por la frmula:

a=
11.

(x
i =1

x) 2

Un casino desea llevar a cabo unas estadsticas sobre el juego de ruleta. Se solicita un programa modular que cuente el nmero de veces que cada nmero es ganador en una jornada y al final del da imprima un reporte con lo siguiente: a) b) c) d) Cuntas veces result ganador cada elemento de la ruleta? Cules elementos no resultaron ganadores en toda la jornada? Cul fue el nmero de cada color que gan ms veces?(suponga que slo hay uno) Cul fue el elemento que gan en ms ocasiones?

Arreglos de Una Dimensin

47

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 nmero de juegos de una jornada. Los datos que el casino proporcionar son los siguientes: nmero, color nmero, color ... -1, X Donde: nmero representa el nmero correspondiente al elemento ganador con 0 nmero 34 donde el 0 se representa como un 0 rojo y el 00 se representa como un 0 negro. representa el color correspondiente al elemento ganador. con: R = rojo, N = negro representan el fin de la jornada

color -1,X 12.

Una compaa 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 slo se le dar $150.00 adicionales por semana. La informacin 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 ms que el sueldo promedio del grupo, entonces debe cambiar al grupo 2. Elabore un programa modular que: a) b) c) Lea la informacin de los n empleados e imprima la clave, grupo y sueldo semanal nuevo para cada empleado, actualizando el grupo si es el caso. Calcule el sueldo promedio de los empleados por grupo y calcule tambin el promedio general de todos, sin considerar el grupo. Indique cuntos empleados cambiaron del grupo 1 al 2.

13.

Se tienen n alumnos (1 n 50) de los cuales se conoce la clave y la calificacin final. Elabore un programa modular que: a) b) c) Lea dicha informacin, la cual se da ya ordenada en forma descendente, con respecto a la clave. Imprima la clave y calificacin de todos los alumnos que obtuvieron calificacin superior al promedio del grupo. Imprima la calificacin que obtuvieron los alumnos cuyas claves proporcionar el usuario. Se sabr que el usuario ya no quiere conocer ms calificaciones cuando, en lugar de una clave, proporcione un cero. Utilice bsqueda binaria para buscar las claves que el usuario solicita.

Arreglos de Una Dimensin

48

14.

Se tiene un conjunto de n parejas de datos Xi, Yi donde cada pareja representa las coordenadas del punto i de un polgono irregular de n lados. Suponga que las coordenadas se proporcionarn en orden adyacente. Elabore una funcin para leer el nmero de lados del polgono, leer las coordenadas de los puntos y obtener el rea del polgono irregular utilizando la siguiente frmula: Area = [(X0+X1)*(Y0-Y1 ) + (X1+X2)*(Y1-Y2)+. . .+ (Xn-1+X0)*(Yn-1-Y0)]/2 Suponga que los Xi ,Yi son reales y n es entero con 1 n 50.

15.

Elabore una serie de funciones para leer una serie de n datos desordenados, almacenarlos en el arreglo val (de mximo 50 localidades), ordenarlos de manera creciente, utilizando el algoritmo de seleccin directa, en ese mismo arreglo y, por ltimo, imprimirlos en orden. val 0 vo Variante: 1 v1 2 v2 . . n-1 vn-1 49 ...

En el arreglo final no debe haber datos repetidos.

16.

Partiendo del ejercicio anterior, elabore un programa que contenga funciones para: a) Buscar un valor x dentro del arreglo utilizando el algoritmo de bsqueda secuencial. La funcin debe regresar como resultado la posicin en la que se encuentra el valor buscado. Si x no se encuentra en el arreglo, la funcin calcula la posicin en la que debera encontrarse y regresa: posicin 1. Buscar un valor x dentro del arreglo utilizando el algoritmo de bsqueda binaria. Insertar un valor x en el arreglo de tal forma que se siga conservando el orden ascendente de los valores. Al insertar se debe verificar que haya espacio libre y que x no exista en el arreglo. La funcin debe regresar como resultado 1 si se insert x en el arreglo, 0 si x ya exista en el arreglo y 1 si no existe espacio libre en el arreglo. Eliminar un valor x del arreglo, compactando si es necesario para que no haya espacios libres entre valores. La funcin debe regresar como resultado 1 si se elimin x, 0 si x no se encontraba en el arreglo y 1 si el arreglo estaba vaco. Sustituir un valor x ya existente en el arreglo con un valor y de tal manera que el arreglo siga conservando su orden creciente. La funcin debe regresar como resultado 1 si se hizo la sustitucin, 0 si x no se encontraba en el arreglo y 1 si el arreglo estaba vaci.

b) c)

d)

e)

17.

Elabore un programa modular que lea dos arreglos de diferente nmero de elementos, los ordene y posteriormente los mezcle en un tercer arreglo guardando el orden. Ho hay repetidos.

Arreglos de Una Dimensin

49

Restriccin: no se deben unir los arreglos en desorden, ni copiar un arreglo completo, es decir, los elementos que se almacenen en el tercer arreglo se deben ir guardando en orden. 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. En el departamento de matemticas necesitan un programa en C modular (un mdulo por inciso) que calcule el producto escalar de dos vectores, la norma de un vector y el coseno del ngulo que forman. Anlisis del problema: El producto escalar de dos vectores de n componentes se define de la siguiente forma: pe(n,a,b) =

19.

a(i) * b(i)
i =1

la norma de un vector de n componentes se define de la siguiente forma: norma(n,a) =

a(i) * a(i) =
i =1

pe(n, a, a )

el coseno del ngulo que forman dos vectores de n componentes se define de la siguiente forma:

a(i) * b(i)
coseno(n,a,b) =
i =1

a(i) * a(i) *
i =1

b(i) * b(i)
i =1

pe(n, a, b) norma(n, a) * norma(n, b)

a) Haga un mdulo llamado leerArreglo que lea los datos del arreglo (los datos son reales). b) Haga un mdulo llamado calcularProdEscalar que calcule y regrese el producto escalar. c) Haga un mdulo llamado calcularNorma que calcule y regrese la norma, utilizando el mdulo calcularProdEscalar. d) Haga un mdulo llamado calcularCosen que calcule y regrese el coseno utilizando los mdulos anteriores. e) Por ltimo, haga el mdulo principal, incluyendo las declaraciones necesarias, para leer el nmero (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.

Arreglos de Una Dimensin

50

20.

Haga un mdulo llamado mayoritario que calcule y regrese un uno (1) si un arreglo es mayoritario o cero (0) si no lo es. Anlisis del problema: Mayoritario: se dice que es mayoritario, si existe un elemento almacenado en el vector que se repite ms de n/2 veces, siendo n el total de valores guardados en el arreglo.

21.

Elabore un programa modular que lea los datos de dos polinomios como se explica posteriormente y que, utilizando un men, efecte las siguientes operaciones sobre polinomios: a) Suma. b) Resta. c) Multiplicacin. Al seleccionar el usuario una de estas tres opciones dar los polinomios sobre los cuales se realizar la operacin 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. Los trminos del polinomio resultante debern ser desplegados en orden descendente, observando el siguiente formato: cX ^e Donde: c ^ e representa el signo del trmino representa el coeficiente del trmino significa exponenciacin representa el valor del exponente

Por ejemplo, suponga que los datos son: 2.5 -2 3 2 -4 -3 2 4 6.5 9.1 1 1 3 6.9 4 8 -1 -1 -1 -1

Entonces, los polinomios que se van a operar son: +2.5X3 - 4X2 + 6.5X1 + 3X4 -2X2 - 3X4 + 9.1X1 + 6.9X8 De tal forma que el resultado de la suma es: 6.9X8 + 2.5X3 - 6X2 + 15.6X1 y se desplegara como:
Arreglos de Una Dimensin

51

22.

+ 6.9X^8 + 2.5X^3 - 6X^2 + 15.6X^1 Dado un nmero natural n de 4 cifras, no todas iguales, encuentre e imprima el nmero mayor y el menor que se puede formar con las mismas cifras. Por ejemplo, si n = 6174, entonces el nmero mayor que se puede formar es 7641 y el menor 1467.

23.

Elabore un programa que utilizando la criba de Eratstenes encuentre los nmeros 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 deben inicializarse con 0 (falso). 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, pngale 0 si su ndice es mltiplo de i. Vuelva a hacer lo mismo, pero ahora considerando el primer elemento que sea 1 y cuyo ndice sea mayor a i. Contine este proceso hasta que haya probado todos los elementos iguales a 1.

b)

Cuando se haya terminado este proceso, los ndices del arreglo cuyos elementos sean 1 son primos. 24. Se necesita programar una materia para el prximo semestre. En principio se han establecido 10 grupos para la misma. Para conocer cuntos alumnos hay interesados en cada uno de ellos, se les pidi que votaran indicando su preferencia. La informacin se proporciona de la siguiente manera: clavealumno votogrupo clavealumno 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 cules grupos se abren o se cancelan. a) Haga una funcin que calcule las suma de votos y regrese cuntos alumnos votaron en total. b) Haga una funcin que elimine los grupos que tienen menos de 25 alumnos. c) Haga una funcin que imprima los grupos que pertenecern abiertos. (son aquellos que tienen 25 o ms alumnos) d) Haga la funcin principal que mande llamar las dos funciones anteriores.

Arreglos de Una Dimensin

52

25.

En estadstica, la moda de una serie de nmeros es aquel nmero que aparece con ms frecuencia. Por ejemplo, dada la lista 1,2,2,3,6,4,7,5,4,6,9,4, la moda es 4, ya que aparece tres veces. Calcule e imprima la moda. Si todos los nmeros son diferentes entonces no hay moda, con lo cual se debe indicar que hubo error. Haga un programa completo en C que deber tener una funcin que lea la serie de nmeros, otra funcin que reciba como parmetro la serie de nmeros y arroje la moda o si no la hay 1 y la funcin principal que mande llamar las anteriores e imprima la moda (nmero que mas veces se repiti en caso de haber dos iguales o ms mencione el primero). La tienda Dulcecito vende como mximo 100 productos diferentes. La informacin sobre los productos se encuentra almacenada en los siguientes arreglos paralelos: Producto 0 1 2 99 0 1 2 99 Cantidad

26.

Producto guarda la clave de los diferentes dulces. Cantidad es la cantidad de cajas de dulces de un productoi. El administrador necesita un programa en C modular (un mdulo por inciso) para: f) Saber: cul es la clave del producto que tiene la mayor cantidad de cajas? (Funcin llamada mayor que reciba como parmetro el arreglo Cantidad y regrese el ndice de la mayor cantidad de cajas. Asuma que no habr cantidades iguales.) g) Saber: cules son los productos que necesita pedir al proveedor ya que tiene ms de una caja y menos de 50 cajas en existencia? (Funcin llamada pedido que regrese como parmetro 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. (Funcin 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. (Funcin 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 informacin requerida en cada uno de los incisos. Suponga que las claves de los 100 productos y cantidades ya estn almacenadas en los arreglos.

Arreglos de Una Dimensin

53

27.

Se tienen los siguientes datos n x0 f (x0) x1 f (x1) . . . xn-1 f (xn-1) valx

donde: n es el nmero de xi y f(xi) que se proporcionarn (1<= n <= 50) xi son los valores de x (en orden creciente) f(xi) es el valor de una funcin para xi valx 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 frmula que se da a continuacin, inserte este nuevo valor de x (valx) as como el valor calculado f(valx) en sus respectivos arreglos manteniendo el orden creciente de las xs sin utilizar ningn algoritmo de ordenamiento, e imprima el valor calculado de f(valx) . Suponiendo que valx debe insertarse en la posicin 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 Dimensin

54

28.

Una cooperativa de productores de naranjas almacena el total de toneladas cosechadas durante el ltimo ao en N parcelas (1 N 50). En cada parcela se pueden cultivar dos tipos de naranjas: para jugo y para comer. Se conoce el total de toneladas cosechadas de cada uno de los tipos de naranjas. Si en una parcela no se hubiera cosechado alguno de los tipos, entonces habr 0. La informacin se almacena en un arreglo como se muestra en el siguiente ejemplo:

Naranjas para Naranjas para comer jugo

100

500

600 2

0 3

800 4

700 5

...
2N2N-2 2N-1 Parcela N

...
MAX - 1

0 1 Parcela 1

Parcela 2

Parcela 3

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

NOTA: Observe que la informacin de una misma parcela ocupa posiciones consecutivas en el arreglo. Se le pide que haga un programa en C, usando mdulos, que pueda: a) Leer la informacin: N (1 N 50) y las toneladas por tipo de naranja de cada una las parcelas. b) Calcular e imprimir el total de la produccin por parcela. c) Eliminar la informacin de una parcela. El dato requerido para esta opcin es el nmero de parcela a eliminar. d) Buscar e imprimir el nmero de una parcela (si hubiera) que no haya tenido produccin de ninguno de los tipos de naranjas. Es decir, durante el ltimo ao su produccin total fue 0.

Arreglos de Una Dimensin

55

También podría gustarte