ALGORITMOS IBX12-68 ÚLTIMA CLASE. CONTENIDO Origen Definición Ordinogramas Diferencia de...

26
ALGORITMOS IBX12-68 ÚLTIMA CLASE

Transcript of ALGORITMOS IBX12-68 ÚLTIMA CLASE. CONTENIDO Origen Definición Ordinogramas Diferencia de...

Page 1: ALGORITMOS IBX12-68 ÚLTIMA CLASE. CONTENIDO Origen Definición Ordinogramas Diferencia de Pseudocódigo y Diagramas de Flujo. Tipos de Datos Identificadores.

ALGORITMOS

IBX12-68ÚLTIMA CLASE

Page 2: ALGORITMOS IBX12-68 ÚLTIMA CLASE. CONTENIDO Origen Definición Ordinogramas Diferencia de Pseudocódigo y Diagramas de Flujo. Tipos de Datos Identificadores.

CONTENIDO• Origen• Definición• Ordinogramas• Diferencia de Pseudocódigo y Diagramas de Flujo.• Tipos de Datos• Identificadores• Variables• Constantes• Operadores y Expresiones• Estructura de un Algoritmo• Sintaxis• Comentarios• Diagramas de Flujo.

Page 3: ALGORITMOS IBX12-68 ÚLTIMA CLASE. CONTENIDO Origen Definición Ordinogramas Diferencia de Pseudocódigo y Diagramas de Flujo. Tipos de Datos Identificadores.

ORIGEN

La palabra Algoritmo tiene su origen en el nombre del matemático

Persa "Mohamed ibn Musa al Khwarizmi" (825 d.C.). Su apellido fue

traducido al latín como Algorismus y posteriormente paso al españolcomo Algoritmo. Khwarizmi fue

bibliotecario en la corte del califa al-Mamun y astrónomo en el observatorio

de Bagdad. Sus trabajos deálgebra, aritmética y tablas astronómicas

adelantaron enormementeel pensamiento matemático y fue el

primero en utilizar la expresiónal-yabr (de la que procede la palabra

álgebra). Su trabajo con losalgoritmos introdujo el método de cálculo

utilizando la numeraciónarábiga y la notación decimal.

Imagen tomada de:http://muslimheritage.com/topics/default.cfm?ArticleID=631 Mayo de 2014

Page 4: ALGORITMOS IBX12-68 ÚLTIMA CLASE. CONTENIDO Origen Definición Ordinogramas Diferencia de Pseudocódigo y Diagramas de Flujo. Tipos de Datos Identificadores.

algoritmo Sumar

  variables  entero a, b, c

inicio  escribir( "Introduzca el primer número (entero): " )  leer( a )  escribir( "Introduzca el segundo número (entero): " )  leer( b )  c ← a + b  escribir( "La suma es: ", c )fin

DEFINICIÓN DE ALGORITMO

Los Algoritmos son una herramienta que permite describir claramente un conjunto finito de instrucciones, ordenadas secuencialmente y libres de ambigüedad, que debe llevar a

cabo un computador para lograr un resultado previsible. Vale la pena recordar que un programa de computador consiste de una serie de instrucciones muy precisas y escritas en un lenguaje de programación que el computador entiende (Logo, Java, Pascal, etc).

Un algoritmo escrito en pseudocódigo tiene tres secciones: Encabezado, declaraciones y cuerpo. El encabezado contiene el nombre del algoritmo, en declaraciones se colocan

las variables, constantes y otros objetos que lleva el programa. En el cuerpo se colocan las acciones que tiene que hacer el programa que se escriben entre las palabras inicio y

fin. Un algoritmo típico se describe a continuación.

Page 5: ALGORITMOS IBX12-68 ÚLTIMA CLASE. CONTENIDO Origen Definición Ordinogramas Diferencia de Pseudocódigo y Diagramas de Flujo. Tipos de Datos Identificadores.

ORDINOGRAMAS

Fuera del pseudocódigo, los algoritmos se representan en forma gráfica por medio de diagramas de flujo. Miremos por

ejemplo la representación gráfica del algoritmo anterior

INICIO

Escribir ( “introduzca el primer número: “ )

c a + b

Leer ( a)

Escribir ( “introduzca el segundo número: “)

Leer ( b)

FIN

Page 6: ALGORITMOS IBX12-68 ÚLTIMA CLASE. CONTENIDO Origen Definición Ordinogramas Diferencia de Pseudocódigo y Diagramas de Flujo. Tipos de Datos Identificadores.

