3.Elementos+de+los+lenguajes+de+programación+y+de+los+algoritmos

  Cualquier lenguaje de programación trabaja con tres elementos:  información, operaciones e instrucciones.  **La informaci****ó****n**. Esta se refiere a los datos con los cuales trabajarán los programas. Los datos suelen ser de dos tipos: numéricos y alfanuméricos (ó caracteres). Los datos se pueden agrupar formando estructuras, las estructuras pueden ser muy simples como las constantes (28) y las variables (x) o muy complejas como las matrices y registros. La figura nº 1.1 representa distintos tipos y estructuras de datos.

 **Las operaciones**. ​ Se refieren a las operaciones que el ordenador es capaz de realizar con los diversos tipos de datos. Por ejemplo, la suma de dos números se puede realizar por un ordenador directamente; pero para realizar la suma de dos matrices habría que hacer un programa (existen algunos lenguajes de programación que permiten directamente realizar sumas de matrices).

​ Las operaciones pueden ser realizadas mediante operadores y funciones predefinidas que se aplican a un tipo de datos determinado. Por ejemplo, para los datos de tipo numérico se permiten los operadores suma, resta, división y producto, cuya operación se representaría:

a=5*3 c=6*b

​ Las funciones que dispone el lenguaje de programación para realizar operaciones se denominan predefinidas, ya que vienen definidas de antemano. Su utilización es como sigue:

a=sqrt(10) <span style="font-family: Verdana,Geneva,sans-serif;">b=log(b)

<span style="font-family: Verdana,Geneva,sans-serif; font-size: 110%;">​ Normalmente para definir las operaciones con operadores y funciones se utiliza el término expresiones, que pueden ser operaciones con operadores, con funciones o con ambas, un ejemplo sería:

<span style="color: #0000ff; display: block; font-family: Verdana,Geneva,sans-serif; font-size: 130%; text-align: justify;"><span style="font-family: Verdana,Geneva,sans-serif;">a=b*log(b)+sqrt(i) <span style="font-family: Verdana,Geneva,sans-serif; font-size: 110%;">​ Evidentemente existen expresiones tanto numéricas como de caracteres y estas expresiones pueden trabajar con distintas estructuras de datos.

<span style="color: #ff0000; display: block; font-family: Verdana,Geneva,sans-serif; font-size: 130%; text-align: center;"><span style="color: #ff0000; font-family: Verdana,Geneva,sans-serif; font-size: 140%;"> **Las instrucciones**. <span style="font-family: Verdana,Geneva,sans-serif; font-size: 110%;">​ Las instrucciones (también denominadas sentencias) son el conjunto de órdenes que se le pueden dar al ordenador. En función del tipo de orden que indique al ordenador, las instrucciones se clasifican en los siguientes tipos:

<span style="color: #ff0000; display: block; font-family: Verdana,Geneva,sans-serif; font-size: 130%; text-align: justify;">**-Instrucciones de entrada y salida (E/S).**

<span style="display: block; font-family: Verdana,Geneva,sans-serif; font-size: 130%; text-align: justify;">

<span style="font-family: Verdana,Geneva,sans-serif; font-size: 110%;">​ También denominadas de lectura/escritura (L/S) ó input/output (I/O). Estas instrucciones se encargan de la información que necesita un programa para realizar su tarea y de la información que genera el programa. Son instrucciones del tipo: Almacena en la variable "nom" el nombre del usuario ó escribe el contenido de la variable "nom". Normalmente la entrada y la salida se realiza desde un fichero ya creado (información almacenada en un dispositivo magnético) o es el usuario quien suministra o recibe la información a través del teclado y pantalla del ordenador. A continuación se describen los dispositivos de entrada y salida más comúnmente utilizados por los ordenadores. Para cada uno de ellos existirían instrucciones de entrada y salida.

<span style="color: #ff0000; display: block; font-family: Verdana,Geneva,sans-serif; font-size: 130%; text-align: center;"><span style="color: #ff0000; font-family: Verdana,Geneva,sans-serif; font-size: 110%;">**Dispositivos de entrada.** <span style="font-family: Verdana,Geneva,sans-serif; font-size: 110%;"> ​Son los utilizados para introducir la información en un ordenador. Los dispositivos de entrada más comunes son: ratón, escáner, sistemas ocr, módem, sistemas de audio, etc <span style="font-family: Verdana,Geneva,sans-serif; font-size: 110%;"> ​Existen además otros muchos dispositivos conectables al ordenador (que envían información a los dispositivos de procesamiento). Realmente se puede conectar cualquier dispositivo que generará alguna señal o información (osciloscopios, medidores de presión, alarmas, etc.).

