130 likes | 305 Views
Ejercicios de funciones. FUNCION CALCULO DEL FACTORIAL. entero e,n,pot,fac funcion FACTORIAL (entero n) : entero entero i, f // segun el resultado f puede ser real inicio f<-1 para i<-1 hasta n haga f<-f*i fin para retorne (f) Fin
E N D
FUNCION CALCULO DEL FACTORIAL entero e,n,pot,fac funcion FACTORIAL (entero n) : entero entero i, f // segun el resultado f puede ser real inicio f<-1 para i<-1 hasta n haga f<-f*i fin para retorne (f) Fin procedimiento ingreso(var entero n) inicio escriba "Ingresar el numero " lea n fin inicio //llamar ingreso(base,expo) llamar ingreso(n) fac<-FACTORIAL(n) Escriba "El factorial es ", fac fin
entero base, expo,pot procedimiento ingreso(var entero base,var entero expo) inicio escriba "Ingresar la base " lea base Escriba " Ingresar el exponente " lea expo fin procedimiento Potencia(entero base , entero expo, var entero potencia) entero i inicio potencia <-1 para I <-1 hasta expo haga potencia <- potencia * base fin para fin inicio llamar ingreso(base,expo) llamar potencia(base,expo,pot) Escriba "Potencia es ", pot fin
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 Construir un algoritmo que encuentre el primer primo en una lista de N enteros introducidos por el usuario.
// Algoritmo primer primo de una lista 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