71
Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS PROFESOR: SIRACUSA EMILIANO MARTÍN Página Web: www.esiracusa.jimdo.com

Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

  • Upload
    kirby

  • View
    55

  • Download
    1

Embed Size (px)

DESCRIPTION

Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS. PROFESOR: SIRACUSA EMILIANO MARTÍN Página Web: www.esiracusa.jimdo.com. Problemas modelos y abstracciones. Buscar la solución a un problema es buscar un MODELO. - PowerPoint PPT Presentation

Citation preview

Page 1: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Módulo 2

ALGORITMOS Y ESTRUCTURA DE DATOS

PROFESOR: SIRACUSA EMILIANO

MARTÍN

Página Web: www.esiracusa.jimdo.com

Page 2: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Problemas modelos y abstracciones

• Buscar la solución a un problema es buscar un MODELO.

• Un modelo es una versión simplificada de la realidad con datos relevantes del problema.

• Los modelos se construyen con ayuda de abstracciones.

Page 3: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Algoritmo

• Buscar la solución a un problema es buscar un MODELO.

• Un modelo es una versión simplificada de la realidad con datos relevantes del problema.

• Los modelos se construyen con ayuda de abstracciones.

Page 4: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Ejemplo:

Cocinar un huevo frito:

1.Buscar la sartén.

2.Colocarle aceite.

3.Colocar la sartén en el fuego.

4.Buscar un hueva.

5.Cascar el huevo.

6.Colocar el interior del huevo en la sartén.

7.Cocinar el huevo.

8.Sacar el huevo de la sartén.

9.Retirar la sartén del fuego.

10.Finalizar

Page 5: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Especificación del algoritmo: Especificación del algoritmo: Sucesión de pasos o instrucciones que representan la resolución de una clase de problemas. Es una entidad estática.

Ejecución del algoritmo: Ejecución del algoritmo: Proceso de llevar a cabo los pasos indicados en la especificación.

Algoritmo: Algoritmo: Secuencia de pasos o especificaciones que cundo se ejecutan, produce resultados y termina luego de una cantidad finita de tiempo.

Page 6: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

-Para cada paso del algoritmo, el siguiente está definido sin ambigüedad.

-El orden de ejecución se establece en la especificación.

-Todo algoritmo tiene un punto inicial y al menos un punto final.

-La resolución del problema frecuente mente se divide en distintas secciones y la terminación del proceso depende de la sección que se ha ejecutado

Page 7: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Ejemplo:

0. Observar si hay algún huevo.

0. Si hay por lo menos un huevo entonces realizar las acciones de 1 a 10, sino , pensar en otra comida y finalizar.

Ejemplo:

Cocinar un huevo frito:

1.Buscar la sartén.

2.Colocarle aceite.

3.Colocar la sartén en el fuego.

4.Buscar un hueva.

5.Cascar el huevo.

6.Colocar el interior del huevo en la sartén.

7.Cocinar el huevo.

8.Sacar el huevo de la sartén.

9.Retirar la sartén del fuego.

10.Finalizar

Page 8: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

1. Buscar la sartén.

2. Colocarle aceite.

2’ Buscar la botella de aceite de girasol.

2’’Colocar 1/3 cm3 de aceite en la sartén.

1. Colocar la sartén en el fuego.

2. Buscar un hueva.

3. Cascar el huevo.

4. Colocar el interior del huevo en la sartén.

5. Cocinar el huevo.

6. Sacar el huevo de la sartén.

7. Retirar la sartén del fuego.

8. Finalizar

Page 9: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Ejemplo:Ejemplo:

Juan suele ir de campamento amenudeo y como Juan suele ir de campamento amenudeo y como es muy metódico y consume tres rebanadas de es muy metódico y consume tres rebanadas de pan en su desayuno. Habitualmente trata de pan en su desayuno. Habitualmente trata de minimizar lo que lleva en su mochila. Su minimizar lo que lleva en su mochila. Su parrilla no es muy grande, y por ejemplo solo parrilla no es muy grande, y por ejemplo solo entran tres rebanadas de pan que siempre entran tres rebanadas de pan que siempre consume, las cuales por supuesto siempre se consume, las cuales por supuesto siempre se doran de un solo lado.doran de un solo lado.

