Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ejercicios Programacionc
Ejercicios Programacionc
programacin en
Informtica Industrial
Ingeniera en Automtica y Electrnica Industrial
Curso 2006-07
INDICE
1.
2.
Sentencias condicionales
3.
Sentencias repetitivas
4.
Funciones
10
5.
Arrays
14
6.
Punteros
18
7.
Cadenas
20
8.
Estructuras
25
9.
Ficheros
30
Informtica Industrial
1 de 33
1. Programa que pida un valor en pesetas y lo convierta en euros y otro programa que
lleve a cabo la operacin inversa.
Nota 1 :
Nota 2 :
F 32 C
=
9
5
4. Crear un programa que pida el radio de una circunferencia y que calcule la longitud
de la misma as como el rea incluida dentro.
5. Crear un programa que calcule la fuerza de atraccin gravitacional entre dos masas,
M1 y M2 situadas a una distancia R.
M 1* M 2
( Nw)
R2
donde las masas se expresan en kilogramos y la distancia en metros y la constante
de gravitacin universal vale:
F =G
G = 6.67 x10 11 Nw * m 2 / Kg 2
Nota: Utilizar #define para definir la constante G.
6. Escribir un programa que pregunte el ao actual y la edad de una persona y calcule
la edad de esa persona en el ao 2010.
7. Escribir un programa que calcule el nmero de billetes de 10.000, 5.000, 1,000, as
como de monedas de 500, 100, 25, 5 y 1 pesetas para desglosar una cantidad, C, de
pesetas (menor de 2.147.483.647), de forma que se necesite la menor cantidad de
monedas y billetes de cada tipo.
8. Crear un programa que pida un numero real y muestre la tabla de multiplicar
correspondiente a dicho nmero de tal manera que tanto los valores de los factores
como del producto se presenten encolumnados y con una precisin de 2 dgitos.
Informtica Industrial
2 de 33
Ejemplo:
Programa que muestra la tabla de multiplicar de un nmero
Escribe un nmero: 5 (Valor introducido por el usuario)
TABLA DE MULTIPLICAR DEL NUMERO 5.00
5.00 *
5.00 *
...
5.00 *
1
2
=
=
5.00
10.00
10
50.00
Cuadrado
-------xxxx
Cubo
---xxxxxx
10. Crear un programa que muestre en pantalla el tamao en bytes (8 caracteres) de las
variables ms frecuentes: char, int, short int, long int, float y double.
(Nota: Para calcular el tamao de una variable se puede usar el operador sizeof.)
11. Escribir un programa que tras preguntar el nmero de almacn asociado a un
determinado tipo de pieza, la cantidad pedida de esa pieza y el precio por unidad,
efecte el clculo del precio total de las piezas pedidas. El programa deber escribir
toda la informacin de la pieza en la pantalla, adems del importe total del pedido.
12. Escribir un programa que lea el valor de un ngulo en radianes y muestre su valor en
grados, minutos y segundos
13. Programa que tras pedir por teclado un nmero lo multiplique por 4 y divida por 2
utilizando los operadores de rotacin.
Informtica Industrial
3 de 33
Sentencias condicionales
2. Escribir un programa que tras pedir 2 nmeros por la pantalla muestra cul es el
mayor nmero. (Hgase con la sentencia if y con el operador condicional:
expresin ? valor1 : valor2 )
3. Leer tres nmeros enteros y, si el primero de ellos es negativo, calcular el producto
de los tres, en caso contrario calcular la suma de ellos.
4. Crear un programa que calcule la cada de potencial producida por una resistencia
segn la ley de Ohm (V = I * R) a partir de la resistencia y la intensidad que pasa a
su travs.
Nota: El programa no debe aceptar resistencias negativas, dado que no tienen
sentido fsico, ni resistencias mayores que 1000 (requerimiento adicional
del problema). En ambos casos el programa debe escribir un mensaje de error
en pantalla diciendo que el valor de la resistencia est fuera de lmites
aceptables indicando la causa por la que dicho valor para la resistencia ha
sido rechazado.
x=
ce bf
ae bd
y=
af cd
ae bd
Informtica Industrial
4 de 33
6. Escribir un programa que calcule las races, bien reales o imaginarias, de una
ecuacin de segundo grado.
El programa tambin debe ser capaz de operar con valores nulos para el coeficiente
de orden dos (es decir, deber de ser capaz de resolver ecuaciones de primer grado)
7. Dada la funcin U = f (x, y) tal que:
10
si
x*y<1
y2
si
x*y1
si
x*y<1
y2
si
x*y1
Escribir un programa que calcule los valores de las funciones U y V, una vez
conocidas las coordenadas de un punto (x, y).
8. Escribir un programa que pida un ao y diga si es bisiesto o no.
Nota: Un ao es bisiesto si es mltiplo de 4 salvo el caso en que sea mltiplo de
100, que no es bisiesto, y no sea mltiplo de 400. Por ejemplo, el ao 1900 no fue
bisiesto, el 2000 s y el 2100 no lo es.
Informtica Industrial
5 de 33
10. Leer desde el teclado las coordenadas (x, y) de un punto y, mediante un men, elegir
una entre las siguientes opciones:
r
arg
X
11. Escribir un programa que permita efectuar el clculo del rea de un cuadrado, un
crculo o un tringulo equiltero segn la opcin seleccionada por el usuario a travs
de un men.
12. Dada la longitud de una circunferencia, averiguar si dicha longitud corresponde, con
una determinada precisin, a una circunferencia de radio R.
El programa deber leer la longitud de la circunferencia, el radio y la precisin e
indicar si es cierto o no que esa circunferencia tiene ese valor del radio.
13. Escribir un programa que pida dos caracteres por pantalla, los ordene
alfabticamente, y los imprima ordenados.
Informtica Industrial
6 de 33
Sentencias repetitivas
1. Escribir un programa que escriba los nmeros del 1 al 100 en lneas de 10
nmeros. Despus de 100 el programa debe escribir Fin del programa en una
lnea nueva.
2. Programa que calcule el valor de elevar un nmero real, a, a un exponente
entero, b, ab, multiplicando b veces el nmero a.
Nota: Mejorar el programa para que compruebe que el exponente es mayor que
0 y si no lo es dar un mensaje de error y pedir otro exponente.
(1) * i
i
i =1
6. Programa que escriba en pantalla una tabla con cuadrados y cubos a partir de un
nmero base hasta otro tope, ambos pedidos por teclado.
Nota: El programa utilizar slo variables de tipo short int y deber evitar
errores de overflow.
Informtica Industrial
7 de 33
Ejemplos de ejecucin:
Tabla de cuadrados y cubos
Nmero
======
30
31
32
33
34
Cuadrado
========
900
961
1024
1089
1156
Cubo
========
27000
29791
Nmero
======
179
180
181
182
183
Cuadrado
========
32041
32400
Cubo
========
Nota: en negrita se han indicado los valores introducidos por el usuario durante
la ejecucin del programa.
8. Hacer un programa que lea caracteres desde teclado hasta que lea 10 veces la letra
'a'. Por cada carcter ledo que no sea una 'a' debe mostrar un mensaje indicndolo.
Cuando lea las 10 letras 'a' el programa terminar.
9. Hacer un programa que lea caracteres desde teclado y vaya contando las vocales
que aparecen. El programa terminar cuando lea el carcter # y entonces mostrar
un mensaje indicando cuntas vocales ha ledo (cuntas de cada una de ellas).
10. Repetir el ejercicio leyendo caracteres hasta que se lea el carcter final de fichero
EOF (^Z) en lugar del carcter #.
Informtica Industrial
8 de 33
11. Programa que simule que se deja caer una pelota desde un edificio de X metros
de altura (donde X se pide por teclado) mostrando en cada 0.1 segundos tanto la
altura de la pelota como su velocidad.
Mostrar para cada instante de tiempo (cada 0.1 segundos) una lnea del estilo:
t=xx.x distancia al suelo=xx.xx metros velocidad=xx.xx m/s
12. Programa que calcule los ns primos del 1 al 100 y los saque por pantalla.
13. Escribir un programa que primero pida por pantalla con cuntos nmeros se va a
trabajar digamos que sean X) y luego pida los X nmeros por pantalla.
Despus de introducir los X nmeros se mostrar un mensaje por pantalla
indicando cul es el mayor y menor valor introducido, as como el valor medio
de todos los nmeros introducidos.
14. Programa que pida nmeros de cuatro cifras e indique si los nmeros son
capicas o no. El programa deber ir pidiendo nmeros hasta que el usuario
introduce -1 por teclado. El nmero 1 indicar la finalizacin de la ejecucin
del programa.
Nota1: Un nmero capica es simtrico p.e. 1221 25752
Nota2: Cuando el nmero no es de cuatro cifras se deber mostrar un mensaje de
error por pantalla y se pedir otro nmero menor que 10000. En caso de
que el nmero sea menor de cuatro cifras se completar con ceros a la
izquierda.
Nota3: El nico nmero negativo que se aceptar es -1 que indicar la
finalizacin del programa. Cualquier otro nmero negativo, se mostrar
un mensaje de error.
15. Escribir un programa que calcule los nmeros perfectos entre 1 y 10000.
Nota: Un nmero perfecto es aqul tal que la suma de sus divisores menos el
propio nmero es el propio nmero.
Ejemplos:
6 Divisores(6) = {1, 2, 3, 6}
Suma = 1 + 2 + 3 + 6 6 = 6
N. Perfecto
16. Escribir un programa que muestre el siguiente men y que permita pasar
magnitudes de grados a radianes y de radianes a grados.
1. Pasar de grados a radianes
2. Pasar de radianes a grados
3. Salir del programa
Isidro Calvo y Fabin Lpez
Dpto. Ingeniera de Sistemas y Automtica
Informtica Industrial
9 de 33
17. Escribir un programa que muestre una tabla con los caracteres ASCII mostrados
en decimal, octal y hexadecimal. El programa mostrar la informacin con el
siguiente formato:
Dec:
xx
Octal:
xx
Hex:
xx
Car:
El programa pedir el primer carcter y los ltimos caracteres que marcarn los
lmites de la tabla.
18. Escribir un programa que calcula el producto de los dgitos de un nmero entero
ledo desde teclado.
Informtica Industrial
10 de 33
Funciones
Nota: Cada conversin se efectuar por medio de funciones, una que convertir de
grados Celsius a grados Fahrenheit y otra que haga justo lo contrario.
2. Realizar un programa que escriba todos los nmeros enteros menores que un cierto
entero N y que a su vez sean mltiplos de dos nmeros enteros A y B introducidos
por teclado.
Utilizar para ello una funcin que admita dos parmetros I, J e indique si I es
mltiplo de J.
3. Escribir una funcin (con su correspondiente programa de prueba) que tome un
valor entero y devuelva el nmero con sus dgitos en reversa. Por ejemplo, dado el
nmero 7631 la funcin deber devolver 1367.
4. Escribir un programa que calcule masa radioactiva de carbono 14 que queda
despus de t aos. La frmula que determina la masa restante en el tiempo t es:
t
1h
Mt = m*
2
donde:
t
Mt
m
h
es el tiempo en aos
es la masa que permanece en el tiempo t
es la masa original
es la vida media en aos
5. Escribir una funcin que escriba tantas lneas en blanco como se haya pedido con
anterioridad al usuario en el programa principal.
Informtica Industrial
11 de 33
6. Escribir una funcin que tome el tiempo introducido por el usuario en el formato
(horas:minutos:segundos) y lo convierta en segundos. El programa utilizar esta
funcin para calcular la diferencia en segundos entre dos tiempos introducidos por el
usuario.
7. Escribir un programa que calcule el nmero combinatorio
M!
M
=
N N ! ( M N )!
Factorial de un nmero
Clculo de e
Clculo de e^x
Salir
1 1 1
+ + + ...
1! 2! 3!
x x2 x3
+
+
+ ...
1! 2! 3!
x2 x4 x6
+
+...
2!
4!
6!
Informtica Industrial
12 de 33
10. Se desea realizar un programa que permita hacer clculos con polinomios de
segundo grado.
El programa deber presentar un men en pantalla que facilite las siguientes
opciones:
1.
2.
3.
4.
0.
Leer un polinomio
Escribir un polinomio en su forma habitual
Evaluar un polinomio en un punto
Calcular el polinomio derivado
Salir
ESCRIBIR
Ejemplos vlidos:
5x^2+3x+5
Ejemplos no vlidos:
5x^2+ -3x+5
5x^2-3x+5
5x^2-5
5x^2-0x+5
EVALUAR
DERIVAR
|
|
|
|
|
|
|
84
Factores primos
--------------2
2
3
7
Ayuda: Se deber utilizar una funcin que nos diga si un nmero es primo o no.
Informtica Industrial
13 de 33
N. de caracteres en blanco
N. de dgitos
N. de letras
N. de lneas
N. de otros caracteres
Nota 1:
Nota 2:
Nota 3:
13. Escribir un programa que lea dos nmeros complejos y permita realizar con ellos las
siguientes operaciones aritmticas: suma, resta, multiplicacin y divisin
Nota 1:
Se debe crear una funcin de permita leer un nmero complejo (su parte
real y su parte imaginaria).
Nota 2:
Nota 3:
Informtica Industrial
14 de 33
Arrays
1.
2.
constante RAND_MAX.
3.
4.
Escribir un programa que pida un array de caracteres por pantalla e invierta el orden
de los caracteres mostrndolo por pantalla. La inversin se har sin utilizar otro
array auxiliar.
5.
8 9
10
11
12
13
14
15
...
Informtica Industrial
15 de 33
6.
Realizar un programa que maneje un array de enteros a travs de un men con seis
opciones:
1.- Aadir un elemento al array (comprobando que el array no est lleno)
2.- Eliminar un elemento del array (comprobando que el array no est vaco)
3.- Listar el contenido del array
4.- Contar las apariciones de un nmero en el array
5.- Calcular la media y el mximo de los elementos del array
0.- Terminar
7.
Escribir un programa que permita guardar las cuentas de un banco con sus
respectivos saldos. Para ello se guardar la informacin en un array paralelo (dos
arrays unidimensionales, uno con los nmeros de cuenta y otro los saldos)
El programa deber mantener las cuentas ordenadas, de menor a mayor, por nmero
de cuenta para facilitar la bsqueda de una cuenta.
El programa mostrar un men con las siguientes opciones:
1.- Dar de alta una nueva cuenta (comprobando que el array no est lleno y
colocando la cuenta en la posicin correspondiente dentro del array)
2.- Eliminar una cuenta (comprobando que el array no est vaco y reposicionando
las cuentas en el array)
3.- Mostrar una cuenta (mostrar el nmero de cuenta y el saldo correspondiente)
4.- Mostrar informacin (Nmero de cuentas dadas de alta y dinero total de todas
ellas)
5.- Calcular el saldo medio, mximo y mnimo de las cuentas del array.
6.- Mostrar todas las cuentas (1 lnea por cuenta con su nmero y su saldo).
0.- Terminar
8.
Escribir un programa que rellene automticamente una matriz 4x7 con la suma de
sus ndices (Es decir, el elemento a11 = 1+1=2, a47 = 4+7=11). El programa
mostrar la matriz resultante por pantalla.
9.
Escribir un programa que pida una matriz de orden 3x3 y calcule y muestre por
pantalla su matriz traspuesta.
10. Crear un programa que permita reservar asientos de una sala de cine (8 filas x 20
columnas). La posicin de cada asiento se definir con una letra (A-H) para la fila y
un nmero (1-20) para la columna. El programa deber visualizar qu sitios estn
disponibles para que el cliente pueda decidir dnde sentarse. Antes de hacer la
Informtica Industrial
16 de 33
reserva, el programa deber comprobar que el asiento est libre, en caso contrario
devolver un mensaje de error.
Ej. de visualizacin:
1...5....0 1...5....0
_____________________
A
B
C
D
E
F
G
H
**
****
** ****
*** * **
***** ****
********
**
****
*******
***
** ****
*** ** ***
**
**
*** *
**
****
**
***
A
B
C
D
E
F
G
H
1...5....0 1...5....0
11. Un histograma es un grfico que muestra la frecuencia con que aparecen en una
array dado valores dentro de subintervalos especificados de su intervalo. Por
ejemplo, si un array unidimensional de enteros tiene elementos de tipo 0..9 y
contiene los siguientes valores:
6
Su histograma sera:
Frecuencia
4
3
2
1
Valor
*
1
*
2
*
3
*
*
*
*
4
*
*
5
*
*
*
6
*
7
*
*
9
12. Escribir un programa que rellene un array con nmeros aleatorios de tipo float. El
programa, primero pedir la cantidad de nmeros aleatorios (mximo 50) y el rango
de los nmeros aleatorios (valor_min .. valor_max) y posteriormente mostrar todos
los nmeros aleatorios en el orden en que se han generado y finalmente en orden de
menor a mayor.
Isidro Calvo y Fabin Lpez
Dpto. Ingeniera de Sistemas y Automtica
Informtica Industrial
17 de 33
Nota:
Para la generacin de los nmeros aleatorios, se debern utilizar las
funciones rand, srand, time y la constantes definida RAND_MAX.
Variacin 1:
Variacin 2:
Repetir el programa recibiendo los valores (cantidad de nmeros,
valor_min y valor_max) como argumentos de la lnea de comandos.
(m x n)
( p x n)
El programa leer las dimensiones y los elementos de cada una de las matrices
(dimensiones mximas 5 x 5) y a continuacin, si se puede efectuar el producto,
realizar lo calcular y mostrar el resultado en forma matricial.
Nota:
Informtica Industrial
18 de 33
Punteros
1. Escribir un programa que efecte las siguientes operaciones.
a) Declarar las variables enteras largas value1 y value2 e inicializar value1 a
200000
b) Declarar la variable lPtr como apuntador a un objeto de tipo long.
c) Asignar la direccin de la variable value1 a la variable de apuntador lPtr.
d) Imprima el valor del objeto al que apunta lPtr.
e) Asgnele a la variable value2 el valor del objeto al que apunta lPtr.
f) Imprima el valor de value2.
g) Imprima la direccin de value1.
h) Imprima la direccin almacenada en lPtr. Es igual el valor impreso que la
direccin de value1?
Nota: %p muestra el valor de la variable como puntero
2. Crear un programa que calcule el valor de la intensidad que pasa a travs de una
resistencia dada, cuando se le aplica un voltaje determinado.
El programa deber estar dividido en las siguientes funciones:
explicar_programa ()
obtener_valores ()
Esta funcin pedir los valores para la resistencia y voltaje los cuales se
pasarn por referencia al programa principal.
calcular ()
imprimir_respuesta ()
Informtica Industrial
19 de 33
Informtica Industrial
20 de 33
Cadenas
1.
1. Escribir un programa que pida una cadena de caracteres (de longitud mxima 80
caracteres) y devuelva la cadena escrita al revs.
Ayuda: Para saber la longitud de la cadena se puede usar la funcin strlen() de la
librera string.h.
2. Realizar un programa que lea una cadena de caracteres de una longitud menor de 80 y
visualice los caracteres de la siguiente forma:
primero, ltimo, segundo, penltimo, tercero, antepenltimo, ...
3. Escribir una funcin que cambie las letras maysculas de una cadena a minsculas
y viceversa. El programa principal pedir una cadena por pantalla y se la pasar a
dicha funcin esperando el resultado correcto que se mostrar por pantalla.
4. Escribir un programa que pida primero un carcter por teclado y que luego pida una
cadena. El programa calcular cuntos caracteres tiene la cadena hasta que lea el
carcter introducido primero. Se deber mostrar un mensaje en pantalla con el
nmero de caracteres introducidos hasta llegar al carcter primero.
5. Escribir un programa que cuente el nmero de letras, dgitos y signos comunes de
puntuacin de una cadena introducida por teclado.
Ayuda: Para saber si un carcter es numrico comparar que su valor es mayor que
0 y menor que 9, para saber si es alfabtico comprobar que est entre a y z y
considerar signos de puntuacin el resto de los caracteres.
Nota: No considerar ni la ni las letras acentuadas, ya que tienen cdigos ASCII
fuera del rango a-z
6. Realizar un programa que lea una cadena de caracteres con espacios en blanco
excesivos: elimine los espacios en blanco iniciales y finales y slo deje uno entre cada
dos palabras.
7. Crear un programa que pida una cadena de caracteres y devuelva otra sin signos de
puntuacin ni nmeros. La cadena devuelta debe tener todos los caracteres en
maysculas.
Ayuda:
Se pueden usar las siguientes funciones estndar de C: ispunct(), islower(), gets()
En TurboC tambin existe la funcin: strupr()
Cdigo ASCII de
A
a
65
97
Informtica Industrial
21 de 33
8. Crear un programa que pida por pantalla una cadena de 80 caracteres de longitud
mxima y que calcule el nmero de veces que aparece otra cadena determinada,
tambin pedida por teclado.
Como salida el programa debe escribir un mensaje con el nmero de veces que
aparece la palabra dada.
Ayuda: Se pueden usar las funciones siguientes: strstr(), gets()
Ej:
radar,
10. Escribir una funcin que compare 2 cadenas de caracteres devolviendo 1 si son
iguales y 0 si son distintas.
11. Escribir un programa que pida dos cadenas (de longitud mxima 10 caracteres) y
muestre por pantalla el resultado de las siguientes operaciones:
12. Escribir un programa con un men que permita las siguientes opciones:
Pasar a maysculas una cadena leda desde teclado. Para ello, escribir un
procedimiento que transforme caracteres de letras minsculas a maysculas
dejando como estn las letras maysculas.
Nota: Para llevar a cabo esta operacin tener en cuenta la representacin de los
caracteres en ASCII. (A 65, a 97)
Informtica Industrial
22 de 33
Nota comn: En todos los casos si se intenta efectuar alguna operacin antes de
introducir la cadena se deber mostrar un mensaje de error comunicando al usuario
que la cadena est vaca.
13. Julio Cesar enviaba mensajes a sus legiones encriptando los mensajes mediante el
siguiente algoritmo:
Se escoga un nmero n como clave y se sumaba a cada letra en el alfabeto n
posiciones. As, si la clave escogida fuese 5, la a pasara a ser la f, mientras que
la f pasara a ser la k. Para las ltimas letras del abecedario se seguira desde el
principio. As, con la clave de 5 la y pasara a ser la d.
Se pide crear un programa que encripte una frase mediante este algoritmo.
14. Construir un programa que implemente una calculadora para nmeros enteros:
El programa pedir primero la operacin y luego los operandos.
Las operaciones vlidas sern: sumar, restar, multiplicar, dividir, salir.
Si la operacin es distinta de salir se pedirn los operandos y luego se mostrar el
resultado.
Si la orden es distinta de las anteriores se mostrar un error diciendo que se trata de
una orden desconocida.
Los operandos se recogern como cadenas de caracteres y se convertirn en
nmeros enteros con la funcin atoi()
Otras funciones que se pueden usar sern: gets() y strcmp().
15. Realizar un programa que permita calcular el NIF., conocido el DNI. de una
persona.
El programa deber leer, sobre una cadena de caracteres, el nmero del DNI. del
interesado. Seguidamente deber averiguar si es un valor vlido (todos los caracteres
deben ser numricos y representar un valor entre 100.000 y 99.999.999). Si la
entrada es vlida se deber calcular el NIF. y representar el nmero completo con los
puntos de millares y millones en las posiciones correspondientes, as como la letra
del NIF al final de la cadena de caracteres separada por un espacio en blanco.
Informtica Industrial
23 de 33
Se obtiene el resto de la divisin del nmero del DNI, entre 23, y en funcin del
resultado se asigna un carcter segn la siguiente tabla:
0 = T
1 = R
2 = W
3 = A
4 = G
5 = M
6 = Y
7 = F
8 = P
9 = D
10 = X
11 = B
12 = N
13 = J
14 = Z
15 = S
16 = Q
17 = V
18 = H
19 = L
20 = C
21 = K
23 = E
Cdigo
.-..
-.-.
-..
.
..-.
--.
.
..
.---..-..
--.
--.--.
--..-.
Carcter
Cdigo
T
U
V
W
X
Y
Z
......--..-.---..
Dgitos
1
2
3
4
5
6
7
8
9
0
.---..--...-.........
-....
--...
---..
----.
----Informtica Industrial
24 de 33
17. Escribir un programa que permita al usuario realizar las siguientes operaciones:
1.
2.
3.
4.
5.
Informtica Industrial
25 de 33
Estructuras
1. Realizar un programa que permita realizar las operaciones bsicas (sumar, restar,
multiplicar y dividir) nmeros complejos.
El programa deber utilizar una variable que represente el nmero complejo en su
forma polar, con sus dos componentes mdulo y argumento.
2. Crear un programa que lea las siguientes variables proporcionadas desde teclado con
el siguiente formato:
Campo
Matricula
Cilindrada
Potencia
Modelo
Marca
BI6755CC1400 75FIESTA
FORD
Entero
Cadena de caracteres
Cadena de caracteres
Entero
Real
Real
Entero
(veces al da)
Carcter
(B, R, M -> Buena, Regular
o Mala)
S o No
S o No
Informtica Industrial
Entero
Real
Entero
S o No
Numero de jaula
Kilogramos de comida diaria
Frecuencia de limpieza de jaula
Peligroso
26 de 33
(veces al da)
Cadena de caracteres
Cadena de caracteres
Entero
Real
Carcter (B, R, M Buena, Regular o Mala)
S o No
4. Crear un programa que permita introducir cierta informacin relativa a los vuelos
diarios que parten de un aeropuerto en un array formado por registros. Cada registro
contendr la siguiente informacin sobre el vuelo correspondiente:
a) Nmero de vuelo (No tiene por qu coincidir con el ndice del array)
b) Hora de partida (En dos campos):
1. Hora:
0..23
2. Minutos: 0..59
Informtica Industrial
27 de 33
5. Una compaa utiliza aviones para fumigar las cosechas contra una gran variedad de
plagas. Lo que la compaa cobra a los granjeros depende de contra qu es lo que
desean fumigar, y de cuantos m2 de tierra quieren que se fumiguen de acuerdo con la
siguiente tabla:
Tipo1: Fumigacin contra malas hierbas
Tipo2: Fumigacin contra langostas
Tipo3: Fumigacin contra gusanos
Tipo4: Fumigacin contra todo lo anterior
18
36
54
90
/ m2
/ m2
/ m2
/ m2
672
23
319
426
........ 862
373
273
203
203
672
23
319
426
........ 862
373
273
203
NO
NO
SI
NO
NO
SI
........ NO
SI
NO
NO
Finalmente muestre en pantalla la suma de todos los nmeros del array que sean
primos.
Informtica Industrial
28 de 33
7. Escribir un programa que cree una base de datos temporal sobre el personal de
agentes de polica. La base de datos almacenar cuatro datos acerca de cada persona:
Nombre:
Apellidos:
Sobrenombre:
Telfono:
Fecha de nacimiento:
Mximo 15 caracteres.
Mximo 35 caracteres.
Mximo 10 caracteres.
Mximo 10 caracteres.
8 caracteres (con el formato dd/mm/aa, pudiendo
ser espacios los dgitos del ao
2.
3.
4.
5.
0.
Salir
(La
bsqueda
se
har
por
Informtica Industrial
29 de 33
Informtica Industrial
30 de 33
Ficheros
1. Crear un programa que abra un fichero y escriba nmeros enteros y otro programa calcule
el valor mximo (si hay varios basta con uno de ello) y la media de todos los nmeros
contenidos en el fichero anterior:
Ayuda: Utilcense las funciones fprintf y fscanf.
4. Escribir un programa que tome caracteres de teclado y, de uno en uno, los escriba en un
fichero cuyo nombre es previamente pedido por pantalla.
5. Escribir un programa que saque por pantalla el contenido de un fichero cuyo nombre es
pedido por pantalla.
Nota: El nombre del fichero debe proporcionarse mediante la lnea de argumentos al
llamar al fichero. Es decir:
C:> MostrFic fichero.txt
6. Escribir un programa que comprueba que un fichero de cdigo contiene el mismo nmero
de { que de } en su cdigo. En caso de que no sea as el programa mostrar un
mensaje indicando que el nmero de { es distinto que el nmero de }.
7. Escribir un programa que use dos ficheros: uno de lectura y otro de escritura. El programa
leer los caracteres de un fichero, y tras una operacin de cambio de maysculas a
minsculas y viceversa, escogida por el usuario, los escribir en un segundo fichero.
8. Escribir el cdigo necesario en el programa de la agenda de la leccin de estructuras
(Ejercicio 8) para que se aadan cuatro opciones ms. De esta forma, el men quedar de
la siguiente manera:
Informtica Industrial
31 de 33
4. Listado de todas las personas empezando por la primera introducida (Para pasar a la
siguiente se deber pulsar intro).
5. Leer la agenda desde el disco (formato binario). El nombre del fichero ser
agenda.bin.
6. Guardar la agenda en el disco (formato binario). El nombre del fichero ser
agenda.bin.
7. Guardar la agenda en el disco para imprimir (en modo texto). El nombre del fichero
ser agenda.txt.
8. Guardar en un fichero de texto informacin de las personas que cumplen aos en un
determinado mes (cuyo nmero se leer desde teclado). El nombre del fichero ser el
nmero del mes seguido de la extensin txt.
SOBRENOMBRE
Koldo
Ana
TELEFONO
946478383
653765432
0. Salir
11. Crear una base de datos almacenada en un fichero para personal universitario. Cada
elemento de la base de datos constar de 3 campos: Nombre, apellido y edad.
Adicionalmente, ser necesario crear otro programa que lea los registros de la base de
datos y los muestre secuencialmente por pantalla.
12. Escribir un programa que haga una conversin de un tipo de formato de fichero a otro. El
formato de partida ser el siguiente:
Informtica Industrial
32 de 33
Campo
Matricula
Cilindrada
Potencia
Modelo
Marca
BI6755CC1400 75FIESTA
FORD
8 caracteres
entero
entero
10 caracteres
10 caracteres
13. Una entidad bancaria posee en un fichero la siguiente informacin para un conjunto de
personas:
Nombre.
Nmero de cuenta.
Crdito solicitado.
Informtica Industrial
33 de 33
La opcin 1 mostrar un listado con todos los elementos de la tabla peridica, parando la
ejecucin cuando se llene una pantalla para permitir verlos todos.
La opcin 2 pedir el smbolo de un elemento qumico, lo buscar en la tabla peridica y
mostrar toda la informacin relativa. Es decir, su nmero atmico, el smbolo del mismo,
su nombre completo y su peso atmico.
La opcin 3 permitir introducir la frmula del compuesto qumico. Para ello ir
preguntar primero por el nmero de tomos constitutivos y luego por el nombre y
nmero de tomos del elemento en el compuesto. Posteriormente, se pedir el peso en
gramos del compuesto a analizar.
Una vez calculada con la tabla peridica, a partir de las proporciones obtenidas de la
frmula, la cantidad en gramos de cada uno de los elementos se mostrar el informe con la
composicin en gramos del compuesto.
Finalmente, la opcin 4 permite salir del programa.
Informtica Industrial