Algoritmos
(Teoría de la
programación)
Pablo
Lafuente
(2ºBA)
¿Qué es un algoritmo?
• Un algoritmo es una secuencia precisa de operaciones que
resuelven un problema en un tiempo finito.
• Se pueden representar en multitud de lenguajes y ejecutarse en
ordenadores distintos.
Propiedades del algoritmo
• Siempre debe terminar.
• Instrucciones concretas, sin ambigüedades.
• Pasos simples y orden definido.
• Debe funcionar sean cuales sean los datos de
entrada.
• Eficiente y rápidoOptimizar.
• Independiente de la máquina y del lenguaje de
programación usado.
¿Qué es un programa?
• Expresión de un algoritmo en lenguaje de
programación, capaz de ser procesado por el
ordenador tras el compilado, linkado… y que
controla el funcionamiento del ordenador para
resolver un problema.
¿Cómo construir un programa?
• Análisis: ¿qué tenemos que hacer?
• Diseño: ¿cómo vamos a hacerlo? Diseño
TOP DOWN.
• Codificación: obtención del programa.
• Pruebas: comprobar que el sistema no falla.
• Documentación y mantenimiento.
Herramientas para describir soluciones
• 1. Diagrama de flujo.
Representación gráfica del algoritmo mediante
símbolos que contienen los pasos del algoritmo
y flechas que los unen indicando el orden en
que se ejecutan.
• 2. Pseudocódigo.
Representación narrativa en lenguaje natural
usando estructuras de control y algunos símbolos
algebraicos. Las estructuras de control son:
-Estructura secuencial (una instrucción tras otra,
ejecutadas de arriba abajo)
-Estructura selectiva (conjunto de instrucciones
en función de si se cumple o no una condición)
-Estructura iterativa (repite algo un número de
veces hasta que sea cierto)
Ejemplo de estructura
selectiva.
1. Estructura secuencial.
• El orden en que se realizan las acciones es
muy importante: no puede calcularse la media
sin antes leer los números.
2. Estructura selectiva o condicional.
• Se examina la condición, y si es verdadera, se
ejecutan las acciones asociadas al ‘sí’. Si no fuese
verdadera, se ejecutan acciones ligadas al ‘si no’,
aunque esto no es obligatorio.
• Permite anidar unas instrucciones dentro de otras.
• Existen el operador ‘y’, para ejecutar una instrucción
si se cumplen dos condiciones simultáneamente, y el
operador ‘o’, para ejecutar la instrucción si se cumple
alguna de las condiciones.
3. Estructura iterativa o de repetición.
• Tiene la estructura ‘mientras’ (se analiza la
condición, y si es falsa, se saltan las
instrucciones dentro del bucle), la estructura
‘repetir’ (evalúa la condición una vez
realizada la acción), la estructura ‘para’
(permite realizar una acción un número
determinado de veces)
• Un error muy común con las estructuras de
repetición consiste en poner mal la condición
de finalización u olvidarse de incrementar el
contador, dando lugar a bucles infinitos (bucles
Ejemplo de estructura iterativa
Traducción de ideas a un lenguaje de
programación concreto.
• Acciones y estructuras de control de los
algoritmos.
Las acciones pueden ser:
1. AsignacionesEvaluar una expresión y
almacenar su valor en una variable.
2. E/SEl programa intercambia información
con un medio externo.
3. Operaciones aritmético-lógicasEjecutan
operaciones aritméticas (suma, división,
potenciación) y lógicas (and, or, not)
Las estructuras de control pueden ser:
1. Decisiones  acciones de control de flujo que
permiten cambiar el orden en que se hacen otras
acciones en función de si se cumple una condición.
2. Ciclos (bucles)  repetición de un segmento de
programa. El ciclo puede ser repetitivo o condicional.
PROCEDIMIENTOS O SUBRUTINA
Realiza una parte del programa y tiene un nombre por
el que puede ser llamado desde cualquier parte del
programa. Se comunica mediante una variable de
comunicación llamada argumento.
Lenguajes de programación
• Herramienta que nos permite transformar un
algoritmo en un programa.
• Tiene un léxico, una gramática y una semántica.
• Los lenguajes de alto nivel han de ser traducidos a
lenguaje máquina para su comprensión.
• Para ello existen los traductores, que pueden ser
compiladores (traducen el programa inicial:
programa fuente, y producen el programa objeto)
o intérpretes (analizan una a una las instrucciones
del programa fuente y no se analiza una hasta que
la anterior se haya ejecutado)
Clasificación de los lenguajes de
programación
1. Lenguaje máquina: directamente inteligibles por el ordenador
porque son cadenas binarias. Solo ejecutable en el procesador
específico. Poca fiabilidad.
2. Lenguaje de bajo nivel (ensamblador): dependen de la
máquina en particular. Más fáciles de codificar que el
lenguaje máquina.
3. Lenguaje de alto nivel (independientes de la máquina, muy
portables. Más fáciles de programar y entender. Sintaxis más
cercana al lenguaje humano que al de la máquina. Hay
varios, como el Java, Visual Basic…)
Lenguajes de nivel C
• Combina lenguajes de alto nivel con elementos
del ensamblador.
• Permite manipular bits, bytes, direcciones… A
diferencia de los de alto nivel.
• Adecuado para programación de sistemas.
• Posible adaptar el software de un ordenador en
otro.

PowerPoint (Programación)

  • 1.
  • 2.
    ¿Qué es unalgoritmo? • Un algoritmo es una secuencia precisa de operaciones que resuelven un problema en un tiempo finito. • Se pueden representar en multitud de lenguajes y ejecutarse en ordenadores distintos.
  • 3.
    Propiedades del algoritmo •Siempre debe terminar. • Instrucciones concretas, sin ambigüedades. • Pasos simples y orden definido. • Debe funcionar sean cuales sean los datos de entrada. • Eficiente y rápidoOptimizar. • Independiente de la máquina y del lenguaje de programación usado.
  • 4.
    ¿Qué es unprograma? • Expresión de un algoritmo en lenguaje de programación, capaz de ser procesado por el ordenador tras el compilado, linkado… y que controla el funcionamiento del ordenador para resolver un problema.
  • 5.
    ¿Cómo construir unprograma? • Análisis: ¿qué tenemos que hacer? • Diseño: ¿cómo vamos a hacerlo? Diseño TOP DOWN. • Codificación: obtención del programa. • Pruebas: comprobar que el sistema no falla. • Documentación y mantenimiento.
  • 6.
    Herramientas para describirsoluciones • 1. Diagrama de flujo. Representación gráfica del algoritmo mediante símbolos que contienen los pasos del algoritmo y flechas que los unen indicando el orden en que se ejecutan.
  • 7.
    • 2. Pseudocódigo. Representaciónnarrativa en lenguaje natural usando estructuras de control y algunos símbolos algebraicos. Las estructuras de control son: -Estructura secuencial (una instrucción tras otra, ejecutadas de arriba abajo) -Estructura selectiva (conjunto de instrucciones en función de si se cumple o no una condición) -Estructura iterativa (repite algo un número de veces hasta que sea cierto) Ejemplo de estructura selectiva.
  • 8.
    1. Estructura secuencial. •El orden en que se realizan las acciones es muy importante: no puede calcularse la media sin antes leer los números.
  • 9.
    2. Estructura selectivao condicional. • Se examina la condición, y si es verdadera, se ejecutan las acciones asociadas al ‘sí’. Si no fuese verdadera, se ejecutan acciones ligadas al ‘si no’, aunque esto no es obligatorio. • Permite anidar unas instrucciones dentro de otras. • Existen el operador ‘y’, para ejecutar una instrucción si se cumplen dos condiciones simultáneamente, y el operador ‘o’, para ejecutar la instrucción si se cumple alguna de las condiciones.
  • 10.
    3. Estructura iterativao de repetición. • Tiene la estructura ‘mientras’ (se analiza la condición, y si es falsa, se saltan las instrucciones dentro del bucle), la estructura ‘repetir’ (evalúa la condición una vez realizada la acción), la estructura ‘para’ (permite realizar una acción un número determinado de veces) • Un error muy común con las estructuras de repetición consiste en poner mal la condición de finalización u olvidarse de incrementar el contador, dando lugar a bucles infinitos (bucles
  • 11.
  • 12.
    Traducción de ideasa un lenguaje de programación concreto. • Acciones y estructuras de control de los algoritmos. Las acciones pueden ser: 1. AsignacionesEvaluar una expresión y almacenar su valor en una variable. 2. E/SEl programa intercambia información con un medio externo. 3. Operaciones aritmético-lógicasEjecutan operaciones aritméticas (suma, división, potenciación) y lógicas (and, or, not)
  • 13.
    Las estructuras decontrol pueden ser: 1. Decisiones  acciones de control de flujo que permiten cambiar el orden en que se hacen otras acciones en función de si se cumple una condición. 2. Ciclos (bucles)  repetición de un segmento de programa. El ciclo puede ser repetitivo o condicional. PROCEDIMIENTOS O SUBRUTINA Realiza una parte del programa y tiene un nombre por el que puede ser llamado desde cualquier parte del programa. Se comunica mediante una variable de comunicación llamada argumento.
  • 14.
    Lenguajes de programación •Herramienta que nos permite transformar un algoritmo en un programa. • Tiene un léxico, una gramática y una semántica. • Los lenguajes de alto nivel han de ser traducidos a lenguaje máquina para su comprensión. • Para ello existen los traductores, que pueden ser compiladores (traducen el programa inicial: programa fuente, y producen el programa objeto) o intérpretes (analizan una a una las instrucciones del programa fuente y no se analiza una hasta que la anterior se haya ejecutado)
  • 15.
    Clasificación de loslenguajes de programación 1. Lenguaje máquina: directamente inteligibles por el ordenador porque son cadenas binarias. Solo ejecutable en el procesador específico. Poca fiabilidad. 2. Lenguaje de bajo nivel (ensamblador): dependen de la máquina en particular. Más fáciles de codificar que el lenguaje máquina. 3. Lenguaje de alto nivel (independientes de la máquina, muy portables. Más fáciles de programar y entender. Sintaxis más cercana al lenguaje humano que al de la máquina. Hay varios, como el Java, Visual Basic…)
  • 16.
    Lenguajes de nivelC • Combina lenguajes de alto nivel con elementos del ensamblador. • Permite manipular bits, bytes, direcciones… A diferencia de los de alto nivel. • Adecuado para programación de sistemas. • Posible adaptar el software de un ordenador en otro.