Sunteți pe pagina 1din 9

3.

2 ESTRUCTURA BASICA DE UN PROGRAMA


Como ya se ha visto, cuando se escribe un programa lo que se trata de hacer es indicarle
a la computadora cómo ha de resolver un problema. Estos programas siguen determinada
estructuras, que dependen del tipo de lenguaje que usemos y del entorno en el cual lo
creemos. La estructura exacta de un programa depende del lenguaje que utilicemos y el
entorno en el cual lo creemos. Sin embargo, hay algunos principios generales:

 Un cargador - Todo programa necesita ser cargado en la memoria por el sistema


operativo. De esto se encarga el intérprete.
 Definición de los datos - La mayoría de los programas operan con datos y por lo
tanto en el código fuente debemos definir que tipo de datos vamos a utilizar en el
programa. Esto se realiza de manera diferente en los distintos lenguajes. Todos los
lenguajes que usaremos tienen la posibilidad de crear una nueva definición de datos
simplemente al utilizar los datos. Veremos esto en la próxima sección.
 Instrucciones - Son la parte central del programa. Las instrucciones manipulan los
datos que hemos definido, realizan cálculos, muestran los resultados, etc.

La mayoría de los programas siguen una de dos estructuras:

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:

 Inicialización interna de los datos


 Lectura de los datos ingresados
 Procesamiento de los datos
 Visualización o ejecución de los resultados

Programas controlados por eventos.

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.

Los programas controlados por eventos son generalmente así:

 Inicialización interna de los datos


 Espera de los eventos
 Identificación de los eventos y actuación en consecuencia

Características comunes a todos los programas

Hace tiempo Edsgar Dijkstra desarrolló el concepto de la programación estructurada. Esto


significa que todos los programas pueden estructurarse de las siguientes cuatro formas:

 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

decisiones. Es de empleo muy común en el ámbito informático.

En programación un dato es la expresión general que Describe las características de las


entidades sobre las cuales opera un algoritmo.

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:

 El tipo entero (integer)


 El tipo lógico (boolean)
 El tipo carácter (char)

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.

nota: a continuación sólo se comentará qué es cada tipo, no se explicará su declaración,


esto puedes verlo si vas a la sección correspondiente.

El tipo integer (entero)

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.

Este tipo de variables, puedes utilizarlas en asignaciones, comparaciones, expresiones


aritméticas, etc. Algunos de los papeles más comunes que desarrollan son:

 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 boolean (lógico)

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.

Nos sirven para mantener el estado de un objeto mediante dos valores:


 si/no
 cierto/falso
 funciona/no funciona
 on/off
 etc.

El tipo real (real)

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

Los tipos char y string (carácter y cadena)

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.

En todos los lenguajes de programación se utilizan operadores para efectuar operaciones


aritméticas.Combinando las variables y constantes en expresiones aritméticas por medio
de funciones adecuadas. Una expresión es un conjunto de datos o funciones unidos por
operadores aritméticos, los cuales son: SUMA, RESTA, MULTIPLICACION, DIVISION,
EXPONENCIAL Y MODULO.

 OPERADOR LOGICO

En ocasiones en los programas se necesitan realizar comparaciones entre distintos


valores, esto se realiza utilizando los operadores relaciones, los cuales son: Mayor que,
menor que, menor igual que, mayor igual que, igual a, distinto a o diferente de.

 OPERANDO.

Referente a la parte de la instrucción de lenguaje máquina de la computadora que designa


la dirección de los datos con los que se debe operar.

 EXPRESIONES.

Las expresiones son combinaciones de constantes, variables, símbolos de operación,


paréntesis y nombres de funciones especiales. Por ejemplo:

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

 PROCESO DE CREACIÓN DE UN EJECUTABLE

En Java, en principio, no se pueden crear autoejecutables ya que este es un lenguaje


multiplataforma y los archivos autoejecutables son dependientes de la plataforma. Esto
provoca que tengamos que usar la consola para ejecutar nuestros programas; lo que
supone un gran inconveniente para usuarios sobre todo acostumbrados a los entornos
gráficos. Existen varias soluciones para este asunto. Aquí se explican tres de ellas. La
primera es la de crear ejecutables dependientes de la plataforma ; la segunda permite
hacer más fácil la ejecución en cada plataforma sin impedir su ejecución en otra plataforma;
la tercera es válida para cualquier plataforma y aporta otras muchas posibilidades.
Podemos crear un ejecutable de la plataforma de varias maneras: Podemos usar traducir
el código java a código C con Toba o J2C. De esta forma sólo nos queda compilar el código
C para crear el ejecutable.

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.

S-ar putea să vă placă și