Академический Документы
Профессиональный Документы
Культура Документы
CLAVE SCC-1019
Agosto 2013
Conceptos Fundamentales.
Introducción.
1.1 Estilos de Programación 5
1.2 Evaluación de expresiones 7
1.3 Definición de Funciones 10
1.4 Disciplina de tipos 13
1.5 Tipos de Datos 16
Glosario 20
Bibliografía 21
Índice de Figuras.
Conceptos Fundamentales.
Figura 1 7
Figura 2 8
Figura 3 9
Figura 4 10
Figura 5 11
Programaciónestructurada(PE)
La programación estructurada está compuesta por un conjunto de técnicas que han
ido evolucionando aumentando considerablemente la productividad del programa
reduciendo el tiempo de depuración y mantenimiento del mismo.
Programaciónmodular
En la programación modular consta de varias secciones dividas de forma que
interactúan a través de llamadas a procedimientos, que integran el programa en su
totalidad.
Programaciónorientadaaobjetos(POO)
Se trata de una técnica que aumenta considerablemente la velocidad de desarrollo de
los programas gracias a la reutilización de los objetos.
Programaciónfuncional
Se caracteriza principalmente por permitir declarar y llamar a funciones dentro de
otras funciones.
Programaciónlógica
Se suele utilizar en la inteligencia artificial y pequeños programas infantiles. Se trata
de una programación basada en el cálculo de predicados (una teoría matemática que
permite lograr que un ordenador basándose en hecho y reglas lógicas, pueda dar
soluciones inteligentes).
Operadores de Relación
Se utilizan para expresar condiciones y describen una relación entre 2 variables. El
conjunto de operaciones relacionales se muestran en la siguiente tabla.
Operador Significado
< Menor que
> Mayor que
= Igual a
>= Mayor o igual que
<= Menor o igual que
<> Distinto o diferente a
Figura 2- Tabla de Operadores de Relación
Orden de Evaluación
Al incluir estos operadores con los operadores aritméticos, obtenemos este nuevo
orden de evaluación:
Prioridad Operador
1 Contenido de paréntesis()
2 *,/, div, mod
3 +, -
4 =, <, >, <=, >=, distinto a
Figura 3 – Tabla de Orden de Evaluación
Nota: usare el símbolo <> para especificar que el valor entre un operador debe ser
distinto o diferente a el otro operador. ;
Variables Lógicas
La expresión lógica más simple es una variable o constante lógica que puede
establecerse a valores verdadero (true) o falso (false).
Operadores Lógicos
Las expresiones lógicas pueden combinarse para formar expresiones más complejas
utilizando los operadores lógicos and, or y not. Estos se utilizan con constantes
lógicas.
Prioridad Operador
1 (exp), not
2 *, /, div, mod, and
3 +, -, or
4 <, <=, =, <>, >=
Figura 4- Tabla de Operadores Lógicos
Figura 5- Función
Donde,
cuadrado x = x*x
pi = 3.1415926535
e = exp 1.0
• El nombre de la función
• El símbolo =
• una expresión, que puede contener los parámetros, las funciones estándar y otras
funciones definidas.
Una función que tiene un valor booleano como resultado, tiene a la derecha del
símbolo = una expresión con un valor booleano:
negativo x = x < 0
positivo x = x > 0
esCero x = x == 0
Haskell y otros lenguajes funcionales utilizan el sistema de tipos de Milner, que tiene
dos características fundamentales.
Disciplina estática de tipos: Los programas bien tipados se pueden reconocer
en tiempo de compilación. Un programa bien tipado se puede utilizar sin
efectuar comprobaciones de tipo en tipo en tiempo de ejecución, estado
garantizado que no se producirán errores de tipo durante el cómputo. En
particular, el tipo de los resultados calculados por programas bien tipos
siempre es el previsto.
Polimorfismo: Un programa bien tipado puede incluir definiciones de
funciones polimórficas. El polimorfismo permite que una misma función se
pueda aplicar a parámetros de diferentes tipos, dependiendo del contexto en el
que la función se utilice.
Inferencia de tipos
(c) { } ⊢\𝑥 → 𝑥 ∶ : ∀𝑎 (𝑎 → 𝑎)
En el ítem (c) del ejemplo, la cuantificación universal ∀𝑎 indica que en el tipo inferido
𝑎 → 𝑎 el patrón a se puede sustituir por cualquier tipo concreto. En cambio, en el ítem
(b) el tipo inferido no se puede generalizar a ∀𝑎 (𝑎, 𝑎), porque la inferencia depende
del supuesto de que se tenga 𝑥 ∶: 𝑎.
Llamaremos tipos simples a cualquier tipo 𝜯que se pueda formar utilizando las
siguientes reglas en BNF:
𝛵 ∶≔ 𝑎
| 𝑇𝑃
| (𝑇1, … , 𝑇𝑛)
| (𝑇1 → 𝑇)
Por otra parte, llamaremos tipos genéricos a cualquier tipo S que tenga una de las dos
formas siguientes:
Un tipo simple𝜯.
Un tipo de la forma ∀𝑎𝑆1, siendo 𝑆1 otro tipo genérico.
\𝑥 → 𝑥 ∶: 𝑎 → 𝑎
int x;
Lo que asigna el tipo de datos int a la variable x. En una declaración como ésta, un tipo
es sólo un nombre (en este casi la palabra clave int), aportando algunas propiedades,
como los valores que pueden almacenarse, y la forma en que esos valores se
representan internamente.
const PI = 3.14159;
val x = 2;
Por lo que la declaración de x como un int dice que el valor de x debe estar en el
conjunto de enteros definidos por el lenguaje (y por la implementación), o, en
terminología matemática (utilizada ∈ como membresía), la declaración
int x;
valor de x∈ 𝐼𝑛𝑡𝑒𝑔𝑒𝑟𝑠
Tipos estáticos
Casi todos los tipos de datos son estáticos, la excepción son los punteros y no se
tratarán debido a su complejidad.
Que un tipo de datos sea estático quiere decir que el tamaño que ocupa en memoria
no puede variar durante la ejecución del programa. Es decir, una vez declarada una
Tipos dinámicos
Dentro de esta categoría entra solamente el tipo puntero. Este tipo te permite tener un
mayor control sobre la gestión de memoria en tus programas. Con ellos puedes
manejar el tamaño de tus variables en tiempo de ejecución, o sea, cuando el programa
se está ejecutando.
Los punteros quizás sean el concepto más complejo a la hora de aprender un lenguaje
de programación, sobre todo si es el primero que aprendes. Debido a esto, no lo
trataremos. Además, lenguajes que están muy de moda (por ejemplo Java) no
permiten al programador trabajar con punteros.
Tipos simples
Como su nombre indica son los tipos básicos en Pascal. Son los más sencillos y los más
fáciles de aprender. Por todo esto, serán en los que nos centremos.
Los tipos simples más básicos son: entero, lógico, carácter y real. Y la mayoría de los
lenguajes de programación los soportan, no como ocurre con los estructurados que
pueden variar de un lenguaje a otro.
Los tipos predefinidos son principalmente tipos simples: tipos que no tienen otra
estructura que su aritmética inherente o una estructura secuencial. Todos los tipos
que siguen, excepto String y Process, son simples. Sin embargo, existen tipos simples
que no están predefinidos: los tipos enumerados y los tipos de subrango, que
también son tipos simples.
Tipos estructurados
Mientras que una variable de un tipo simple sólo referencia a un elemento, los
estructurados se refieren a colecciones de elementos.
Las colecciones de elementos que aparecen al hablar de tipos estructurados son muy
variadas: tenemos colecciones ordenadas que se representan mediante el tipo array,
Tipos ordinales
Dentro de los tipos simples, los ordinales son los más abundantes. De un tipo se dice
que es ordinal porque el conjunto de valores que representa se puede contar, es decir,
podemos establecer una relación uno a uno entre sus elementos y el conjunto de los
números naturales.
Tipos no-ordinales
Simplificando, podríamos reducir los tipos simples no-ordinales al tipo real. Este tipo
nos sirve para declarar variables que pueden tomar valores dentro del conjunto de los
números reales.
http://rodrigogu.super-red.es/fundamentos/tema6/expresiones_logicas.pdf
http://aplicaciones.virtual.unal.edu.co/drupal/files/Funciones%20y%20Procedimientos%20-
%20Programacion%20de%20computadores.pdf
http://teleformacion.edu.aytolacoruna.es/PASCAL/document/tipos.htm