Algoritmos y  Programas Ing. Daniel Osorio Maldonado
Introducción <ul><li>El objetivo de esta sesión consistirá en explicar los conceptos de algoritmo, programa y lenguaje de ...
Temática <ul><li>Sistemas de procesamiento de información. </li></ul><ul><li>Concepto de Algoritmo. </li></ul><ul><li>Leng...
1. Sistemas de procesamiento de la información <ul><li>Un sistema de esta clase se define como un conjunto de componentes ...
Esquemáticamente Datos Procesador Información
Una primera definición <ul><li>Un algoritmo consiste en el grupo de instrucciones que definen la secuencia de operaciones ...
Conceptos importantes <ul><li>Hardware: grupo de componentes físicos de una computadora. </li></ul><ul><li>Software: conju...
2. Concepto de Algoritmo <ul><li>La metodología de la programación es aquella que es necesaria para resolver problemas med...
Pasos para la solución de un problema <ul><li>El diseño del algoritmo describe el análisis del problema y desarrollo del a...
Características de los algoritmos <ul><li>Preciso, indicará el orden de cada paso. </li></ul><ul><li>Definido, el mismo re...
Ejemplo 2.1   Genere un algoritmo que solucione la entrega de un pedido a un cliente <ul><li>Inicio. </li></ul><ul><li>Lee...
Ejemplo 2.2   Genere un algoritmo que sume los números entre el 3 y el 30. <ul><li>Inicio. </li></ul><ul><li>Hacer SUMA ig...
Ejemplo 2.3   Genere un algoritmo que determine al mayor de tres números enteros. <ul><li>Inicio </li></ul><ul><li>Leer lo...
Tarea 2.1   Diseñe un algoritmo para determinar si un número es primo o no.   Tarea 2.2   Genere un algoritmo que sume los...
3. Los lenguajes de programación <ul><li>Cuando el procesador de datos es una computadora entonces el algoritmo de solució...
Tipos de lenguajes <ul><li>Máquina; escritos en código binario. </li></ul><ul><li>Bajo nivel (ensamblador); escrito en nem...
Instrucciones básicas <ul><li>Entrada/Salida; transferencia de información entre dispositivos periféricos y memoria centra...
Traductores del Lenguaje <ul><li>A) Intérpretes; Toma un programa fuente lo traduce e inmediatamente lo ejecuta. </li></ul...
Traductores del Lenguaje (cont.) <ul><li>B) Compiladores; traduce un programa fuente a código objeto. </li></ul>Programa f...
4. Datos, Tipos de Datos y Operaciones Primitivas   <ul><li>Un dato es la expresión general que describe los objetos con l...
Datos primitivos Datos Carácter Numérico Lógico Entero Real
5. Constantes y Variables <ul><li>Constantes: valores que durante la ejecución de un programa no cambian su valor. </li></...
6. Expresiones <ul><li>Se definen como una combinación de constantes, variables, símbolos de operación, paréntesis, y nomb...
Expresiones aritméticas Entero Entero módulo Mod Entero Entero División entera Div Real Real  División / Entero o real Ent...
Reglas de prioridad (  ) Parentesis +, - Más y menos Div, mod  Div y mod *, / Multi, divide ** Exponencial Gráfo Operador
Operadores de relación Menor < Distinto <>,!= Mayor o igual >= Menor o igual <= Igual = Mayor > Significado Operador Expre...
Operadores lógicos disyunción P o Q Or Conjunción P y Q And Negación Not p Not Significado Expresión lógica Operador lógico
7. Funciones Intrínsecas Truncamiento Trunc(x) Raíz cuadrada Sqrt(x) Cuadrado Sqr(x) Seno Sin(x) Redondeo Round(x) Log dec...
8. Operación de Asignación <ul><li>Es la forma de darle valores tanto a variables como constantes, se representa con el sí...
Tipos de asignación <ul><li>Aritmética </li></ul><ul><li>Lógica </li></ul><ul><li>Cadena de carácteres </li></ul>
9. Entrada y salida de información <ul><li>La operación de lectura READ permite el ingreso de los datos necesarios para lo...
PROBLEMAS RESUELTOS CON COMPUTADORAS Y HERRAMIENTAS DE PROGRAMACION 17/03/10
INDICE <ul><li>OBJETIVO </li></ul><ul><li>SOLUCION DE PROBLEMAS </li></ul><ul><li>ANALISIS DEL PROBLEMA </li></ul><ul><li>...
2.1 OBJETIVO <ul><li>EXPONER LOS CONOCIMIENTOS INDISPENSABLES PARA EL APRENDIZAJE DE LA PROGRAMACION. </li></ul>17/03/10
2.2 SOLUCION DE PROBLEMAS <ul><li>Fases de fragmentación: </li></ul><ul><ul><li>Análisis del problema: definición concisa ...
2.3 ANALISIS DEL PROBLEMA <ul><li>El propósito es ayudar al programador a llegar a un cierto grado de comprensión de la na...
2.3 ANALISIS DEL PROBLEMA cont. <ul><li>Que información debe proporcionar la solución del problema. </li></ul>Solución del...
2.3 ANALISIS DEL PROBLEMA cont. <ul><li>2. Que datos se necesitan para resolver el problema. </li></ul>Análisis del Proble...
2.3 ANALISIS DEL PROBLEMA cont. <ul><li>Ejemplo: leer los lados de un triángulo rectangulo e imprima la hipotenusa.  </li>...
2.4 DISEÑO DEL ALGORITMO <ul><li>La información proporcionada al algoritmo constituye su entrada y la información producid...
2.4 DISEÑO DEL ALGORITMO cont. <ul><li>La descomposición del problema original en subproblemas cuya solución puede impleme...
2.4 DISEÑO DEL ALGORITMO cont. Diseño del algoritmo Diseño descendente Refinamiento por pasos Herramientas de programación...
2.4 DISEÑO DEL ALGORITMO cont. <ul><li>Ejemplo: Determine a los números menores que 90 y múltiplos de 9, así como su sumat...
2.4 DISEÑO DEL ALGORITMO cont. Diseño descendente Refinamiento por pasos Herramientas de programación  Múltiplos de 9 Suma...
2.4 DISEÑO DEL ALGORITMO cont. <ul><li>Inicio </li></ul><ul><li>Total=0, Num=9, Limite=90 </li></ul><ul><li>Print Num </li...
tarea <ul><li>Determine si una palabra es un palíndromo. </li></ul><ul><li>Determine el máximo común divisor para dos núme...
tarea <ul><li>4. Imprima y sume la serie de números múltiplos de 3 en el rango cerrado de 3 y 99. </li></ul><ul><li>5. Lea...
2.5 SOLUCION DE PROBLEMAS MEDIANTE LA COMPUTADORA <ul><li>Una vez diseñado el algoritmo y representado mediante una herram...
2.6 REPRESENTACION GRAFICA DE LOS ALGORITMOS <ul><li>Los métodos usuales para representarlo son: </li></ul><ul><li>Diagram...
2.6 REPRESENTACION GRAFICA DE LOS ALGORITMOS cont
2.7 PSEUDOCODIGO <ul><li>Es un lenguaje de especificación de algoritmos que permite una codificación rápida y simple. </li...
ESTRUCTURA  DE UN  PROGRAMA
Concepto de Programa <ul><li>Conjunto de instrucciones que producirán la ejecución de una determinada tarea. Esencialmente...
PROCESO   DE PROGRAMACION Consiste en la solución de problemas y el desarrollo de programas
Fases del proceso de programación <ul><li>Definiciòn y análisis del problema. </li></ul><ul><li>Diseño de algoritmos: </li...
Partes de un programa concepto de caja negra Entrada Algoritmo Salida
<ul><li>De inicio / fin. </li></ul><ul><li>De asignación. </li></ul><ul><li>De lectura, </li></ul><ul><li>De escritura. </...
Elementos básicos de un programa <ul><li>Palabras reservadas. </li></ul><ul><li>Identificadores (nombres de variables). </...
Otros elementos…… <ul><li>Iteraciones, </li></ul><ul><li>Contadores, </li></ul><ul><li>Acumuladores, </li></ul><ul><li>Int...
Iteraciones Es el segmento de un algoritmo o programa, cuyas instrucciones se repiten un número determinado de veces mient...
Contadores <ul><li>Un contador es una variable cuyo valor se incrementa o decrementa en una cantidad constante en cada ite...
Acumuladores <ul><li>Un Acumulador es  una variable cuya misión es almacernar cantidades distintas resultantes de sumas su...
Interruptores <ul><li>Un interruptor ( conmutador, bandera, flag) es una variable que puede tomar diversos valoresdurante ...
Componentes de un algoritmo Algoritmo Cabecera del programa Sección de declaración Sección de acciones
PROGRAMACIÓN  ESTRUCTURADA
Técnicas de Programación... <ul><li>Programación modular: Descomposición del problema en módulos. </li></ul><ul><li>Progra...
Características de la programación modular <ul><li>Todo programa tiene un módulo principal.  </li></ul><ul><li>Dicho módul...
Consideraciones ……. <ul><li>La descomposición de un programa podría implemetarse así: </li></ul><ul><ul><li>Módulo princip...
<ul><li>Conjunto de técnicas que reducen el tiempo requerido para escribir, verificar, depurar y mantener los programas. <...
Recursos Abstractos <ul><li>Consiste en descomponer una determinada acción compleja en un número de acciones más simples, ...
Diseño Descendente TOP-DOWN DESIGN <ul><li>Esta metodología efectúa una relación de refinamiento entre las distintas etapa...
Diseño Descendente Desde el exterior …..
Diseño Descendente Desde el interior …..
Estructuras básicas Teorema de la programación estructurada: <ul><li>Un programa propio es aquel que cumple las siguientes...
Instrucciones Secuenciales
Instrucción Selectiva Simple
Instrucción Selectiva Compuesta
Instrucción Selectiva Múltiple
Instrucción Repetitiva “While”
Instrucción Repetitiva “Repeat”
Instrucción Repetitiva “For”
F I N……
Upcoming SlideShare
Loading in...5
×