Los diagramas de flujo fueron primeros que el pseudocódigo.

• En pseudocódigo se suelen definir tres secciones del algoritmo

(Encabezado, declaraciones y cuerpo). Sin embargo, en un ordinograma sólo

se representa el cuerpo.

•En un ordinograma suele ser más fácil ver, a primera vista, cuál es el orden de

las acciones del algoritmo.

• El diagrama de flujo está estandarizado por: American National

Standards Institute (ANSI).

• Sin embargo, no existe un "pseudocódigo estándar".

Diferencias de Pseudocódigo y Diagramas de Flujo

Page 7: ALGORITMOS IBX12-68 ÚLTIMA CLASE. CONTENIDO Origen Definición Ordinogramas Diferencia de Pseudocódigo y Diagramas de Flujo. Tipos de Datos Identificadores.

TIPOS DE DATOS

ENTEROREAL

LÓGICOCARÁCTERCADENA

Los datos que utilizan los programas (o algoritmos) se pueden clasificar en

base a diferentes criterios. Uno de los más significativos es aquel que dice que todos los datos que utilizan los

programas son simples o compuestos.

Un dato simple es indivisible (atómico), es decir, no se puede

descomponer.

De ellos, tan solo el tipo cadena es compuesto. Los demás son los tipos de datos simples considerados estándares. Esto quiere decir que la

mayoría de los lenguajes de programación permiten trabajar con ellos. Por ejemplo, en lenguaje C es posible utilizar datos de tipo entero, real y carácter, sin embargo, los datos de tipo lógico no se pueden utilizar, ya

que, no existen en este lenguaje.

Page 8: ALGORITMOS IBX12-68 ÚLTIMA CLASE. CONTENIDO Origen Definición Ordinogramas Diferencia de Pseudocódigo y Diagramas de Flujo. Tipos de Datos Identificadores.

IDENTIFICADORES

Un identificador es el nombre que se le da a

un elemento de un algoritmo.

Todo identificador debe cumplir unas reglas de sintaxis.1. Consta de uno o más caracteres.

2. El primer carácter debe ser una letra o el carácter subrayado (_), mientras que, todos los demás pueden ser letras, dígitos o el

carácter subrayado (_). Las letras pueden ser minúsculas o mayúsculas del alfabeto inglés. Así pues, no está permitido el uso de las letras 'ñ' y

'Ñ'.3. No pueden existir dos identificadores iguales, es decir, dos

elementos de un algoritmo no pueden nombrarse de la misma forma. Lo cual no quiere decir que un identificador no pueda aparecer más de una

vez en un algoritmo.

Page 9: ALGORITMOS IBX12-68 ÚLTIMA CLASE. CONTENIDO Origen Definición Ordinogramas Diferencia de Pseudocódigo y Diagramas de Flujo. Tipos de Datos Identificadores.

EJEMPLOS DE IDENTIFICADORES

Ejemplo 1: Algunos identificadores válidos que pueden ser definidos por el programador son:numerodia_del_mesPINGUINO1_ciudadZ

Ejemplo 2: Los siguientes identificadores no son válidos por incumplir la segunda regla:numero123_DÍAnumero*lugar de nacimientoañoEjemplo 3: Los siguientes

identificadores no pueden ser definidos por el programador:enterocarácterentero y carácter son identificadores predefinidos (ya existen), por tanto, no pueden ser definidos por el programador, en cumplimiento de la tercera regla.Los identificadores son sensibles a minúsculas y mayúsculas.

Ejemplo 4: Mes y mes son considerados identificadores distintos.

Por último, hay que decir que, es aconsejable que los identificadores tengan un significado afín a lo que representan.

Page 10: ALGORITMOS IBX12-68 ÚLTIMA CLASE. CONTENIDO Origen Definición Ordinogramas Diferencia de Pseudocódigo y Diagramas de Flujo. Tipos de Datos Identificadores.

VARIABLES

En programación, una variable representa a un espacio de memoria en

el cual se puede almacenar un dato.

Gráficamente, se puede representar como

El  programador, cuando desarrolla un programa (o diseña un algoritmo), debe decidir:

• Cuantas son las variables que el programa necesita para realizar las tareas que se le han encomendado.

• El tipo de dato que puede almacenar cada una de ellas.

Durante la ejecución de un programa, el valor que tome el dato almacenado en una variable puede cambiar tantas veces como sea necesario, pero, siempre, tomando

