U nidad 7: Funciones Incorporadas en Turbo Pascal Unidad 7: Funciones Predefinidas en Turbo Pascal TRUNCAMIENTO Y REDONDEO La función Round (número) redondea un número real al entero más cercano y devuelve el resultado como un número real. La función Trunc (número) elimina la parte decimal del número real y devuelve el resultado como tipo entero. Ejemplo: PROGRAM Redondeo; VAR Entero : Integer; ValorReal1, ValorReal2 : Real; BEGIN ValorReal1 := 123.435; ValorReal2 := Round(ValorReal1); Entero := Trunc (ValorReal1); WriteLn('El resultado de la función Round sobre el valor'); WriteLn(ValorReal1, ' es: ','ValorReal2, ' (Número real)'); WriteLn('El resultado de la función Trunc sobre el valor'); WriteLn(ValorReal1, ' es: ', Entero, ' (Número entero)'); END. FUNCIONES EXPONENCIALES Y LOGARÍTMICAS La función Sqr devuelve el cuadrado del valor utilizado como parámetro. Sqrt regresa la raíz cuadrada del valor dado como parámetro, el resultado siempre es real aunque se utilice un número de tipo entero como argumento. Ejemplo: PROGRAM Exponentes; VAR Dato, Cuadrado : Integer; Raiz : Real; BEGIN Dato := 45; Cuadrado := Sqr(Dato); Raiz := Sqrt(Dato); WriteLn(' El cuadrado de ',Dato, ' es: ',Cuadrado); WriteLn('La raíz cuadrada de ',Dato,' es: ',Raiz); END. Las funciones Exp y Ln tratan con logaritmos naturales o neperianos. Exp devuelve la función exponencial e^x y Ln devuelve el logaritmo natural de x. El resultado en ambos siempre es del tipo real. Ing. N ahiby Castillo 1 U nidad 7: Funciones Incorporadas en Turbo Pascal Es posible crear una función con base en estas dos para calcular el resultado de un número x elevado a una potencia n, la cual nos quedaría así: FUNCTION Potencia(x,n:Real):Real; BEGIN Potencia := Exp(n *Ln(x)) END; El uso de esta función en un programa podría ser: PROGRAM Potenciacion; FUNCTION Potencia(x, n : Real) : Real; BEGIN Potencia := Exp(n * Ln(x)) END; BEGIN WriteLn('El resultado de 5 elevado a 3 es: ',Potencia(5,3)); END. FUNCIONES ARITMÉTICAS Abs regresa el valor absoluto del identificador que se le pase como parámetro. El valor que devuelve será del mismo tipo que el argumento. Abs(-24) {Regresa el valor 24} La función Int devuelve la parte entera de un valor real, como tipo real. La función Frac regresa la parte decimal de un valor real, también como valor real. FUNCIONES TRIGONOMÉTRICAS Las funciones trigonométricas definidas en Turbo Pascal son: Sin(valor), Cos(valor) y Arctan(valor), todas las demás pueden definirse desde estas: Tan(x) Cot(x) Sec(x) Csc(x) Sin(x) / Cos(x) Cos(x) / Sin(x) 1 / Cos(x) 1 / Sin(x) Las funciones para utilizarlas son: FUNCTION Tan(x : Real) : Real; BEGIN Tan := Sin(x) / Cos(x) END; Ing. N ahiby Castillo 2 U nidad 7: Funciones Incorporadas en Turbo Pascal FUNCTION Cot(x : Real) : Real; BEGIN Cot := Cos(x) / Sin(x) END; FUNCTION Sec(x : Real) : Real; BEGIN Sec := 1 / Cos(x) END; FUNCTION Csc(x : Real) : Real; BEGIN Csc := 1 / Sin(x) END; GENERACIÓN DE NÚMEROS ALEATORIOS Para generar números aleatorios Turbo Pascal cuenta con la función Random y el procedimiento Randomize. La función Random genera un número aleatorio de tipo real comprendido entre 0 y 1, en cambio la función Random (x) genera un entero aleatorio entre 0 y x. Sin embargo el uso de la función Random es en ocasiones insuficiente por si sola para la generación de valores aleatorios ya que los números son realmente pseudoaleatorios, y cada vez que se ejecute el programa se obtendrían los mismos valores. Para evitar esto debemos utilizar en todo programa que utilice valores aleatorios el procedimiento Randomize, que inicializa el generador de números aleatorios, en otras palabras, asegura que los números que obtendrá serán diferentes cada vez que se ejecute el programa. Es recomendable usar este procedimiento antes de cada función random del programa. Ejemplo de un programa generador de números aleatorios: PROGRAM Nums_Aleatorios; VAR x : Integer; BEGIN Randomize WriteLn('Lista de números aleatorios'); For x := 1 to 20 do WriteLn(Random); END. Ing. N ahiby Castillo 3