Actividad proyecto algoritmia_de_ignacio_matilla_iraola

21

Transcript of Actividad proyecto algoritmia_de_ignacio_matilla_iraola

Page 1: Actividad proyecto algoritmia_de_ignacio_matilla_iraola
Page 2: Actividad proyecto algoritmia_de_ignacio_matilla_iraola

ÍNDICE• 1 Introducción• 2 Definición de algoritmo• 3. Tipos de algoritmos• 3.1 Ordinogramas• 3.2 Pseudocódigo• 3.2.1 Estructuras de control• 3.2.2 Anidamiento• 3.2.3 Funciones y procedimientos• 3.2.4 Ventajas de usar un pseudocódigo• 3.2.5 Pseudocódigo de la UPSAM• 4 Ejemplos• 5 Personajes de la algoritmia• 6 Herramientas para la creación de algoritmos• 7 Relación entre pseudocódigos y códigos• 8 Conclusiones• 9 Recursos en Internet• 10 Bibliografía• 11 5 Preguntas tipo test• 12 5 Preguntas

2

Page 3: Actividad proyecto algoritmia_de_ignacio_matilla_iraola

IntroducciónIntroducción

De forma muy general, se puede decir que la algoritmia consiste en la búsqueda de soluciones a problemas desde el punto de vista de un ordenador.

Introducción

La siguiente presentación es una actividad del modulo de Redes de Área Local del ciclo de Grado Superior en Administración de Sistemas Informáticos. A lo largo de la presentación espero explicar de forma clara y concreta el funcionamiento de la algoritmia:

3

Page 4: Actividad proyecto algoritmia_de_ignacio_matilla_iraola

Definición de algoritmoComo definición exacta, un algoritmo es:

• La transcripción exacta de una serie de instrucciones concretas con las cuales se encuentra una solución.

Por ejemplo, para encender la televisión, no te planteas que sea un problema, ya que el objetivo es verla. Sin embargo, si lo que quieres saber es como encenderla, tendrás que plantearte los siguientes pasos:

1. Buscar el mando.2. Comprobar que tiene pilas.3. Comprobar que la televisión esta enchufada.4. Comprobar que los fusibles están encendidos.5. Pulsar el botón de encendido.

4

Page 5: Actividad proyecto algoritmia_de_ignacio_matilla_iraola

Un algoritmo deriva más algoritmos:

¿Cómo compruebo si tiene pilas?

¿Cómo lo busco si no sé donde puede estar?

¿Solo hay un camino para llegar a la solución?

Podemos ver ejemplos de algoritmos todos los dias: Por ejemplo, las instrucciones de uso de un aparato electrónico.

5

Page 6: Actividad proyecto algoritmia_de_ignacio_matilla_iraola

Tipos de algoritmos¿Cómo se representa un algoritmo? ¿Cómo se transcriben las instrucciones ordenada y correctamente?

A grandes rasgos, se definen tres tipos de algoritmos:

• Alto nivel: Se presenta la solución matemáticamente y el creador del algoritmo debe explicarla de forma verbal, ilustraciones, etc.

• Descripción formal: Se reflejan los pasos con un pseudocódigo. El ejemplo del mando entra aquí.

• Implementación: Se plantean las instrucciones en un lenguaje de programación y se introducen en una máquina que las ejecute.

Para representarlos, se suelen utilizar dos métodos.

6

Page 7: Actividad proyecto algoritmia_de_ignacio_matilla_iraola

OrdinogramasEn un ordinograma se deben dar tres

condiciones:• Existe un camino para hallar la solución.

• Solo existe un inicio para el proceso. 

• Existe un solo final, a no ser que haya más de un camino.

7

PseudocódigosSe trata de códigos que emulan la lógica de la programación, pero con lenguaje comprensible. Sus principales características son:

• Es fácilmente traducible a un lenguaje de programación concreto.

• No existe ningún estándar, pero se intenta que se asemejen al lenguaje al que se va a traducir.

Page 8: Actividad proyecto algoritmia_de_ignacio_matilla_iraola

Estructuras de control

8

Secuencial

Selectiva Simple

Selectiva Doble

Selectiva múltiple

Selectiva-múltiples casos

Page 9: Actividad proyecto algoritmia_de_ignacio_matilla_iraola

9

Iterativa Mientras

Iterativa Repetir

