Vous êtes sur la page 1sur 10

ARREGLOS DE UNA DIMENSIN

Los ejercicios de programacin deben resolverse utilizando funciones que modularicen las soluciones. 1. Suponga las siguientes declaraciones: int int puntos [500]; 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

42

2.

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 3. 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

43

4.

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) 5. 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? 6. 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

44

7.

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. 8. 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=
9.

(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

45

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 10.

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.

11.

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

46

12.

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.

13.

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.

14.

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)

Arreglos de Una Dimensin

47

15.

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. 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.

16.

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. 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) b) c) Suma. Resta. Multiplicacin.

17.

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

Arreglos de Una Dimensin

48

De tal forma que el resultado de la suma es: 6.9X8 + 2.5X3 - 6X2 + 15.6X1 y se desplegara como: + 6.9X^8 + 2.5X^3 - 6X^2 + 15.6X^1 18. 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. 19. 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. 20. 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.

Arreglos de Una Dimensin

49

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. 21. 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). Se tienen los siguientes datos n x0 f (x0) x1 f (x1) . . . xn-1 f (xn-1) valx

22.

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

50

23.

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 jugo comer

100

500

600 2

0 3

800 4

700 5

...
2N- 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

51

Vous aimerez peut-être aussi