valores del mismo tipo de dato.

Page 11: ALGORITMOS IBX12-68 ÚLTIMA CLASE. CONTENIDO Origen Definición Ordinogramas Diferencia de Pseudocódigo y Diagramas de Flujo. Tipos de Datos Identificadores.

CONSTANTES

En programación, una constante representa a un valor (dato almacenado en memoria) que

no puede cambiar durante la ejecución de un programa. Por

ejemplo, en lenguaje C, una constante puede ser de tipo entero,

real, carácter, cadena o enumerado.

En pseudocódigo, para declarar una constante, vamos a utilizar la sintaxis:

<nombre_de_la_constante> = <expresion>

Ejemplo:

TEMPERATURA = -5MES = 10

TEMPERATURA = -5, MES = 10

Page 12: ALGORITMOS IBX12-68 ÚLTIMA CLASE. CONTENIDO Origen Definición Ordinogramas Diferencia de Pseudocódigo y Diagramas de Flujo. Tipos de Datos Identificadores.

OPERADORES Y EXPRESIONES

En programación existen los siguientes tipos de operadores y

expresiones:

Expresiones AritméticasExpresiones Lógicas

Expresiones de CarácterExpresiones de Cadena.

En un programa, el tipo de un dato determina las operaciones que se pueden realizar con él.

Por ejemplo, con los datos de tipo entero se pueden realizar

operaciones aritméticas, tales como la suma, la resta o la

multiplicación.

Un operador siempre forma parte de una expresión, en la cual, el operador siempre actúa sobre al menos un operando. Por el contrario, un operando sí puede

aparecer solo en una expresión.

En programación, de la evaluación de una expresión siempre se obtiene un valor. Dicho valor puede ser de tipo: entero, real, lógico, carácter o cadena. Por

consiguiente, una expresión puede ser:

Aritmética (devuelve un número entero o real).Lógica (devuelve un valor lógico: verdadero o falso)

De carácter (devuelve un carácter representable por el computador).De cadena (devuelve una cadena).

Page 13: ALGORITMOS IBX12-68 ÚLTIMA CLASE. CONTENIDO Origen Definición Ordinogramas Diferencia de Pseudocódigo y Diagramas de Flujo. Tipos de Datos Identificadores.

ESTRUCTURA DE UN ALGORITMO

La estructura de un algoritmo sirve para organizar a los elementos que aparecen en él. En pseudocódigo, todos los algoritmos tienen la misma estructura, la cual viene definida

por tres secciones:

cabecera, declaraciones y cuerpo.

Imagen tomada de: http://www.moodlecchazc.unam.mx/moodleccha/mod/book/view.php?id=6529&chapterid=119. Mayo de 2014

Page 14: ALGORITMOS IBX12-68 ÚLTIMA CLASE. CONTENIDO Origen Definición Ordinogramas Diferencia de Pseudocódigo y Diagramas de Flujo. Tipos de Datos Identificadores.

CABECERA

En la cabecera de un algoritmo se debe indicar el nombre (identificador) asignado al mismo. La sintaxis es:algoritmo <nombre_del_algoritmo>

Ejemplo: Si se quiere diseñar el algoritmo de un programa que:

1º) Pida por teclado el radio (dato real) de una circunferencia.2º) Calcule el área de la circunferencia.

3º) Muestre por pantalla el resultado (dato real).

Nota: Área de una circunferencia = pi * radio2

El algoritmo puede llamarse Area_de_una_circunferencia, por tanto, en la cabecera se puede escribir:

algoritmo Area_de_una_Circunferencia

Page 15: ALGORITMOS IBX12-68 ÚLTIMA CLASE. CONTENIDO Origen Definición Ordinogramas Diferencia de Pseudocódigo y Diagramas de Flujo. Tipos de Datos Identificadores.

DECLARACIONES

En la sección de declaraciones de un algoritmo se declaran las constantes, los tipos de datos y las variables que se usan en el algoritmo. La sintaxis es:

[ constantes     <declaraciones_de_constantes> ][ tipos_de_datos     <declaraciones_de_tipos_de_datos> ][ variables     <declaraciones_de_variables> ]

Ejemplo: Para resolver el problema planteado en el apartado anterior “Cabecera de un Algoritmo”, es necesario declarar una constante y dos

variables:

constantes   PI = 3.141592

variables   real área, radio

En este caso, no es necesario declarar ningún tipo de dato.