Al desayuno hace tostadas en la parrilla y Al desayuno hace tostadas en la parrilla y quiere saber cuanto es el mínimo que tardaría quiere saber cuanto es el mínimo que tardaría en hacer las tostadas.en hacer las tostadas.

Como no le gustan ni muy tostadas ni muy Como no le gustan ni muy tostadas ni muy blancas, descubrió que necesita 30 segundos blancas, descubrió que necesita 30 segundos para que la tostada este lista de un lado.para que la tostada este lista de un lado.

Tarda 5 segundos en sacarla, y 3 segundos en Tarda 5 segundos en sacarla, y 3 segundos en dar vuelta una rebanada (Si son dos rebanadas dar vuelta una rebanada (Si son dos rebanadas puede hacer esta tarea simultáneamente)puede hacer esta tarea simultáneamente)

Page 10: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Base lunar Alfa La Base Alfa con dos robots, Pipo y Kuki, y abundantes

baterías. En la Base Beta no hay baterías.

Un robots necesita viajar 9 días para llegar de una a la otra base.

Un robot necesita baterías con carga para poder moverse.

Cada robots puede cargar 12 baterías (cada batería dura un día). Los robots pueden dejar alguna de sus baterías (no todas) en suelo lunar, y también recogerlas de el.

Se quiere hacer llegar un mensaje a la Base Beta en menos de 10 días usando los robots, que deben regresar a Alfa.

Elabore un plan para que los robots cumplan su Elabore un plan para que los robots cumplan su tarea.tarea.

Page 11: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Base lunar Alfa

Base Base AlfaAlfa

Base Base BetaBeta

Suelo lunar9 Días

Pipo

Kuki

Page 12: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Las acciones conocidas que emplean en la especificación de un algoritmo se llaman acciones primitivas.

Para que un algoritmo pueda ser interpretado y ejecutado debe estar expresado por medio de acciones primitivas que puedan ser comprendidas por el interlocutor, persona o máquina que las llevara a cabo.

Un algoritmo puede ser transformado en un programa, cuando se traduce a instrucciones ejecutables por una computadora.

Un programa está formado por un conjunto de acciones primitivas definidas por el lenguaje de programación que se utilice.

Page 13: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Lenguaje de diseño de algoritmos

Objetivos:

I.Servir de apoyo durante la resolución del problema.

II.Servir de etapa previa a la traducción a un lenguaje de programación.

III.Opción de elegir el lenguaje de programación que más se adecue a las primitivas especificadas en el algoritmo.

IV.Permitir la visón global del trabajo aunque lo estén desarrollando distintas personas.

Page 14: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Estructura de un algoritmo

Todo algoritmo se encabeza por un nombre elegido por la persona que lo escribe, al que se le precede la palabra algoritmo.

Ejemplo

Algoritmo Prueba

Todo algoritmo esta constituido por dos componentes claramente identificadas:

1- Los datos.

2- Las acciones.

Los datos: objetos que intervienen en la resolución del problema. Forman que intervienen en la resolución del problema. Forman el estado inicial y final del problema. Se llaman datos de entrada y de salida respectivamente

Page 15: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Los datos de algoritmo son objetos que representan a un conjunto de valores, tienen un nombre y asumen algún valor durante la ejecución del algoritmo.

Ejemplo:

A partir del número 3 obtengo el número 3.

A partir del número -5 obtengo el -6.

Objetos que intervienen en el problema:

El dato es un número.

Nombre del dato: número, x, num, etc.

Conjunto de valores que se representan: enteros.

Valores que se asumen: se establece durante la ejecución del algoritmo.

Page 16: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Algoritmo predecesor

Datos de entrada: un-numero

Datos de salida: otro-numero

Page 17: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Ejemplo1: Determinar el perímetro de un polígono regular, sabiendo la longitud de uno de sus lados y la cantidad de lados.

Algoritmo perímetro-polígono-regula

Datos de entrada: lado, cantidad-ladosDatos de salida: perímetro

Page 18: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Ejemplo2: Contar la cantidad de números primos entre un número natural y otro.

Algoritmo primos-entre-naturalesDatos de entrada: numreo1, numero2Datos de salida: cantidad-de-primos

