You are on page 1of 5

I.T.

Industrial
Fundamentos de Informtica

Ejercicios de Teora

PROBLEMAS DEL TEMA 8: Estructuras de Datos Complejas

EJERCICIOS RESUELTOS

1. Disear un programa que lee las calificaciones de un alumno en 5 asignaturas, las almacene en un vector
y calcula e imprime su media
#include <stdio.h>
#include <stdlib.h>
int main()
{ float notas[5], media=0;
int n;
for(n=0;n<5;n++)
{ printf("Introduzca nota Asignatura %d: ",n+1);
scanf("%f",&notas[n]);
media = media + notas[n];
}
media = media/n;
printf("La media de las notas es %.2f\n", media);
system("pause");
return 0;
}

2. El mismo ejercicio anterior pero para 30 alumnos


#include <stdio.h>
#include <stdlib.h>
int main()
{ float notas[30][5],media[30],suma;
int a,n;
for(a=0;a<30;a++)
{ suma=0;
printf("Datos del alumno %d\n\n",a+1);
for(n=0; n<5; n++)
{ printf("Introduzca nota Asignatura %d: ",n+1);
scanf("%f",&notas[a][n]);
suma=suma+notas[a][n];
}
media[a]=suma/n;
printf("\n\nLa media de las notas del alumno %d es %.2f\n", a+1, media[a]);
system("pause");
}
return 0;
}

16/20
I.T. Industrial
Fundamentos de Informtica

Ejercicios de Teora

EJERCICIOS PROPUESTOS

Ejercicios con Tablas y Cadenas de Caracteres

1. Disear un programa que devuelva en un array, el cuadrado de los 100 primeros nmeros enteros.

2. Realizar un programa que solicite los valores de 60 temperaturas, y devuelva la media y el nmero de
temperaturas mayores o iguales a dicha media.

3. Disear un programa que calcule el mayor valor de una tabla de 3x5 elementos enteros.

4. Realizar un programa que visualice la matriz traspuesta de una matriz M de 6x7 elementos. Una matriz
traspuesta a otra es aquella que tiene intercambiadas la filas y las columnas.

5. Disear un programa que dadas dos matrices bidimensionales de 5x2 elementos, leidas por teclado,
indique mediante un mensaje al usuario si son iguales o no.

6. Realizar un programa que permita analizar si una palabra que el usuario introduce desde teclado es o no
palndroma.

7. En una tabla bidimensional de 31x24 tenemos almacenado el porcentaje de CO2 en el ambiente,


correspondiente al mes de Diciembre, medido a razn de una toma por hora:

ndice da 0 1 ... 23 ndice hora


0 15.7 10.0 19.3
1 17.0 20.1 0
...

30 10 15 16.3

Realizar un programa que:

a) Pida esta informacin por teclado, y calcule (y muestre por pantalla) la concentracin media
registrada desde las 10h del da 15 hasta las 15h del da 20 (inclusive).

b) Muestre por pantalla los momentos (da y hora) entre los das 15 y 31, cuya concentracin de CO2
fue superior a la media registrada desde las 10h del da 15 hasta las 15h del da 20.

c) Indique el nmero total de horas en las que ocurri el hecho solicitado en el apartado b).

17/20
I.T. Industrial
Fundamentos de Informtica

Ejercicios de Teora

8. Realizar un programa que pida al usuario dos matrices (A y B), no necesariamente de la misma
dimensin, y a continuacin le ofrezca el siguiente men, realizando las operaciones oportunas y
teniendo en cuenta que en funcin de las dimensiones de las matrices solicitadas no se podrn realizar
todas las operaciones, lo que obligar al programa a mandar al usuario un mensaje explicando la
situacin surgida:
1. A+B
2. A-B
3. A*B
4. Determinate(A)
5. Determinante(B)
6. Simetria de A
7. Simetria de B
0. Salir

9. Realizar un programa que simule algunas de las funciones para trabajar con cadenas de caracteres (con
un mximo de 10 caracteres), de modo que mostrar el siguiente men:
1. strcpy (Copiar cadenas)
2. strcat (Concatenar cadenas)
3. strchr (Buscar un carcter en una cadena)
4. strcmp (Comparar cadenas)
5. strlen (Calcular la longitud de una cadena)
6. Salir

10. Escribir un programa que lea un texto (como mximo de 100 caracteres), y calcule de cuntas palabras
est compuesto. Supondremos que no se escriben ms de un espacio en blanco entre cada palabra.

11. Implementar un programa que lea un texto (como mximo de 100 caracteres), y que calcule cul es la
vocal que ms se repite.

12. Desarrollar un programa que cuente las ocurrencias de cada una de las letras del alfabeto, en una palabra
introducida por teclado

18/20
I.T. Industrial
Fundamentos de Informtica

Ejercicios de Teora

Ejercicios con Estructuras

1. Crear las variables necesarias para poder tener al da el inventario de todos los CDs que posee un
usuario.

Sabemos que en su casa tiene una estantera con capacidad para 20 CDs y que no tiene intencin de
sobrepasar dicha cantidad.

Para cada disco necesita almacenar la siguiente informacin:


Ttulo del disco
Artista/Grupo
Ao
Nmero de canciones (como mximo cada CD tendr 10)
Y por cada cancin necesita almacenar, esta otra:
Ttulo
Duracin (segundos)

2. Basndose en las variables anteriores crear un programa que mantenga actualizada la discoteca del
usuario, de modo que le ofrezca las siguientes utilidades:

ACTUALIZACIN DE LA DISCOTECA
1.- Aadir un nuevo disco.
2.- Buscar un disco.
3.- Buscar una cancin.
4.- Qu discos se poseen de una artista/grupo concreto.
5.- Qu disco posee ms canciones.
6.- Salir
Escoja una opcin:

La opcin 1 consistir en solicitar (siempre que quede espacio, pues no se podrn sobrepasar los 20
CDs) la informacin del nuevo disco y de todas sus canciones, y colocarla en el primer hueco libre de la
estantera.

La opcin 2 pedir al usuario el nombre de un CD y lo buscar por la estantera indicando en caso de


estar en qu balda de la estantera se encuentra.

La opcin 3 solicitar al usuario el ttulo de una cancin y le indicar a ste en el caso de encontrarla, a
qu disco pertenece, quin la interpreta y cul es su duracin.

La opcin 4 le indica al usuario cuntos discos, y qu ttulos tienen, se poseen de un artista/grupo en


particular. Adems se le dir al usuario en qu parte de la estantera se encuentran.

La opcin 5 busca cul es el/los disco/s con ms canciones, indicando ttulo y duracin total
(horas:minutos:segundos)

De qu manera mejorara el alumno el programa utilizando funciones?

19/20
I.T. Industrial
Fundamentos de Informtica

Ejercicios de Teora

3. Disear un programa que permita almacenar los datos de las notas de los 50 alumnos de una asignatura.
El programa recoger los nombres de los alumnos (nombre, apellido 1 y apellido 2) as como su nota,
mostrando finalmente la nota mayor alcanzada as como la nota menor, mostrando los nombres de los
alumnos que las poseen. En caso de empate, es decir, que varios alumnos posean a la vez la nota
mxima o mnima, se mostrarn los nombres de los alumnos empatados.

20/20

You might also like