Algoritmos y Programas - PowerPoint PPT Presentation

1 / 82
About This Presentation
Title:

Algoritmos y Programas

Description:

Entrada/Salida; transferencia de informaci n entre dispositivos perif ricos y memoria central. ... posee un solo punto de entrada y salida. ... – PowerPoint PPT presentation

Number of Views:757
Avg rating:3.0/5.0
Slides: 83
Provided by: itq8
Category:

less

Transcript and Presenter's Notes

Title: Algoritmos y Programas


1
Algoritmosy Programas
2
Introducción
  • 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.

3
Temática
  • Sistemas de procesamiento de información.
  • Concepto de Algoritmo.
  • Lenguaje de programación.
  • Datos, tipos de datos y operaciones primitivas.
  • Constantes y variables.
  • Expresiones.
  • Funciones intrínsecas.
  • Asignación.
  • Entrada y salida de información.

4
1. Sistemas de procesamiento de la información
  • 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.

5
Esquemáticamente
Datos
Procesador
Información
6
Una primera definición
  • 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.

7
Conceptos importantes
  • Hardware grupo de componentes físicos de una
    computadora.
  • Software conjunto de programas que controlan el
    funcionamiento de una computadora

8
2. Concepto de Algoritmo
  • La metodología de la programación es aquella que
    es necesaria para resolver problemas mediante
    programas, su eje es el algoritmo.

Diseño del algoritmo
Problema
Programa
9
Pasos para la solución de un problema
  • El diseño del algoritmo describe el análisis del
    problema y desarrollo del algoritmo.
  • Expresar el algoritmo como un programa en un
    lenguaje de programación.
  • Ejecutar y validar el programa por la computadora.

10
Características de los algoritmos
  • Preciso, indicará el orden de cada paso.
  • Definido, el mismo resultado se obtendrá al
    ejecutar el algoritmo n ocasiones.
  • Finito, deberá terminar en algún momento.

11
Ejemplo 2.1 Genere un algoritmo que solucione la
entrega de un pedido a un cliente
  • Inicio.
  • Leer el pedido.
  • Examinar el historial crediticio del cliente
  • Si el cliente es solvente, entregar el pedido. En
    caso contrario, rechazarlo.
  • Fin

12
Ejemplo 2.2 Genere un algoritmo que sume los
números entre el 3 y el 30.
  • Inicio.
  • Hacer SUMA igual cero.
  • Establecer NUMERO igual a 3.
  • Sumar NUMERO a SUMA.
  • Incrementar NUMERO en 3
  • Si NUMERO es menor o igual que 30 ir a 4 si no
    imprimir a SUMA.
  • Fin

13
Ejemplo 2.3 Genere un algoritmo que determine al
mayor de tres números enteros.
  • Inicio
  • Leer los números y guardarlos en NUM1, NUM2 y
    NUM3 respectivamente
  • Comparar NUM1 y NUM2, el número mayor se guarda
    en AUX.
  • Comparar AUX y NUM3, imprimir el número mayor.
  • Fin.

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
3. Los lenguajes de programación
  • Cuando el procesador de datos es una computadora
    entonces el algoritmo de solución se expresa en
    un programa.
  • Por tanto, un programa es escrito en un lenguaje
    de programación.
  • Luego, la programación consiste en expresar las
    operaciones en forma de programa de un algoritmo.

16
Tipos de lenguajes
  • Máquina escritos en código binario.
  • Bajo nivel (ensamblador) escrito en
    nemotécnicos.
  • Alto nivel diseñados para ser entendidos por el
    ser humano.

17
Instrucciones básicas
  • Entrada/Salida transferencia de información
    entre dispositivos periféricos y memoria central.
  • Aritmético/Lógicas ejecutan operaciones de éstos
    tipos.
  • Selectivas seleccionan tareas en función de los
    resultados
  • Repetitivas permiten la iteración de secuencias
    de instrucciones un número dado de veces

18
Traductores del Lenguaje
  • A) Intérpretes Toma un programa fuente lo
    traduce e inmediatamente lo ejecuta.

Programa fuente
Intérprete
Traducción y ejecución en línea
19
Traductores del Lenguaje (cont.)
  • B) Compiladores traduce un programa fuente a
    código objeto.

Programa fuente
Programa Objeto
Programa ejecutable
Montador (Linker)
Compilador (Compiler)
20
4. Datos, Tipos de Datos y Operaciones Primitivas
  • Un dato es la expresión general que describe los
    objetos con los cuales opera la computadora
  • Los tipos son simples (no estructurados) y
    compuestos (estructurados). Aquellos se
    subdividen en
  • Numericos (integer, real)
  • Lógicos (booleans)
  • Carácter (char, string)

