LENGUAJE DE DISEO DE ALGORITMOS - PowerPoint PPT Presentation

1 / 48
About This Presentation
Title:

LENGUAJE DE DISEO DE ALGORITMOS

Description:

... nica instrucci n inicial y dada una instrucci n en particual es ... Dadas las siguientes acciones primitivas: Llenar con agua de la canilla una botellita ... – PowerPoint PPT presentation

Number of Views:30
Avg rating:3.0/5.0
Slides: 49
Provided by: alejandr65
Category:

less

Transcript and Presenter's Notes

Title: LENGUAJE DE DISEO DE ALGORITMOS


1
Resolución de Problemas y AlgoritmosSonia Rueda
Departamento de Ciencias e Ingeniería de la
Computación UNIVERSIDAD NACIONAL DEL SUR 2009
2
Planes de Estudios
Ingeniería en Sistemas de Computación

3
Planes de Estudios
Licenciatura en Ciencias de la Computación

4
Planes de Estudios
Ingeniería en Sistemas de Computación
Licenciatura en Ciencias de la Computación
Matemática y Física
Teoría de Cs. De la Comp.
Programación
  • Resolución de Problemas y Algoritmos
  • Introducción a la Programación Orientada a
    Objetos
  • Estructuras de Datos
  • Tecnología de Programación

Aplicaciones
Sistemas
Ingeniería de Software

5
Objetivos de las Materias de Programación
  • Aprender Contenidos Conceptuales
  • Desarrollar Competencias
  • ABSTRACCIÓN


6
Objetivos de RPA
  • Diseñar algoritmos para resolver problemas de
    pequeña escala
  • Implementar los algoritmos en un lenguaje de
    programación procedural.

Contenidos de RPA
  • Conceptos básicos de computación
  • Principios y técnicas de la programación
    estructurada, el diseño top-down y el
    refinamiento paso a paso.
  • Lenguaje de programación Pascal


7
Problemas
Un problema es una situación que plantea una
discrepancia entre un estado inicial y un estado
final o meta. Un problema implica un desafío y
requiere de cierto grado de creatividad. Puede
pensarse como un proceso de búsqueda. Si un
detective tiene que hallar el responsable de un
crimen seguramente va a tener pautas a seguir y
estrategias para aplicar, sin embargo no existe
un método infalible que le permita hallar la
solución. Para resolver quién cometió el crimen
puede intentar resolver otros problemas
relacionados como cuándo, cómo, dónde. Cada una
de las respuestas irá restringiendo la búsqueda
de la solución.

8
Problemas
La directora de una escuela desea organizar la
fiesta para los 98 egresados de Polimodal. El
evento se realizará en el gimnasio el primer
sábado de diciembre, el valor de la tarjeta no
deberá superar los 80 y se espera la asistencia
de unos 300 familiares y 30 docentes.
Existen un gran número de soluciones posibles.
Algunas propuestas pueden constituir una
solución para algunas personas y no ser válidas
para otras. La especificación es imprecisa, no
establece restricciones rigurosas que permitan
reconocer si una propuesta es una solución es
válida. Nos interesan los problemas para los
cuales es posible decidir si se ha hallado la
solución de manera objetiva.

9
Problemas
En la figura, ABCE es un rectángulo de 80 cm de
perímetro. La longitud del lado CE es cuatro
veces la de BC. El triángulo CDE es isósceles y
tiene 86 cm de perímetro, Cuál es el perímetro
de la figura ABCDE?
La especificación es precisa. La solución es
única y objetiva. El procedimiento puede variar,
probablemente comience con un cambio de notación

10
Problemas
En la figura, ABCE es un rectángulo de 80 cm de
perímetro. La longitud del lado CE es cuatro
veces la de BC. El triángulo CDE es isósceles y
tiene 86 cm de perímetro, Cuál es el perímetro
de la figura ABCDE?
El perímetro del rectángulo es EA AB BC EC
80 cm Si llamamos x a BC la expresión es
entonces x 4 x x 4 x 80 cm x 8 cm EC
40 cm. Y el perímetro del CDE es 86 cm. ED
DC 46 cm. El perímetro es ED DC CB AB
EA 46 8 40 8

