P. 1
Tipos de Algoritmos

Tipos de Algoritmos

|Views: 14|Likes:
Publicado porbetsy2006

More info:

Published by: betsy2006 on Jun 28, 2013
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PPT, PDF, TXT or read online from Scribd
See more
See less

04/29/2014

pdf

text

original

Algoritmos y Programas

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.

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.

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.

Esquemáticamente Datos Procesador Información .

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

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

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.

Problema

Diseño del algoritmo

Programa

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.

Características algoritmos

de

los

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.

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

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

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

2 Genere un algoritmo que sume los números entre el 2 y el 20.3 Genere un algoritmo que sume los números entre el 5 y el 50.Tarea 2. Tarea 2. Tarea 2. .1 Diseñe un algoritmo para determinar si un número es primo o no.

Los lenguajes programación  Cuando de el procesador de datos es una computadora entonces el algoritmo de solución se expresa en un programa. la programación consiste en expresar las operaciones en forma de programa de un algoritmo.  Luego.  Por tanto. .3. un programa es escrito en un lenguaje de programación.

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

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

Traducción y ejecución en línea Programa fuente Intérprete .Traductores del Lenguaje  A) Intérpretes. Toma un programa fuente lo traduce e inmediatamente lo ejecuta.

Programa Objeto Programa ejecutable Programa fuente Compilador (Compiler) Montador (Linker) .Traductores (cont.)  del Lenguaje B) Compiladores. traduce un programa fuente a código objeto.

real) Lógicos (booleans) Carácter (char. 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).4. Aquellos se subdividen en:    Numericos (integer. string) . Datos.

Datos primitivos Datos Numérico Carácter Lógico Entero Real .

Constantes y Variables  Constantes: valores que durante la ejecución de un programa no cambian su valor.5. Variables: valores que cambiarán durante la ejecución del programa  .

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

Expresiones aritméticas Operador ** + * / Significado Exponenciación Suma Resta Multiplicación División Tipo de operandos Entero o real Entero o real Entero o real Entero o real Real Tipo resultado Entero o real Entero o real Entero o real Entero o real Real Div Mod División entera módulo Entero Entero Entero Entero .

divide Div y mod Más y menos Gráfo ( ) ** *. - . / Div. mod +.Reglas de prioridad Operador Parentesis Exponencial Multi.

!= Significado Menor Mayor Igual Menor o igual Mayor o igual Distinto .Operadores de relación Expresión 1 Operador de relación Expresión 2 Operador < > = <= >= <>.

Operadores lógicos Operador lógico Not And Or Expresión lógica Not p PyQ PoQ Significado Negación Conjunción disyunción .

7. Funciones Intrínsecas Función Abs(x) Arctan(x) Cos(x) Exp(x) Ln(x) Log10(x) Round(x) Sin(x) Sqr(x) Sqrt(x) Trunc(x) Descripción Absoluto Tangente inversa Coseno Exponencial Log neperiano Log decimal Redondeo Seno Cuadrado Raíz cuadrada Truncamiento .

se representa con el símbolo . Operación de Asignación  Es la forma de darle valores tanto a variables como constantes.8.

Tipos de asignación  Aritmética  Lógica  Cadena de carácteres .

La operación de escritura WRITE imprime la información procesada por el programa y su respectivo algoritmo.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.

PROBLEMAS RESUELTOS CON COMPUTADORAS Y HERRAMIENTAS DE PROGRAMACION 28/06/2013 32 .

INDICE  OBJETIVO  SOLUCION DE PROBLEMAS  ANALISIS DEL PROBLEMA  DISEÑO DEL ALGORITMO  SOLUCION DEL PROBLEMA MEDIANTE COMPUTADORA  REPRESENTACION GRAFICA DE ALGORITMOS  PSEUDOCODIGO 28/06/2013 33 .

28/06/2013 34 .2.1 OBJETIVO  EXPONER LOS CONOCIMIENTOS INDISPENSABLES PARA EL APRENDIZAJE DE LA PROGRAMACION.

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

36  Una 28/06/2013 . junto con una descripción detallada de entrada y salida. son los requisitos más importantes para una solución eficaz.2. buena definición del problema.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.

3 ANALISIS DEL PROBLEMA cont. 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 .2. 1.

