Page 1

Universidad de La Punta Tecnicatura Desarrollador de Software

Curso de Ingreso 2012 Resoluci贸n de Problemas Modulo I Clase II


Resolución de Problemas Unidad 1 

Temas a tratar 

Elementos que componen un algoritmo:     

 

Secuencia de Acciones, Selección, Repetición Iteración. Importancia de la indentación en las estructuras de control. Conclusiones. Ejercitación.


Elementos que componen un algoritmo  

Secuencia de Acciones Una secuencia de acciones es un algoritmo, o una parte de un algoritmo, formado por una serie de instrucciones que se ejecutan una a continuación de otra.

Acción 1

Acción 2

Acción 3


Elementos que componen un algoritmo 

Ejemplo: un algoritmo que permita a un robot subir 4 escalones  

     

LevantaPieIzquierdo SubirUnEscalón. LevantaPieDerecho SubirUnEscalón.. LevantaPieIzquierdo SubirUnEscalón. LevantaPieDerecho SubirUnEscalón.


Elementos que componen un algoritmo 

Ejemplo: un algoritmo para hacer un Sandwich de Jamón y queso Precondición: Tener pan, jamón, queso  Cortar el pan  Tomar una rodaja de pan  Poner jamón  Poner queso  Tapar con otra rodaja de pan

Si quisiera agregar la instrucción “poner mayonesa”, en que lugar del algoritmo iría? ¿Se modificarían las precondiciones del mismo, cómo?


Elementos que componen un algoritmo  

Se denomina flujo de control a través de un algoritmo al orden en el cual deben ejecutarse pasos individuales. Hasta ahora se ha trabajado con flujo de control lineal, o sea, la ejecución secuencial de pasos, desde el primero hasta el ultimo. Las estructuras de control son construcciones algorítmicas que alteran directamente el flujo de control lineal del algoritmo. Con ellas es posible seleccionar un determinado sentido de acción de entre un par de alternativas específicas o repetir automáticamente un grupo de instrucciones.


Elementos que componen un algoritmo - Selección  

Selección La escritura de soluciones a través de una secuencia de ordenes requiere conocer a priori las diferentes alternativas que se presentaran en la resolución del problema. Lamentablemente, es imposible contar con esta información antes de comenzar la ejecución de la secuencia de acciones.


Elementos que componen un algoritmo - Selección Selección  A través de la selección se incorpora, a la especificación del algoritmo, la capacidad de decisión de esta forma será posible seleccionar una de dos alternativas de acción posibles durante la ejecución del algoritmo.

Falso

2. Acciones si la condición es falsa

Evaluar condición

Verdadero

1. Acciones si la condición es verdadera


Elementos que componen un algoritmo - Selección 

Por lo tanto, el algoritmo debe considerar las dos alternativas, es decir, que hacer en cada uno de los casos. La selección se notará de la siguiente forma: si (condición) acción o acciones a realizar si la condición es verdadera (1) sino acción acciones a realizar si la condición es falsa (2)

 

Observe la introducción de las palabras si y sino, cada vez que necesitemos indicar una selección, colocaremos si, en el caso que haya alguna acción a realizar si la condición es falsa, la introduciremos con la palabra sino Condición es una expresión que al ser evaluada puede tomar solamente uno de dos valores posibles: verdadero o falso. El esquema anterior representa que en caso de que la condición a evaluar resulte verdadera se ejecutaran las acciones de (1) y NO se ejecutaran las de (2). En caso contrario, es decir si la condición resulta ser falsa, solo se ejecutaran las acciones de (2).

Piense algunas condiciones, le damos un ejemplo mas: ¿Es viernes?


Elementos que componen un algoritmo - Selección 

Veamos un ejemplo:

Su amigo le ha pedido que le compre $1 de caramelos en el kiosco. De ser posible, prefiere que sean de menta pero si no hay, le da igual que sean de cualquier otro tipo. Escriba un algoritmo que represente esta situación. 

Lo primero que vamos a preguntarnos es: ¿podemos hacerlo solo usando una secuencia? 

Ahora debemos determinar como armaremos la selección y nos preguntamos ¿Cual es la condición? 

 

La respuesta es NO

Una posible condición es: ¿Hay caramelos de menta?

Dependiendo de la respuesta compraremos de estos o de cualquier otra clase En los dos casos debemos pagar, por lo tanto esta instrucción irá después se la selección


Elementos que componen un algoritmo - Selección 

Veamos como quedaría el ejemplo: Ir al kiosco si (hay caramelos de menta) Llevar caramelos de menta (1) sino Llevar de cualquier otro tipo (2) Pagar 1 peso Note que esta instrucción se encuentra a la altura de si y sino, esto está indicando que se ejecuta, independientemente que se cumpla o no la condición

Falso

Hay caramelos De menta