11
Problemas
En un campamento, los chicos tienen dos baldes,
uno de 4 litros de capacidad y otro de 9. Tienen
que lograr recoger en el balde más grande,
exactamente 5 litros de agua del río. Cómo
pueden hacerlo?
En este problema el enunciado especifica el
estado inicial, la capacidad de los baldes es de
4 y 9 litros, y también el estado final, se desea
disponer de exactamente 5 litros de agua en el
balde más grande. Hallar la solución implica
encontrar una secuencia de pasos en los cuales se
cargue y se descargue agua entre los baldes o
entre un balde específico y el río, hasta
obtener 5 litros. Es un problema? Es posible
objetivamente decidir si una secuencia es una
solución? Hay varias soluciones posibles?

12
Problemas
En un campamento, los chicos tienen dos baldes,
uno de 4 litros de capacidad y otro de 9. Tienen
que lograr recoger en el balde más grande,
exactamente 5 litros de agua del río. Cómo
pueden hacerlo?
Llenar el balde de 9 l.
Llenar el balde de 4 l.
Llenar B4
Llenar B9

13
Problemas
En un campamento, los chicos tienen dos baldes,
uno de 4 litros de capacidad y otro de 9. Tienen
que lograr recoger en el balde más grande,
exactamente 5 litros de agua del río. Cómo
pueden hacerlo?
Acciones
Llenar B9

14
Problemas
En un campamento, los chicos tienen dos baldes,
uno de 4 litros de capacidad y otro de 9. Tienen
que lograr recoger en el balde más grande,
exactamente 5 litros de agua del río. Cómo
pueden hacerlo?
Acciones
Transvasar de B9 a B4

15
Problemas
En un campamento, los chicos tienen dos baldes,
uno de 4 litros de capacidad y otro de 9. Tienen
que lograr recoger en el balde más grande,
exactamente 5 litros de agua del río. Cómo
pueden hacerlo?
Acciones
Vaciar B9

16
Problemas
En un campamento, los chicos tienen dos baldes,
uno de 4 litros de capacidad y otro de 9. Tienen
que lograr recoger en el balde más grande,
exactamente 5 litros de agua del río. Cómo
pueden hacerlo?
Llenar B9

17
Problemas
En un campamento, los chicos tienen dos baldes,
uno de 4 litros de capacidad y otro de 9. Tienen
que lograr recoger en el balde más grande,
exactamente 5 litros de agua del río. Cómo
pueden hacerlo?
Transvasar B9 a B4

18
Problemas
En un campamento, los chicos tienen dos baldes,
uno de 4 litros de capacidad y otro de 9. Tienen
que lograr recoger en el balde más grande,
exactamente 1 litros de agua del río. Cómo
pueden hacerlo?

19
Problemas
Llenar B9 Transvasar B9 a B4 Vaciar B4 Transvasar
B9 a B4
  • 0 9
  • 4 5
  • 0 5
  • 4 1

Traza
Algoritmo

20
Problemas
En un campamento, los chicos tienen dos baldes,
uno de 4 litros de capacidad y otro de 9. Tienen
que lograr recoger en el balde más grande,
exactamente 7 litros de agua del río. Cómo
pueden hacerlo?

21
Problemas
Llenar B4 Transvasar B4 a B9 Llenar B4 Transvasar
B4 a B9 Llenar B4 Transvasar B4 a B9 Vaciar
B9 Transvasar B4 a B9 Llenar B4 Transvasar B4 a
B9
4 0 0 4 4 4 0 8 4 8 3 9 3 0 0
3 4 3 0 7

