a
a F
k a F
u k a F
´ ´ TECNICAS DE PROGRAMA PROGRAMACI CION
a L
´ FUNCI FUNCIONE ONES S Y FORMULAS ORM ULAS PARA PARA PC N
◦
a L
Prof. Hern´ an an Oscanoa V.
Funciones uncione s Aritm´ eticas etica s Standards Standa rds
u k a F
1
Pascal incluye un gran n´ umero de funciones predefinidas que pueden ser utilizados en las exumero presiones entre constantes y variables. El Cuadro 1 muestra las funciones aritm´ ar itm´eticas eticas est´andar andar divididos en tres grupos:
a
• Las funciones de conversi´on on • Funciones Funcion es trigo tr igonom´ nom´etrica etr icass • Otras funciones
a L
u k a F
Cualquier funci´on on opera en un par´ametro ametro que est´a dentro d entro de sus s us par´ p ar´entesis. entesis. El par´ametro ametro es una expresi´on on de un tipo espec´ espec´ıfico (observe (observe que la expresi´ expresi´on on puede ser una variable o constante). Antes de utilizar cualquiera de estas funciones, es necesario conocer el tipo de par´ametro que la funci´ on on usa y el tipo t ipo del valor de retorno (que es tambi´en en el tipo t ipo de la funci´on). on). Las funciones de conversi´on, on, por ejemplo, toman par´ ametros reales y retornan resultados enteros. Otras funciones ametros utilizan par´ametros ametros ya sea enteros o reales, y producen diferentes diferentes tipos. El tipo de valor devuelto devuelto es importante a la hora de asignar la funci´on on a una variable. Formato de Funci´ on
u k a F
Valor Retornado
a L
Par´ ametro
Resultado
REAL REAL
INTEGER INTEGER
REAL/I REAL/INTE NTEGER GER REAL/I REAL/INTE NTEGER GER REAL/I REAL/INTE NTEGER GER
REAL REAL REAL REAL REAL REAL
REAL/INTE REAL/INTEGER GER REAL/I REAL/INTE NTEGER GER REAL/I REAL/INTE NTEGER GER REAL/INTE REAL/INTEGER GER REAL/I REAL/INTE NTEGER GER
REAL/INTE REAL/INTEGER GER REAL REAL REAL REAL REAL/INTE REAL/INTEGER GER REAL REAL
Funciones de Conversi´ on
redondeado al entero m´ as as cercano x con parte fraccional truncada *Funciones *Funcion es Trigonom´etricas etri cas ARCTAN(x) Arcotangente de x Coseno de x COS(x) Seno de x SIN(x) Funciones Miscel´ aneas Valor absoluto de x ABS(x) Exponencial Exponencial de x (ex ) EXP(x) LN(x) Logaritmo natural de x Cuadrado de x (x2 ) SQR(x) Ra´ız ız cuadra cua drada da de x ( x) SQRT(x) *Todos los ´ angulos est´ an expresados en radianes. ROUND(x) TRUNC(x)
a
u k a F
x
a L
u k a F √
a L
u k a F
Cuadro 1: Funciones Funcione s Aritm´ Ari tm´eticas eticas Standards Stand ards
u k a F
Funciones uncione s Aritm´ eticas etica s Adicionales Adici onales
umero umero considerable de funciones aritm´eticas eticas adicionales. De estas funciones, Pascal tiene un n´ especialmente necesitar´a dos de ellas:
a
u k a F
• FRAC(n) devuelve la parte decimal del n´umero umero real n • INT(n) devuelve la parte entera del n´umero umero real n
a
1
u k a F
a
a F
a L
Por ejemplo1 :
1 2
k a F
Writeln (FRAC ( 8 , 2 2 ) : 2 : 2 ) ; p r od u ce 0 , 2 2 Writeln ( I N T ( 8 . 2 2 ) 2 : 2 ) ; p r od u ce 8 , 0 0
{
{
}
}
a L
Ambas funciones devuelven n´umeros reales.
u k a F
Otro par de funciones que se utilizan para generar n´umeros aleatorios son:
• RANDOM devuelve un n´umero real aleatorio entre 0 y 1 (el cero est´a incluido) • RANDOM(n) devuelve un entero aleatorio entre 0 y el n´umero entero n (el cero est´a incluido)
u k a F
Prueba estas dos declaraciones:
1 2 3
a
RANDOMIZE; Writeln (RANDOM: 2 : 2 ) ; Writeln (RANDOM( n ) ) ;
u k a F
u k a F
donde n es un n´ umero entero variable de lectura desde el teclado. Utilice las dos declaraciones en un programa y vea los resultados de varias ejecuciones. Ellos deben ser diferentes en cada ejecuci´ on. RANDOMIZE planta semillas para que los n´umeros generados sean diferentes en cada ejecuci´ on.
a L
Funciones Matem´ aticas No Standards
a L
Algunas de las funciones matem´aticas que requerimos no se encuentran disponibles; sin embargo se puede expresar estas en base al standard disponible, como se ve en el Cuadro 2. Funci´ on n
a
u k a F
a
Equivalente
=
logb (x)
=
tan(θ)
=
cot(θ) sec(θ)
= =
n e
Funci´ on
· ln(a)
ln(x) ln(b) sin(θ) cos(θ) cos(θ) sin(θ) 1 cos(θ)
a L
csc(θ) cos
−
sin
−
1
Equivalente
=
(x)
=
arctan
(x)
=
arctan
u k a F 1
1 sin(θ)
sinh(x)
cosh(x)
= =
e
x
e
x
−e
√ − √
−
2 +e 2
−
x2
1
x
x
x
1
2
−x
x
Cuadro 2: Funciones Matem´aticas No Standards
Funciones Standards Para Caracteres
a L
u k a F
Hay cuatro funciones est´andar que se dedican a las operaciones de manipulaci´on de caracteres:
• ORD(c) devuelve el n´umero ordinal del car´acter c • CHR(n) devuelve el car´acter representado por el n´umero ordinal n • PRED(c) devuelve el car´acter c anterior en la secuencia ordinal • SUCC(c) devuelve el siguiente car´acter despu´es de c en la secuencia ordinal
u k a F
1
u k a F
Los trozos de c´ o digo muestran una forma que al escribirlos dentro de un programa se muestre en la consola el resultado de la funci´ on implicada en una l´ ınea. No queriendo decir que es la unica ´ forma de su utilizaci´ on.
a
a
2
u k a F
a
a F
a L
k a F
u k a F
Usted puede obtener el n´umero ordinal de un car´acter mediante el uso de la funci´on ORD, como en el siguiendo el ejemplo: 1
Writeln (ORD( ’A ’ ) ) ;
{ El
a L
o r d i n a l d e l c ar a ´ c te r ’A’ e s 65
}
El n´ umero ordinal del car´ acter es el que le corresponde en la codificaci´on decimal ASCII.
Se tiene que resaltar que la funci´on ORD opera tambi´en con valores booleanos de la siguiente forma: 1
E l o r d i n a l d e TRUE e s 1 Writeln (ORD(TRUE) ) ; Writeln (ORD(FALSE ) ) ; E l o r d i n a l d e FALSE e s 0
u k a F 2
{
{
Operadores A Nivel De Bits
a
}
}
u k a F
Un Byte es equivalente a 8 bits, esto significa que con Byte puedes tener 256 combinaciones posibles de ceros y unos. Pascal, permite realizar operaciones con bits, como son el “desplazamiento” de bits hacia izquierda y derecha con las funciones shift y utilizar los operadores l´ogicos AND, OR, XOR, NOT.
u k a F
• SHR: Desplaza hacia la derecha los bits de n el n´umero de posiciones establecidas por m.
a L
Los bits que salen por el extremo derecho se pierden. Sintaxis: n SHR m Ejemplo: 125 SHR 3 = 15 En Binario: 125
→
0000000001111101 SHR 3 = 0000000000001111
→
a L 15
• SHL: Desplaza hacia la izquierda los bits de n el n´umero de posiciones establecidas por m. Los bits que salen por el extremo izquierdo se pierden. Sintaxis: n SHL m Ejemplo: 10 SHL 2 = 40 En Binario:
u k a F 10
→
u k a F
0000000000001010 SHL 2 = 0000000000101000
→
40
• AND: Si el bit de n es uno y el correspondiente a m tambi´en lo es, el resultado es uno, y en
a
el resto de casos es cero. Sintaxis: n AND m Ejemplo: 29 AND 30 = 28 En Binario: 29 30 28
→ → →
a L
0000000000011101 AND 0000000000011110 0000000000011100
a L
u k a F
• OR: Si el bit de n es cero y el correspondiente a m tambi´en lo es, el resultado es cero, y en el resto de casos es uno. Sintaxis: n O R m Ejemplo: 17 OR 30 = 31 En Binario:
u k a F 17 30 31
a
→ → →
0000000000010001 OR 0000000000011110 0000000000011111
a
u k a F 3
u k a F
a
a F
a L
k a F
u k a F
• XOR: Si el bit de n y el correspondiente a m son diferentes, el resultado es uno, y en el resto de casos es cero Sintaxis: n XOR m Ejemplo: 103 XOR 25 = 126 En Binario:
→ 25 → 126 → 103
a L
0000000001100111 XOR 0000000000011001 0000000001111110
u k a F
• NOT: Si el bit de n es uno, lo cambia por cero y viceversa. Sintaxis: NOT n Ejemplo: NOT 25 = 65510 En Binario: NOT 0000000000011001 = 1111111111100110
a
a
→
65510
u k a F
Los operadores AND y OR se pueden interpretar como la multiplicaci´on y la suma en ciertos casos especiales.
u k a F u k a F
a L
a L
Hern´ an Oscanoa V.
[email protected]
a
u k a F
a
u k a F u k a F 4
a L
a L
u k a F
u k a F
Escrito con LATEX2e