PROF.
DELY GIL GUIA DE EJERCICIOS - Subprogramas
1. Intercambiar los valores de dos variables con un procedimiento.
2. Programar una función que permita calcular la suma : 1 + 2 + . . . + n ,donde n es una variable que pasa a la función
como parámetro.
3. Determinar y visualizar el número más grande de dos números dados, mediante un subprograma.
4. Diseñar una función que permita obtener el valor absoluto.
5. Escribir un programa que utilice un procedimiento para convertir coordenadas polares a rectangulares: x=rcos ,
y=rsin (Los parámetros de entrada son: r= módulo; = thetha = ángulo)
6. Escribir una función lógica DIGITO que determine si un carácter es uno de los dígitos del ‘0’ al ‘9’
7. Escribir una función lógica VOCAL que determine si un carácter es una vocal.
8. Emular una calculadora usando procedimientos y/o funciones para cada operación (Suma, Resta, Multiplicación y
División). Validar las entradas (Num1 y Num2) y el operador (+,-,*,/) .Se debe desplegar un Menú con las opciones
de las operaciones.
9. Escriba un programa para calcular la suma: 1 + ½ + 1/3 + ... + 1/Terms, donde Terms es el número de términos y
está especificado por el usuario. Esta suma se conoce como serie armónica.
10. Calcular la suma de los términos de la siguiente serie: 1/2 + 2/2 2 + 3/23 + 4/ 24 + ... + n/2n
11. Hallar el resultado de la siguiente sucesión: S = 1 + ½ + 1/3 +1/4 + ......+ 1/N hasta que 1/I (I=1,2,...,N) converja
hacia e/100 ( o sea igual o mayor que un número “e” cualquiera dividido entre 100).
12. Implementar una función EXPONENTE que permita hallar el valor de Xy , siendo X un número real e Y un entero.
13. Escribir una función que lea x y n y calcule la suma de la progresión geométrica : 1 + x +x2 + x3 + ... + xn
Realizar dicho subprograma usando la función anterior(debe modificar el tipo de Y) y sin usar la función anterior.
14. Escribir un programa que permita al usuario elegir mediante un Menú el cálculo del área de cualquiera de las
figuras geométricas: círculo(xR2), rectángulo (basexaltura) o triángulo((basexaltura)/2), mediante funciones.
15. Implementar una función Redondeo(A,B), que devuelva el número real A redondeado a B decimales.
16. Escribir una función que dado tres valores A,B y C que representan longitudes en centímetros (cm.) , devuelva los
siguientes valores:
a) 0 si esas tres longitudes forman un triángulo equilátero (Tres lados iguales).
b) 1 si esas tres longitudes forman un triángulo isósceles (Dos lados iguales).
c) –1 si esas tres longitudes forman un triángulo escaleno (Tres lados diferentes).
17. Realizar un procedimiento para hallar las raíces de una ecuación de segundo grado del tipo: Ax2 + Bx + C = 0
18. Implementar una función que permita validar un valor entero, leído desde el teclado, comprendido entre dos
límites que introduciremos como parámetro. (Ejm: Dia entre 1..31, Mes entre 1..12)
19. Realizar una función lógica que permita saber si una fecha es válida.
20. Diseñe una función FACTO que permita obtener el factorial de un número entero positivo. (Ejm. 5!=5x4x3x2x1)
21. Calcular el coeficiente del binomio, con la función factorial anteriormente codificada.
m = m! Donde m! = 1 si m =0 (Ejm. : 0! = 1
n n!(m-n)! 1x2x3x...xm si m <> 0 (Ejm. : 4! = 4x3x2x1; 9! = 9x8x7x6x5x4x3x2x1)
7 = 7! = 7!
3 3!x(7-3)! 3!x4!
22. El valor de e se puede aproximar por la suma de 1 + x + x2/2! + x3/3! + ... + xn / n! Escribir un programa que tome
x
un valor de x y n como entrada y visualice la suma del valor de e x. Realizar dicha suma utilizando los subprogramas
xn(EXPONENTE) y n!(FACTO)
1
PROF. DELY GIL GUIA DE EJERCICIOS - Subprogramas
23. Escribir un programa que solicite al usuario un carácter y que sitúe ese carácter en el centro de la pantalla. El
usuario debe poder a continuación desplazar el carácter pulsando las letras A (arriba), B(abajo), I(Izquierda),
D(derecha) y F(fin) para terminar. Debe tener en cuenta que los límites son Vertical:1..25, Horizontal:1..80.
24. Realizar una función que permita obtener el término n de la serie de Fibonacci.
La frecuencia de fibonacci está definida de la siguiente manera:
Fn = 1 si n<= 1 Ejm f1 = 1; f2 = f1+ f0; f3 = f2 + f1;
Fn = F(n-1) + F(n-2) para todo n>1 f4 = f3+f2; f5 = f4 + f3; f9 = f8 + f7;
25. Diseñar una función que permita obtener el máximo común divisor de dos números mediante el algoritmo de
Euclides, que se puede describir así: Dados los enteros a y b (a>b), se divide a entre b , obteniendo el cociente q y
el resto r. Si el resto r es diferente de cero (r <> 0) se divide b entre r y así sucesivamente hasta que se obtiene
un resto r igual a cero ( r =0), siendo b el mcd.
Ejm:
mcd(40,6) = mcd (6, 40 mod 6) = mcd (6, 4) a b a=b b=r a=b b=r
{a=40; b:=6; r= a mod b=4; como r<>0 entonces a
toma el valor de b que es 6 y b toma el valor r =0 por lo tanto
del residuo r que es 4..} 40 6 6 4 4 2 b:=mcd
mcd (6,4) = mcd(4, 6 mod 4) = mcd (4, 2) 4 6 2 1 0 1
mcd (4,2) = mcd(2, 4 mod 2) = mcd /4,0) r <>0 r<>0 r=0
{En este caso a =4 y b=2 como el residuo es
cero el valor del mcd es b=2}
26. Escribir un programa que lea una cadena de hasta diez caracteres que representan a un número en numeración
romana e imprime el formato del número romano y su equivalente en numeración arábiga. El número será entero y
positivo y no excederá de 3000. Los caracteres romanos y sus equivalentes son:
M 1000 L 50 I 1 Compruebe su programa para los siguientes datos:
D 500 X 10 LXXXVI (86); CCCXIX (319); MCCLIV(1254)
C 100 V 5