<span style="color: #ff0000; display: block; font-family: Verdana,Geneva,sans-serif; font-size: 130%; text-align: center;"><span style="color: #ff0000; font-family: Verdana,Geneva,sans-serif; font-size: 90%;">**Dispositivos de salida**. <span style="font-family: Verdana,Geneva,sans-serif; font-size: 110%;"> ​Operan con la información en sentido inverso al de los dispositivos de entrada; es decir, reciben la información del ordenador. Normalmente estos dispositivos muestran el estado de la información que contiene el ordenador. <span style="font-family: Verdana,Geneva,sans-serif; font-size: 110%;"> Los dispositivos de salida más utilizados son la pantalla, la impresora, los plotters o el módem. ​

<span style="font-family: Verdana,Geneva,sans-serif; font-size: 110%;">​En general se puede conectar al ordenador cualquier dispositivo que para funcionar necesite un control mediante información. Podría ser un robot, una escalera mecánica, un reloj, etc.

<span style="color: #ff0000; display: block; font-family: Verdana,Geneva,sans-serif; font-size: 130%; text-align: justify;"><span style="font-family: Verdana,Geneva,sans-serif;"> **-Instrucciones de control.**

<span style="font-family: Verdana,Geneva,sans-serif; font-size: 110%;">​Son instrucciones que sirven para dirigir la ejecución de un programa. Normalmente un programa está compuesto por un conjunto de instrucciones que se ejecutan una tras otra. Las instrucciones de control permiten cambiar la secuencia de ejecución.

<span style="color: #0000ff; display: block; font-family: Verdana,Geneva,sans-serif; font-size: 130%; text-align: justify;"><span style="font-family: Verdana,Geneva,sans-serif;">Son instrucciones del tipo: Si ocurre tal condición ejecuta determinadas instrucciones, de lo contrario ejecuta otras; ó cuando llegues a esta instrucción vete a la primera. La figura nº 1.5 muestra el control de la ejecución para este tipo de sentencias.



<span style="color: #ff0000; display: block; font-family: Verdana,Geneva,sans-serif; font-size: 130%; text-align: justify;">**-Instrucciones iterativas.**

<span style="font-family: Verdana,Geneva,sans-serif;">​Son instrucciones que permiten repetir un número determinado de veces un conjunto de instrucciones. Por ejemplo, si deseo realizar un programa que escriba los números enteros del 1 al 10.987.654 se puede realizar de dos formas: escribiendo diez millones novecientas ochenta y siete mil seiscientas cincuenta y cuatro instrucciones de salida o un sencillo bucle con cuatro sentencias. La figura nº 1.6 muestra la situación citada.

<span style="display: block; font-family: Verdana,Geneva,sans-serif; font-size: 130%; text-align: justify;">

<span style="color: #ff0000; display: block; font-family: Verdana,Geneva,sans-serif; font-size: 130%; text-align: center;"><span style="color: #ff0000; font-family: Verdana,Geneva,sans-serif; font-size: 140%;"> **__Elementos de los algoritmos__.**

<span style="display: block; font-family: Verdana,Geneva,sans-serif; font-size: 130%; text-align: justify;"><span style="font-family: Verdana,Geneva,sans-serif; font-size: 90%;">Los algoritmos están muy ligados a los lenguajes de programación, de hecho, por cada elemento de los lenguajes de programación existe un elemento equivalente en algoritmia, la principal diferencia es su representación.