Iterativa Para

Anidamiento¿Qué instrucciones hay dentro de las estructuras de control?

Normalmente suele haber más estructuras dentro de las principales, e incluso más dentro de ellas, dando lugar así a estructuras anidadas.

Page 10: Actividad proyecto algoritmia_de_ignacio_matilla_iraola

Ventajas de usar un pseudocódigo

Una función, al igual que una función matemática, recibe uno o más valores de entrada y devuelve una salida, mientras que un procedimiento no devuelve nada.

Función x (a, …, n) /*Comentario: En el paréntesis vienen los valores de entrada*/

Instrucciones

Devolver r /*r será un valor obtenido de las instrucciones*/

Ffunción

 

Para llamar a una función desde la principal se tendrá que escribir el nombre de la función y en el interior del paréntesis las variables que envías a esa función (en blanco si no envías nada).

10

Funciones y Procedimientos

• Ocupa muy poco espacio para algoritmos largos, sobre todo si incluyen iteraciones y condiciones.

• Permite representar estructuras largas y operaciones complicadas con mucha simplicidad.

• Puesto que su objetivo es ser convertido en programa, es fácil de traducir al lenguaje adecuado para compilarlo.

• Es fácil ver la estructura básica de niveles del programa.• Al estar escrito linealmente es fácil seguir las instrucciones una por

una.

Page 11: Actividad proyecto algoritmia_de_ignacio_matilla_iraola

Pseudocódigo de la UPSAMEl pseudocódigo de la UPSAM (Universidad Pontificia de SAlamanca, campus de Madrid) es un lenguaje basado en pascal y traducido al castellano, creado por el profesor Luis Joyanes Aguilar. Cuenta con equivalentes a prácticamente todas las funciones, y es fácil de entender y traducir. Está orientado a pascal, aunque se puede utilizar para aprender cualquier lenguaje.

11

Cursos de diseño de algoritmos• Curso de diseño de algoritmos de Carlos Pes.

http://www.carlospes.com/curso_de_algoritmos/

 • Fundamentos de programación por Luis Joyanes (libro)

http://www.casadellibro.com/libros/joyanes-aguilar-luis/joyanes2aguilar32luis

 • Empezar de cero a programar en lenguaje C (libro)

http://www.carlospes.com/libro_edc_lenguajec/

Page 12: Actividad proyecto algoritmia_de_ignacio_matilla_iraola

12

Ejemplos

Page 13: Actividad proyecto algoritmia_de_ignacio_matilla_iraola

13

Personajes relevantes de la algoritmiaDonald Knuth

Profesor Emérito de la Universidad de Stanford.

Autor de ‘‘The art of Computer Programming’’Creador de TEX, Metafont y del estilo de programación llamado ‘‘Literate Programming’’

Fama de Geek, ofrece 2,56$ a quien encuentre errores en sus libros, y numera las versiones de TEX siguiendo el número PI (‘‘ 3’’, ‘‘3,1’’, ‘‘ 3,14’’…).

Autor de 3:16 Bible Texts Illuminated (1991, ISBN 0895792524), libro en el que intenta examinar la Biblia por un proceso de «muestreo estratificado aleatorio», es decir, un análisis del capítulo 3, versículo 16 de cada libro.

Page 14: Actividad proyecto algoritmia_de_ignacio_matilla_iraola

14

Personajes relevantes de la algoritmiaLuis Joyanes Aguilar

Dr. en Ingeniería Informática y Dr. en Sociología

Profesor Titular de la Cátedra de Lenguajes y Sistemas Informáticos de la Facultad de Informática de la Universidad Pontificia de Salamanca, campus de Madrid.

Conocido por crear el lengua-je de pseudocódigo UPSAM, que es referencia en gran cantidad de cursos de programación

Page 15: Actividad proyecto algoritmia_de_ignacio_matilla_iraola

15

Herramientas para la creación de algoritmos

Contadores

Acumuladores X=X+1

Switches

Comentarios /* Hola */

Page 16: Actividad proyecto algoritmia_de_ignacio_matilla_iraola

Conclusiones

