ALGORITMOS Y LENGUAJES DE PROGRAMACIÓN



Introducción a la Programación


Un lenguaje de programación es un idioma artificial diseñado para expresar procesos que pueden ser llevadas a cabo por máquinas como las computadoras. Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión, o como modo de comunicación humana. Está formado por un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones. Al proceso por el cual se escribe, se prueba, se depura, se compila y se mantiene el código fuente de un programa informático se le llama programación. También la palabra programación se define como el proceso de creación de un programa de computadora, mediante la aplicación de procedimientos lógicos, a través de los siguientes pasos: El desarrollo lógico del programa para resolver un problema en particular. Escritura de la lógica del programa empleando un lenguaje de programación específico (codificación del programa). Ensamblaje o compilación del programa hasta convertirlo en lenguaje de máquina. Prueba y depuración del programa. Desarrollo de la documentación.








ESTRUCTURA BASICA DE UN PROGRAMA


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.

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.

ALMACENAMIENTO, DIRECCIONAMIENTO Y REPRESENTACIÓN EN MEMORIA.




• ALMACENAMIENTO:


Hay dos clases, almacenamiento primario, que son los que usa la CPUdirectamente (memoria principal, memoria caché, etc) y el almacenamiento secundario, a los cuales la CPU no accede directamente, sino que deben almacenarse previamente en uno primario. Son de almacenamiento secundario los discos magnéticos, ópticos, cintas magnéticas, tambores magnéticos, etc.El almacenamiento de datos puede usarse también para copias de seguridad, ver backup.Con el correr de los años, el almacenamiento de datos informáticos ha ido bajando de precio. Por ejemplo, 1 GB de memoria en 1956 costaba 8,2 millones de dólares. En 1980, 184 mil dólares; en 1990 eran 5.200 dólares; en 2000 eran 12 dólares, y en 2006 fueron 1,2 dólares.


DIRECCIONAMIENTO


Los llamados Modos de direccionamiento son las diferentes maneras de especificar en informática un operando dentro de una instrucción (lenguaje ensamblador). Cómo se especifican e interpretan las direcciones de memoria según las instrucciones. Pueden ser:


Inmediato: En la instrucción está incluido directamente el operando.


Directo: El campo de operando en la instrucción contiene la dirección en memoria donde se encuentra el operando.


Indirecto: El campo de operando contiene una dirección de memoria, en la que se encuentra la dirección efectiva del operando.


Absoluto: El campo de operando contiene una dirección en memoria, en la que se encuentra la instrucción.


De registro: Sirve para especificar operandos que están en registros.


Indirecto mediante registros: El campo de operando de la instrucción contiene un identificador de registro en el que se encuentra la dirección efectiva del operando.


De desplazamiento: Combina el modo directo e indirecto mediante registros


De pila: Se utiliza cuando el operando está en memoria y en la cabecera de la Pila.


• REPRESENTACION DE MEMORIA


Podemos representar a las colas de dos formas :


Como arreglos

Como listas ordenadas


En esta unidad trataremos a las colas como arreglos de elementos, en donde debemos definir el tamaño de la cola y dos apuntadores, uno para accesar el primer elemento de la lista y otro que guarde el último.


En lo sucesivo, al apuntador del primer elemento lo llamaremos F, al de el último elemento A y MAXIMO para definir el número máximo de elementos en la cola.Resultado de imagen para ESTRUCTURA BASICA DE UN PROGRAMA
IDENTIFICADORES




En los lenguajes informáticos, los identificadores son elementos textuales (también llamados símbolos) que nombran entidades del lenguaje. Algunas de las de entidades que un identificador puede denotar son las variables, las constantes, los tipos de dato, las etiquetas, las subrutinas, los paquetes y las subrutinas (procedimientos y funciones).

En muchos lenguajes algunas secuencias tienen la forma léxica de un identificador pero son conocidos como palabras clave (o palabras reservadas). Lo habitual es que si un identificador se corresponde con una palabra clave o reservada, éste ya no pueda utilizarse para referirse a otro tipo de entidades como variables o constantes (en unos pocos lenguajes, como PL/1, esta distinción no está del todo clara).Resultado de imagen para IDENTIFICADORES en programacion


PROPOSICIÓN DE ASIGNACIÓN.


La forma de una proposición de asignación es: a = b donde b es una expresión permitida, y a es el nombre de la variable donde se dejará el valor resultante de evaluar b.

Por expresión permitida se entiende a aquella expresión matemática que ocupa las operaciones y funciones nombradas como existentes, y escritas de la forma que para ellas se señala, respetando así la sintaxis en cada instrucción.

El signo igual, " = ", de a = b tiene el sentido de asignar a la variable a el valor que resulte de evaluar la expresión permitida b. Es decir, a = b. Que no es la misma definición usada en matemáticas para el signo: = .



El computador, al ejecutar una proposición de asignación evalúa la expresión del lado derecho del signo igual con los valores que en ese momento tengan las variables ahí ocupadas. Así, la expresión entregará valores probablemente distintos en las diversas ocasiones que por programa se evalúe esa expresión. Las siguientes son proposiciones de asignación correctas, A = 2.5 TO = 1 + XT I = I + 1 Y no son correctas las siguientes:

A + B = C 20 = 16.2 + 3.8 AL = (AT+3.4) / 110.302


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, MULTIPLICACIÓN, DIVISIÓN, EXPONENCIAL Y MODULO.


OPERADOR LÓGICO


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.

Comentarios

Entradas populares