PROBLEMAS DEL TEMA 8: Estructuras de Datos Complejas

Anuncio
I.T. Industrial
Fundamentos de Informática
Ejercicios de Teoría
PROBLEMAS DEL TEMA 8: Estructuras de Datos Complejas
EJERCICIOS RESUELTOS
1. Diseñar 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 Informática
Ejercicios de Teoría
EJERCICIOS PROPUESTOS
Ejercicios con Tablas y Cadenas de Caracteres
1. Diseñar un programa que devuelva en un array, el cuadrado de los 100 primeros números enteros.
2. Realizar un programa que solicite los valores de 60 temperaturas, y devuelva la media y el número de
temperaturas mayores o iguales a dicha media.
3. Diseñar 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. Diseñar 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
palíndroma.
7. En una tabla bidimensional de 31x24 tenemos almacenado el porcentaje de CO2 en el ambiente,
correspondiente al mes de Diciembre, medido a razón de una toma por hora:
Índice día Æ
0
1
...
30
0
15.7
17.0
1
10.0
20.1
10
15
...
23
19.3
0
à Índice hora
16.3
Realizar un programa que:
a) Pida esta información por teclado, y calcule (y muestre por pantalla) la concentración media
registrada desde las 10h del día 15 hasta las 15h del día 20 (inclusive).
b) Muestre por pantalla los momentos (día y hora) entre los días 15 y 31, cuya concentración de CO2
fue superior a la media registrada desde las 10h del día 15 hasta las 15h del día 20.
c) Indique el número total de horas en las que ocurrió el hecho solicitado en el apartado b).
17/20
I.T. Industrial
Fundamentos de Informática
Ejercicios de Teoría
8.
Realizar un programa que pida al usuario dos matrices (A y B), no necesariamente de la misma
dimensión, y a continuación le ofrezca el siguiente menú, realizando las operaciones oportunas y
teniendo en cuenta que en función de las dimensiones de las matrices solicitadas no se podrán realizar
todas las operaciones, lo que obligará al programa a mandar al usuario un mensaje explicando la
situación surgida:
1.
2.
3.
4.
5.
6.
7.
0.
A+B
A-B
A*B
Determinate(A)
Determinante(B)
Simetria de A
Simetria de B
Salir
9. Realizar un programa que simule algunas de las funciones para trabajar con cadenas de caracteres (con
un máximo de 10 caracteres), de modo que mostrará el siguiente menú:
1.
2.
3.
4.
5.
6.
strcpy (Copiar cadenas)
strcat (Concatenar cadenas)
strchr (Buscar un carácter en una cadena)
strcmp (Comparar cadenas)
strlen (Calcular la longitud de una cadena)
Salir
10. Escribir un programa que lea un texto (como máximo de 100 caracteres), y calcule de cuántas palabras
está compuesto. Supondremos que no se escriben más de un espacio en blanco entre cada palabra.
11. Implementar un programa que lea un texto (como máximo de 100 caracteres), y que calcule cuál es la
vocal que más 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 Informática
Ejercicios de Teoría
Ejercicios con Estructuras
1. Crear las variables necesarias para poder tener al día el inventario de todos los CD’s que posee un
usuario.
Sabemos que en su casa tiene una estantería con capacidad para 20 CD’s y que no tiene intención de
sobrepasar dicha cantidad.
Para cada disco necesita almacenar la siguiente información:
Ð Título del disco
Ð Artista/Grupo
Ð Año
Ð Número de canciones (como máximo cada CD tendrá 10)
Y por cada canción necesita almacenar, esta otra:
Ð
Ð
Título
Duración (segundos)
2. Basándose en las variables anteriores crear un programa que mantenga actualizada la “discoteca” del
usuario, de modo que le ofrezca las siguientes utilidades:
ACTUALIZACIÓN DE LA DISCOTECA
1.- Añadir un nuevo disco.
2.- Buscar un disco.
3.- Buscar una canción.
4.- Qué discos se poseen de una artista/grupo concreto.
5.- Qué disco posee más canciones.
6.- Salir
Escoja una opción:
La opción 1 consistirá en solicitar (siempre que quede espacio, pues no se podrán sobrepasar los 20
CD’s) la información del nuevo disco y de todas sus canciones, y colocarla en el primer hueco libre de la
estantería.
La opción 2 pedirá al usuario el nombre de un CD y lo buscará por la estantería indicando en caso de
estar en qué balda de la estantería se encuentra.
La opción 3 solicitará al usuario el título de una canción y le indicará a éste en el caso de encontrarla, a
qué disco pertenece, quién la interpreta y cuál es su duración.
La opción 4 le indica al usuario cuántos discos, y qué títulos tienen, se poseen de un artista/grupo en
particular. Además se le dirá al usuario en qué parte de la estantería se encuentran.
La opción 5 busca cuál es el/los disco/s con más canciones, indicando título y duración total
(horas:minutos:segundos)
¿De qué manera mejoraría el alumno el programa utilizando funciones?
19/20
I.T. Industrial
Fundamentos de Informática
Ejercicios de Teoría
3. Diseñar 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
máxima o mínima, se mostrarán los nombres de los alumnos empatados.
20/20
Descargar