(2) Llevar cualquier Otro tipo de caramelos

Verdadero

(1) Llevar caramelos de menta

Pagar 1 peso


Elementos que componen un algoritmo - Selección 

En algunos casos puede no haber una acción específica a realizar si la condición es falsa.

Verdadero Condición

si (condición) Acción o acciones a realizar en caso de que la condición sea verdadera. 

Note que en este caso como no hay acciones a realizar si la condición es falsa, no es necesario usar sino

Falso

1. Acciones si la condición es verdadera


Elementos que componen un algoritmo - Selección  

Seguimos con el ejemplo Su amigo se ha puesto un poco mas exigente y ahora le ha pedido que le compre $1 de caramelos de menta en el kiosco. Si no consigue caramelos de menta, no debe comprar nada. Veamos como modificar el algoritmo para que represente esta situación, nos planteamos:   

¿La condición es la misma? Si, “Hay caramelos de menta” En caso que sea verdadera debe comprar En el ejemplo anterior pagaba independientemente de que se cumpliera o no la condición, en este caso solo debe pagar si la condición es verdadera, esto nos indica que pagar va a estar dentro de las instrucciones que se hacen si la condición es verdadera Si la condición “hay caramelos de menta“ resulta ser falsa, no se realizará ninguna acción.


Elementos que componen un algoritmo - Selección  

Seguimos con el ejemplo Su amigo se ha puesto un poco mas exigente y ahora le ha pedido que le compre $1 de caramelos de menta en el kiosco. Si no consigue caramelos de menta, no debe comprar nada. Veamos un algoritmo que represente esta situación. Ir al kiosco si (hay caramelos de menta) Llevar caramelos de menta Pagar 1 peso

Hay caramelos De menta

Verdadero

Comprar caramelos

Falso Pagar 1 peso

Note que esta instrucción se encuentra a la altura de llevar caramelos de menta, esto está indicando que se ejecuta solo si la condición es verdadera.


Elementos que componen un algoritmo - Repetición  

Repetición La repetición es la estructura de control que permite al algoritmo ejecutar un conjunto de instrucciones un numero de veces fijo y conocido de antemano. La notación a utilizar es la siguiente: repetir N Acción o acciones a realizar Esta instrucción ejecutará las acciones tantas veces como sea el numero N, podemos verlo como que incluye un contador de las veces que se hace algo

Verdadero Se hizo n veces

Falso Bloque de acciones a ejecutar


Elementos que componen un algoritmo - Repetición 

Veamos un ejemplo Escriba un algoritmo que permita poner 4 litros de agua en un balde utilizando un recipiente de 1 litro.

Pensemos el algoritmo: 

Se observa que hay dos pasos básicos:  

Llenar el recipiente con agua Vaciarlo en el balde.

Para completar los cuatro litros es necesario repetir estas dos operaciones 4 veces.  Una primera solución seria mediante una secuencia de instrucciones 


Elementos que componen un algoritmo - Repetición 

Una versión usando secuencia sería: Precondición: hay una canilla cerca, hay recipiente, hay balde Tomar el recipiente Colocar el balde cerca Llenar el recipiente de agua. Vaciar el recipiente en el balde. Llenar el recipiente de agua. Vaciar el recipiente en el balde. Llenar el recipiente de agua. Vaciar el recipiente en el balde. Llenar el recipiente de agua. Vaciar el recipiente en el balde. Dejar el vaso


Elementos que componen un algoritmo - Repetición 

Que pasa si en lugar de contar con un recipiente de 1 litro contamos con vaso de 50 cc. Los pasos siguen siendo: llenar el vaso con agua y vaciarlo en el balde. Para completar los cuatro litros es necesario repetir estas dos operaciones ochenta veces. Escribir una secuencia seria bastante tedioso. Pensemos el algoritmo: 

 

De las acciones anteriores las que se repiten son: Llenar el vaso de agua y Vaciar el vaso en el balde. La cantidad de veces que se repiten en este ejemplo es 80 Las instrucciones: Tomar el recipiente, Colocar el balde cerca, dejar el recipiente no deben repetirse


Elementos que componen un algoritmo - Repetición Una versión usando repetición sería: Precondición: hay una canilla cerca, hay recipiente, hay balde Tomar el recipiente Colocar el balde cerca Repetir 80 Llenar el recipiente de agua. Vaciar el recipiente en el balde. Dejar el vaso

Si volvemos al ejemplo en el que el recipiente es de 1 litro, ¿Que debemos cambiar en el algoritmo anterior?


Elementos que componen un algoritmo - Iteración  

Iteración Existen situaciones en las que se desconoce el numero de veces que debe repetirse un conjunto de acciones. La iteración es una estructura de control que permite al algoritmo ejecutar en forma repetitiva un conjunto de acciones utilizando una condición para indicar su finalización. El esquema iterativo es de la forma: mientras (condición) Acción o acciones a realizar en caso de que la condición sea verdadera.


