Ejercicios Vectores - Matrices Struct

EJERCICIOS ARREGLOS DE UNA DIMENSIÓN . . , "" 1. En un-arreglo se ha almacenado el número total de toneladas de cere

Views 130 Downloads 0 File size 2MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

EJERCICIOS

ARREGLOS DE UNA DIMENSIÓN .

.

,

"" 1. En un-arreglo se ha almacenado el número total de toneladas de cereales cosechadas durante cada mes del año anterior. Se desea la siguiente información: -i. . «) El promedio anuaPde toneladas cosechadas, . b) ¿Cuántos meses -tuvieron una cosecha superior al promedio anual? c) ¿Cuántos meses tuvieron una cosecha inferior al promedio anual? Escriba un programa que proporcione estos datos. .'-..'•:'' 2. En un arreglo se almacenan las calificaciones finales de N alumnos. Escriba un programa que calcule e'imprima: . a) b) ; -c} ¡i)

El promedio general del grupo.-• ' : /• . . ' •'Número de alumnos aprobados y número de alumnos reprobados. Porcentaje de alumnos aprobados y porcentaje de alumnos reprobados, Número de alumnos cuya calificación fue mayor o igual a 8. [' •

3. Dada una cadena de/caracteres, como dato, se desea saber el núme-ro de veces que aparecen las letras 'a', 'b',.. .,'z' y 'A', 'E',.. .,'Z' en dicha cadena. a) b) c)

Escriba un programa que resuelva el problema. Si usó arreglos, ¿cuántos necesitó? ¿Por qué? ¿Existe otra forma de resolverlo? ~

4. Una compañía almacena la información relacionada a sus proveedores en • los siguientes arreglos: ....':< PROVEEDORES

p,

Pl

. -.í

P)

Cada p¡ es. el nombre del proveedor ¡.Este arreglo está ordenado alfabéticamente. CIUDAD c,

Cada c¡ es el nombre de la ciudad en la que reside el proveedor,-. NUMERO DE ARTÍCULOS

Cada a¡ es el número de artículos diferentes que provee el proveedor,-. Escriba un programa que pueda llevar a cabo las siguientes transacciones: a)

Dado el nombre de un proveedor, informar el nombre de la ciudad en la que reside y el número de artículos que provee. b) Actualizar el nombre.de la ciudad, en caso de que un proveedor cambie de domicilio. Los datos serán el nombre del proveedor y el nombre - de la ciudad a la cual se mudó. c) Actualizar el número de artículos, manejados por un proveedor en caso de que éste aumente o disminuya. Los datos serán el nombre del proveedor y la cantidad en la que aumenta (+) o disminuye (-) el total de ' artículos que provee. >••''.'•: d) La compañía incorpora un nuevo proveedor. Actualizar los arreglos sin alterar el orden de PROVEEDORES. Los datos serán el nombre del proveedor, el nombre de la ciudad y el total de arriciaos que provee. e) La compañía da de baja a un proveedor. Actualizar los arreglos. El dato será el nombre del proveedor. •

5. ' Una inmobiliaria tiene información sobre departamentos en renta almacenada en dos arreglos: EXTENSIÓN

e,

e,

El arreglo EXTENSIÓN almacena la superficie, en metros cuadrados, de cada uno de los N departamentos. PRECIO

p,

'.

p,

El arreglo PRECIO almacena los precios de alquiler de los N departamentos. Este arreglo está ordenado de manera creciente. Considere que no existen departamentos con igual superficie y distintos precios. Escriba un programa que pueda llevar a cabo las siguientes.operaciones:

rf) El nombre del centro turístico que más restaurantes tiene con relación al número de habitaciones. 7 Se tienen tres arreglos: SUR, CENTRO y NORTE que almacenan los nom'. bres de los países de Sur, Centro y Norteamérica respectivamente. Los tres arreglos están ordenados alfabéticamente. Escriba un programa que mezcle los tres arreglos anteriores, formando un cuarto arreglo, AMÉRICA, en el cual aparezcan los nombres de todos los países del continente ordenados alfabéticamente. 8. Se tienen dos arreglos: CINES y TEATROS. El primero almacena los nombres de todos los cines de la ciudad. Está ordenado alfabéticamente de manera ascendente: CINES[1] < CINES[2] < ... < CINES[N] El segundo arreglo guarda los nombres de todos los teatros de la ciudad. Está ordenado alfabéticamente de manera descendente: '

TEATROS[1] > TEATROS[2] > ... > TEATROS[fC]

Escriba un programa que mezcle estos arreglos formando un tercero, ENTRETENIMIENTOS, que quede ordenado alfabéticamente de manera ascendente. 9.