Análisis del Problema Definicióndel Problema Especificaciones de entrada Especificaciones de salida .3 ANALISIS DEL PROBLEMA cont. 2. Que datos se necesitan para resolver el problema.2.

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

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

.2.  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).4 DISEÑO DEL ALGORITMO cont.

2. Diseño del algoritmo Diseño descendente Refinamiento por pasos Herramientas de programación –diagramas de flujo -pseudocódigo .4 DISEÑO DEL ALGORITMO cont.

Especificaciones de entrada TOTAL = 0 NUM = 9 LIMITE = 90 Especificaciones de salida NUM.2.4 DISEÑO DEL ALGORITMO cont. TOTAL Definicióndel Problema Imprimir múltiplos de 9 y su suma siempre y cuando sea menor que 90 . así como su sumatoria.  Ejemplo: Determine a los números menores que 90 y múltiplos de 9.

2.4 DISEÑO DEL ALGORITMO cont. Diseño descendente Múltiplos de 9 Refinamiento por pasos a) Num=9 b) Print num c) Num <= 90 regresar a) Herramientas de programación d) Num=+9 Sumatoria Total=+num .

4 DISEÑO DEL ALGORITMO cont. 4. 3. 7. Inicio Total=0. Limite=90 Print Num Total=Total+Num Si Num <= Limite entonces Num=Num+9 y regresar a 3 Print Total Fin . 1. 6.2. 5. 2. Num=9.

Lea e imprima una serie de números distintos de cero. El algoritmo terminará con un valor que no se debe imprimir .tarea 1. 3. Determine el máximo común divisor para dos números enteros. Determine si una palabra es un palíndromo. 2. Finalmente obtenga la cantidad de valores leídos. .

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

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

Los métodos usuales para representarlo son: Diagrama de flujo Lenguaje de especificación de algoritmo .2. 2.6 REPRESENTACION GRAFICA DE LOS ALGORITMOS  1.

6 REPRESENTACION GRAFICA DE LOS ALGORITMOS cont .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.2.

ESTRUCTURA DE UN PROGRAMA .

.Concepto de Programa Conjunto de instrucciones que producirán la ejecución de una determinada tarea. Esencialmente es un medio para lograr un fin.

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

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

Partes de un programa concepto de caja negra Entrada Algoritmo Salida .

Tipos de Instrucciones (acciones que resuelven un problema)  De inicio / fin.  De escritura.  De asignación.  De bifurcación. .  De lectura.

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

Otros elementos……  Iteraciones.  Interruptores.  Contadores. Repetitivas. Selectivas.  Estructuras: Secuenciales.  Acumuladores. .

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 .

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

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

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.

Componentes de un algoritmo Algoritmo Cabecera del programa Sección de declaración Sección de acciones .

PROGRAMACIÓN ESTRUCTURADA .

.  Programación  Programación .Técnicas de Programación. estructurada: Programación de cada módulo mediante métodos estructurados.. modular: Descomposición del problema en módulos.

a excepción de sus propios subsubmódulos y al módulo principal.  Dicho módulo primario se divide en submódulos. 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. que a su vez ejecutan una tarea única y podrán codificarse de manera independiente de cualquier otra actividad.Características de la programación modular  Todo programa tiene un módulo principal. .

 La descomposición de un programa podría implemetarse así:      Módulo principal.Consideraciones ……. 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 .

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

capaces de ser ejecutada por una computadora y sus respectivas instrucciones.Recursos Abstractos  Consiste en descomponer una determinada acción compleja en un número de acciones más simples. .

Diseño Descendente TOP-DOWN DESIGN  Esta metodología efectúa una relación de refinamiento entre las distintas etapas de estructuración. mediante entradas y salidas de información. de modo que se relacionen unas con otras. de modo que se pueda considerar cada estructura desde dos puntos de vista: qué hace y cómo lo hace .  Descompone el problema en etapas o estructuras jerárquicas.

Diseño Descendente Desde el exterior …. ..

.Diseño Descendente Desde el interior …. .

posee un solo punto de entrada y salida. todas las instrucciones son ejecutables y no existen bucles infinitos. y  repetitivas.Estructuras básicas Teorema de la programación estructurada: Un programa propio es aquel que cumple las siguientes características:  secuenciales. se puede recorrer toda la estructura del programa modular.  selectivas. .

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

FIN .

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->