Top Banner
Algoritmos y Programas
82

Tecn Program Algoritm

Dec 22, 2015

Download

Documents

algoritmos
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Tecn Program Algoritm

Algoritmosy

Programas

Page 2: Tecn Program Algoritm

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.

Page 3: Tecn Program Algoritm

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.

Page 4: Tecn Program Algoritm

1. Sistemas de procesamiento de la datos

➲ 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.

Page 5: Tecn Program Algoritm

Esquemáticamente

Datos

Procesador

Información

Page 6: Tecn Program Algoritm

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.

Page 7: Tecn Program Algoritm

Conceptos importantes

➲ Hardware: grupo de componentes físicos de una computadora.

➲ Software: conjunto de programas que controlan el funcionamiento de una computadora

Page 8: Tecn Program Algoritm

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.

ProblemaDiseño

del algoritmo

Programa

Page 9: Tecn Program Algoritm

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.

Page 10: Tecn Program Algoritm

Características de los algoritmos

➲ Preciso Indicará el orden de cada paso.➲ DefinidoEl mismo resultado se obtendrá al

ejecutar el algoritmo “n” ocasiones.➲ Finito Deberá terminar en algún momento.

Page 11: Tecn Program Algoritm

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

Page 12: Tecn Program Algoritm

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 1 Si NUMERO es menor o igual que 30 ir a

4; si no imprimir a SUMA. Fin

Page 13: Tecn Program Algoritm

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.

Page 14: Tecn Program Algoritm

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.

Page 15: Tecn Program Algoritm

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.

Page 16: Tecn Program Algoritm

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.

Page 17: Tecn Program Algoritm

Estructuras 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

Page 18: Tecn Program Algoritm

Traductores del Lenguaje

➲ A) Intérpretes; Toma un programa fuente lo traduce e inmediatamente lo ejecuta.

Programa fuente IntérpreteTraducción y ejecución

en línea

Page 19: Tecn Program Algoritm

Traductores del Lenguaje (cont.)

B) Compiladores; traduce un programa fuente a código objeto.

Programa fuente

Programa Objeto

Programa ejecutable

Compilador(Compiler)

Montador(Linker)

Page 20: Tecn Program Algoritm

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)

Page 21: Tecn Program Algoritm

Datos primitivos

Datos

CarácterNumérico Lógico

Entero Real

Page 22: Tecn Program Algoritm

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

Page 23: Tecn Program Algoritm

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.

Page 24: Tecn Program Algoritm

Expresiones aritméticas

EnteroEnteromóduloMod

EnteroEnteroDivisión enteraDiv

RealReal División/

Entero o realEntero o realMultiplicación*

Entero o realEntero o realResta-

Entero o realEntero o realSuma+

Entero o realEntero o realExponenciación**

Tipo resultadoTipo de operandosSignificadoOperador

Page 25: Tecn Program Algoritm

Reglas de prioridad

( )Parentesis

+, -Más y menos

Div, mod Div y mod

*, /Multi, divide

**Exponencial

GráfoOperador

Page 26: Tecn Program Algoritm

Operadores de relación

Menor<

Distinto<>,!=

Mayor o igual>=

Menor o igual<=

Igual=

Mayor>

SignificadoOperador

Expresión 2Operador de relación

Expresión 1

Page 27: Tecn Program Algoritm

Operadores lógicos

disyunciónP o QOr

ConjunciónP y QAnd

NegaciónNot pNot

SignificadoExpresión lógicaOperador lógico

Page 28: Tecn Program Algoritm

7. Funciones Intrínsecas

TruncamientoTrunc(x)

Raíz cuadradaSqrt(x)

CuadradoSqr(x)

SenoSin(x)

RedondeoRound(x)

Log decimalLog10(x)

Log neperianoLn(x)

ExponencialExp(x)

CosenoCos(x)

Tangente inversaArctan(x)

AbsolutoAbs(x)

DescripciónFunción

Page 29: Tecn Program Algoritm

8. Operación de Asignación

➲ Es la forma de darle valores tanto a variables como constantes, se representa con el símbolo

Page 30: Tecn Program Algoritm

Tipos de asignación

➲ Aritmética

➲ Lógica

➲ Cadena de carácteres

Page 31: Tecn Program Algoritm

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.

Page 32: Tecn Program Algoritm

11/04/14 32

PROBLEMAS RESUELTOS CON COMPUTADORAS Y HERRAMIENTAS

DE PROGRAMACION

Page 33: Tecn Program Algoritm

11/04/14 33

INDICE

➲ OBJETIVO➲ SOLUCION DE PROBLEMAS➲ ANALISIS DEL PROBLEMA➲ DISEÑO DEL ALGORITMO➲ SOLUCION DEL PROBLEMA MEDIANTE

COMPUTADORA➲ REPRESENTACION GRAFICA DE

ALGORITMOS➲ PSEUDOCODIGO

Page 34: Tecn Program Algoritm

11/04/14 34

2.1 OBJETIVO

➲ EXPONER LOS CONOCIMIENTOS INDISPENSABLES PARA EL

APRENDIZAJE DE LA PROGRAMACION.

Page 35: Tecn Program Algoritm

11/04/14 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

Page 36: Tecn Program Algoritm

11/04/14 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.

Page 37: Tecn Program Algoritm

2.3 ANALISIS DEL PROBLEMA cont.

1. Que información debe proporcionar la solución del problema.