22
Problemas
Dos equipos de una planta industrial están
conectados a sensores que efectúan controles
regularmente. En el primer equipo, el control se
realiza cada 50 minutos y en el otro, cada 30. Si
el último se realizó en ambos equipos a las
1830, Cuándo volverá a realizarse en forma
simultánea en los dos?
En este problema el enunciado especifica con
precisión el estado inicial, el último control
simultáneo se realizó 1830 y describe las
características del estado final sin
especificarlas explícitamente. Hallar la
solución implica calcular el horario del próximo
control simultáneo partiendo del estado inicial y
sabiendo la frecuencia con que actúa cada sensor.
Existe una única solución pero varias maneras de
llegar a ella.

23
Resolución de Problemas
Los equipos de una planta industrial están
conectados a sensores que efectúan controles
regularmente. Dados dos equipos en particular y
sabiendo que en uno de ellos el control se
realiza cada N minutos y en otro cada M minutos.
Describa cómo calcular a qué hora se realizará el
próximo control en forma simultánea sabiendo que
la última vez que sucedió la hora era H.
El enunciado es muy similar al anterior, pero
especifica ahora una clase de problemas. La
solución no es hallar un horario específico, sino
un procedimiento, un algoritmo para resolver una
clase de problemas.

24
Algoritmos
  • Diseñar algoritmos para resolver problemas de
    pequeña escala

Un algoritmo es una secuencia de instrucciones
que permite resolver un problema. Es una
definición general, no está específicamente
ligada a la programación. En una secuencia de
instrucciones existe una única instrucción
inicial y dada una instrucción en particual es
posible determinar con precisión, cuál es la que
le sigue. De acuerdo a esta definición una
receta es un algoritmo, una partitura musical o
las instrucciones para armar una bicicleta
también lo son.

25
Algoritmos
  • Algoritmo Recargar Celular con tarjeta
  • Raspá suavemente para descubrir el código de
    seguridad de tu tarjeta.
  • Marcá 123SND
  • Si el sistema no contesta repetir la llamada
  • Si contesta, cuando el sistema solicite la opción
    de recarga, ingresala.
  • Ingresá el código y recibirás el nuevo saldo.


26
Algoritmos
Algunas instrucciones hacen referencia a otras
instrucciones, las llamamos instrucciones de
control Si el sistema no contesta repetir la
llamada Algunas instrucciones pueden resultar
ambiguas Raspá suavemente para descubrir el
código de seguridad de tu tarjeta. Raspá
suavemente sobre la banda negra para descubrir el
código de seguridad de tu tarjeta.

27
Algoritmos
  • Receta Mousse de Chocolate
  • 200 gramos de manteca150 gramos de chocolate8
    huevos separando las yemas de las claras8
    cucharadas de azúcar
  • Derretir la manteca y fuera del fuego agregar el
    chocolate, mezclar bien.
  • Batir las yemas con el azúcar y cuando estén
    blancas agregar la mezcla de manteca y chocolate.
  • Batir las claras a punto nieve e incorporarlas a
    la preparación anterior en forma suave.
  • Colocar en un bol y llevar a la heladera.


28
Algoritmos
Un algoritmo (como la receta) tiene un autor y un
ejecutor. Las instrucciones que pueden ser
comprendida y ejecutadas directamente son
acciones primitivas. Cuando una instrucción no es
una acción primitiva, para que el ejecutor pueda
interpretarla debe disponer de un algoritmo que
le indique qué hacer. El autor tiene que
conocer el repertorio de acciones primitivas del
ejecutor para poder cuando alcanzó una solución
ejecutable.

29
Algoritmos
  • Receta Punto Nieve
  • claras de huevo según receta
  • 3 cucharadas de azúcar por cada clara
  • 1 pizca de sal
  • Colocar todas las claras en un recipiente muy
    limpio y seco.
  • Agregar una pizca de sal
  • Batir enérgicamente agregando el azúcar
    lentamente hasta que al levantar el batidor la
    mezcla quede adherida a él y no caiga sobre el
    recipiente.