Algoritmos y clase

12,638

Published on

Published in: Travel, Business
2 Comments
11 Likes
Statistics
Notes
No Downloads
Views
Total Views
12,638
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
2
Likes
11
Embeds 0
No embeds

No notes for slide
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10 Selling your ideas is challenging. First, you must get your listeners to agree with you in principle. Then, you must move them to action. Use the Dale Carnegie Training® Evidence – Action – Benefit formula, and you will deliver a motivational, action-oriented presentation.
  • 17/03/10 Open your presentation with an attention-getting incident. Choose an incident your audience relates to. The incidence is the evidence that supports the action and proves the benefit. Beginning with a motivational incident prepares your audience for the action step that follows.
  • 17/03/10
  • 17/03/10 Next, state the action step. Make your action step specific, clear and brief. Be sure you can visualize your audience taking the action. If you can’t, they can’t either. Be confident when you state the action step, and you will be more likely to motivate the audience to action.
  • 17/03/10 To complete the Dale Carnegie Training® Evidence – Action – Benefit formula, follow the action step with the benefits to the audience. Consider their interests, needs, and preferences. Support the benefits with evidence; i.e., statistics, demonstrations, testimonials, incidents, analogies, and exhibits and you will build credibility.
  • 17/03/10 To close, restate the action step followed by the benefits. Speak with conviction and confidence, and you will sell your ideas.
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10 Selling your ideas is challenging. First, you must get your listeners to agree with you in principle. Then, you must move them to action. Use the Dale Carnegie Training® Evidence – Action – Benefit formula, and you will deliver a motivational, action-oriented presentation.
  • 17/03/10 Open your presentation with an attention-getting incident. Choose an incident your audience relates to. The incidence is the evidence that supports the action and proves the benefit. Beginning with a motivational incident prepares your audience for the action step that follows.
  • 17/03/10 Next, state the action step. Make your action step specific, clear and brief. Be sure you can visualize your audience taking the action. If you can’t, they can’t either. Be confident when you state the action step, and you will be more likely to motivate the audience to action.
  • 17/03/10 To complete the Dale Carnegie Training® Evidence – Action – Benefit formula, follow the action step with the benefits to the audience. Consider their interests, needs, and preferences. Support the benefits with evidence; i.e., statistics, demonstrations, testimonials, incidents, analogies, and exhibits and you will build credibility.
  • 17/03/10 To close, restate the action step followed by the benefits. Speak with conviction and confidence, and you will sell your ideas.
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • 17/03/10
  • Algoritmos y clase

    1. 1. Algoritmos y Programas Ing. Daniel Osorio Maldonado
    2. 2. Introducción <ul><li>El objetivo de esta sesión consistirá en explicar los conceptos de algoritmo, programa y lenguaje de programación. Así como explorar otros temas concurrentes. </li></ul>
    3. 3. Temática <ul><li>Sistemas de procesamiento de información. </li></ul><ul><li>Concepto de Algoritmo. </li></ul><ul><li>Lenguaje de programación. </li></ul><ul><li>Datos, tipos de datos y operaciones primitivas. </li></ul><ul><li>Constantes y variables. </li></ul><ul><li>Expresiones. </li></ul><ul><li>Funciones intrínsecas. </li></ul><ul><li>Asignación. </li></ul><ul><li>Entrada y salida de información. </li></ul>
    4. 4. 1. Sistemas de procesamiento de la información <ul><li>Un sistema de esta clase se define como un conjunto de componentes interconectados entre sí que transforman datos en información organizada, significativa y útil. </li></ul>
    5. 5. Esquemáticamente Datos Procesador Información
    6. 6. Una primera definición <ul><li>Un algoritmo consiste en el grupo de instrucciones que definen la secuencia de operaciones a realizar para resolver un sistema específico o clase de problema. </li></ul>
    7. 7. Conceptos importantes <ul><li>Hardware: grupo de componentes físicos de una computadora. </li></ul><ul><li>Software: conjunto de programas que controlan el funcionamiento de una computadora </li></ul>
    8. 8. 2. Concepto de Algoritmo <ul><li>La metodología de la programación es aquella que es necesaria para resolver problemas mediante programas, su eje es el algoritmo. </li></ul>Problema Diseño del algoritmo Programa
    9. 9. Pasos para la solución de un problema <ul><li>El diseño del algoritmo describe el análisis del problema y desarrollo del algoritmo. </li></ul><ul><li>Expresar el algoritmo como un programa en un lenguaje de programación. </li></ul><ul><li>Ejecutar y validar el programa por la computadora. </li></ul>
    10. 10. Características de los algoritmos <ul><li>Preciso, indicará el orden de cada paso. </li></ul><ul><li>Definido, el mismo resultado se obtendrá al ejecutar el algoritmo “n” ocasiones. </li></ul><ul><li>Finito, deberá terminar en algún momento. </li></ul>
    11. 11. Ejemplo 2.1 Genere un algoritmo que solucione la entrega de un pedido a un cliente <ul><li>Inicio. </li></ul><ul><li>Leer el pedido. </li></ul><ul><li>Examinar el historial crediticio del cliente </li></ul><ul><li>Si el cliente es solvente, entregar el pedido. En caso contrario, rechazarlo. </li></ul><ul><li>Fin </li></ul>
    12. 12. Ejemplo 2.2 Genere un algoritmo que sume los números entre el 3 y el 30. <ul><li>Inicio. </li></ul><ul><li>Hacer SUMA igual cero. </li></ul><ul><li>Establecer NUMERO igual a 3. </li></ul><ul><li>Sumar NUMERO a SUMA. </li></ul><ul><li>Incrementar NUMERO en 3 </li></ul><ul><li>Si NUMERO es menor o igual que 30 ir a 4; si no imprimir a SUMA. </li></ul><ul><li>Fin </li></ul>
    13. 13. Ejemplo 2.3 Genere un algoritmo que determine al mayor de tres números enteros. <ul><li>Inicio </li></ul><ul><li>Leer los números y guardarlos en NUM1, NUM2 y NUM3 respectivamente </li></ul><ul><li>Comparar NUM1 y NUM2, el número mayor se guarda en AUX. </li></ul><ul><li>Comparar AUX y NUM3, imprimir el número mayor. </li></ul><ul><li>Fin. </li></ul>
    14. 14. Tarea 2.1 Diseñe un algoritmo para determinar si un número es primo o no. Tarea 2.2 Genere un algoritmo que sume los números entre el 2 y el 20. Tarea 2.3 Genere un algoritmo que sume los números entre el 5 y el 50.
    15. 15. 3. Los lenguajes de programación <ul><li>Cuando el procesador de datos es una computadora entonces el algoritmo de solución se expresa en un programa. </li></ul><ul><li>Por tanto, un programa es escrito en un lenguaje de programación. </li></ul><ul><li>Luego, la programación consiste en expresar las operaciones en forma de programa de un algoritmo. </li></ul>
    16. 16. Tipos de lenguajes <ul><li>Máquina; escritos en código binario. </li></ul><ul><li>Bajo nivel (ensamblador); escrito en nemotécnicos. </li></ul><ul><li>Alto nivel; diseñados para ser entendidos por el ser humano. </li></ul>
    17. 17. Instrucciones básicas <ul><li>Entrada/Salida; transferencia de información entre dispositivos periféricos y memoria central. </li></ul><ul><li>Aritmético/Lógicas; ejecutan operaciones de éstos tipos. </li></ul><ul><li>Selectivas; seleccionan tareas en función de los resultados </li></ul><ul><li>Repetitivas; permiten la iteración de secuencias de instrucciones un número dado de veces </li></ul>
    18. 18. Traductores del Lenguaje <ul><li>A) Intérpretes; Toma un programa fuente lo traduce e inmediatamente lo ejecuta. </li></ul>Programa fuente Intérprete Traducción y ejecución en línea
    19. 19. Traductores del Lenguaje (cont.) <ul><li>B) Compiladores; traduce un programa fuente a código objeto. </li></ul>Programa fuente Programa Objeto Programa ejecutable Compilador (Compiler) Montador (Linker)
    20. 20. 4. Datos, Tipos de Datos y Operaciones Primitivas <ul><li>Un dato es la expresión general que describe los objetos con los cuales opera la computadora </li></ul><ul><li>Los tipos son: simples (no estructurados) y compuestos (estructurados). Aquellos se subdividen en: </li></ul><ul><ul><ul><li>Numericos (integer, real) </li></ul></ul></ul><ul><ul><ul><li>Lógicos (booleans) </li></ul></ul></ul><ul><ul><ul><li>Carácter (char, string) </li></ul></ul></ul>
    21. 21. Datos primitivos Datos Carácter Numérico Lógico Entero Real
    22. 22. 5. Constantes y Variables <ul><li>Constantes: valores que durante la ejecución de un programa no cambian su valor. </li></ul><ul><li>Variables: valores que cambiarán durante la ejecución del programa </li></ul>
    23. 23. 6. Expresiones <ul><li>Se definen como una combinación de constantes, variables, símbolos de operación, paréntesis, y nombres de funciones especiales. </li></ul><ul><li>Una expresión consta de operandos y operadores. </li></ul><ul><li>Las expresiones se clasifican en aritméticas, lógicas y carácter. </li></ul>
    24. 24. Expresiones aritméticas Entero Entero módulo Mod Entero Entero División entera Div Real Real División / Entero o real Entero o real Multiplicación * Entero o real Entero o real Resta - Entero o real Entero o real Suma + Entero o real Entero o real Exponenciación ** Tipo resultado Tipo de operandos Significado Operador
    25. 25. Reglas de prioridad ( ) Parentesis +, - Más y menos Div, mod Div y mod *, / Multi, divide ** Exponencial Gráfo Operador
    26. 26. Operadores de relación Menor < Distinto <>,!= Mayor o igual >= Menor o igual <= Igual = Mayor > Significado Operador Expresión 2 Operador de relación Expresión 1
    27. 27. Operadores lógicos disyunción P o Q Or Conjunción P y Q And Negación Not p Not Significado Expresión lógica Operador lógico
    28. 28. 7. Funciones Intrínsecas Truncamiento Trunc(x) Raíz cuadrada Sqrt(x) Cuadrado Sqr(x) Seno Sin(x) Redondeo Round(x) Log decimal Log10(x) Log neperiano Ln(x) Exponencial Exp(x) Coseno Cos(x) Tangente inversa Arctan(x) Absoluto Abs(x) Descripción Función
    29. 29. 8. Operación de Asignación <ul><li>Es la forma de darle valores tanto a variables como constantes, se representa con el símbolo </li></ul>
    30. 30. Tipos de asignación <ul><li>Aritmética </li></ul><ul><li>Lógica </li></ul><ul><li>Cadena de carácteres </li></ul>
    31. 31. 9. Entrada y salida de información <ul><li>La operación de lectura READ permite el ingreso de los datos necesarios para los cálculos computacionales. </li></ul><ul><li>La operación de escritura WRITE imprime la información procesada por el programa y su respectivo algoritmo. </li></ul>
    32. 32. PROBLEMAS RESUELTOS CON COMPUTADORAS Y HERRAMIENTAS DE PROGRAMACION 17/03/10
    33. 33. INDICE <ul><li>OBJETIVO </li></ul><ul><li>SOLUCION DE PROBLEMAS </li></ul><ul><li>ANALISIS DEL PROBLEMA </li></ul><ul><li>DISEÑO DEL ALGORITMO </li></ul><ul><li>SOLUCION DEL PROBLEMA MEDIANTE COMPUTADORA </li></ul><ul><li>REPRESENTACION GRAFICA DE ALGORITMOS </li></ul><ul><li>PSEUDOCODIGO </li></ul>17/03/10
    34. 34. 2.1 OBJETIVO <ul><li>EXPONER LOS CONOCIMIENTOS INDISPENSABLES PARA EL APRENDIZAJE DE LA PROGRAMACION. </li></ul>17/03/10
    35. 35. 2.2 SOLUCION DE PROBLEMAS <ul><li>Fases de fragmentación: </li></ul><ul><ul><li>Análisis del problema: definición concisa a fin de que sea analizado en todo detalle. </li></ul></ul><ul><ul><li>Diseño del algoritmo: procedimiento, paso a paso, para la solucionar el problema dado. </li></ul></ul><ul><ul><li>Solución del algoritmo con la computadora: codificación del algoritmo en un lenguaje de programación </li></ul></ul>17/03/10
    36. 36. 2.3 ANALISIS DEL PROBLEMA <ul><li>El propósito es ayudar al programador a llegar a un cierto grado de comprensión de la naturaleza del problema. </li></ul><ul><li>Una buena definición del problema, junto con una descripción detallada de entrada y salida, son los requisitos más importantes para una solución eficaz. </li></ul>17/03/10
    37. 37. 2.3 ANALISIS DEL PROBLEMA cont. <ul><li>Que información debe proporcionar la solución del problema. </li></ul>Solución del Problema Análisis del Problema Diseño del algoritmo Solución por computadora
    38. 38. 2.3 ANALISIS DEL PROBLEMA cont. <ul><li>2. Que datos se necesitan para resolver el problema. </li></ul>Análisis del Problema Definicióndel Problema Especificaciones de entrada Especificaciones de salida
    39. 39. 2.3 ANALISIS DEL PROBLEMA cont. <ul><li>Ejemplo: leer los lados de un triángulo rectangulo e imprima la hipotenusa. </li></ul><ul><ul><li>Entradas: valores de los lados (variable LADO1 y variable LADO2). </li></ul></ul><ul><ul><li>Salida: valor de la hipotenusa (variable LADO3). </li></ul></ul><ul><ul><li>Variables: LADO1, LADO2 y LADO3 (tipo reales). </li></ul></ul>
    40. 40. 2.4 DISEÑO DEL ALGORITMO <ul><li>La información proporcionada al algoritmo constituye su entrada y la información producida constituye su salida. </li></ul><ul><li>Los problemas complejos se resuelven eficazmente si se fragmentan en subproblemas que sean más sencillos de solucionar que el original. Esta técnica es conocida como divide y vencerás (divide and conquer). </li></ul>
    41. 41. 2.4 DISEÑO DEL ALGORITMO cont. <ul><li>La descomposición del problema original en subproblemas cuya solución puede implementarse a través de la computadora se le denomina diseño descendente (top down design) </li></ul><ul><li>La descripción detallada de la solución mediante pasos específicos se le denomina refinamiento del algoritmo (stepwise refinement). </li></ul>
    42. 42. 2.4 DISEÑO DEL ALGORITMO cont. Diseño del algoritmo Diseño descendente Refinamiento por pasos Herramientas de programación – diagramas de flujo -pseudocódigo
    43. 43. 2.4 DISEÑO DEL ALGORITMO cont. <ul><li>Ejemplo: Determine a los números menores que 90 y múltiplos de 9, así como su sumatoria. </li></ul>Definicióndel Problema Especificaciones de entrada Especificaciones de salida Imprimir múltiplos de 9 y su suma siempre y cuando sea menor que 90 TOTAL = 0 NUM = 9 LIMITE = 90 NUM, TOTAL
    44. 44. 2.4 DISEÑO DEL ALGORITMO cont. Diseño descendente Refinamiento por pasos Herramientas de programación Múltiplos de 9 Sumatoria <ul><li>Num=9 </li></ul><ul><li>Print num </li></ul><ul><li>Num <= 90 regresar a) </li></ul><ul><li>Num=+9 </li></ul>Total=+num
    45. 45. 2.4 DISEÑO DEL ALGORITMO cont. <ul><li>Inicio </li></ul><ul><li>Total=0, Num=9, Limite=90 </li></ul><ul><li>Print Num </li></ul><ul><li>Total=Total+Num </li></ul><ul><li>Si Num <= Limite entonces Num=Num+9 y regresar a 3 </li></ul><ul><li>Print Total </li></ul><ul><li>Fin </li></ul>
    46. 46. tarea <ul><li>Determine si una palabra es un palíndromo. </li></ul><ul><li>Determine el máximo común divisor para dos números enteros. </li></ul><ul><li>Lea e imprima una serie de números distintos de cero. El algoritmo terminará con un valor que no se debe imprimir . Finalmente obtenga la cantidad de valores leídos. </li></ul>
    47. 47. tarea <ul><li>4. Imprima y sume la serie de números múltiplos de 3 en el rango cerrado de 3 y 99. </li></ul><ul><li>5. Lea cuatro números e imprima el mayor de ellos. </li></ul><ul><li>6. Calcule la superficie de un triangulo en función de la base y la altura. </li></ul>
    48. 48. 2.5 SOLUCION DE PROBLEMAS MEDIANTE LA COMPUTADORA <ul><li>Una vez diseñado el algoritmo y representado mediante una herramienta de programación se debe: </li></ul>Solución del Problema por Computadora Codificación del programa Ejecución del programa Comprobación del programa
    49. 49. 2.6 REPRESENTACION GRAFICA DE LOS ALGORITMOS <ul><li>Los métodos usuales para representarlo son: </li></ul><ul><li>Diagrama de flujo </li></ul><ul><li>Lenguaje de especificación de algoritmo </li></ul>
    50. 50. 2.6 REPRESENTACION GRAFICA DE LOS ALGORITMOS cont
    51. 51. 2.7 PSEUDOCODIGO <ul><li>Es un lenguaje de especificación de algoritmos que permite una codificación rápida y simple. </li></ul><ul><li>Su ventaja radica en que el programador no debe preocuparse por la sintaxis de un lenguaje de programación en particular. </li></ul><ul><li>Utiliza palabras sencillas de entender para codificar programas. </li></ul>
    52. 52. ESTRUCTURA DE UN PROGRAMA
    53. 53. Concepto de Programa <ul><li>Conjunto de instrucciones que producirán la ejecución de una determinada tarea. Esencialmente es un medio para lograr un fin. </li></ul>
    54. 54. PROCESO DE PROGRAMACION Consiste en la solución de problemas y el desarrollo de programas
    55. 55. Fases del proceso de programación <ul><li>Definiciòn y análisis del problema. </li></ul><ul><li>Diseño de algoritmos: </li></ul><ul><ul><li>Diagrama de flujo. </li></ul></ul><ul><ul><li>Diagrama (N-S). </li></ul></ul><ul><ul><li>Pseudocódigo </li></ul></ul><ul><li>Codificación del programa. </li></ul><ul><li>Depuración y verificación del programa. </li></ul><ul><li>Documentación. </li></ul><ul><li>Mantenimiento. </li></ul>
    56. 56. Partes de un programa concepto de caja negra Entrada Algoritmo Salida
    57. 57. <ul><li>De inicio / fin. </li></ul><ul><li>De asignación. </li></ul><ul><li>De lectura, </li></ul><ul><li>De escritura. </li></ul><ul><li>De bifurcación. </li></ul>Tipos de Instrucciones (acciones que resuelven un problema)
    58. 58. Elementos básicos de un programa <ul><li>Palabras reservadas. </li></ul><ul><li>Identificadores (nombres de variables). </li></ul><ul><li>Caracteres especiales. </li></ul><ul><li>Constantes. </li></ul><ul><li>Variables. </li></ul><ul><li>Expresiones. </li></ul><ul><li>instrucciones. </li></ul>
    59. 59. Otros elementos…… <ul><li>Iteraciones, </li></ul><ul><li>Contadores, </li></ul><ul><li>Acumuladores, </li></ul><ul><li>Interruptores, </li></ul><ul><li>Estructuras: </li></ul><ul><ul><ul><li>Secuenciales, </li></ul></ul></ul><ul><ul><ul><li>Selectivas, </li></ul></ul></ul><ul><ul><ul><li>Repetitivas. </li></ul></ul></ul>
    60. 60. Iteraciones Es el segmento de un algoritmo o programa, cuyas instrucciones se repiten un número determinado de veces mientras se cumple una determinada condición. Sus partes son: decisión cuerpo del bucle salida
    61. 61. Contadores <ul><li>Un contador es una variable cuyo valor se incrementa o decrementa en una cantidad constante en cada iteración. </li></ul>
    62. 62. Acumuladores <ul><li>Un Acumulador es una variable cuya misión es almacernar cantidades distintas resultantes de sumas sucesivas. </li></ul>
    63. 63. Interruptores <ul><li>Un interruptor ( conmutador, bandera, flag) es una variable que puede tomar diversos valoresdurante la ejecución de un programa y que permite comunicar información desde una parte a otra del mismo. </li></ul>
    64. 64. Componentes de un algoritmo Algoritmo Cabecera del programa Sección de declaración Sección de acciones
    65. 65. PROGRAMACIÓN ESTRUCTURADA
    66. 66. Técnicas de Programación... <ul><li>Programación modular: Descomposición del problema en módulos. </li></ul><ul><li>Programación estructurada: Programación de cada módulo mediante métodos estructurados. </li></ul><ul><li>POO </li></ul>
    67. 67. Características de la programación modular <ul><li>Todo programa tiene un módulo principal. </li></ul><ul><li>Dicho módulo primario se divide en submódulos, que a su vez ejecutan una tarea única y podrán codificarse de manera independiente de cualquier otra actividad. Sin embargo, al finalizar su función devolverán el control al módulo principal. </li></ul><ul><li>Esta independencia alude a que ningún otro módulo podrá accesarlo directamente, a excepción de sus propios subsubmódulos y al módulo principal. </li></ul>
    68. 68. Consideraciones ……. <ul><li>La descomposición de un programa podría implemetarse así: </li></ul><ul><ul><li>Módulo principal. </li></ul></ul><ul><ul><li>Submódulo impresión de títulos </li></ul></ul><ul><ul><li>Submódulo de lectura de datos </li></ul></ul><ul><ul><li>Submódulo ejecución de procesos </li></ul></ul><ul><ul><li>Submódulo impresión de resultados </li></ul></ul>
    69. 69. <ul><li>Conjunto de técnicas que reducen el tiempo requerido para escribir, verificar, depurar y mantener los programas. </li></ul><ul><li>Mediante el uso de: </li></ul><ul><ul><li>recursos abstractos, </li></ul></ul><ul><ul><li>diseño descendente, </li></ul></ul><ul><ul><li>estructuras básicas. </li></ul></ul>Características de la programación estructurada
    70. 70. Recursos Abstractos <ul><li>Consiste en descomponer una determinada acción compleja en un número de acciones más simples, capaces de ser ejecutada por una computadora y sus respectivas instrucciones. </li></ul>
    71. 71. Diseño Descendente TOP-DOWN DESIGN <ul><li>Esta metodología efectúa una relación de refinamiento entre las distintas etapas de estructuración, de modo que se relacionen unas con otras, mediante entradas y salidas de información. </li></ul><ul><li>Descompone el problema en etapas o estructuras jerárquicas, de modo que se pueda considerar cada estructura desde dos puntos de vista: qué hace y cómo lo hace </li></ul>
    72. 72. Diseño Descendente Desde el exterior …..
    73. 73. Diseño Descendente Desde el interior …..
    74. 74. Estructuras básicas Teorema de la programación estructurada: <ul><li>Un programa propio es aquel que cumple las siguientes características: </li></ul><ul><ul><ul><li>secuenciales, </li></ul></ul></ul><ul><ul><ul><li>selectivas, y </li></ul></ul></ul><ul><ul><ul><li>repetitivas. </li></ul></ul></ul><ul><ul><ul><li>posee un solo punto de entrada y salida. </li></ul></ul></ul><ul><ul><ul><li>se puede recorrer toda la estructura del programa modular. </li></ul></ul></ul><ul><ul><ul><li>todas las instrucciones son ejecutables y no existen bucles infinitos. </li></ul></ul></ul>
    75. 75. Instrucciones Secuenciales
    76. 76. Instrucción Selectiva Simple
    77. 77. Instrucción Selectiva Compuesta
    78. 78. Instrucción Selectiva Múltiple
    79. 79. Instrucción Repetitiva “While”
    80. 80. Instrucción Repetitiva “Repeat”
    81. 81. Instrucción Repetitiva “For”
    82. 82. F I N……

    ×