Solución del Problema

Análisis del Problema

Diseño del algoritmo

Solución por computadora

Page 38: Tecn Program Algoritm

2.3 ANALISIS DEL PROBLEMA cont.

2. Que datos se necesitan para resolver el problema.

Análisis del Problema

Definicióndel Problema

Especificaciones de entrada

Especificaciones de salida

Page 39: Tecn Program Algoritm

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).

Page 40: Tecn Program Algoritm

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).

Page 41: Tecn Program Algoritm

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).

Page 42: Tecn Program Algoritm

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

Page 43: Tecn Program Algoritm

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

Page 44: Tecn Program Algoritm

2.4 DISEÑO DEL ALGORITMO cont.

Diseño descendente

Refinamiento por pasos

Herramientas de programación

Múltiplos de 9

Sumatoria

a) Num=9

b) Print num

c) Num <= 90 regresar a)

d) Num=+9

Total=+num

Page 45: Tecn Program Algoritm

2.4 DISEÑO DEL ALGORITMO cont.

1. Inicio

2. Total=0, Num=9, Limite=90

3. Print Num

4. Total=Total+Num

5. Si Num <= Limite entonces Num=Num+9 y regresar a 3

6. Print Total

7. Fin

Page 46: Tecn Program Algoritm

tarea

1. Determine si una palabra es un palíndromo.

2. Determine el máximo común divisor para dos números enteros.

3. 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.

Page 47: Tecn Program Algoritm

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.

Page 48: Tecn Program Algoritm

2.5 SOLUCION DE PROBLEMAS MEDIANTE LA COMPUTADORA

Una vez diseñado el algoritmo y representado mediante una herramienta de programación se debe:

Solución del Problema por Computadora

Codificación del programa

Ejecución del programa

Comprobación del programa

Page 49: Tecn Program Algoritm

2.6 REPRESENTACION GRAFICA DE LOS ALGORITMOS

Los métodos usuales para representarlo son:

1. Diagrama de flujo

2. Lenguaje de especificación de algoritmo

Page 50: Tecn Program Algoritm

2.6 REPRESENTACION GRAFICA DE LOS ALGORITMOS cont

Page 51: Tecn Program Algoritm

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.

Page 52: Tecn Program Algoritm

ESTRUCTURAESTRUCTURA

DE UN DE UN

PROGRAMAPROGRAMA

Page 53: Tecn Program Algoritm

Concepto de Programa

Conjunto de instrucciones que producirán la ejecución de una determinada tarea.

Esencialmente es un medio para lograr un fin.

Page 54: Tecn Program Algoritm

PROCESO DE PROGRAMACION

Consiste en la solución de problemas y el desarrollo de programas

Page 55: Tecn Program Algoritm

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.

Page 56: Tecn Program Algoritm

Partes de un programa

concepto de caja negra

Entrada Algoritmo Salida

Page 57: Tecn Program Algoritm

➲ De inicio / fin.➲ De asignación.➲ De lectura,➲ De escritura.➲ De bifurcación.

Tipos de Instrucciones(acciones que resuelven un

problema)

Page 58: Tecn Program Algoritm

Elementos básicos de un programa

Palabras reservadas.Identificadores (nombres de variables).Caracteres especiales.Constantes.Variables.Expresiones.instrucciones.

Page 59: Tecn Program Algoritm

Otros elementos……

Iteraciones,Contadores,Acumuladores,Interruptores,Estructuras:

Secuenciales,Selectivas,Repetitivas.

Page 60: Tecn Program Algoritm

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óncuerpo del buclesalida

Page 61: Tecn Program Algoritm

Contadores

Un contador es una variable cuyo valor se incrementa o decrementa en una cantidad constante en cada iteración.

Page 62: Tecn Program Algoritm

Acumuladores

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

Page 63: Tecn Program Algoritm

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.

Page 64: Tecn Program Algoritm

Componentes de un algoritmo

Algoritmo

Cabecera del programaSección de declaraciónSección de acciones

Page 65: Tecn Program Algoritm

PROGRAMACIÓNPROGRAMACIÓN

ESTRUCTURADA ESTRUCTURADA

Page 66: Tecn Program Algoritm

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.

Page 67: Tecn Program Algoritm

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.

Page 68: Tecn Program Algoritm

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

Page 69: Tecn Program Algoritm

➲ 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.

Características de la programación estructurada

Page 70: Tecn Program Algoritm

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.

Page 71: Tecn Program Algoritm

Diseño DescendenteTOP-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

Page 72: Tecn Program Algoritm

Diseño DescendenteDesde el exterior …..

Page 73: Tecn Program Algoritm

Diseño DescendenteDesde el interior …..

Page 74: Tecn Program Algoritm

Estructuras básicasTeorema 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.

Page 75: Tecn Program Algoritm

Instrucciones Secuenciales

Page 76: Tecn Program Algoritm

Instrucción Selectiva Simple

Page 77: Tecn Program Algoritm

Instrucción Selectiva Compuesta

Page 78: Tecn Program Algoritm

Instrucción Selectiva Múltiple

Page 79: Tecn Program Algoritm

Instrucción Repetitiva “While”

Page 80: Tecn Program Algoritm

Instrucción Repetitiva “Repeat”

Page 81: Tecn Program Algoritm

Instrucción Repetitiva “For”

Page 82: Tecn Program Algoritm

F I N