Se tienen registradas las calificaciones obtenidas en un examen por 50 alumnos. Los datos son cal^, cal2, ... , calsa, donde cal, es un número entero comprendido entre los valores O y 10 (O < ccil¡ < 10). Escriba un programa que calcule e imprima la frecuencia de cada uno de los posibles valores. La salida del programa debe ser como la que se muestra a continuación: Calificación

Frecuencia

0 1 2 3 4

1 ALUMNOS — — 4 ALUMNOS 2 ALUMNOS

10

3 ALUMNOS

10. Escriba sus propios algoritmos para insertar, eliminar o modificar un elemento de un arreglo: a) b)

Si el arreglo está desordenado. Si el arreglo está ordenado.

a)

b)

Llega un cliente a la inmobiliaria y solicita rentar un departamento.'Si existe alguno con superficie mayor o igual a la buscada y precio menor o igual al buscado, se dará de baja al departamento seleccionado. Se vence un contrato y el cliente no desea renovarlo. Se deben actualizar los arreglos. -

Se tiene la siguiente información: CT a,

En el arreglo CT se almacenan los nombres de N centros turísticos del país. H

„ í

En el arreglo H se almacena el número de habitaciones de cada tipo (sencilla o doble) de cada centro turístico. Por ejemplo: H[l] guarda H[2] guarda H[3] guarda H[4] guarda etc.

el número el número el número el número

de habitaciones sencillas del centro 1. de habitaciones dobles del centro 1. de habitaciones sencillas del centro 2. de habitaciones dobles del centro 2.

TR C,

En el arreglo TR se almacena el número total de restaurantes por centro turístico. Deberá hacer un programa que pueda proporcionar la siguiente información: a.) b) c)

El nombre del centro turístico que cuenta con más restaurantes. El nombre del centro turístico que cuenta con más habitaciones (teniendo en cuenta las sencillas y las dobles). Dado el nombre de un centro turístico como dato, informar cuántas habitaciones tiene (sencillas, dobles y el total).

ARREGLOS MULTIDIMENSIONALES 11.

Sean los arreglos bidimensionales A(M X N) y B(M, X N) Donde:

1 < M < 10, 1 < N < 20, a¡j y fe, • son reales.

Escriba un programa que calcule C(M X N) = A(M X N) + B(M-X N). 12. Sean los arreglos bidimensionales A(M X N) y B(N X P) Donde: 1 < M < 10, 1 < N < 10, 1 < P < 5, íi,-y- y b,-; son reales.

'"• j

Escriba un programa que calcule C(M X P) = A(M X N) * B(N X P) 13. Escriba un programa qüéjlene de ceros una matriz A(N X N) excepto en la diagonal principal donde debe asignar 1. Si N = 4, la matriz debe quedar: 2

3

1

1

0

0

0

2

0

V

0

0

3

0

0

1

0

4

0

0

0

1

14. Escriba un programa que intercambie por renglón los elementos de un arreglo bidimensional. Los elementos del renglón 1 deben intercambiarse con. los del renglón N, los del renglón 2 con los del N - 1, y así sucesivamente. Por ejemplo, si A es:

1

1

4

5

-5

2

0

87

1

0

3

2

4

10

4

9

5

7

El resultado de la operación debe ser:

5

1

9

5

7

5

2

2

4

10

. 3

3

0

87

1

4

1

4

8

0 • -5

Detienen los costos de producción de tres departamentos (dulces, bebidas v ;:~;-r :_ ; irrresrrr.dier.res a los 12 meses del ano anterior. _ :

bebidas

conservas

,:,-:

: -------

Escriba ur_ rrrerar^a ue rue_a rr:r :r a) b) c) d)

a ;:ru:;":i :rj:r~;;:¿n:

¿En qué mes se registró el mayor costo de producción de dulces? Promedio anual de los costos de producción de bebidas. ¿En qué mes se registró el mayor costo de producción en bebidas, y en qué mes el menor costo? ¿Cuál fue el rubro que tuvo el menor cosco de producción en diciembre?

16. Se tiene una tabla con las calificaciones obtenidas por 30 alumnos en seis "^ exámenes diferentes:

30

19. Sean A(M X N) y B(N) dos arreglos de dos y una dimensión respectivamente. Escriba un programa que asigne valores a A, á partir de B teniendo en cuenta los siguientes criterios: o) a,; = (¿n> b) fl~ = 0

Si;,.

20. Dado el problema planteado en la sección 1.3 escriba un programa que pueda proporcionar la siguiente información: a

) ¿Cuál fue el departamento que más producción obtuvo al cabo de los 4 años? b) ¿En qué mes del segundo años se alcanzó el mayor nivel de producción? c ) ¿En qué año se produjo más? 2) ¿En qué departamento, mes y año se tuvo el mayor nivel de producción de la compañía?

