Upload
gregorio-gimenez-quintana
View
220
Download
1
Embed Size (px)
Citation preview
ALGORITMOS
IBX12-68ÚLTIMA CLASE
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.
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
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.
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
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
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.
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.
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.
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.
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
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).
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
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
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.
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:
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
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
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.
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
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
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 )
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
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:
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.
FIN PRESENTACION