21
Datos primitivos
Datos
Carácter
Numérico
Lógico
Entero
Real
22
5. Constantes y Variables
  • Constantes valores que durante la ejecución de
    un programa no cambian su valor.
  • Variables valores que cambiarán durante la
    ejecución del programa

23
6. Expresiones
  • Se definen como una combinación de constantes,
    variables, símbolos de operación, paréntesis, y
    nombres de funciones especiales.
  • Una expresión consta de operandos y operadores.
  • Las expresiones se clasifican en aritméticas,
    lógicas y carácter.

24
Expresiones aritméticas
25
Reglas de prioridad
26
Operadores de relación
27
Operadores lógicos
28
7. Funciones Intrínsecas
29
8. Operación de Asignación
  • Es la forma de darle valores tanto a variables
    como constantes, se representa con el símbolo

30
Tipos de asignación
  • Aritmética
  • Lógica
  • Cadena de carácteres

31
9. Entrada y salida de información
  • La operación de lectura READ permite el ingreso
    de los datos necesarios para los cálculos
    computacionales.
  • La operación de escritura WRITE imprime la
    información procesada por el programa y su
    respectivo algoritmo.

32
PROBLEMAS RESUELTOS CON COMPUTADORAS Y
HERRAMIENTAS DE PROGRAMACION
33
INDICE
  • OBJETIVO
  • SOLUCION DE PROBLEMAS
  • ANALISIS DEL PROBLEMA
  • DISEÑO DEL ALGORITMO
  • SOLUCION DEL PROBLEMA MEDIANTE COMPUTADORA
  • REPRESENTACION GRAFICA DE ALGORITMOS
  • PSEUDOCODIGO

34
2.1 OBJETIVO
  • EXPONER LOS CONOCIMIENTOS INDISPENSABLES PARA EL
    APRENDIZAJE DE LA PROGRAMACION.

35
2.2 SOLUCION DE PROBLEMAS
  • Fases de fragmentación
  • Análisis del problema definición concisa a fin
    de que sea analizado en todo detalle.
  • Diseño del algoritmo procedimiento, paso a paso,
    para la solucionar el problema dado.
  • Solución del algoritmo con la computadora
    codificación del algoritmo en un lenguaje de
    programación

36
2.3 ANALISIS DEL PROBLEMA
  • El propósito es ayudar al programador a llegar a
    un cierto grado de comprensión de la naturaleza
    del problema.
  • 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.

37
2.3 ANALISIS DEL PROBLEMA cont.
  • Que información debe proporcionar la solución del
    problema.

38
2.3 ANALISIS DEL PROBLEMA cont.
  • 2. Que datos se necesitan para resolver el
    problema.

39
2.3 ANALISIS DEL PROBLEMA cont.
  • Ejemplo leer los lados de un triángulo
    rectangulo e imprima la hipotenusa.
  • Entradas valores de los lados (variable LADO1 y
    variable LADO2).
  • Salida valor de la hipotenusa (variable LADO3).
  • Variables LADO1, LADO2 y LADO3 (tipo reales).

40
2.4 DISEÑO DEL ALGORITMO
  • La información proporcionada al algoritmo
    constituye su entrada y la información producida
    constituye su salida.
  • 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).

41
2.4 DISEÑO DEL ALGORITMO cont.
  • 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)
  • La descripción detallada de la solución mediante
    pasos específicos se le denomina refinamiento del
    algoritmo (stepwise refinement).

42
2.4 DISEÑO DEL ALGORITMO cont.
43
2.4 DISEÑO DEL ALGORITMO cont.
  • Ejemplo Determine a los números menores que 90 y
    múltiplos de 9, así como su sumatoria.

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
2.4 DISEÑO DEL ALGORITMO cont.
Diseño descendente
Refinamiento por pasos
Herramientas de programación
Múltiplos de 9
  • Num9
  • Print num
  • Num lt 90 regresar a)
  • Num9

Sumatoria
Totalnum
45
2.4 DISEÑO DEL ALGORITMO cont.
  • Inicio
  • Total0, Num9, Limite90
  • Print Num
  • TotalTotalNum
  • Si Num lt Limite entonces NumNum9 y regresar a
    3
  • Print Total
  • Fin

46
tarea
  • Determine si una palabra es un palíndromo.
  • Determine el máximo común divisor para dos
    números enteros.
  • 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.

