100 likes | 320 Views
Ejercicios de funciones. Ejercicio Construir una función suma_dígitos(n) que calcule la suma de las cifras de un número y un algoritmo que realice una llamada correcta a dicha función. algoritmo suma de las cifras de un número var número: entero ; fvar
E N D
Ejercicio Construir una función suma_dígitos(n) que calcule la suma de las cifras de un número y un algoritmo que realice una llamada correcta a dicha función.
algoritmo suma de las cifras de un número var número: entero; fvar Escribir(“Introduzca un entero: “); LeerEntero(número); Escribir(“La suma de los dígitos de entero introducido es “); EscribirEntero(suma_dígitos(número)); falgoritmo función suma_dígitos(n: entero): entero var suma: entero; fvar suma := 0; mientras n ≠ 0 entonces suma := suma + (n mod 10); n := n div 10; fmientras devuelve suma; ffunción
Ejercicio Construid una función combinaciones(n,m) que calcule el valor de la función matemática combinaciones. Esto es, el número de formas en que se puede elegir un subconjunto de m elementos a partir de un conjunto de n elementos. Es- cribid también un algoritmo que utilice correctamente esta función.
algoritmo combinaciones de n elementos tomados m a m var n, m: entero fvar Escribir(“Introduzca el número de elementos del conjunto: “); LeerEntero(n); Escribir(“Introduzca el número de elementos del subjconjunto: )”; LeerEntero(m); Escribir(“Hay “); EscribirEntero(combinaciones(n,m)); Escribir(“ formas distintas de elegir “); EscribirEntero(m); Escribir(“ elementos “); Escribir(“ de un conjunto de “); EscribirEntero(n); Escribir(“ elementos.”); falgoritmo función combinaciones(n1, n2: entero): entero devuelve factorial(n1) / (factorial(n2) * factorial(n1-n2)); ffunción función factorial(n: entero): entero var r, i: entero fvar r:=1; si n > 1 entonces para i:=2 hasta n hacer r:=r*i; fpara fsi devuelve r; ffunción
Ejercicio Construid una función dec_a_bin(n) que calcule la representación en binario del número n. Esribid un algoritmo que llame correctamente a esta función.
algoritmo decimal a binario (n: entero): booleano var número: entero; fvar Escribir(“Introduzca un entero positivo: “); LeerEntero(número); Escribir(“La representación en binario de “); EscribirEntero(número); Escribir(“ es “); EscribirEntero(dec_a _bin(número)); falgoritmo función dec_a_bin (n: entero): entero var binario, coeficiente: real fvar binario := 0; coeficiente := 1; mientras ( n ≠ 0 ) hacer binario := binario + coeficiente* (n mod 2); coeficiente := coeficiente*10; n .= n div 2; fmientras devuelve binario; ffunción
Ejercicio Construid un algoritmo que encuentre el primer primo en una lista de N enteros introducidos por el usuario.
algoritmo var número, i, N: entero; encontrado: booleano fvar Escribir(“Introduzca el número de elementos de la lista: “); LeerEntero(N); i:=1; encontrado := F; Escribir(“Introduzca un número entero: “); LeerEntero(número); mientras ( (i ≤ N) y (no encontrado) ) hacer si (primo(número)) entonces encontrado := V; si no i := i+1; Escribir(“Introduzca un número entero: “); LeerEntero(número); fsi fmientras si encontrado entonces Escribir(“El primer primo es “); EscribirEntero(número); si no Escribir(“No se ha introducido ningún primo.“); fsi falgoritmo
función primo (n: entero): booleano var d: entero; primo: booleano fvar si ( n=1 ) entonces primo := Falso; si no primo := Verdadero; d := 2; mientras ( primo y d*d ≤ n ) hacer si ( n mod d = 0 ) entonces primo := Falso; si no d := d+1; fsi fmientras fsi devuelve primo; ffunción