Page 19: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Ejemplo3: Determinar si un año es bisiesto.

Algoritmo año-bisiestoDatos de entrada: añoDatos de salida: es-bisiesto

Page 20: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Precondición

Page 21: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Postcondición

Page 22: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Descripción de las acciones

Distinguiremos dos tipos de acciones

•Manipulación de datos: expresiones por medio de las cuales se obtiene valores. Esos valores pueden asignarse a los datos.

•Estructuras de control: Estructuras de control: Esquemas por medio de los cuales se establece el orden de ejecución.

Page 23: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Manipulación de datos

Page 24: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Manipulación de datos

Page 25: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Asignación: Operación que aplica un valor a un dato.

Forma general: nombre del dato expresión

Ejemplos:

Número 18

X a – b . C + n

Vale verdadero

Casi a=b

Manipulación de datos

Page 26: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Ejercicio: Escribir un algoritmo que calcule el área de un cuadrado considerando el lado.

Datos u objetos: lado, cuadrado, área.

Método área =lado . lado

Algoritmo área-cuadrado

Acciones

Dato de entrada: lado [real positivo]

Dato de salida: área [real positivo]

área lado . lado

Fin

Page 27: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Ejercicio: Escribir un algoritmo que calcule el área de un circulo considerando su radio.

Datos u objetos: circulo, radio, área.Método área =pi . radio2

Algoritmo área-circuloDato de entrada: radio [real positivo]Dato de salida: área [real positivo]

Acciones área pi . radio. radioFin

SoluciónSolución

Page 28: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

SoluciónSolución

Ejercicio: Escribir un algoritmo que calcule el área de un triángulo considerando la base y la altura.

Datos u objetos:, triángulo, área.Método área =base. Altura/2

Algoritmo área-triánguloDato de entrada: base, altura [real positivo]Dato de salida: área [real positivo]Acciones área base. Altura/2Fin

Page 29: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

-Secuencia: Secuencias de control implícita que establece que la ejecución del algoritmo se realiza desde la primera acción hacia la última. Este orden puede ser interrumpido por otra estructura de control.

-Condicional: Permite indicar las distintas acciones alternativas a ejecutarse que presentan resolución del problema para hallar las soluciones.

-Repetición: Permite indicar en una sola estructura las acciones durante la ejecución se deben reiterar.

Estructuras de control

Page 30: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

El orden en que se escribe las acciones de un algoritmo, es el orden en el que se van a ser llevadas a cabo.

El orden en que nosotros acostumbramos a escribir y a leer un texto es secuencial y es implícito, esto es, la frese anterior no indica expresamente cual es la siguiente que se debe leer, pero sabemos que es la que continua en el texto.

En un algoritmo, la secuencia es similar a la de un texto.

En esa secuencia puede ser interrumpida por otras estructuras de control.

Secuencia

Page 31: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Ejercicio: Escribir un algoritmo que calcule el perímetro de un cuadrado conociendo su diagonal.

SoluciónSolución

Page 32: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Ejercicio: Escribir un algoritmo que permita intercambiar los valores numéricos de dos datos.

Algoritmo intercambio-datos

Dato de entrada: dato1 dato2Dato de salida: dato1 dato2

dato-auxiliar dato1dato1 dato2dato2 dato-auxiliar

Fin

SoluciónSolución

Page 33: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Algunas acciones pueden llevarse a cabo para alguna instancia de una clase de programa o bien si cierta condición se satisfacen.

El condicional permite que una acción o conjunto de acciones se pueda ejecutar sólo bajo ciertas condiciones.

Ejemplo:

Si n>0

Entonces

n n-1

Estructuras de control Condicionadas

Page 34: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Si n>0

entonces

n n-1

si no

n n+1

Forma de la estructura de control condicional

Si EXPRESIÓN BOOLEANA

entonces

BLOQUE1

si no

BLOQUE2

Estructuras de control Condicionadas

Page 35: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Estructuras de control Condicionadas

Generalización Ejemplo

Si EXPRESIÓN BOOLEANA1 Si a>b

BLOQUE1 a b-1

Si EXPRESIÓN BOOLEANA2 a=b

BLOQUE2 a b-2

Si EXPRESIÓN BOOLEANA3 d d+5