47
tarea
  • 4. Imprima y sume la serie de números múltiplos
    de 3 en el rango cerrado de 3 y 99.
  • 5. Lea cuatro números e imprima el mayor de
    ellos.
  • 6. Calcule la superficie de un triangulo en
    función de la base y la altura.

48
2.5 SOLUCION DE PROBLEMAS MEDIANTE LA COMPUTADORA
  • Una vez diseñado el algoritmo y representado
    mediante una herramienta de programación se debe

49
2.6 REPRESENTACION GRAFICA DE LOS ALGORITMOS
  • Los métodos usuales para representarlo son
  • Diagrama de flujo
  • Lenguaje de especificación de algoritmo

50
2.6 REPRESENTACION GRAFICA DE LOS ALGORITMOS cont
51
2.7 PSEUDOCODIGO
  • Es un lenguaje de especificación de algoritmos
    que permite una codificación rápida y simple.
  • Su ventaja radica en que el programador no debe
    preocuparse por la sintaxis de un lenguaje de
    programación en particular.
  • Utiliza palabras sencillas de entender para
    codificar programas.

52
ESTRUCTURA DE UN PROGRAMA
53
Concepto de Programa
  • Conjunto de instrucciones que producirán la
    ejecución de una determinada tarea. Esencialmente
    es un medio para lograr un fin.

54
PROCESO DE PROGRAMACION
  • Consiste en la solución de problemas y el
    desarrollo de programas

55
Fases del proceso de programación
  • Definiciòn y análisis del problema.
  • Diseño de algoritmos
  • Diagrama de flujo.
  • Diagrama (N-S).
  • Pseudocódigo
  • Codificación del programa.
  • Depuración y verificación del programa.
  • Documentación.
  • Mantenimiento.

56
Partes de un programaconcepto de caja negra
Entrada
Algoritmo
Salida
57
Tipos de Instrucciones (acciones que resuelven un
problema)
  • De inicio / fin.
  • De asignación.
  • De lectura,
  • De escritura.
  • De bifurcación.

58
Elementos básicos de un programa
  • Palabras reservadas.
  • Identificadores (nombres de variables).
  • Caracteres especiales.
  • Constantes.
  • Variables.
  • Expresiones.
  • instrucciones.

59
Otros elementos
  • Iteraciones,
  • Contadores,
  • Acumuladores,
  • Interruptores,
  • Estructuras
  • Secuenciales,
  • Selectivas,
  • Repetitivas.

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
Contadores
  • Un contador es una variable cuyo valor se
    incrementa o decrementa en una cantidad constante
    en cada iteración.

62
Acumuladores
  • Un Acumulador es una variable cuya misión es
    almacernar cantidades distintas resultantes de
    sumas sucesivas.

63
Interruptores
  • 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.

64
Componentes de un algoritmo
Algoritmo Cabecera del programa Sección de
declaración Sección de acciones
65
PROGRAMACIÓN ESTRUCTURADA
66
Técnicas de Programación...
  • Programación modular Descomposición del problema
    en módulos.
  • Programación estructurada Programación de cada
    módulo mediante métodos estructurados.

67
Características de la programación modular
  • Todo programa tiene un módulo principal.
  • 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.
  • 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.

68
Consideraciones .
  • La descomposición de un programa podría
    implemetarse así
  • Módulo principal.
  • Submódulo impresión de títulos
  • Submódulo de lectura de datos
  • Submódulo ejecución de procesos
  • Submódulo impresión de resultados

69
Características de la programación estructurada
  • Conjunto de técnicas que reducen el tiempo
    requerido para escribir, verificar, depurar y
    mantener los programas.
  • Mediante el uso de
  • recursos abstractos,
  • diseño descendente,
  • estructuras básicas.

70
Recursos Abstractos
  • 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.

71
Diseño Descendente TOP-DOWN DESIGN
  • 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.
  • 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

72
Diseño Descendente Desde el exterior ..
73
Diseño Descendente Desde el interior ..
74
  • Estructuras básicas
  • Teorema de la programación estructurada
  • Un programa propio es aquel que cumple las
    siguientes características
  • secuenciales,
  • selectivas, y
  • repetitivas.
  • posee un solo punto de entrada y salida.
  • se puede recorrer toda la estructura del programa
    modular.
  • todas las instrucciones son ejecutables y no
    existen bucles infinitos.

75
Instrucciones Secuenciales
76
Instrucción Selectiva Simple
77
Instrucción Selectiva Compuesta
78
Instrucción Selectiva Múltiple
79
Instrucción Repetitiva While
80
Instrucción Repetitiva Repeat
81
Instrucción Repetitiva For
82
F I N
Write a Comment
User Comments (0)
About PowerShow.com