Miguel Angel Alvarez
malvarez@desarrolloweb.com
@midesweb
Algoritmo
Conjunto ordenado y finito de
operaciones que permite hallar la
solución de un problema.
Definición de la RAE
* Imágenes de Wikimedia Commons
* Imágenes de Wikimedia Commons
* Imágenes de Wikimedia Commons
Beber agua
● Saco un vaso del armario
● Saco la botella de agua de la nevera
● Lleno el vaso
● Aproximo el vaso a mi boca
● Trago el líquido
Algoritmo:
¿Por qué es importante?
"Los ordenadores son tontos"
Todo debe ser explicado
Necesitamos decirle a la máquina,
paso por paso, todas y cada una de las
acciones que debe realizar.
Algoritmo es un paso previo
● Para escribir un programa, antes debo
pensar en el algoritmo
● El programa es la expresión de un
algoritmo en un lenguaje de programación
Expresión de un Algoritmo
● Palabras
● Gráficos, diagramas de flujo
● Pseudocódigo
● ...
Diagramas de flujo
Imagen de Wikipedia:
es.wikipedia.org/wiki/Diagrama_de_flujo
desarrolloweb.com/articulos/diagrama-flujos.html
Pseudocódigo
Fuente DesarrolloWeb.com
desarrolloweb.com/articulos/pseudocodigo.html
es.wikipedia.org/wiki/Pseudoc%C3%B3digo
- Perímetro de un rectángulo
- Media
Ejemplos de algoritmos y programas
Algoritmo Programa
Perímetro del rectángulo
* Algoritmo
● Tomo la altura
● Tomo la anchura
● Multiplico la altura x 2
● Multiplico la anchura x 2
● Sumo todas las medidas
● Devuelvo el resultado
* Algoritmo
Perímetro del rectángulo
* Programa
Media
(De tres números)
● Tomo el 1º, 2º y 3er
número
● Los sumo
● Divido el resultado por 3
● Muestro el resultado
* Algoritmo
Media
* Programa
"Programar es escribir algoritmos en un
lenguaje que entienda la máquina"
En un programa pueden intervenir
decenas, cientos o miles de algoritmos
"Programar es más que crear algoritmos"
Fases para resolver un problema
● Identificación del problema
● Análisis
● Diseño del algoritmo
● Programación del algoritmo
● Ejecución y validación del funcionamiento
Problema Algoritmo Programa
Partes de un algoritmo
Entrada
de datos
.
Procesamiento
de los datos
Salida de
Resultados
Saludar
Saludar2
Multiplicación
Características necesarias en algoritmos
● Estar bien detallado
● Bien ordenado
● Tener principio y fin
● Ser fiable
Características necesarias en algoritmos
● Estar bien detallado
● Bien ordenado
● Tener principio y fin
● Ser fiable
○ Libre de errores
○ Misma entrada -> misma salida
Años, meses y días vividos
¿Cuántos días has vivido?
Has vivido: 30 años, 4 meses y 7 días.
Años, meses y días vividos
1. Pido el número de días vividos
2. Calculo el número de años / 365
3. A los días vividos les quito los días de los años calculados
4. Sobre los días restantes calculo el número de meses / 30
5. A los días restantes les quito los días de los mese calculados
6. Muestro los resultados, años, meses y días restantes calculados
Años, meses y días vividos
Distancia entre 2 puntos
Distancia entre 2 puntos
Distancia entre 2 puntos
Distancia entre 2 puntos
1) Pido la coordenada x del punto a
2) Pido la coordenada y del punto a
3) Pido la coordenada x del punto b
4) Pido la coordenada y del punto b
Distancia entre 2 puntos
1) Pido la coordenada x del punto a
2) Pido la coordenada y del punto a
3) Pido la coordenada x del punto b
4) Pido la coordenada y del punto b
Distancia entre 2 puntos
1) Pido la coordenada x del punto a
2) Pido la coordenada y del punto a
3) Pido la coordenada x del punto b
4) Pido la coordenada y del punto b
Distancia entre 2 puntos
1) Pido la coordenada x del punto a
2) Pido la coordenada y del punto a
3) Pido la coordenada x del punto b
4) Pido la coordenada y del punto b
5) Calculo el tamaño de la componente horizontal
6) Calculo el tamaño de la componente vertical
Distancia entre 2 puntos
1) Pido la coordenada x del punto a
2) Pido la coordenada y del punto a
3) Pido la coordenada x del punto b
4) Pido la coordenada y del punto b
5) Calculo el tamaño de la componente horizontal
6) Calculo el tamaño de la componente vertical
7) Elevo al cuadrado componentes vertical y horizontal
Distancia entre 2 puntos
1) Pido la coordenada x del punto a
2) Pido la coordenada y del punto a
3) Pido la coordenada x del punto b
4) Pido la coordenada y del punto b
5) Calculo el tamaño de la componente horizontal
6) Calculo el tamaño de la componente vertical
7) Elevo al cuadrado componentes vertical y horizontal
8) Las sumo
Distancia entre 2 puntos
1) Pido la coordenada x del punto a
2) Pido la coordenada y del punto a
3) Pido la coordenada x del punto b
4) Pido la coordenada y del punto b
5) Calculo el tamaño de la componente horizontal
6) Calculo el tamaño de la componente vertical
7) Elevo al cuadrado componentes vertical y horizontal
8) Las sumo
9) Aplico la raíz cuadrada
Distancia entre 2 puntos
1) Pido la coordenada x del punto a
2) Pido la coordenada y del punto a
3) Pido la coordenada x del punto b
4) Pido la coordenada y del punto b
5) Calculo el tamaño de la componente horizontal
6) Calculo el tamaño de la componente vertical
7) Elevo al cuadrado componentes vertical y horizontal
8) Las sumo
9) Aplico la raíz cuadrada
10) Muestro la distancia
Distancia entre 2 puntos
En verdad son más importantes los
algoritmos que el código.
Workflow Javascript
Consola Javascript
Hemos aprendido
● Qué es un algoritmo
● Qué es un programa
● Escribir código es una pequeña parte de la tarea de un
programador
● Los algoritmos deben diseñarse con cuidado, pues son
la parte más importante de un programa.
Practica tú mismo
● Algoritmo:
○ Hacer una tortilla
○ Cruzar la calle sin ser atropellado
● Algoritmo + programa
○ Conversor de metros3
a litros
○ Área de un círculo
Gracias!