BLOQUE3 a<b

… c b-a a a+b

Si EXPRESIÓN BOOLEANA n

BLOQUE n

La expresión booleana debe ser mutuamente excluyente

Page 36: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Estructuras de control Condicionadas

Si n>0 Si n>0 entonces

n n-1 n n-1

n=0 Si n=0 entonces

n n-2 n n-2

n<0 Si n<0 entonces

n n+1 n n+1

La estructura condicional a la izquierda no es equivalente a las tres estructuras de la derecha. Es decir en el caso de la izquierda solo contemplara una de las tres opciones posible mientras que la estructura de la derecha realizará tres evaluaciones sin considerar que sucedió antes y después.

Page 37: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Estructuras de control Condicionadas

Acciones si n >= m entonces

mayor n sino

mayor mFin

Page 38: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Estructuras de control Condicionadas

Ejemplo: Escribir un algoritmo que Ejemplo: Escribir un algoritmo que permita calcular lo que cobrará en permita calcular lo que cobrará en persona a la que se le ha reducido persona a la que se le ha reducido el sueldo en in 13% si con el sueldo en in 13% si con anterioridad cobra menos de 500 anterioridad cobra menos de 500 pesos, en un 15% si cobra menos pesos, en un 15% si cobra menos de 800 pesos y más o igual a 500, y un 18% si de 800 pesos y más o igual a 500, y un 18% si cobra más o igual de 800 pesos.cobra más o igual de 800 pesos.

Análisis del problema

Sueldo< 500 cobrara=sueldo-sueldo . 0,13800<=Sueldo< 500 cobrara=sueldo-sueldo . 0,15800<=Sueldo cobrara=sueldo-sueldo . 0,18

Page 39: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Estructuras de control Condicionadas

Algoritmo Descuento

Datos de entrada: sueldo [real positivo]Datos de salida: sueldo-nuevo [real positivo]

Acciones Si Sueldo< 500 sueldo-nuevo=sueldo-sueldo . 0,13

800<=Sueldo< 500 sueldo-nuevo=sueldo-sueldo . 0,15

800<=Sueldo sueldo-nuevo=sueldo-sueldo . 0,18Fin

Page 40: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Estructuras de control Condicionadas

Page 41: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Estructuras de control Condicionadas

Page 42: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Estructuras de control Condicionadas

Anidada

Si EXPRESIÓN BOOLEANA entonces BLOQUE1

si no BLOQUE2

Cada uno de los bloque puede ser una estructura condicionada

Si EXPRESIÓN BOOLEANA entonces Si EXPRESIÓN BOOLEANA entonces

BLOQUE1

si no BLOQUE2

si no Si EXPRESIÓN BOOLEANA

entonces

BLOQUE1

si no BLOQUE2

Page 43: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Estructuras de control Condicionadas Anidada

Algoritmo Descuento

Datos de entrada: sueldo [real positivo]Datos de salida: sueldo-nuevo [real positivo]

Acciones Si Sueldo< 500 entonces sueldo-nuevo=sueldo-sueldo . 0,13

si no Si 800<=Sueldo< 500 entonces sueldo-nuevo=sueldo-sueldo . 0,15 Si no

sueldo-nuevo=sueldo-sueldo . 0,18Fin

Page 44: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Estructuras de control Repetitivas

La repetición permite que un conjunto de acciones indicadas en la estructura se ejecute más de una vez,de acuerdo a determinadas condiciones.

Page 45: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Número fijo de repeticionesForma general de la estructura:

Repetir n veces

acción

Interpretación semántica:

La acción se repite tantas veces como lo indique el valor de n:0, 1, o más veces.

Ejemplo:

Repetir 10 veces

X x+1

Repetir n+2 veces

X x+1

Page 46: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Ejemplo: Escribir un algoritmo que permita sumar Ejemplo: Escribir un algoritmo que permita sumar todos los números naturales entre dos números todos los números naturales entre dos números dados, incluyendo éstos.dados, incluyendo éstos.

Si n=5 y m=13 suma=5+6+7+8+9+10+11+12+13=81

Si n=1 y m=5 suma=1+2+3+4+5=15

Para generar los números entre n y m tomamos un dato auxiliar.

