resolucion de problemas cap 2

28
Universidad de La Punta Tecnicatura Desarrollador de Software Curso de Ingreso 2012 Resolución de Problemas Modulo I Clase II

Upload: viviana-gasull

Post on 23-Feb-2016

273 views

Category:

Documents


0 download

DESCRIPTION

Apunte de la materia Resolucion de problemas Ingreso ULP

TRANSCRIPT

Page 1: Resolucion de problemas Cap 2

Universidad de La Punta Tecnicatura Desarrollador de Software

Curso de Ingreso 2012

Resolución de Problemas

Modulo I

Clase II

Page 2: Resolucion de problemas Cap 2

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.

Page 3: Resolucion de problemas Cap 2

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

Page 4: Resolucion de problemas Cap 2

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.

Page 5: Resolucion de problemas Cap 2

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?

Page 6: Resolucion de problemas Cap 2

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.

Page 7: Resolucion de problemas Cap 2

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.

Page 8: Resolucion de problemas Cap 2

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.

Evaluar

condición

2. Acciones si la

condición es falsa

1. Acciones si la

condición es verdadera

VerdaderoFalso

Page 9: Resolucion de problemas Cap 2

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?

Page 10: Resolucion de problemas Cap 2

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? La respuesta es NO

Ahora debemos determinar como armaremos la selección y nos preguntamos ¿Cual es la condición? 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

Page 11: Resolucion de problemas Cap 2

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

Hay caramelos

De

menta

(2) Llevar cualquier

Otro tipo de caramelos

(1) Llevar caramelos

de menta

VerdaderoFalso

Pagar 1 pesoNote 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

Page 12: Resolucion de problemas Cap 2

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.

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

Condición

1. Acciones si la

condición es verdadera

Verdadero

Falso

Page 13: Resolucion de problemas Cap 2

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.

Page 14: Resolucion de problemas Cap 2

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

Comprar caramelos

Verdadero

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.

Page 15: Resolucion de problemas Cap 2

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

VerdaderoSe hizo n

veces

Falso

Bloque de acciones

a ejecutar

Page 16: Resolucion de problemas Cap 2

Elementos que componen un

algoritmo - Repetición

Veamos un ejemploEscriba 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

Page 17: Resolucion de problemas Cap 2

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

Page 18: Resolucion de problemas Cap 2

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

Page 19: Resolucion de problemas Cap 2

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?

Page 20: Resolucion de problemas Cap 2

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.

Page 21: Resolucion de problemas Cap 2

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.

Page 22: Resolucion de problemas Cap 2

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

Page 23: Resolucion de problemas Cap 2

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

Page 24: Resolucion de problemas Cap 2

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.

Page 25: Resolucion de problemas Cap 2

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.

Page 26: Resolucion de problemas Cap 2

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?

Page 27: Resolucion de problemas Cap 2

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 10Tomar 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

Modifique el algoritmo para que aquellos amigos que quieran agregar

mayonesa puedan hacerlo

Observe que

dentro

de la repetición

hay selección y

dentro de la

selección

hay nuevamente

una selección

Page 28: Resolucion de problemas Cap 2

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.