Una instrucción es comprensible si podemos
realizarla directamente (es una acción primitiva)
o existe un algoritmo que nos indica qué hacer.

30
Algoritmos
Consideremos el problema de enseñarle a un niño a
buscar palabras en el diccionario. La tarea de
enseñar a un grupo se complica cuando los alumnos
tienen diferentes repertorios de acciones
primitivas. Qué es lo mínimo que tiene que saber
un niño para que le podamos explicar cómo buscar
una palabra en el diccionario?

31
Algoritmos
Algoritmo Buscar en el diccionario la definición
de receta. Abrir el diccionario y considerar la
primera palabra definida Leer la palabra Si la
palabra leída es receta Leer la definición y
Terminar Sino, si hay más palabras
Avanzar a la siguiente palabra definida y
repetir desde la segunda instrucción Sino
Terminar
Debemos saber si abrir el diccionario, leer una
palabra, comparar dos palabras, etc. son acciones
primitivas. Hay dos formas de Terminar, en una
la búsqueda es exitosa, en la otra no. Podemos
mejorar la solución.

32
Algoritmos
Algoritmo Buscar en el diccionario la definición
de receta. Abrir el diccionario y considerar la
primera palabra definida Leer la palabra Si la
palabra leída es receta Leer la definición y
Terminar Sino, si la palabra leída es mayor que
receta Terminar Sino, si
hay más palabras Avanzar a la
siguiente palabra definida y repetir
desde la segunda instrucción
Sino Terminar
Podemos generalizar este algoritmo

33
Algoritmos
Algoritmo Buscar en el diccionario la definición
de una palabra P. Abrir el diccionario y
considerar la primera palabra definida Leer la
palabra Si la palabra leída es igual a la palabra
P Leer la definición y Terminar Sino, si la
palabra leída es mayor que la palabra P
Terminar Sino, si hay más palabras
Avanzar a la siguiente palabra
definida y repetir desde la segunda
instrucción Sino
Terminar

34
Algoritmos
P es una variable, en la definición del algoritmo
denota a cualquier palabra. Cuando el algoritmo
sea ejecutado P se refiere a una palabra
específica. La introducción de esta variable
permite que el algoritmo resuelva una clase de
problemas. Podemos hallar un algoritmo más
eficiente para resolver esta clase de problemas.
Cuando la maestra enseña a buscar una palabra en
el diccionario usa un ejemplo específico, pero su
intención es que aprendan a hacerlo para
cualquier palabra.

35
Algoritmos
Algoritmo Buscar en el diccionario la definición
de una palabra P. Abrir el diccionario
adecuadamente y considerar una palabra definida
en particular Leer la palabra considerada Si la
palabra considerada es igual a la palabra P
Leer la definición y Terminar Sino, si la
palabra leída es mayor que la palabra P
Descartar esa palabra y todas las que le
siguen Sino Descartar
esa palabra y todas las anteriores Si
quedan palabras Buscar en el resto del
diccionario Sino Terminar

36
Algoritmos
Qué significa Abrir el diccionario
adecuadamente? Para saber si hemos resuelto un
problema o no tenemos que conocer el repertorio
de acciones primitivas.
La solución al problema de los baldes es también
un algoritmo. Las acciones primitivas son Llenar,
Transvasar, Vaciar. Cada solución propuesta
consideraba baldes de 4 y 9 litros y un objetivo
específico, obtener 5, 1 o 7 litros en el balde
mayor. Encontrar un único algoritmo general sería
muy complejo

37
Algoritmos
  • Dadas las siguientes acciones primitivas
  • Llenar con agua de la canilla una botellita
  • Trasvasar el agua de una botellita a un bidón
  • Escribir un algoritmo que permita llenar un bidón
    de 3 litros usando botellitas de medio litro.