auxiliar=5auxiliar=6=auxiliar+1auxiliar=7=auxiliar+1

auxiliar=13=auxiliar+1

Para acumular los valores de las sumas parciales tomamos suma.

suma=5suma=5+6=suma + auxiliarsuma=11+7=suma + auxiliar

suma=68+13=suma + auxiliar

Page 47: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Podemos escribir la siguiente sucesión de acciones

auxiliar auxiliar+1suma suma + auxiliar

Tantas veces como sea necesario para obtener el resultado final.

Usando la estructura de control repetitivaRepetir m-n veces

auxiliar auxiliar+1suma suma + auxiliar

Page 48: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Algoritmo Suma-de-naturales-sucesivos

Datos de entrada: n , m [Naturales]Datos de salida: suma [Natural]

Acciones

auxiliar nsuma auxiliar

Repetir m-n veces

auxiliar auxiliar+1 suma suma + auxiliar

Fin

Page 49: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Algoritmo Suma-de-naturales-sucesivos2

Datos de entrada: n , m [Naturales]Datos de salida: suma [Natural]

Acciones

auxiliar n suma 0

Repetir (m-n)+1 veces

suma suma + auxiliar auxiliar auxiliar+1

Fin

Page 50: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Ejercicio: Escribir un algoritmo que permita escribir Ejercicio: Escribir un algoritmo que permita escribir el factorial de un número.el factorial de un número.

=1 si n=0

n!

=1.2.3…n si n>0

Datos de entrada: nDatos de salida: el-factorial

Para obtener el factorial debo general los números desde 1 hasta n

factor factor+1

Page 51: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Algoritmo Factorial

Datos de entrada: numero [Natural]Datos de salida: el-factorial [Natural]

Acciones

el-factorial 1 factor 1

Repetir numero veces el-factorial el-factorial. Factor

factor factor+1Fin

Page 52: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Otra estructura repetitiva depende de una condición.

Repetir mientras condición acción

Interpretación semántica

-Se evalúa la condición, se dicho valor es verdadero se ejecuta la acción.

-Se repite lo anterior mientras la condición es Verdadera.

-En la condición participan datos que modifican su valor en la acción para que el ciclo termine.-La acción puede ejecutarse 0, 1 o más veces.

-Los datos que participan en la condición deben estar inicializados.

Page 53: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Ejemplo1:b 1a 3repetir mientras a<=b 2 veces a a-1

Ejemplo2:b 1a 3repetir mientras a<b 0 veces a a-1

Ejemplo1:b 1a 3repetir mientras a>b infinitas veces a a+1

Page 54: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Ejemplo: escribir un algoritmo que permita hallar el Ejemplo: escribir un algoritmo que permita hallar el menor múltiplo de un número m que sea mayor que menor múltiplo de un número m que sea mayor que un número n dado.un número n dado.

Sabemos que m<=n Supongamos que los números son 3 y 17.Los múltiplos de 3 son: 3, 6, 9, 12, 15, 18, …, el menor múltiplo de 3 mayor que 17 es 18.

Un intento de desarrollar un algoritmo:

Datos de entrada: n , m [Naturales]Datos de salida: múltiplo [Naturales]

Repetir mientras múltiplo < 17 Buscar nuevo múltiplo

Page 55: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Algoritmo MenorNumeroMayor Datos de entrada: n , m [Naturales, m<=n]Datos de salida: múltiplo [Naturales]

Acciones múltiplo m Repetir mientras múltiplo < =n

múltiplo múltiplo+m

Fin

Page 56: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Ejercicio: contar la cantidad de dígitos que posee Ejercicio: contar la cantidad de dígitos que posee un número natural dado.un número natural dado.

2456 cantidad de dígitos = 413425cantidad de dígitos = 5

Método para calcularlo:

Si vamos dividiendo el número por diez y contamos la cantidad de veces que lo dividimos, obtenemos la cantidad de dígitos.

1563879156387 1 vez15638 2 veces1563 3 veces156 4 veces15 5 veces1 6 veces0 7 veces

Page 57: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Algoritmo CantidadDigitos Datos de entrada: numero [Naturales y ‘0’]Datos de salida: cantidad [Naturales]

Acciones cantidad 1 Repetir mientras numero>9

