Está en la página 1de 2

Fundamentos de Informtica Ejercicios de subprogramas

Dpto. Lenguajes y Ciencias de la Computacin


bool Uno(unsigned x; unsigned y);
...
void Dos(unsigned & x; unsigned y);
...
unsigned Tres(unsigned x);
...

int main() {
unsigned a, b, c;
bool si;


Ejercicios de subprogramas


1 Supongamos las siguientes declaraciones de un programa principal:
float x,y; int m; char c;
Y sea un subalgoritmo con el siguiente preototipo:
void Prueba(int a; int b; float & c; float & d; char & e);
Cules de las siguientes llamadas desde el programa principal son incorrectas y cul es la razn?
Prueba(m+3,10,x,y,c); Prueba(30,10,m,x,c);
Prueba(m,19,x,y); Prueba(m,m*m,y,x,c);
Prueba(35,m*10,x,c,y); Prueba(m,10,35.0,y,'E');
Prueba(m,3.5,x,y,c); Prueba(30,10,x,x+y,c);
Prueba(30,10,c,d,e);
2 Disear una funcin lgica que nos diga si un nmero es impar.
3 Escribe una funcin en C++ que devuelva el factorial de un nmero que recibe como parmetro de entrada.
4 Disea una funcin que devuelva un nmero combinatorio de forma modular. Despus disala de forma ms
eficiente sacrificando la modularidad.

5 Dado que no es aconsejable utilizar la igualdad entre nmero reales por ser dependiente de la precisin, disear una
funcin que devuelva el valor true cuando sus dos argumentos reales son iguales para una tolerancia dada, y
false cuando no lo sean. Utilizar para ello la siguiente especificacin:
bool IgualesR(float v1; float v2; float tolerancia);
6 Dadas las declaraciones adjuntas de un determinado algoritmo, Cules de las siguientes llamadas a subalgoritmos
en su cuerpo son vlidas?
a) if Uno(a,b) { ...
b) Dos(a,b+3);
c) si = Uno(c,5);
d) si = Dos(c,5);
e) Dos(a,Tres(a));
f) Dos(Tres(b),c);
g) if Tres(a) { ...
h) b = Tres(Dos(a,5));
i) Dos(4,c);


7 Disea un subprograma, tanto su especificacin como su implementacin, que tome como entrada los coeficientes
de una ecuacin de segundo grado y d como salida las dos races reales de dicha ecuacin. En un argumento de salida
adicional indicar cundo las races son complejas, en cuyo caso no se calcularn las races.
Mejora el subprograma anterior, cambiando si es necesario su especificacin, para que calcule tambin las races
complejas.
Fundamentos de Informtica Ejercicios de subprogramas
Dpto. Lenguajes y Ciencias de la Computacin
8 Escribir un algoritmo que lea por teclado la parte real y la parte imaginaria de 2 nmeros complejos a+bi y saque
por pantalla su suma, su multiplicacin y la forma polar de cada uno (mdulo
2 2
b a + y argumento ( ) a b tan ).
Modularizar.
9 Escribe un programa que lea un nmero entero positivo y calcule la suma de sus divisores, exceptuando ellos
mismos.
10 Dos nmeros son amigos si la suma de sus divisores, exceptuando ellos mismos, coincide. Por ejemplo 284 y 220
son amigos. Escribe un programa que lea 2 nmeros enteros positivos y determine si son amigos.
11 Un suceso X que tiene una probabilidad de que ocurra p (nmero real entre 0 y 1). La probabilidad Pr de que el
suceso ocurra i veces en n experimentos viene dada por la funcin binomial,
i n i
p p
i
n
i X

|
|
.
|

\
|
= = ) 1 ( ) Pr(
donde i es un nmero entero entre 0 y n.
Escribe un programa que lea de teclado los valores p, n e i y calcule dicha probabilidad. Modulariza todos los clculos,
los cuales no debern aparecer en ningn caso en el programa principal.

También podría gustarte