38
Algoritmos
Llenar botellita Transvasar botellita al
bidón Llenar botellita Transvasar botellita al
bidón Llenar botellita Transvasar botellita al
bidón Llenar botellita Transvasar botellita al
bidón Llenar botellita Transvasar botellita al
bidón Llenar botellita Transvasar botellita al
bidón

39
Algoritmos
  • Dadas las siguientes acciones primitivas
  • Llenar con agua de la canilla una botellita
  • Trasvasar el agua de una botellita a un bidón
  • Y una instrucción de control
  • Repetir n veces una secuencia de acciones
  • Escribir un algoritmo que permita llenar un bidón
    de 3 litros usando botellitas de medio litro.

La instrucción repetitiva permite abreviar el
algoritmo.

40
Algoritmos
Repetir 6 veces Llenar botellita
Transvasar botellita al bidón

41
Algoritmos
  • Dadas las siguientes acciones primitivas
  • Llenar con agua de la canilla una botellita
  • Trasvasar el agua de una botellita a un bidón
  • Y una instrucción de control
  • Repetir n veces una secuencia de acciones
  • Escribir un algoritmo que permita llenar un bidón
    de M litros usando botellitas de medio litro.

La solución es una generalización del algoritmo
diseñado para el problema anterior.

42
Algoritmos
Repetir M2 veces Llenar botellita
Transvasar botellita al bidón

43
Algoritmos
  • Nos interesan los algoritmos
  • construidos a partir de instrucciones
    comprensibles, esto es, son acciones primitivas o
    podemos definir un algoritmo que indica qué
    hacer.
  • resuelven una clase de problemas
  • A medida que avancemos en las materias de
    programación veremos que cuando existen varios
    algoritmos alternativos nos interesará elegir uno
    que tenga ciertas propiedades, como por ejemplo
    legibilidad y eficiencia.


44
Algoritmos
Un algoritmo es una secuencia de instrucciones
que describen cómo resolver una clase de
problemas. Las instrucciones deben ser
comprensibles para quien ejecuta el algoritmo.

Es una definición algo más estricta. Para decidir
si una secuencia de instrucciones es un algoritmo
consideramos que las instrucciones sean
comprensibles para el que lo ejecuta y que pueda
aplicarse en diferentes circunstancias.

45
Lenguaje de Programación
  • Diseñar algoritmos para resolver problemas de
    pequeña escala
  • Implementar los algoritmos en un lenguaje de
    programación procedural.

Implementar un algoritmo significa traducirlo a
un lenguaje de programación.

46
Lenguaje de Programación
Un lenguaje de programación es una notación
formal que puede ser interpretada y ejecutada por
una computadora. En un lenguaje de programación
procedural el orden en el cual se ejecutan las
instrucciones lo determina el programador. Un
programa procedural es un algoritmo escrito en un
lenguaje de programación procedural. En esta
materia sólo implementaremos programas
procedurales, de modo que cuando digamos
programa, estaremos diciendo implícitamente
programa procedural.

47
Sobre las presentaciones en clase
  • El objetivo de estas presentaciones es
    simplemente agilizar la clase y permitir al
    alumno concentrarse en el tema y no tener que
    estar pendiente de copiar del pizarrón
  • Aunque las presentaciones pueden imprimirse en
    general los efectos visuales son importantes para
    entender el tratamiento del tema abordado.
  • No reemplazan a la clase. Son sólo una guía
    dentro del desarrollo de la clase.

48
Información adicional Inglés
  • Tanto la Ingeniería como en la Licenciatura
    requieren tener aprobado el examen de suficiencia
    de idioma inglés para poder cursar alguna materia
    de tercer año.
  • Los alumnos interesados en hacer el curso de
    lectura comprensiva de inglés deben anotarse en
    la CARRERA IDIOMAS y luego en el nivel que les
    corresponda en los puestos de autogestión antes
    de que termine la inscripción en las materias.
  • Otros detalles consultar en el departamento de
    Humanidades.
Write a Comment
User Comments (0)
About PowerShow.com