En mi opinión, el mundo de la algoritmia consiste en la tarea de ver cómo problemas que normalmente no piensas en cómo resolver se pueden expresar de un modo que nunca te habías planteado, y en ver cómo los comandos encajan poco a poco hasta realizar la acción que tú deseas que realicen. Esto alcanza su máximo exponente cuando te topas con un problema que ni siquiera tú sabes cómo resolver, y, utilizando las herramientas que has ido obteniendo durante el aprendizaje de algoritmia y programación, consigues hallar la forma de obtener la solución (y eso es la algoritmia: no tanto el obtener la solución sino obtener el procedimiento necesario para llegar a ella).

16

Page 17: Actividad proyecto algoritmia_de_ignacio_matilla_iraola

17

Recursos de internetQuedelibrosSitio de venta de libros. Utilizado para obtener datos de Luis Joyanes.http://www.quedelibros.com/autor/18810/Joyanes-Aguilar-Luis.html

WikipediaEnciclopedia libre; de ella he obtenido datos de varios artículos.http://es.wikipedia.org/wiki/Algoritmohttp://es.wikipedia.org/wiki/Ordinogramahttp://es.wikipedia.org/wiki/Pseudocodigohttp://es.wikipedia.org/wiki/Donald_Knuthhttp://en.wikipedia.org/wiki/Robert_Sedgewick_%28computer_scientist%29

CarlosPesSitio web dedicado a cursos de programación, algoritmia, y otros aspectos de la informáticahttp://www.carlospes.com/

ALGORITMIA ALGO+ - Algoritmos y Estructuras de DatosWebsite dedicado al análisis de algoritmos y estructuras de datos en distintos lenguajes. http://www.algoritmia.net/

Page 18: Actividad proyecto algoritmia_de_ignacio_matilla_iraola

18

BibliografíaEMPEZAR DE CERO A PROGRAMAR EN lenguaje C(2006) Carlos Javier Pes Rivas

Desarrollo Web Con Php Y Mysql(2009) Laura Thomson, Luke Welling Anaya Multimedia

Visual C# 2008(2008) John SharpAnaya Multimedia

Estructura de datos. Algoritmos, abstracción y objetos(1998) Luis Joyanes Aguilar, Ignacio Zahonero Editorial McGraw-Hill

Page 19: Actividad proyecto algoritmia_de_ignacio_matilla_iraola

19

5 Preguntas de tipo Test¿Qué tipo de representación de algoritmos tiene un estándar reconocido?a.) Los pseudocódigosb.) Los de alto nivelc.) Los ordinogramasd.) A y C son correctase.) Ninguna de las anteriores

¿Cuál de las siguientes no es una estructura de control?a.) Selectivab.) Secuencialc.) Iterativad.) Bucle fore.) Ninguna de las anteriores

¿Qué cantidad de dinero ofrece Donald Knuth por errata encontrada?a.) 1 Dólarb.) Aumenta según el número de erratas: (‘‘ 3’’, ‘‘3,1’’, ‘‘ 3,14’’…).c.) Doscientos cincuenta y seis centavos.d.) 3 dólares y 16 centavos.e.) Ninguna de las anteriores

¿Qué es lo que más caracteriza a una variable switch?a.) Que siempre debe llamarse SW.b.) Que se declara en el entorno como variable de tipo switch.c.) Que cambia de valor entre 2 posibles valores y no más.d.) B y C son correctase.) Ninguna de las anteriores

¿A qué lenguaje está destinado a traducirse el UPSAM 2.0?a.) A java.b.) A lenguaje c++.c.) A pascal.d.) Se puede utilizar con cualquiera.e.) C y D son correctas.

Page 20: Actividad proyecto algoritmia_de_ignacio_matilla_iraola

20

5 Preguntas1.- Enumera las diferentes estructuras de control que conozcas.Secuencial, selectiva, iterativa.

2.- ¿Qué utilidades principales puede tener un switch?Activar o desactivar algo en función de las circunstancias, utilizarse una sola vez para ejecutar unas instrucciones que solo se vayan a ejecutar una vez, calcular en un juego que jugador tiene el turno…

3.- ¿Qué símbolos hay que utilizar para convertir una parte del programa en comentario? /* */

4.- ¿Qué distingue a un algoritmo de un ordinograma?Un ordinograma es un tipo de algoritmo

5.- ¿Cuál es el objetivo final de la algoritmia?Buscar la manera, los pasos necesarios, para encontrar la solución a un problema.

Page 21: Actividad proyecto algoritmia_de_ignacio_matilla_iraola

21