Programacion de Un Lenguaje Estructurado
Programacion de Un Lenguaje Estructurado
Programacion de Un Lenguaje Estructurado
Programas de lotes
Estos se ejecutan típicamente desde una línea de comando o automáticamente desde otra
aplicación (tipo scheduler) y tienden al siguiente patrón:
La mayor parte de las interfaces gráficas (y los sistemas de control presentes en un horno
a microondas o una cámara por ejemplo) responden a eventos. Esto significa que el
Sistema Operativo envía un evento al programa y este los responde tan pronto como estos
le llegan. Los eventos incluyen acciones del usuario como apretar una tecla, mover el
mouse, etc, y operaciones propias del sistema operativo tales como la actualización del
reloj, el refresco de la pantalla, etc.
Secuencias de instrucciones
Bucles
Bifurcaciones
Módulos
Además de estas estructuras los programas necesitan otras características que los hacen
útiles:
Datos
Operaciones (sumar, restar, comparar, etc.)
Capacidad de Entrada/Salida (para mostrar resultados)
Una vez que se comprende cómo un lenguaje particular implementa estos conceptos, uno
está preparado para escribir un programa en ese lenguaje.
3.3. DATOS
El dato (del latín datum), es una representación simbólica (numérica, alfabética, etc.),
atributo o característica de una entidad. El dato no tiene valor semántico (sentido) en sí
mismo, pero convenientemente tratado (procesado) se puede utilizar en la realización de
cálculos o toma de
Un dato por sí mismo no constituye información, es el procesador de los datos lo que nos
proporciona Información.
TIPOS DE DATOS
Existen muchas clasificaciones para los tipos de datos, y dependiendo de la fuente que
mires, te mostrarán una u otra. A continuación tienes una de las posibles clasificaciones:
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 variable de un tipo determinado, a ésta se le asigna un trozo de memoria
fijo, y este trozo no se podrá aumentar ni disminuir.
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.
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, colecciones sin orden mediante el
tipo conjunto, e incluso colecciones que contienen otros tipos, son los llamados registros.
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. Dentro de los tipos simples ordinales, los más importantes son:
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.
A diferencia de los tipos ordinales, los no-ordinales no se pueden contar. No se puede
establecer una relación uno a uno entre ellos y los número naturales. Dicho de otra forma,
para que un conjunto se considere ordinal se tiene que poder calcular la posición, el anterior
elemento y el siguiente de un elemento cualquiera del conjunto.¿Cuál es el sucesor de
5.12? Será 5.13, o 5.120, o 5.121, ...
Después de ver una de las posibles clasificaciones para los tipos de datos, pasemos a ver
los que nos interesan: los tipos simples. Realmente de los tipos simples veremos los más
básicos, que son: integer, boolean, char y real. Además, también hablaremos un poco de
las cadenas de caracteres, los llamados strings.
Como ya habrás leído el tipo de datos entero es un tipo simple, y dentro de estos, es
ordinal.
Al declarar una variable de tipo entero, estás creando una variable numérica que puede
tomar valores positivos o negativos, y sin parte decimal.
Controlar un bucle .
Usarlas como contador, incrementando su valor cuando sucede algo.
Realizar operaciones enteras, es decir, sin parte decimal
Y muchas más...
El tipo de datos lógico es el que te permite usar variables que disponen sólo de dos posibles
valores: cierto o falso. Debido a esto, su utilidad salta a la vista, y no es otra que variables
de chequeo.
Como ya has visto, Pascal soporta el conjunto entero de números. Pero no es el único,
también te permite trabajar con números pertenecientes al conjunto real. El tipo de datos
real es el que se corresponde con los números reales. Este es un tipo importante para los
cálculos. Por ejemplo en los estadísticos, ya que se caracterizan por tratar
fundamentalmente con valores decimales.
Nota: Aunque pueda que estés acostumbrado a escribir con coma los decimales, te
advierto que en Pascal y en todos los lenguajes de programación se escribe con un punto.
Por ejemplo: 3.1416
Con el tipo carácter puedes tener objetos que representen una letra, un número, etc. Es
decir, puedes usar variables o constantes que representen un valor alfanumérico. Pero ojo,
cada variable sólo podrá almacenar un carácter. Sin embargo, con las cadenas de
caracteres (strings) puedes contener en una sóla variable más de un carácter. Por ejemplo,
puedes tener en una variable tu nombre.
3.7. OPERADORES, OPERANDOS Y EXPRESIONES
OPERADORES.
OPERADOR LOGICO
OPERANDO.
EXPRESIONES.
a + (b + 3) / c
Cada expresión toma un valor que se determina tomando los valores de las variables y
constantes implicadas y la ejecución de las operaciones indicadas. Una expresión consta
de operadores y operandos. Según sea el tipo de datos que manipulan, se clasifican las
expresiones en: Aritméticas, Relacionales ,Lógicas
3.8. PRIORIDAD DE OPERADORES, EVALUACIÓN DE EXPRESIONES
Prioridad
Se llama prioridad al orden en el que se evalúa una expresión. 4D tiene una estricta
prioridad izquierda-a-derecha. Por ejemplo: 3+4*5 devuelve 35 porque la expresión es
evaluada como 3+4, dando 7, el cuál es multiplicado por 5, resultando 35. Se pueden
utilizar paréntesis para cambiar la prioridad izquierda-a-derecha. Por ejemplo:
3+(4*5) devuelve 23 porque se evalúa primero la expresión (4*5), por estar entre
paréntesis. El resultado es 20, lo cual es añadido el 3, dando el resultado final 23. Se
pueden insertar paréntesis dentro de otros grupos de paréntesis. Es necesario asegurarse
de que cada paréntesis izquierdo tiene su correspondiente derecho. La falta o el uso
incorrecto de los paréntesis puede provocar resultados inesperados o expresiones no
válidas.
EVALUACIÓN DE EXPRESIONES
Cuando en una expresión concurre mas de una operación, los paréntesis indicarán
prioridad, es decir, la operación encerrada entre paréntesis se realizará en primer lugar.
Además, algunos operadores tendrán preferencia sobre otros. Por ejemplo, en la operación
a + b / c, primero se realizará b / c y posteriormente se le sumará a. En caso de que el
programador quiera que se sume primero a y b para posteriormente dividir por c,
tendríamos que hacer (a + b) / c. Si todos los operadores de una expresión tienen la misma
prioridad, la operación se hará de izquierda a derecha, salvo cuando tengamos
exponenciales, en tal caso, el orden será de derecha a izquierda, por ejemplo, al hacer
2**3**2 resulta el valor 2**9 = 512
Toba es un proyecto libre cuyo desarrollo ha quedado estancado cuando Java iba por la
versión 1.1, pero podemos descargarlo todavía desde su página web. J2C lo puedes
encontrar aquí (creo; cuando veas la página sabrás el porqué de mis dudas), Existe un
compilador que además de permitirnos, como cualquier otro compilador, crear bytecodes
a partir de ficheros .java, nos da la posibilidad de compilar el fuente (archivos .java) para
obtener un ejecutable de la plataforma y también permite crear un ejecutable de la
plataforma a partir del bytecode. De esta forma el código obtenido es mucho más rápido.
El programa se llama GJC y forma parte la familia de compiladores GCC del proyecto GNU
que se desarrolla bajo la GPL (General Public License). Si lo que queremos es crear un
archivo ejecutable .exe (para plataforma Windows) y prescindir de la cualidad de
multiplataforma de este lenguaje, lo que hay que hacer es conseguir un programa que
realice esta tarea. Esto lo hacen algunas IDE’s y el programa Jto Exe. Al crear un .exe lo
que hacemos es sustituir los archivos de clase de Java, al contrario que la siguiente opción
que complementa y no sustituye.
En particular el programa Jto Exe necesita de la máquina virtual de Java para poder
ejecutar el programa de modo seguiremos necesitando instalar la JVM al contrario que las
dos opciones anteriores.