Introducción a la Programación Prof. Yerson Rodríguez Conceptos Expresiones Una expresión es un conjunto de datos o funciones unidos por operadores aritméticos. Los tipos de datos que se usen en ella deben ser compatibles entre si. También se les llama operandos. Los operadores son símbolos que indican como son manipulados los datos. Se pueden clasificar en los siguientes grupos: aritméticos, lógicos, relacionales, unitarios, lógicos para manejo de bits, de asignación, operador ternario para expresiones condicionales y otros. 1 Unidad IV Introducción a la Programación Prof. Yerson Rodríguez Expresiones algebraícas Un ejemplo de expresión algebraica o aritmética sería la ecuación matemática: ax2 + bx + c que escrita en Pascal quedaría: a * sqr(x) + b * x + c Unidad IV Las expresiones algebraicas o aritméticas son relacionadas por los operadores aritméticos. Los más conocidos son: +, -, *, / Todos son operadores binarios, excepto + y – cuando se usan como signos. A diferencia de los tres primeros cuyos operandos pueden ser enteros o reales, / sirve sólo para operandos reales. 2 Introducción a la Programación Prof. Yerson Rodríguez Operadores aritméticos Operador Significado Ejemplo Resultado + Suma A+B Suma de A y B - Resta A–B Diferencia de A y B ∗ Multiplicación A∗B Producto de A por B / División A/B Cociente de A por B div División entera A div B Cociente entero de A por B mod Módulo A mod B Resto de A por B shl Desplazamiento a la izquierda A shl B Desplazar a la izq. B bits shr Desplazamiento a la derecha A shr B Desplazar a la derecha B bits 3 Unidad IV Introducción a la Programación Prof. Yerson Rodríguez Operadores de relación Los operadores de relación se utilizan para expresar condiciones y describen una relación entre dos valores Unidad IV Operador Significado > Primer operando mayor que el segundo < Primer operando menor que el segundo = Primer operando igual que el segundo >= Primer operando mayor o igual que el segundo <= Primer operando menor o igual que el segundo <> Primer operando distinto de el segundo 4 Introducción a la Programación Prof. Yerson Rodríguez Conceptos Expresiones lógicas Una expresión lógica es una expresión que puede ser verdadera o falsa. Se forman comparando los valores de las expresiones utilizando los operadores de relación o los operadores de comparación contra los operadores lógicos. Recordemos que los operadores de relación pueden aplicarse para comparar dos operandos cualesquiera y, como sucede con los operadores lógicos, su resultado será un valor booleano (verdadero o falso). Ejemplo. ((x * 2 > y - 3) or (x > y - 1)) and (y < 5) 5 Unidad IV Introducción a la Programación Prof. Yerson Rodríguez Operadores: and, or, not Operadores lógicos Unidad IV Operando 1 Operando 2 Resultado operación and Resultado operación or True True True True True False False True False True False True False False False False Operando 1 Resultado operación not True False False True 6 Introducción a la Programación Prof. Yerson Rodríguez Prioridad Orden de operaciones Para las operaciones aritméticas y lógicas existen reglas de precedencia (prioridad) que permiten definir el orden de evaluación de tales operaciones, en caso que halla más de una. Prioridad Operador 1 not 2 *, /, div, mod, and 3 +, -, or 4 >, <, =, > =, < =, < > Si existen ( ), el contenido se evalúa primero. 7 Unidad IV Introducción a la Programación Prof. Yerson Rodríguez Prioridad Orden de operaciones La expresión: x – (A + B div 2) + y * z Se evalúa de la siguiente forma: x – (A + B div 2) + y * z * 3 1 div 2 + 4 + Unidad IV 8 Introducción a la Programación Prof. Yerson Rodríguez Prioridad Reglas de evaluación 1. 2. 3. Todas las subexpresionnes entre paréntesis se evalúan primero. Las subexpresiones con paréntesis anidados se evalúan de adentro hacia fuera; el paréntesis más interno se evalúa primero. Prioridad de operaciones. Dentro de una misma expresión o subexpresión, los operadores se evalúan en el siguiente * / div mod and : primero orden: + - or : segundo Regla asociativa izquierda. Los operadores en una misma expresión o subexpresión con igual nivel de prioridad (tal como * y /) se evalúan de izquierda a derecha. 9 Unidad IV Introducción a la Programación Prof. Yerson Rodríguez Concepto Funciones de Librería Una función es un subprograma que recibe como argumentos o parámetros datos de tipo numérico, o no numérico (char, string, boolean u otros) y devuelve un resultado. Esta característica la diferencia de un procedimiento. Unidad IV En Turbo Pascal existen dos grandes grupos de funciones: • Funciones predefinidas, internas o estándar. • Funciones definidas por el usuario. 10 Introducción a la Programación Prof. Yerson Rodríguez Funciones de Librería Turbo Pascal incorpora todas las funciones estándar de ISO Pascal y añade otras nuevas. Borland divide las funciones predefinidas en los siguientes grupos: 1. Funciones de asignación dinámica de memoria. 2. Funciones de transferencia. 3. Funciones matemáticas. 4. Funciones Trigonométricas. 5. Funciones ordinales. 6. Funciones de cadena. 7. Funciones de dirección y punteros. 8. Funciones especiales. 11 Unidad IV Introducción a la Programación Prof. Yerson Rodríguez Definidas en TP Funciones de Librería Función Argumento (x) Descripción Abs(x) Real o Integer Devuelve el valor absoluto del argumento ArcTan(x)* Real o Integer Devuelve el arco tangente del argumento Cos(x)* Real o Integer Devuelve el coseno del argumento Exp(x) Real o Integer Devuelve el exponencial del argumento Frac(x) Real Devuelve la parte decimal del argumento Int(x) Real Devuelve la parte entera del argumento Ln(x) Real o Integer Devuelve el logaritmo natural del argumento Pi Real Devuelve el valor de Pi Round Real o Integer Devuelve el entero más próximo al argumento Sin(x)* Real o Integer Devuelve el seno del argumento Sqr(x) Real o Integer Devuelve el cuadrado del argumento Sqrt (x) Real o Integer Devuelve la raíz cuadrada del argumento Trunc(x) Real Devuelve la parte entera del argumento * El argumento de estas funciones se da siempre en radianes Unidad IV 12 Introducción a la Programación Prof. Yerson Rodríguez Definidas en TP Funciones de Librería Función Descripción Ord (x) Devuelve el número ordinal correspondiente al argumento Chr (x) Devuelve el carácter ASCII correspondiente al argumento Succ (x) Devuelve el sucesor del argumento o error si no lo tiene Pred (x) Devuelve el predecesor del argumento Odd (x) Devuelve true si el argumento es un n° impar y false si es par. Hi (x) Devuelve el valor del byte de mayor peso del argumento Lo (x) Devuelve el valor del byte de menor peso del argumento Swap (x) Devuelve los bytes de orden alto y bajo intercambiados Inc (x [,n] ) Devuelve x incrementado en n si este último existeo en 1 si no. Dec (x [,n] ) Devuelve x decrementado en n si este último existeo en 1 si no. Random ([n]) Devuelve un número pseudoaleatorio en el rango de 0 a 1 ó 0 a n 13 Unidad IV Introducción a la Programación Prof. Yerson Rodríguez F. matemáticas Funciones de Librería Trunc (truncamiento). Round (redondeo). La función Trunc suprime la parte decimal de un número real. La función Round permite redondear un número real a un número entero. Formato Formato Trunc (x) Round (x) x : expresión numérica tipo real. x : expresión numérica tipo real. Ejemplo Ejemplo Trunc (5.99) { devuelve 5 } Trunc (-12.345) { devuelve –12 } Round (4.448) Round (18.77) Unidad IV { devuelve 4 } { devuelve 19 } 14 Introducción a la Programación Prof. Yerson Rodríguez F. matemáticas Funciones de Librería Abs Frac La función Abs devuelve el valor absoluto de un número. La función Frac devuelve la parte decimal de un número real. Formato Formato Abs (x) Frac (x) x : expresión tipo entero o real. x : expresión numérica tipo real. Ejemplo Ejemplo Abs (-64) { devuelve 64 } Abs (-12.345) { devuelve 12.345 } Abs (3.97) { devuelve 3.97 } Frac (28.44894) Frac (18.77) { devuelve 0.44894 } { devuelve 0.77} 15 Unidad IV Introducción a la Programación Prof. Yerson Rodríguez F. matemáticas Funciones de Librería Int Exp La función Int devuelve la parte entera decimal de un número real. La función Exp devuelve la función exponencial de x, potencia de e elevado a la x (ex). Formato Formato Int (x) Exp (x) x : expresión tipo entero o real. x : expresión real o entera. Ejemplo Ejemplo Int (321.004) Int (45.438) Unidad IV { devuelve 321.0 } { devuelve 45.0 } Exp (4.5) { equivale a e4.5 o bien 2.7182824.5 } 16 Introducción a la Programación Prof. Yerson Rodríguez F. matemáticas Funciones de Librería Ln La función Ln devuelve el logaritmo natural (en base e) de x, el resultado es real. Formato Pascal no tiene una función de potenciación xy. Sin embargo, con Exp y Ln se puede diseñar una función que eleva un número a una potencia dada. Formula xy = Exp ( y * Ln(x)) Ln (x) x : expresión tipo entero o real. Comentario Ln(x) es la inversa de Exp(x), osea, x = Ln y ; y = ex. Definición function potencia (x, y : real): real; begin potencia := Exp(Ln(x) * y) end; 17 Unidad IV Introducción a la Programación Prof. Yerson Rodríguez F. matemáticas Funciones de Librería Sqr Sqrt La función Sqr devuelve el cuadrado de x, ósea x2. La función Sqrt devuelve la raíz cuadrada de x. Formato Formato Sqr (x) Sqrt (x) x : expresión tipo entero o real. x : expresión real. Ejemplo Ejemplo Sqr (7) Sqr (6.077) Unidad IV { devuelve 49 } { devuelve 36.92993 } Sqrt (25) Sqrt (3.141592) { devuelve 5 } { devuelve 1.77245 } 18 Introducción a la Programación Prof. Yerson Rodríguez F. trigonométricas Funciones de Librería Sin Cos La función Sin devuelve el seno del ángulo. La función Cos devuelve el coseno del ángulo. Formato Formato V = Sin (x) V = Cos (x) x : expresión tipo real en radianes. x : expresión tipo real en radianes. Ejemplo Ejemplo Sqr (7) Sqr (6.077) { devuelve 49 } { devuelve 36.92993 } Sqrt (25) Sqrt (3.141592) { devuelve 5 } { devuelve 1.77245 } 19 Unidad IV Introducción a la Programación Prof. Yerson Rodríguez F. trigonométricas Funciones de Librería ArcTan Ord La función ArcTan devuelve el arco tangente de x, ósea, el ángulo cuya tangente es x. La función Ord devuelve la posición ordinal del valor x. Formato Formato V = ArcTan (x) Ord (x) x : expresión tipo real. x : expresión ordinal. Otras funciones trigonométricas Ejemplo Tan(x) = Sin(x) / Cos(x) Cot(x) = Cos(x) / Sin(x) Sec(x) = 1 / Cos(x) ; Cosec(x) = 1/Sin(x) Unidad IV Type sem=(lun,mar,mie,jue,vie,sáb,dom); Ord (mar) { devuelve 1 } 20 Introducción a la Programación Prof. Yerson Rodríguez F. ordinales Funciones de Librería Chr Pred Devuelve el carácter del código ASCII correspondiente a x. Es opuesta a Ord. La función Pred devuelve el valor que precede a x. Formato Formato Chr (x) Pred (x) x : entero. x : expresión ordinal. Ejemplo Ejemplo Chr (64) Chr (89) { devuelve @ } { devuelve Y } Pred (25) Pred (‘z’) { devuelve 24 } { devuelve ‘x’ } 21 Unidad IV Introducción a la Programación Prof. Yerson Rodríguez F. ordinales Funciones de Librería Succ Pi La función Succ devuelve el valor que le sigue a x. La función Pi devuelve el valor de la constante matemática, el valor devuelto es real. Formato Formato Succ (x) x : entero. Ejemplo Succ (‘w’) Chr (99) Unidad IV { devuelve ‘x’ } { devuelve 100 } Pi var numpi : real; begin real := pi; write (‘Valor de Pi: ’, numpi:4:25) end. {devuelve 3.141592653588304530} 22 Introducción a la Programación Prof. Yerson Rodríguez F. de bajo nivel Funciones de Librería Hi Lo La función Hi devuelve el valor del byte de mayor peso de x. La función Lo devuelve el valor del byte de menor peso de x. Formato Formato Var := Hi (x) Var = Lo (x) Ejemplo Ejemplo x contiene un valor de $5F3F. x contiene un valor de $5F3F. Var := Hi ($5F3F) { Var toma el valor: $005F} Var := Lo ($5F3F) { Var toma el valor: $003F} 23 Unidad IV Introducción a la Programación Prof. Yerson Rodríguez F. Incremento/dec. Funciones de Librería Inc Dec La función Inc incrementa un valor de tipo ordinal. La función Dec decrementa un valor de tipo ordinal. Formato Formato Inc (x [,n]) Dec (x [,n]) x : variable tipo ordinal. n: variable tipo entero, si existe. x : variable tipo ordinal. n: variable tipo entero, si existe. Ejemplo Ejemplo Inc (x) Inc (x,n) Unidad IV { x:=x+1 } { x:=x+n } Dec (x) Dec (x,n) { x:=x-1 } { x:=x-n } 24 Introducción a la Programación Prof. Yerson Rodríguez Bibliografía Joyanes A., Luis, Programación en Turbo/Borland Pascal 7. 3ra Ed. Osborne/McGrawHill Interamericana, Madrid, 1998 Rodnay, Zaks, Programación en Pascal, Turbo Pascal. 1ra Ed. Anaya Multimedia, Madrid, 1986 Joyanes A., Luis, Turbo/Borland Pascal 7. 1ra Ed. Osborne/McGraw-Hill Interamericana, Madrid, 1997 Noton, Peter. Introducción a la Computación. 3ra Edición. México. McGraw-Hill Interamericana, México, D.F., 2003. Prieto E., Alberto y otros, Introducción a la Informática. 3da Ed. McGraw-Hill Interamericana, Madrid, 2002 Mata T., Ramón, Cushman, Pauline, Introducción a la Programación. 1ra Ed. McGrawHill Interamericana, México, D.F., 2001 25 Unidad IV Introducción a la Programación Prof. Yerson Rodríguez Recursos Internet www.glencoe.com/norton/online Website con información general de computación y apoyo al libro ”Introducción a la Computación” de Noton, Peter. http://atc.ugr.es/intro_info_mcgraw.html Página web para uso de estudiantes y profesores sobre el libro “Introducción a la Informática” de Prieto E., Alberto y otros. http://www.lawebdelprogramador.com/cursos/Pascal/Turbo Sítio web que provee información de interés sobre programación en Pascal, cursos, tutoriales, etc. http://www.ctv.es/USERS/pacoga/progpas.htm Sítio web que provee información de interés sobre programación en Pascal, cursos, tutoriales, etc. http://ar.geocities.com/nrs_arg/pascalmania/sources.htm Sítio web que provee información de interés sobre programación en Pascal, cursos, tutoriales, etc. http://www.terra.es/personal2/cesar.zm/comienzo.htm Sítio web que provee tutoriales gratuítos de Pascal. http://www.fortunecity.com/skyscraper/seagate/1072/libreria.htm Sitio web con programas en Turbo Pascal. Unidad IV 26