PARALELOS-REGISTROS O departamento de personal de una escuela tiene registros del nombre, r - : í dad de cada uno de los profesores adscritos al mismo. SEXO

NOMBRE

EDAD

^.-::.:: ._- rr: crsrr.a que calcule e imprima los siguientes datos: E¿i¿ rrrzr.edi: ¿el grupo de profesores. .'.: ~ r:; i -:. rrcfesor más joven del grupo. c ) NcKiibre ddprofesor de más edad. -' Xúrr.er: ¿e rr:reseras con edad mayor al promedio. -- Núrr.er: r;e rr: :e;:r¿5 con edad menor al promedio. 22. Resuelva el problema 21 con tres arreglos paralelos. Compare sus soluciones. NOM3RE

EDAD

N

N

Escriba un programa para calcular: * a) El promedio general de calificaciones de los 30 alumnos (considerando los 6 exámenes). - b) El alumno que obtuvo la mayor calificación en el tercer examen. •a c) El alumno (si lo hubiera) que obtuvo la mayor calificación en el primero y en el sexto examen, rf) Dado el número que identifica a un alumno, informar en qué examen logró la menor calificación. » e) ¿En cuál examen fue más alto el promedio de los 30 alumnos? . . 17. Escriba un programa que genere e imprima un cuadrado mágico de dimensión N (N es entero, positivo e impar). Un cuadrado -mágico es una matriz cuadrada de orden N, que contiene a los números naturales del uno al N * N, y donde la suma de cualquiera de los renglones, columnas o diagonales principales es siempre la misma. Puede utilizar los siguientes pasos para generar un cuadrado mágico: a) El número 1 se coloca en la casilla central del primer renglón. b) El siguiente número se coloca en la casilla correspondiente al renglón anterior y columna posterior. c) El renglón anterior al primero es el último, y la columna posterior a la última es la primera. d) • Si el número es un sucesor de un múltiplo de N, no se aplica la regla 2, sino que se coloca en la casilla del renglón posterior y en la misma columna. Si N = 5, el cuadrado generado debe quedar:

1

17

24

2

23

5

3

4

4 5

1 •'

8

15

7

14

16

6

13

20

22

10

12

19

21

3

11'

18

25

2

9

18. Sean A(M X N) y B(N) arreglos de dos y una dimensión respectivamente. Escriba un programa que asigne valores "a B, a partir de A teniendo en cuenta los siguientes criterios: Si; es impar

Si es

'

23. En una escuela, de cada alumno se tienen los siguientes .da tos: .• • • • •

Nombre Matrícula Número de semestres cursados Calificación promedio por semestre,

. . •

."

Escriba un programa que, dada la información de N alumnos, pueda realizar las siguientes operaciones: a) b) c)

Listar nombre y matrícula de estudiantes con promedios generales mayores o iguales a ocho. Actualizar los campos que correspondan cuando un estudiante ha concluido un semestre. Listar nombre y matrícula de estudiantes que hayan obtenido 9. o másde calificación en todos los semestres cursados hasta- el momento.

24. Una compañía distribuye N productos a distintos comercios de la ciudad. Para ello aalmacena en un arreglo toda la información relacionada con su mercancía: . • • • •

Clave Descripción Existencia Mínimo a mantener de existencia Precio unitario

-,.

Escriba un programa que pueda llevar a cabo las siguientes operaciones: a)

Venta de un producto: se deben actualizar los campos que correspondan, y verificar que la nueva existencia no esté por debajo del mínimo. (Datos: clave, cantidad vendida.) b) Reabastecimiento de un.producto: se deben actualizar los campos que correspondan. (Datos: clave, cantidad comprada.) c) Actualizar el precio de un producto. (Datos: clave, porcentaje de aumento.) ti) Informar sobre un producto: se deben proporcionar todos los datos relacionados con un producto. (Dato: clave.) 25. Al momento de su ingreso al hospital, a un paciente se le solicitan los siguientes datos: • • • •

Nombre Edad Sexo Domicilio: — Calle — Número —Ciudad

. ,.' . •-.

Teléfono Seguro (este campo tendrá el valor VERDADERO si el paciente tiene o y FALSO en otro caso) • Escriba un programa que pueda llevar a cabo las siguientes operaciones: n)~ Listar los nombres de todos los pacientes hospitalizados. b) Obtener el porcentaje de pacientes hospitalizados en las siguientes categorías (dadas, por la edad): Niños: hasta 13 años. Jóvenes: mayores de 13 años y menores de 30 años. Adultos: mayores de 30 años. cj i Obtener el porcentaje de hombres y de mujeres hospitalizados. dy Dado el nombre de un paciente, listar todos los datos relacionados con /dicho paciente. e) Calcular el porcentaje de pacientes que poseen seguro médico. 26. Una inmobiliaria tiene información sobre departamentos en renta. De cada departamento se conoce: • • • • •