Algoritmo fundamentos de la programación

  • 2.
  • 3.
  • 4.
    Conjunto ordenado yfinito de operaciones que permite hallar la solución de un problema. Definición de la RAE
  • 5.
    * Imágenes deWikimedia Commons
  • 6.
    * Imágenes deWikimedia Commons
  • 7.
    * Imágenes deWikimedia Commons
  • 8.
    Beber agua ● Sacoun vaso del armario ● Saco la botella de agua de la nevera ● Lleno el vaso ● Aproximo el vaso a mi boca ● Trago el líquido
  • 9.
  • 10.
  • 15.
    Todo debe serexplicado Necesitamos decirle a la máquina, paso por paso, todas y cada una de las acciones que debe realizar.
  • 16.
    Algoritmo es unpaso previo ● Para escribir un programa, antes debo pensar en el algoritmo ● El programa es la expresión de un algoritmo en un lenguaje de programación
  • 17.
    Expresión de unAlgoritmo ● Palabras ● Gráficos, diagramas de flujo ● Pseudocódigo ● ...
  • 18.
    Diagramas de flujo Imagende Wikipedia: es.wikipedia.org/wiki/Diagrama_de_flujo desarrolloweb.com/articulos/diagrama-flujos.html
  • 19.
  • 20.
    - Perímetro deun rectángulo - Media Ejemplos de algoritmos y programas Algoritmo Programa
  • 21.
    Perímetro del rectángulo *Algoritmo ● Tomo la altura ● Tomo la anchura ● Multiplico la altura x 2 ● Multiplico la anchura x 2 ● Sumo todas las medidas ● Devuelvo el resultado * Algoritmo
  • 22.
  • 23.
    Media (De tres números) ●Tomo el 1º, 2º y 3er número ● Los sumo ● Divido el resultado por 3 ● Muestro el resultado * Algoritmo
  • 24.
  • 25.
    "Programar es escribiralgoritmos en un lenguaje que entienda la máquina"
  • 26.
    En un programapueden intervenir decenas, cientos o miles de algoritmos "Programar es más que crear algoritmos"
  • 27.
    Fases para resolverun problema ● Identificación del problema ● Análisis ● Diseño del algoritmo ● Programación del algoritmo ● Ejecución y validación del funcionamiento Problema Algoritmo Programa
  • 28.
    Partes de unalgoritmo Entrada de datos . Procesamiento de los datos Salida de Resultados
  • 29.
  • 30.
  • 31.
  • 32.
    Características necesarias enalgoritmos ● Estar bien detallado ● Bien ordenado ● Tener principio y fin ● Ser fiable
  • 33.
    Características necesarias enalgoritmos ● Estar bien detallado ● Bien ordenado ● Tener principio y fin ● Ser fiable ○ Libre de errores ○ Misma entrada -> misma salida
  • 34.
    Años, meses ydías vividos ¿Cuántos días has vivido? Has vivido: 30 años, 4 meses y 7 días.
  • 35.
    Años, meses ydías vividos 1. Pido el número de días vividos 2. Calculo el número de años / 365 3. A los días vividos les quito los días de los años calculados 4. Sobre los días restantes calculo el número de meses / 30 5. A los días restantes les quito los días de los mese calculados 6. Muestro los resultados, años, meses y días restantes calculados
  • 36.
    Años, meses ydías vividos
  • 37.
  • 38.
  • 39.
  • 40.
    Distancia entre 2puntos 1) Pido la coordenada x del punto a 2) Pido la coordenada y del punto a 3) Pido la coordenada x del punto b 4) Pido la coordenada y del punto b
  • 41.
    Distancia entre 2puntos 1) Pido la coordenada x del punto a 2) Pido la coordenada y del punto a 3) Pido la coordenada x del punto b 4) Pido la coordenada y del punto b
  • 42.
    Distancia entre 2puntos 1) Pido la coordenada x del punto a 2) Pido la coordenada y del punto a 3) Pido la coordenada x del punto b 4) Pido la coordenada y del punto b
  • 43.
    Distancia entre 2puntos 1) Pido la coordenada x del punto a 2) Pido la coordenada y del punto a 3) Pido la coordenada x del punto b 4) Pido la coordenada y del punto b 5) Calculo el tamaño de la componente horizontal 6) Calculo el tamaño de la componente vertical
  • 44.
    Distancia entre 2puntos 1) Pido la coordenada x del punto a 2) Pido la coordenada y del punto a 3) Pido la coordenada x del punto b 4) Pido la coordenada y del punto b 5) Calculo el tamaño de la componente horizontal 6) Calculo el tamaño de la componente vertical 7) Elevo al cuadrado componentes vertical y horizontal
  • 45.
    Distancia entre 2puntos 1) Pido la coordenada x del punto a 2) Pido la coordenada y del punto a 3) Pido la coordenada x del punto b 4) Pido la coordenada y del punto b 5) Calculo el tamaño de la componente horizontal 6) Calculo el tamaño de la componente vertical 7) Elevo al cuadrado componentes vertical y horizontal 8) Las sumo
  • 46.
    Distancia entre 2puntos 1) Pido la coordenada x del punto a 2) Pido la coordenada y del punto a 3) Pido la coordenada x del punto b 4) Pido la coordenada y del punto b 5) Calculo el tamaño de la componente horizontal 6) Calculo el tamaño de la componente vertical 7) Elevo al cuadrado componentes vertical y horizontal 8) Las sumo 9) Aplico la raíz cuadrada
  • 47.
    Distancia entre 2puntos 1) Pido la coordenada x del punto a 2) Pido la coordenada y del punto a 3) Pido la coordenada x del punto b 4) Pido la coordenada y del punto b 5) Calculo el tamaño de la componente horizontal 6) Calculo el tamaño de la componente vertical 7) Elevo al cuadrado componentes vertical y horizontal 8) Las sumo 9) Aplico la raíz cuadrada 10) Muestro la distancia
  • 48.
  • 49.
    En verdad sonmás importantes los algoritmos que el código.
  • 50.
  • 51.
  • 52.
    Hemos aprendido ● Quées un algoritmo ● Qué es un programa ● Escribir código es una pequeña parte de la tarea de un programador ● Los algoritmos deben diseñarse con cuidado, pues son la parte más importante de un programa.
  • 53.
    Practica tú mismo ●Algoritmo: ○ Hacer una tortilla ○ Cruzar la calle sin ser atropellado ● Algoritmo + programa ○ Conversor de metros3 a litros ○ Área de un círculo
  • 54.