Page 16: ALGORITMOS IBX12-68 ÚLTIMA CLASE. CONTENIDO Origen Definición Ordinogramas Diferencia de Pseudocódigo y Diagramas de Flujo. Tipos de Datos Identificadores.

CUERPO

En el cuerpo de un algoritmo se escriben todas las instrucciones del algoritmo. La sintaxis es:inicio   <instrucción_1>   <instrucción_2>   ...   <instrucción_n>fininicio y fin son palabras reservadas que marcan el principio y final de la sección cuerpo, que es donde está el bloque de instrucciones principal del algoritmo.Ejemplo: El cuerpo del algoritmo Area_de_una_circunferencia es:inicio   escribir( "Introduzca radio: " )   leer( radio )   area ← PI * radio ** 2   escribir( "El área de la circunferencia es: ", area )finPor pantalla se verá algo parecido a:

Page 17: ALGORITMOS IBX12-68 ÚLTIMA CLASE. CONTENIDO Origen Definición Ordinogramas Diferencia de Pseudocódigo y Diagramas de Flujo. Tipos de Datos Identificadores.

SINTAXIS

En programación, la sintaxis completa para escribir un algoritmo en pseudocódigo es:algoritmo <nombre_del_algoritmo>

[ constantes     <declaraciones_de_constantes> ]

[ tipos_de_datos     <declaraciones_de_tipos_de_datos> ]

[ variables     <declaraciones_de_variables> ]

inicio   <bloque_de_instrucciones>

fin

Ejemplo: el algoritmo de un programa que pida por teclado el radio de una circunferencia y muestre por pantalla el área de la misma, se puede escribir como se muestra a continuación:

algoritmo Area_de_una_circunferenciaconstantes   PI = 3.141592variables   real area, radioinicio   escribir( "Introduzca radio: " )   leer( radio )   area ← PI * radio ** 2   escribir( "El área de la circunferencia es: ", area )fin

Page 18: ALGORITMOS IBX12-68 ÚLTIMA CLASE. CONTENIDO Origen Definición Ordinogramas Diferencia de Pseudocódigo y Diagramas de Flujo. Tipos de Datos Identificadores.

COMENTARIOS

•En los algoritmos es conveniente escribir comentarios para explicar el  diseño y/o funcionamiento del mismo. Para delimitar los comentarios se pueden utilizar distintos  caracteres:( [ ) y ( ] )( { ) y ( } )( /* ) y ( */ )•...En pseudocódigo, en este curso de algoritmos, los comentarios se van a escribir entre los símbolos reservados barra-asterisco (/*) y asterisco-barra (*/), que son los mismos que se utilizan en lenguaje C.Ejemplo 1: Algoritmo que sirve para calcular el área de una circunferencia, en el cual se han comentado las distintas secciones: cabecera, declaraciones y cuerpo:

/* Cabecera */algoritmo Area_de_una_circunferencia/* Declaraciones */constantes   PI = 3.141592variables   real area, radio/* Cuerpo */inicio   escribir( "Introduzca radio: " )   leer( radio )   area ← PI * radio ** 2   escribir( "El área de la circunferencia es: ", area )fin

Page 19: ALGORITMOS IBX12-68 ÚLTIMA CLASE. CONTENIDO Origen Definición Ordinogramas Diferencia de Pseudocódigo y Diagramas de Flujo. Tipos de Datos Identificadores.

COMENTARIOS

Cuando un algoritmo se convierta (codifique) en un programa, también se podrán escribir los comentarios en el código fuente de dicho programa. Dichos comentarios no afectarán nunca a la ejecución del programa. No

obstante, serán muy útiles a la hora de querer saber qué hace un algoritmo (o programa), y cómo lo hace. Los comentarios de un algoritmo (o programa)

forman parte de la documentación del mismo, pudiendo:

Informar sobre algunos datos relevantes del algoritmo (autor, fecha de creación, fecha de última modificación, proyecto en el que se integra,

versión,... ).

Explicar la utilidad de uno o más tipos de datos, constantes y/o variables.

Describir el funcionamiento general del algoritmo (o programa).

Explicar el cometido de una o más instrucciones.

Page 20: ALGORITMOS IBX12-68 ÚLTIMA CLASE. CONTENIDO Origen Definición Ordinogramas Diferencia de Pseudocódigo y Diagramas de Flujo. Tipos de Datos Identificadores.

COMENTARIOS

Ejemplo 2: Algoritmo que incluye comentarios acerca de su autor, fecha, etc.