numero numero/e 10 cantidad cantidad +1

Fin

Page 58: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Otra estructura que depende de una condición es:

repetir acción

hasta condición

Interpretación semántica

-Se ejecuta la acción y luego se evalúa la condición, si es falsa se ejecuta nuevamente la acción. Esto se repite hasta que la condición sea verdadera.

-La acción se ejecuta por lo menos una vez.

-En la estructura repetitiva, repetir-hasta se ejecutará la acción por lo menos una vez.

-En la condición deberá participar datos que sean modificados en la acción de manera que tal condición cambie su valor de verdad.

Page 59: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Ejemplo1:b 1a 3repetir 2 veces a a-1

hasta a<=bEjemplo2:

b 1a 3repetir 1 vez a a-1hasta a<b

Ejemplo1:b 1a 3repetir mientras a>b infinitas veces a a+1hasta a<=b

Page 60: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Ejercicio: Contar la cantidad de dígitos que posee Ejercicio: Contar la cantidad de dígitos que posee un número natural dado.un número natural dado.

Algoritmo Cantidad-de-dígitos

Datos de entrada: numero [Naturales y ‘0’]Datos de salida: cantidad [Naturales]

Acciones cantidad 0

Repetir numero numero/e 10 cantidad cantidad +1

mientras numero<0

Fin

SoluciónSolución

Page 61: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Estructuras de control repetitivas anidadas

Un estructura de control repetitiva puede ser también una estructura de control repetitiva. En este caso diremos que esta estructura se encuentra anidada en la otra.

Por ejemplo:

b 0

a 0

Repetir n veces

b b+1

Repetir m veces

a a+1

Page 62: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Ejemplo1:

b 0

a 0

Repetir mientras b<n

b b+1

Repetir m veces

a a+1

El siguiente ejemplo produce los mismos valores para a y b que el anterior.

Ejemplo2:

b 0

a 0

Repetir mientras b<n

b b+1

Repetir mientras a<m

a a+1

¿Presenta alguna variante en cuanto los resultados con respecto al Ejemplo 1?

Page 63: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

SoluciónSolución

Algoritmo SumaDatos de entrada: m, n [Naturales ]Datos de salida: suma [Naturales]Acciones i 1, suma1 0 Repetir n veces j 1, suma2 0

Repetir n vecessuma2 suma2+j3

j j+1

suma1 suma1+i2,suma2 i i+1Fin

Page 64: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Traza de un algoritmo

Una traza es un cuadro en el cual se plasman los datos Una traza es un cuadro en el cual se plasman los datos que están especificados en un algoritmo y el estado de que están especificados en un algoritmo y el estado de los datos en cada momento de la ejecución del los datos en cada momento de la ejecución del algoritmo.algoritmo.

El cuadro presenta una columna para fijar la acción que se está ejecutando en ese momento, una columna por cada uno de los datos que intervienen en el algoritmo, ya sean datos de entrada, de salida u otros, una columna que refleja el valor de verdad de la condición que se evaluada en alguna estructura de control condicional o repetitiva. La primera fila del cuadro contendrá los nombres de los ítems que representan las columnas. Las siguientes filas se irán completando a medida que se ejecutan cada una de las acciones. Cada línea representa la alteración que produce la ejecución de las acciones asociadas a ella. Las acciones que intervienen en el algoritmo estarán numeradas en orden creciente desde el 1, considerando el orden textual de la especificación del algoritmo, no el orden de ejecución.

Eventual mente estos ordenes podrán coincidir.

Page 65: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Traza de un algoritmo

Algoritmo Uno

DE: n

DS: p

Acciones

1) m 3.n

2) p n.2(m/2)

Fin

Traza Uno (3;p)

Acción Condición n m p

3

1 9

2 40,5

Estado inicial

Page 66: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Ejemplo: hacer una traza de Ejemplo: hacer una traza de

ejecución del algoritmo que ejecución del algoritmo que

permite obtener la suma de permite obtener la suma de

todos los divisores de un todos los divisores de un

número natural.número natural.

Algoritmo SumaDivisores

DE: n

DS: Suma

Acciones

1) i 1

2) suma 0

3) repetir mientras i<=n

4) si n//i=0

entonces

