Programacion Logica Funcional Unidad I
Programacion Logica Funcional Unidad I
S.N.E.S.T
D.G.E.S.T
INSTITUTO TECNOLGICO
del Istmo
Estilo Allman fue definido por Eric Allman, se trata de crear una nueva lnea
para las llaves, e identificar el cdigo debajo de ellas.
Estilo BSD KNF tambin conocido como estilo Kernel Normal From, es la
manera ms usada para el cdigo de la distribucin del software del sistema
operativo de Berkeley.
1.2.-EVALUACION DE EXPRESIONES
Una expresin es una combinacin de operadores y operandos de cuya evaluacin
se obtiene un valor. Los operandos pueden ser nombres que denoten objetos
variables o constantes, funciones, literales de cualquier tipo adecuado de acuerdo
con los operadores u otras expresiones ms simples. La evaluacin de una
expresin da lugar a un valor de algn tipo, una expresin se dice que es del tipo de
su resultado. Ejemplos de expresiones:
a + 5*b
(a >= 0) and ((b+5) > 10)
a
-a * 2 + b
-b + sqrt (b**2 - 4*a*c)
length(s) > 0
Las expresiones se evalan de acuerdo con la precedencia de los operadores. Ante
una secuencia de operadores de igual precedencia, la evaluacin se realiza segn el
orden de escritura, de izquierda a derecha. El orden de evaluacin puede modificarse
usando parntesis.
Tipos de expresiones
Dentro de las expresiones distinguimos dos clases segn el tipo de datos que
devuelven al evaluarlas:
1.3.-DEFINICION DE FUNCIONES
Matemticamente una funcin es una operacin que toma uno o valores llamados
argumentos y produce un valor denominado resultado, valor de la funcin para los
argumentos dados. Todos los lenguajes de programacin tienen funciones
incorporadas o intrnsecas.
Una funcin puede tener varios argumentos. Por consiguiente.
f ( x , y )=
x y
x y
Es una funcin con dos argumentos. Sin embargo, solamente un nico valor se
asocia con la funcin para cualquier par de valores dados a los argumentos.
Cada lenguaje de programacin tiene sus propias funciones incorporadas, que se
utilizan escribiendo sus nombres con los argumentos adecuados en expresiones
tales como:
Raiz2 (A + COS(X))
DECLARACION DE FUNCIONES
La declaracin de una funcin requiere una serie de pasos que la definen. Una
funcin como tal subalgoritmo o subprograma tiene una constitucin similar a los
algoritmos, por consiguiente, constara de una cabecera que comenzara con el tipo
del valor devuelto por la funcin, seguido de la palabra funcin y del nombre y
argumentos de dicha funcin .
Las funciones y los procedimientos se expresan utilizando nombres escritos con
letras maysculas; las variables se representan con nombres con letras minsculas
cursivas. Por lo general, al aspecto que ofrece una innovacin de funcin es como
ALGUNA-FUNCION (variable). Sin embargo, tambin se permite que el valor mismo
de un variable sea una funcin; por ejemplo, si el valor de variable es la funcin raz
cuadrtica, la expresin variable (9) producir 3.
Las operaciones que se requieren en los programas exigen en numerosas ocasiones
adems de las operaciones aritmticas bsicas, ya tratadas, un nmero determinado
de operadores especiales que se denominan funciones internas, incorporadas o
estndar. Por ejemplo, l funcin In se puede utilizar para determinar el logaritmo
neperiano de un nmero y la funcin sqrt calcula la raz cuadrada de un nmero
positivo. Existen otras funciones que se utilizan para determinar las funciones
trigonomtricas.
1.4.-DICIPLINA DE DATOS
DISCIPLINA: Es la coordinacin de actitudes con las cuales se instruye para
desarrollar habilidades, o para seguir un determinado cdigo de conducta u "orden".
Un ejemplo es la enseanza de una materia, ciencia o tcnica, especialmente la que
se ensea en un centro (Docente asignatura).
En los lenguajes de programacin con disciplina de tipos, cada tipo representa una
coleccin de valores (datos) similares. Una funcin cuyo tipo sea A1 -> ... An ->
espera n parmetros con tipos A1, ... An y devuelve un resultado de tipo R. El
conocer los tipos de las funciones ayuda a documentar los programas y a evitar
errores en tiempo de ejecucin.
Disciplina esttica de tipos: Los programas bien tipados se pueden reconocer en
tiempo de compilacin, un programa bien tipado se puede utilizar sin efectuar
comprobaciones de tipo en tiempo de ejecucin. Estando garantizado que no se
producirn errores de tipo durante el cmputo.
La programacin funcional es un paradigma de programacin declarativa basado en
la utilizacin de funciones aritmticas que no maneja datos mutables o de estado.
Enfatiza la aplicacin de funciones, en contraste con el estilo de programacin
imperativa, que enfatiza los cambios de estado. La programacin funcional tiene sus
races en el clculo lambda, un sistema formal desarrollado en los 1930s para
investigar la definicin de funcin, la aplicacin de las funciones y la recursin.
Muchos
lenguajes
de
programacin
funcionales
pueden
ser
vistos
como
1.5.-TIPOS DE DATOS
El primer objetivo de toda computadoras el manejo de la informacin o datos. Estos
datos pueden ser las cifras de ventas de un supermercado o las calificaciones de una
clase. Un dato es la expresin general que describe los objetos con los cuales opera
una computadora.
La mayora de las computadoras pueden trabajar con varios tipos (modos) de datos.
Los algoritmos y los programas correspondientes operan sobre datos.
La accin de las instrucciones ejecutables de las computadoras se refleja en cambios
en los valores de las partidas de datos. Los datos de entrada se transforman por el
programa, despus de las etapas intermedias, en datos de salida.7
En el proceso de solucin de problemas el diseo de la estructura de datos es tan
importante como el diseo del algoritmo y del programa que se basa en el mismo.
Existen dos tipos de datos: simples (sin estructura) y compuestas (estructuradas).
Los datos estructurados se estudian a partir del captulo 6 y sin conjuntos de partidas
de datos simples con relaciones definidas entre ellos.
Los distintos tipos de datos se representan en diferentes formas en la computadora.
A nivel de mquina, un dato es un conjunto o secuencia de bits (dgitos 0 o 1).los
lenguajes de alto nivel permiten basarse en abstracciones e ignorar los detalles de la
representacin interna. Aparece el concepto de tipo de datos, as como su
representacin.
Los tipos de datos simples son los siguientes:
Lgicos (boolean)
lenguajes pascal- que tambin permiten declarar y definir sus propios tipos de
datos enumerados (enumerated) y subrango (subrange).
DATOS NUMRICOS
El tipo numrico es el conjunto de los valores numricos. Estos pueden
representarse en dos formas distintas:
Enteros: el tipo entero es un subconjunto finito de los nmeros enteros. Los enteros
son nmeros complejos, no tiene componentes fraccionarios o decimales y pueden
ser negativos o positivos.
Ejemplos de nmeros enteros son:
5
-15
20
17
1.340 26
Los enteros se denominan en ocasiones nmeros de punto a como fijo. Los nmeros
enteros mximos y mnimos de una computadora suele ser -32768 a + 32767. Los
nmeros enteros fuera de este rango no se pueden representar como enteros, sino
como reales.
Reales: el tipo real consiste en un subconjunto de los nmeros reales. Los nmeros
reales siempre tienen un punto decimal y pueden ser positivos o negativos.
Un nmero real consta de un entero y una parte decimal.
Los siguientes ejemplos son nmeros reales.
0.88
3739.41
3.7452
-52.321
-8.12 3.0
En aplicacin cientfica se requiere una representacin especial para manejar
nmeros muy grandes como la masa de la tierra o muy pequeos como la masa de
un electrn. Una computadora solo puede representar un nmero fijo de dgitos. Este
nmero puede variar de una maquina a otra. Siendo ocho dgitos un nmero tpico.
Este lmite provocara problemas para representar y almacenar nmeros muy grandes
o muy pequeos como son los ya citados los siguientes.
4867213432 0.000000000387
Existe un tipo de representacin denominada notacin exponencial o cientfica y que
se utiliza para nmeros muy grandes o muy pequeos as,
367520100000000000000
Se representa en notacin cientfica, descomponindolo en grupos de tres dgitos.
367 520 100 000 000 000 000
Y posteriormente en forma de potencias de 10
3.675201 x10^19
Y de modo similar
.00000000000302579
Y se representa como
3.02579 x10^-11
La representacin en con flotante es una generalizacin de notacin cientfica.
Obsrvese que las siguientes expresiones son equivalentes:
3.675201 x 10^19 =.3675201 x 10^20 = .03675201 x 10^21=..
=36.75201 x 10^18 =367.5201 x 10^17 =
matisa
18
exponente
DATOS LOGICOS
El tipo lgico tambin denominado booleano es aquel dato que solo puede tomar
uno de dos valores:
Cierto o verdadero (true) y falso (false).
Este tipo de daos se utilizan para representar las alternativas (si/no) a determinadas
condiciones. Por ejemplo, cuando se pide si un valor entero es par, la respuesta ser
verdadera o falsa, segn sea par o impar.
DATOS TIPO CARCTER
El tipo carcter es el conjunto finito y ordenado de caracteres que la computadora
reconoce. Un dato tipo carcter contiene un solo carcter.
Los caracteres que reconocen las diferentes computadoras no son estndar; sin
embargo, la mayora reconoce los siguientes caracteres alfabticos y numricos:
BIBLIOGRAFIA
joyanes Aguilar, L., Fundamentos de programacin basados en algoritmos,
estructuras de datos y objetos,( tercera edicion )
http://karlaprogramacionfuncional.blogspot.mx/2014/02/unidad-1-conceptosfundamentales.html
http://www.academia.edu/6553813/Unidad_1_Prog_Log_y_Funcional