/***************************************************//* Programa: Calcular_area_circunferencia          *//*                                                 *//* Descripción: Recibe por teclado el radio de una *//* circunferencia, mostrando su área por pantalla. *//*                                                 *//* Autor: Carlos Posada                              *//*                                                 *//* Fecha: 31/03/2010                           *//***************************************************//* Cabecera */algoritmo Area_de_una_circunferencia/* Declaraciones */constantes   PI = 3.141592variables   real area, radio/* Cuerpo */inicio   escribir( "Introduzca radio: " )   leer( radio )   area ← PI * radio ** 2   escribir( "El área de la circunferencia es: ", area )fin

Page 21: ALGORITMOS IBX12-68 ÚLTIMA CLASE. CONTENIDO Origen Definición Ordinogramas Diferencia de Pseudocódigo y Diagramas de Flujo. Tipos de Datos Identificadores.

DIAGRAMAS DE FLUJOASIGNACIÓN

En programación, para representar una instrucción de asignación en un ordinograma, se debe escribir la misma sintaxis que en

pseusocódigo, pero, dentro de un rectángulo:

<nombre_de_la_variable> <expresion>

Ejemplo 1: Una instrucción de asignación puede ser:

Radio 5.78

Ejemplo 2: Varias instrucciones de asignación se pueden agrupar dentro de un mismo rectángulo:

Radio 5.78

Area PI * radio ** 2

Longuitud 2 * PI * radio

Page 22: ALGORITMOS IBX12-68 ÚLTIMA CLASE. CONTENIDO Origen Definición Ordinogramas Diferencia de Pseudocódigo y Diagramas de Flujo. Tipos de Datos Identificadores.

DIAGRAMAS DE FLUJOENTRADA Y SALIDA

En un ordinograma, tanto las instrucciones de entrada como las instrucciones de salida, se escriben igual que en pseudocódigo, pero, dentro de un romboide:

escribir ( <lista_de_expresiones> )

Leer ( <lista_de_variables> )

Ejemplo 1: Una instrucción de entrada que lea la variable radio, se escribe:

Leer ( radio )

Ejemplo 2: Varias instrucciones de entrada o de salida pueden dibujarse dentro del mismo romboide:

escribir ( “El área es: “, area )

Escribir ( “la longuitud es: “, longuitud )

Page 23: ALGORITMOS IBX12-68 ÚLTIMA CLASE. CONTENIDO Origen Definición Ordinogramas Diferencia de Pseudocódigo y Diagramas de Flujo. Tipos de Datos Identificadores.

DIAGRAMAS DE FLUJOINICIO Y FIN

En un ordinograma, el inicio y fin del cuerpo de un algoritmo se escriben dentro de un óvalo de la siguiente manera

Page 24: ALGORITMOS IBX12-68 ÚLTIMA CLASE. CONTENIDO Origen Definición Ordinogramas Diferencia de Pseudocódigo y Diagramas de Flujo. Tipos de Datos Identificadores.

DIAGRAMAS DE FLUJOINICIO Y FIN

Por medio de las flechas se indica el orden de las acciones (instrucciones) del algoritmo.Ejemplo: Así pues, el siguiente ordinograma es equivalente al cuerpo de un algoritmo escrito en pseudocódigo:

Page 25: ALGORITMOS IBX12-68 ÚLTIMA CLASE. CONTENIDO Origen Definición Ordinogramas Diferencia de Pseudocódigo y Diagramas de Flujo. Tipos de Datos Identificadores.

DIAGRAMAS DE FLUJODECISIONES

En programación, las decisiones siempre forman parte de las instrucciones de control, las cuales sirven para determinar el orden en el que se tienen que ejecutar

las instrucciones de un programa.En un ordinograma, para representar, gráficamente, a una instrucción de control, se

utiliza un rombo y un círculo.Ejemplo: Una alternativa doble es una instrucción de control que se representa de la

siguiente manera:

En el rombo se toma la decisión de ejecutar un bloque de instrucciones u otro. No obstante, con independencia de cual de ellos se ejecute, el círculo reagrupa el flujo de control, es decir, la ejecución continuará con la siguiente instrucción

que haya después del círculo.

Page 26: ALGORITMOS IBX12-68 ÚLTIMA CLASE. CONTENIDO Origen Definición Ordinogramas Diferencia de Pseudocódigo y Diagramas de Flujo. Tipos de Datos Identificadores.

FIN PRESENTACION