<span style="display: block; font-family: Verdana,Geneva,sans-serif; font-size: 130%; text-align: justify;"><span style="font-family: Verdana,Geneva,sans-serif; font-size: 90%;">​ Mientras que para un lenguaje de programación los elementos se representan mediante una sentencia, los elementos de los algoritmos se pueden representan gráficamente. La representación gráfica de un algoritmo se denomina **organigrama**. <span style="display: block; font-family: Verdana,Geneva,sans-serif; font-size: 130%; text-align: justify;"><span style="font-family: Verdana,Geneva,sans-serif; font-size: 90%;">Un algoritmo indica una secuencia de pasos (parecido a una receta de cocina), la representación del mismo se puede hacer textualmente o gráficamente. En esta wiki utilizaremos principalmente la representación gráfica; así pues cuando se utilice la palabra organigrama nos estaremos refiriendo a la representación de los algoritmos. Además en los algoritmos también se indica el flujo de las órdenes; es decir la secuencia de ejecución, por tanto en los organigramas también se debe presentar este flujo. A continuación se describen los elementos de los organigramas:

<span style="color: #ff0000; display: block; font-family: Verdana,Geneva,sans-serif; font-size: 130%; text-align: justify;"><span style="font-family: Verdana,Geneva,sans-serif;"> **- Informaci****ó****n.** <span style="font-family: Verdana,Geneva,sans-serif; font-size: 110%;">​La información se representa mediante un conjunto de celdas y en cada celda se tiene un dato elemental. A lo largo del curso se describirán y representarán los distintos tipos y estructuras de datos.

<span style="color: #ff0000; display: block; font-family: Verdana,Geneva,sans-serif; font-size: 130%; text-align: justify;"><span style="font-family: Verdana,Geneva,sans-serif;"> **- Expresiones.** <span style="font-family: Verdana,Geneva,sans-serif; font-size: 110%;">​ En su representación no se distingue el tipo de expresión. Todas las expresiones se representan por un rectángulo y dentro del rectángulo se indica la expresión concreta. La figura nº 1.7 representa el símbolo de expresión, así como varios ejemplos de expresiones.

<span style="display: block; font-family: Verdana,Geneva,sans-serif; font-size: 130%; text-align: justify;">

<span style="color: #ff0000; display: block; font-family: Verdana,Geneva,sans-serif; font-size: 130%; text-align: justify;">**- Instrucciones.** <span style="font-family: Verdana,Geneva,sans-serif; font-size: 110%;">En algoritmia cada tipo de instrucción tiene una representación gráfica distinta. Como siempre existen dos elementos: el símbolo gráfico que indica qué tipo de instrucción es y el texto que está dentro del símbolo, que indica la instrucción concreta. A continuación se describen brevemente los símbolos para cada tipo de instrucción más comúnmente utilizados. Los diferentes símbolos utilizados para realizar organigramas se describirán a medida que se analicen las distintas instrucciones que representan.

<span style="display: block; font-family: Verdana,Geneva,sans-serif; font-size: 130%; text-align: justify;">

<span style="color: #ff0000; display: block; font-family: Verdana,Geneva,sans-serif; font-size: 130%; text-align: justify;">**- Flujo de instrucciones.** <span style="font-family: Verdana,Geneva,sans-serif; font-size: 110%;"> ​El flujo de instrucciones en los organigramas se representa mediante flechas que indican la secuencia de ejecución. Es muy importante saber qué función se ejecuta primero y cual después, ya que de esta secuencia depende el correcto funcionamiento del programa.

<span style="font-family: Verdana,Geneva,sans-serif; font-size: 110%;">​ En el ejemplo del niño que intenta cruzar la calle es muy importante que se guarde el orden indicado (primero mirar y después cruzar); ya se imaginará el lector qué ocurriría si se cambiara el orden (primero cruzar y después mirar).

<span style="font-family: Verdana,Geneva,sans-serif; font-size: 110%;">​ El flujo secuencial se representa por la unión de los símbolos gráficos a través de una flecha, no obstante mediante las instrucciones de control esta secuencia se puede cambiar. La figura nº 1.10 muestra las dos situaciones.

<span style="display: block; font-family: Verdana,Geneva,sans-serif; font-size: 130%; text-align: justify;"><span style="font-family: Verdana,Geneva,sans-serif;">

<span style="display: block; font-family: Verdana,Geneva,sans-serif; font-size: 130%; text-align: justify;"><span style="font-family: Verdana,Geneva,sans-serif;">Aquí os dejamos un vídeo resumen de lo que hemos visto en estos tres primeros puntos: media type="youtube" key="3Gk2Y835IPQ" height="315" width="420"