Elementos que componen un algoritmo - Iteración  

 

Las acciones contenidas en la iteración serán ejecutadas mientras la condición sea verdadera. Es importante notar que, la primera vez, antes de ejecutar alguna de las acciones de la iteración, lo primero que se realiza es la evaluación de la condición. Solo luego de comprobar que es verdadera se procede a ejecutar el conjunto de acciones pertenecientes al mientras. Si inicialmente la condición resultara falsa, el contenido del mientras no se ejecutara ni siquiera una sola vez. Es importante que las acciones realizadas en el interior de la iteración modifiquen el valor de verdad de la condición a fin de garantizar que la iteración terminara en algún momento.


Elementos que componen un algoritmo - Iteración  

Ejemplo: Escriba un algoritmo que permita llenar una zanja con arena utilizando una pala. Pensemos el algoritmo Suponiendo que nos encontramos parados frente a la zanja y que poseemos pala y arena suficiente (precondiciones) No sabemos cuantas paladas llenarán la zanja, esto dependerá del tamaño de la zanja y también del tamaño de la pala, entonces no podemos usar la instrucción repetir, debemos usar una iteración. Para saber cual es la condición podemos preguntarnos: ¿Cuando se termina la iteración? La respuesta en este caso sería cuando se llene la zanja, como la iteración se ejecuta mientras la condición es verdadera, la condición puede ser: La zanja no este llena Tomar la pala y dejarla al terminar no van dentro de la iteración


Elementos que componen un algoritmo - IteraciĂłn ď Ž

Ejemplo: Escriba un algoritmo que permita llenar una zanja con arena utilizando una pala. Tomar la pala. Ubicarse frente a la zanja. Tomar la pala mientras (la zanja no este llena) Agregar una palada de arena. Dejar la pala. Note que esta instrucciĂłn se encuentra mas adentro que el resto de las instrucciones, esto nos indica que es lo que se repite


Elementos que componen un algoritmo - Iteración Ejemplo: Escriba un algoritmo que permita vaciar el contenido de todos los recipientes que hay en una mesa.  Analicemos la solución mientras hallan recipientes 

Tomar 1 recipiente vaciarlo dejarlo en el mismo lugar ¿La condición es correcta?, ¿Este algoritmo asegura que lograremos el objetivo?, si su respuesta es negativa, reescriba el algoritmo.


Elementos que componen un algoritmo  

Importancia de la indentación en las estructuras de control Las instrucciones que pertenecen a una estructura de control deben tener una sangría mayor que la utilizada para escribir el comienzo de la estructura. De esta forma, podrá identificarse donde termina el conjunto de instrucciones involucradas. A esta sangría se la denomina indentación. Este concepto se aplica a la tres estructuras de control vistas previamente: selección, repetición e iteración.


Ejemplo 

Supongamos que usted está con un grupo de 10 amigos preparando unos sandwichs, pero ahora tienen varios fiambres (jamón, salame, lomito), todos los sandwitchs llevan queso, en ese caso distintas personas pueden elegir hacer el sandwich combinando de distinta manera estos ingredientes, pero usted de antemano no sabe cual será la elección de cada uno, nos preguntamos: ¿Es posible realizar un algoritmo en estas condiciones, tenemos que hacer una secuencia para cada uno de sus amigos?


Ejemplo 

Observemos que tenemos 10 amigos, podemos realizar una repetición, y luego para cada uno preguntaremos como quiere en sandwitch… Cortar el pan Repetir 10 Tomar una rodaja de pan Si quiere jamón Poner jamón Sino si quiere salame Poner salame sino (si quiere lomito) Poner lomito Poner queso Tapar con otra rodaja de pan

Observe que dentro de la repetición hay selección y dentro de la selección hay nuevamente una selección

Modifique el algoritmo para que aquellos amigos que quieran agregar mayonesa puedan hacerlo


Conclusiones 

El uso de algoritmos permite expresar, de una forma clara, la manera en que un problema debe ser resuelto. Los elementos que lo componen son característicos de la resolución de problemas con computadora. Para hacer cualquier algoritmo combinamos secuencia, selección, iteración y repetición, estas sentencias pueden combinarse de acuerdo a lo que necesitemos realizar. La ejercitación es la única herramienta para poder comprender y descubrir la verdadera potencialidad de las estructuras de control. Resulta fundamental alcanzar un total entendimiento del funcionamiento de estas estructuras para poder lograr expresar soluciones mas complejas que los ejemplos aquí planteados. Debe resolver la totalidad de los ejercicios del practico 1 del cuadernillo de practicas.

Resolucion de problemas Cap 2  

Apunte de la materia Resolucion de problemas Ingreso ULP

Read more
Read more
Similar to
Popular now
Just for you