5) suma suma+i

6) i i+1

Fin

Acción Condición n i Suma

10

1 1

2 0

3 V

4 V

5 1

6 2

3 V

4 V

5 3

6 3

3 V

4 f

6 4

3 V

4 F

6 5

3 V

4 v

5 8

Page 67: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Ejemplo: hacer una traza de Ejemplo: hacer una traza de

ejecución del algoritmo que ejecución del algoritmo que

permite obtener la suma de permite obtener la suma de

todos los divisores de un todos los divisores de un

número natural.número natural.

Algoritmo SumaDivisores

DE: n

DS: Suma

Acciones

1) i 1

2) suma 0

3) repetir mientras i<=n

4) si n//i=0

entonces

5) suma suma+i

6) i i+1

Fin

Acción Condición n i Suma

5 8

6 6

3 V

4 F

6 7

3 V

4 F

6 8

3 V

4 f

6 9

3 V

4 v

6 10

3 V

4 v

5 18

6 11

3 f

Page 68: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Observando la traza podemos Observando la traza podemos

mejorar el método que hemos mejorar el método que hemos

empleado en resolver el problema, empleado en resolver el problema,

cambiando la condición del ciclo porcambiando la condición del ciclo por

1<= n/e2. De esta manera se realiza1<= n/e2. De esta manera se realiza

la mitad de las iteraciones.la mitad de las iteraciones.

Algoritmo SumaDivisores

DE: n

DS: Suma

Acciones

1) i 1

2) suma n

3) repetir mientras i<=n/e2

4) si n//i=0

entonces

5) suma suma+i

6) i i+1

Fin

Acción Condición n i Suma

10

1 1

2 10

3 V

4 V

5 11

6 2

3 V

4 V

5 13

6 3

3 V

4 F

6 4

3 V

4 F

6 5

3 V

4 V

5 18

6 6

3 F

Page 69: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Ejemplo: Algoritmo para Ejemplo: Algoritmo para calcular el divisor común calcular el divisor común menor entre dos números menor entre dos números naturales. naturales.

Algoritmo DCMDos

DE: n,m

DS: dcm

Acciones

1) repetir

2) resto m// n

3) m n

4) n resto

entonces

5)Hasta resto =0

6)dcm m

Fin

Acción Condición n m resto dcm

28 8

1 2

2 8

3 2

4 F

1 0

2 2

3 0

4 V

5 2

Page 70: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Ejemplo: Algoritmo para Ejemplo: Algoritmo para calcular el divisor común calcular el divisor común menor entre dos números menor entre dos números naturales. naturales.

Algoritmo DCMDos

DE: n,m

DS: dcm

Acciones

1) repetir

2) resto m// n

3) m n

4) n resto

entonces

5)Hasta resto =0

6)dcm m

Fin

Acción

Condición n m resto dcm

26 13

1 v

2 0

3 13

4 0

5 V 0

6 13

Page 71: Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

López García, Guillermo (ed.) (2005). El ecosistema digital: Modelos de comunicación, nuevos medios y público en Internet. Valencia: Servei de Publicacions de la Universitat de València. Disp.

Snyder, Ilana –compiladora (2004): Alfabetismos digitales. Comunicación,innovación y educación en la era electrónica. Málaga: Aljibe Stallman, Richard M. (2004) Software libre para una sociedad libre. Introducción de Lawrence Lessig.

Curso Nivelación 2011 - Universidad Nacional de Chilecito Lic. en Sistemas - Ing. En Sistemas – Tecnicatura Univ. Desarrollo Aplic. WEB.

Agustin Fonseca- Juegos de mente – Memoria, Cálculo, Memoria, Agilidad Mental. Martín Sierra, Abel Martín Álvarez, Ángel Aguirre Pérez- Aula Matemática digital 2. Ing. Gábor loerines, ing. Francisco Chaves-Micro computación Tomo 2- Nahel

Ediciones. Adrián Paenza- Matemática... ¿Estás Ahí? Adrián Paenza- Matemática... ¿Estás Ahí? Episodio 2 Adrián Paenza- Matemática... ¿Estás Ahí? Episodio 3,14. Moroni Norma-Apunte de R.P.A (2003) –U.N.S.

Bibliografía