> Clave: es un entero que identifica al inmueble. * Extensión: superficie del departamento, en metros cuadrados. Ubicación: (excelente, buena, regular, mala). • * Precio: es un real.* « Disponible: VERDADERO si está disponible para la renta y FALSO si ya está rentado.

Diariamente acuden muchos clientes a la inmobiliaria solicitando información. Escriba un programa capaz de realizar las siguientes operaciones sobre la información disponible: 0j£ Liste los datos de todos los departamentos disponibles que tengan un precio inferior o igual a un cierto valor P. • fr). Liste los datos de los departamentos disponibles que tengan una superficie mayor o igual a un cierto valor dado E y una ubicación excelente. el; Liste el monto de la renta de todos los departamentos alquilados. ") Llega un cliente solicitando rentar un departamento. Si existe un departamento con una superficie mayor o igual a la deseada, con'un precio y una ubicación que se ajustan a las necesidades del cliente, el departamento se renta. Actualizar los datos que correspondan. e) Se vence un contrato, si no se renueva, actualizar los datos que correspondan.

y)

27.

Se ha decidido aumentar las rentas en un X%. Actualizar los precios de las rentas de los departamentos no alquilados.

Resuelva el problema 6 utilizando arreglos de registros.

CONJUNTOS 28.

Determine el valor de verdad (falso o verdadero) de las siguientes expresiones: „) í,) c)

d) e) f) S) /i) í) y) 29. 30.

31. 32.

[1,2,3] = [3,2,1] [12,14,16] < [12,14,16] [3,6,7] = [3,6,7] * [1..10] [1-20] > [1..30] [2,4,6,8,10] * [1.. 10] [1,2,3,4,5,6,7,8,9,10] * [1..10] 'B' e ['C .. T] rojo e ([azul, rojo, blanco] - [azul]) 3 e ([1..10] - [1,3,5,7^9]) 'M' e ['a' .. 'z']

Escriba un subprograma que determine la cardinalidad de un conjunto.' Escriba un programa que lea dos cadenas de caracteres y forme un conjunto con los caracteres que pertenecen a una de las dos cadenas, pero no a ambas. Escriba un programa que lea 3 números enteros cualesquiera entre 100 y 1 000, y forme un conjunto con los dígitos comunes a dichos números. Una galería de arte tiene información sobre las actividades desarrolladas por un grupo de 15 pintores, a lo largo de los 12 meses/de los últimos 10 años.JLas tareas a desempeñar por un pintor son: exponer, pintar, terminar _obra, inspirarseJEn un mes puede realizar varias de estas tareas.¿La estructura para almacenar la información será un arreglo de^dimensiones!]} Nota: decida de qué manera manejará los nombres de los 15 pintores. X"

/ j¿ ^f^ '

n' X""

1

x^

^

/

/ £

s

/s

x^ ^

^

Lx"

^ ^ " \Lx

/ ,xT

^

x

T

^ k 1 O años / / ^

1

X

15 Meses:

^s

s

f

/"

sf



^

ene

feh

mar

dic

^

Escriba un programa que pueda dar los siguientes datos de interés: n) b) c) d) e) /) g)

El nombre del pintor que desarrolló las mismas actividades tocos los iiat5s.ru/xo K ¿En qué mes y en qué año el pintor X se inspiró? *** ¿Cuál fue el año en el cual se terminaron menos obras de arte? El nombre de los pintores que expusieron durante todos los meses del año K. El mes y el año en el cual todos los pintores terminaron alguna obra. ¿En qué año el pintor X dedicó más meses a pintar? ¿En qué mes y en qué año no se terminó ninguna obra de ningún pintor?

PROBLEMAS INTERESANTES (Decida el lector qué estructura de datos debe utilizar para resolverlos.) 33. Escriba un programa que lea un número romano, e imprima su equivalente en arábigo. Recuerde que:

i=

-

. ,

i V;

V= 5 X = 10 L = 50 C = 100 D = 500 M = 1 000

34. Escriba un programa que calcule e imprima los números perfectos comprendidos entre dos números A y B. Un número es perfecto si la suma de sus divisores, excepto él mismo, es igual al propio número. 35. Escriba un subprograma que reciba como datos el nombre de un día de la semana y un número entero N (positivo o negativo), e imprima el día de la-semana correspondiente a N días después (positivo) o N días antes (negativo) del día dado. 36. Lo mismo que en el problema 35, pero ahora con respecto a un mes. 37. Escriba un programa que calcule e imprima los números primos menores que cierto número dado N. 38. Escriba un programa que calcule e imprima los números primos gemelos menores que un cierto número dado N. Dos números son primos gemelos si son números primos con una diferencia entre ellos de exactamente 2. Por ejemplo 3 y 5 son primos gemelos.