Top Banner

of 56

Algoritmia II

Jul 18, 2015

Download

Documents

Anaval Anaval
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript

EL DIALOGOEn el primer paso en el proceso de solucin a un problema se debe determinar de manera clara y concisa la siguiente informacin: 1.Los objetos conocidos, es decir, aquellos objetos de los cuales poseemos informacin total o parcial til en la bsqueda de los objetos desconocidos. 2.Las condiciones, aquellas relaciones establecidas entre los objetos conocidos y los desconocidos. Para esto se deben encontrar entre otras, la dependencia entre los valores de los objetos desconocidos de los valores de los objetos conocidos y que restricciones le impone al planteamiento del problema a dichos objetos.

3.los valores posibles que pueden tomar los objetos desconocidos.

EL DIALOGOEjemplo: sean los puntos P=( a , b ) y Q=( c , d ) que definen una recta, encontrar un segmento de recta perpendicular a la anterior que pase por el punto medio de los puntos dados.

Objetos Desconocidos Objetos Conocidos Condiciones

Un segmento de la recta. Los puntos P y Q. El segmento de la recta debe pasar por el punto medio entre P y Q, y debe ser perpendicular a la recta trazada entre P y Q.

ESPECIFICACIONESDespus de entender totalmente el problema a resolver (lo cual se consigue con la etapa del dilogo), se debe realizar una especificacin del algoritmo que permita encontrar su solucin. Un algoritmo que no est claramente especificado puede ser

interpretado de diferentes maneras y al disearlo se puede terminar con un algoritmo que no sirve para solucionar el problema.

ESPECIFICACIONESLa especificacin de un algoritmo clara y precisa de: se hace mediante una descripcin 1.Las entradas que el algoritmo recibir. 2.Las salidas que el algoritmo proporcionar. 3.La dependencia que mantendrn las salidas obtenidas con las entradas recibidas. Pasos para la especificacin de algoritmosEspecificar entradas Especificar salidas Especificar condiciones las entradas corresponden a los objetos conocidos. las entradas corresponden a los objetos desconocidos. se especifican claramente como dependen las entradas de las salidas.

DIVISINEn el que a partir de la especificacin del algoritmo se divide el proceso (algoritmo en abstracto) llegar al nivel de instruccin. en varios subprocesos hasta

Durante el proceso de divisin se determina la estructura de control adecuada, ya sea, secuencia, seleccin, repeticin, asignacin, lectura o escritura, que se puede asociar con cada subproceso obtenido. Tanto los pasos intermedios de subdivisin como el resultado final pueden ser representados por un diagrama de flujo o pseudocdigo.

ABSTRACCINEs en el que se revisa que porciones del algoritmo se repiten o son muy utilizadas y con las cuales se construyen funciones y procedimientos. Identificar que secuencias de pasos se utilizan mas de una vez en diferentes partes del proceso.

CODIFICACINCuando ya se ha diseado completamente el algoritmo y se tiene escrito en algn esquema de representacin (pseudocdigo o diagrama de flujo), el siguiente paso es codificarlo en el lenguaje de programacin definido para tal fin. En este momento es cuando el programador interacta con el computador mediante la herramienta de software que disponga para codificar en el lenguaje seleccionado.

PRUEBA Y VERIFICACINLa prueba de escritorio es una herramienta til para entender que hace un determinado algoritmo, o para verificar que un algoritmo cumple con la especificacin sin necesidad de ejecutarlo.

PRESENTACINDetallan la solucin, el proceso que siguieron para lograrla, sus caractersticas tcnicas (especificaciones, rendimiento, etc.) y justifican las ventajas que presenta. El mtodo presentado no se sigue en forma lineal, sino que entre las etapas hay retroalimentacin que permite ir y venir entre cada una de ellas.

PASOS PARA RESOLVER UN ALGORITMOAnlisis del Problema: en este paso se define el problema, selo comprende y se lo analiza con todo detalle.

Diseo del Algoritmo: se debe elaborar una algoritmo que refleje paso a paso la resolucin del problema.

Resolucin del Algoritmo en la computadora: se debe codificar el algoritmo.

VARIABLES Y CONSTANTESSon espacios de memoria creados para contener valores que de acuerdo a su naturaleza deseen mantenerse (Constantes) o que puedan variar (Variables). Constante Es un dato que permanece con un valor, sin cambios, es decir constante, a lo largo del desarrollo del algoritmo o a lo largo de la ejecucin del programa. Este se utiliza cuando necesitamos que el valor de determinada variable se mantenga durante la ejecucin del programa o hasta tanto se requiera su cambio.

VARIABLES Y CONSTANTESVariable Es un dato cuyo valor puede variar a lo largo del desarrollo del algoritmo o en el transcurso de la ejecucin del programa. Una variable descrita o declarada de un tipo determinado, slo podr

contener, valores de ese tipo.Una variable declarada numrica entera, no podr contener nmeros reales. Se utiliza cuando el dato que contiene sufrir cambios o variar en la medida que cambien los valores que maneje

VARIABLES Y CONSTANTESLas variables y constantes tienen bsicamente, dos atributos:Nombre

Se le asigna un nombre, en principio, para determinar que existe lavariable. Este nombre debe obedecer a la naturaleza del contenido que se almacenar en ella. Por lo tanto debe orientar en relacin a su contenido. Los nombres de las variables en especificaciones generales deben ser de ocho caracteres, no deben iniciarse con nmeros ni smbolos, ni espacios en blanco.

VARIABLES Y CONSTANTES

Ejemplo de nombres de variables: NOMBRE, EDAD, TOTAL, SUELDO, NACIONALIDAD Ejemplo de nombres para constantes: ISR=16.5, AOFISCAL=2005, PAIS=VENEZUELA, PI = 3,1416

VARIABLES Y CONSTANTESTipo Es la naturaleza del dato: alfabticos o caracteres; numricos: enteros o reales; alfanumricos y Lgicos.

Siguiendo el ejemplo, se determina la naturaleza de las variables arriba mencionadas. NOMBRE CHARACTER (30) EDAD ALFANUMERICO SUELDO NUMERICO REAL NACIONALIDAD LGICO

TOTAL NUMERICO REAL

ESTRUCTURAS DE CONTROLUTILIZADAS EN EL DISEO DE INSTRUCCIONES En la elaboracin de algoritmos nos vamos a encontrar con

estructuras bsicas o de control ya prediseadas para elTratamiento de informacin, estas estructuras bsicas traducen acciones que se realizan de acuerdo al requerimiento o al

proceso necesario al cual deba someterse la informacin. Estasestructuras son:

ESTRUCTURAS DE CONTROLSecuenciales: cuando se requiere que una instruccin siga despus de otra. Seleccin o decisin: se utiliza cuando se requiere tomar decisiones lgicas, la ejecucin de las instrucciones depender de que se cumplan o no, una o varias condiciones. Repeticin o Iteracin: se utiliza cuando un proceso debe repetirse un nmero determinado o no de veces, una vez se haya establecido cierta condicin para finalizar el proceso de repeticin. Asimismo dentro de las estructuras bsicas existen acciones o procesos a los cuales son sometidos los datos, entre ellos, tenemos: a. Asignacin b. Condicionado (a travs de las expresiones lgicas) c. Alternativas (estructura condicional) d. Iterativas e. De entrada y salida

ESTRUCTURAS DE CONTROLEstructuras Secuenciales.

En esta estructura una accin o instruccin se ejecuta detrs de

otra en orden y secuencia.Las tareas se realizan de tal manera que debe cumplirse en estricto orden secuencial,

porque la salida de una, es la entrada de la siguiente y assucesivamente hasta el fin del proceso.

ESTRUCTURAS DE CONTROL

ESTRUCTURAS DE CONTROLDecisiones en SecuenciaSe utiliza cuando se deben realizar preguntas sin que se tome en cuenta lo contrario a la condicin, es decir las dems condiciones no son importantes para el objetivo de la decisin.

ESTRUCTURAS DE CONTROL

La estructura secuencial es til para aquellos procesos en los que se requiere que se cumplan con estricto orden un nmero determinado de instrucciones, siempre y cuando se cumpla la anterior, por lo general, la primera decisin corresponde al aspecto ms determinante o general. En el caso de las postuladas la ms general o determinante debera ser, la nacionalidad, si la participante es venezolana, entra a la primera seleccin, de lo contrario, no entra al

concurso.

ESTRUCTURA DE SELECCIN O DECISINUn algoritmo se realiza para resolver un problema. Por ello, al elaborar la solucin de un problema se trazan ciertas condiciones. Estas condiciones se describen a travs de una estructura selectiva, tambin llamada de decisin o condicin. Una estructura selectiva esta compuesta por una expresin lgica, si al evaluar esta expresin lgica, el resultado es Verdadero, es decir se cumple la condicin, se realizar una secuencia de instrucciones; pero si el resultado es falso, se ejecutar otra secuencia de instrucciones.

ESTRUCTURA DE SELECCIN O DECISINLas estructuras selectivas, de decisin o condicionales, pueden ser: Simples, Dobles y Anidadas o Mltiples.

Estructura condicional simple (Si-Entonces / If-Then)

La estructura condicional simple, Si-Entonces (o IF-THEN, en

ingls), permite evaluar una condicin determinada y si se cumple lacondicin ejecuta una o varias instrucciones.

Si la condicin es falsa, entonces no se realizar ninguna accin

ESTRUCTURA DE SELECCIN O DECISIN

Si la instruccin se disea slo para evaluar la condicin de verdadero cuando se cumpla que el empleado es fijo, se estara realizando el clculo slo para el personal fijo, si se requiere realizar el clculo incluyendo a los aprendices se debe utilizar la estructura doble.

ESTRUCTURA DE SELECCIN O DECISINEstructura condicional doble o Alternativa (Si-Entonces-Si no / If-ThenElse) La estructura condicional simple es limitada porque permite la evaluacin de

una sola condicin a la vez, la estructura condicional doble o alternativa permiteevaluar una condicin, la cual puede tener dos acciones, cuando se cumple, y cuando no se cumple. Si se cumple, se realizar una o un conjunto de instrucciones A, si no se cumple, se realizar una o un conjunto de instrucciones B.

ESTRUCTURA DE SELECCIN O DECISINCondiciones compuestas Las estructuras de condiciones compuestas, algunos autores las refieren como dobles, permiten disear las instrucciones utilizando dos y ms estructuras simples unidas por los conectores lgicos Y (AND), O (OR) y NO (NOT).

El uso y significado de los operadores lgicos Y (And), 0 (Or), No (Not) los describiremos a travs de tablas de la verdad:Tabla de verdad de Y (And)Valor de XFalso Falso Verdadero Verdadero

Tabla de verdad de O (OR)Valor de XFalso Falso Verdadero Verdadero

Valor de XFalso Verdadero Falso Verdadero

X And YFalso Falso Falso Verdadero

Valor de XFalso Verdadero Falso Verdadero

X OR YFalso Verdadero Verdadero Verdadero

Tabla de verdad de NOTXFalso Verdadero

NOT XVerdadero Falso

La unidad aritmtica y lgica, uno de los componentes de una computadora, se encarga del manejo de las operaciones aritmticas y a la porcin lgica de la computadora le corresponde procesar la capacidad de tomar decisiones. La estructura de construccin algortmica if-then-else (si-entonces-de lo contrario) permitir la seleccin de acciones alternativas permitiendo realizar procesos lgicos.

ESTRUCTURA DE REPETICIN O ITERACINEsta estructura se utiliza cuando se debe ejecutar un conjunto de instrucciones un nmero repetido de veces. Al conjunto de instrucciones que se ejecutan repetidamente, un nmero de veces, se le llama tambin ciclo, bucle o lazo. El nmero de veces que se ejecuta se denomina Iteraciones; por consiguiente, una

iteracin, es una de las veces en las cuales se efectan todas las instrucciones contenidas en el ciclo.

ESTRUCTURA DE REPETICIN O ITERACINPasos de una estructura anidada o cclica: 1. Entrada de datos e instrucciones previas 2. Lazo o bucle

3. Instrucciones finales o resto del proceso4. Salida de resultado

Las repeticiones deben ser finitas, no obstante puede ser que enmomentos determinados no nos demos cuenta y construimos un ciclo o bucle infinito,

ESTRUCTURA DE REPETICIN O ITERACIN

ESTRUCTURA DE REPETICIN O ITERACINBucles Repetitivos

Se pueden dar en tres condiciones: a) Estructura cclica independiente, es cuando los bucles se realizan uno primero hasta que se cumple la condicin, y slo una vez que cumple con el primer ciclo, entra al siguiente o a instrucciones de finalizacin.

b) Los ciclos anidados son aquellos en los que al entrar a una estructura de

repeticin, dentro de ella se encuentra otra, se inicia el proceso de laestructura ms interna hasta que se termine y luego se contina con la externa hasta que la condicin se cumpla.

ESTRUCTURA DE REPETICIN O ITERACINc) Existen los bucles cruzados, lo cual no se recomienda, debido a que se tiene que interrumpir, es decir no finalizamos un ciclo e

iniciamos el otro. Esto puede ocasionar la prdida de control debido aque el programa podra no reconocer cual proceso se esta cumpliendo.

ESTRUCTURA DE REPETICIN O ITERACIN

ESTRUCTURA DE REPETICIN O ITERACIN

ESTRUCTURA DE REPETICIN O ITERACIN

ESTRUCTURA DE REPETICIN O ITERACININSTRUCCIN SELECTIVA (Case).

Se utiliza cuando existen ms de dos opciones posibles; seconoce tambin como opciones mltiples.

La estructura de decisin mltiple o selectiva evaluar unaexpresin que podr tomar un conjunto de valores distintos 1, 2, 3, 4, n, es decir hasta n valores. Segn la eleccin del valor de la

condicin establecida, se realizar un conjunto de instrucciones.

ESTRUCTURA DE REPETICIN O ITERACINESTRUCTURAS REPETITIVAS (Mientras, Repetir y Para)

Son estructuras diseadas para que repitan una secuencia de instrucciones un nmero determinado de veces, tambin son llamadas bucles o lazos. El nmero de veces que realiza el proceso se denomina iteraciones, e iteracin al hecho de repetir la ejecucin de una secuencia. Entre las estructuras repetitivas se encuentran:

ESTRUCTURA DE REPETICIN O ITERACINIngls While Espaol Mientras Evaluacin y acciones Mientras se cumpla la condicin que desencadena el proceso, las instrucciones que se encuentran dentro del ciclo While se realizarn. Se realizar la ejecucin de una o ms instrucciones Hasta que el resultado de la expresin lgica evaluada sea verdadero Se realizar una secuencia de acciones un nmero predeterminado de veces.

Repeat

Repetir

For

Para

ESTRUCTURA DE REPETICIN O ITERACINFormas de terminar con bucles o ciclos de repeticin a partir de los datos de entradaa. Preguntando antes de la iteracin. Antes de iniciar el ciclo, se comienza preguntando si existen ms datos, se realiza el proceso y dentro del ciclo se vuelve a preguntar Existen ms datos?, de existir, sigue el ciclo, de no existir ms datos culmina el ciclo, este mtodo es tedioso si se trabaja con grandes listas de datos. Mientras se cumpla la condicin que desencadena el proceso, las instrucciones que se encuentran dentro del ciclo While se realizarn. Se realizar la ejecucin de una o ms instrucciones Hasta que el resultado de la expresin lgica evaluada sea verdadero. Se comprueba que no existen ms datos de entrada.

b. Encabezar la lista de datos con su tamao.

c. Finalizar la lista con su valor de Entrada. d. Agotar los datos de entrada

ESTRUCTURA DE REPETICIN O ITERACINEstructura Mientras (While) La estructura repetitiva While, segn Joyanes (2003): es aqulla en que el cuerpo del bucle se repite mientras se cumple una determinada condicin, al cambiar la condicin se interrumpe o se culmina con la ejecucin del ciclo de instrucciones que se encuentran dentro de la estructura o el ciclo While.

Esta estructura es muy til cuando dada una condicin, se requiere asegurar se realice un conjunto de instrucciones.

ESTRUCTURA DE REPETICIN O ITERACINEjemplo en Ingls: : While ExistenDatos = Si Ejemplo en Espaol: Mientras ExistenDatos = Si Descripcin: Mientras la variable que contiene la condicin de verificacin de existencia de datos, en este caso, se cumpla se realizarn las instrucciones que contiene el ciclo Mientras. Mientras el nmero que se ingrese sea distinto de cero, se realizar el conjunto de instrucciones que contiene la estructura Mientras. El ciclo culmina al introducir un 0.

Wend While Nmero 0

Fin Mientras Mientras Nmero 0

Wend

Fin Mientras

La estructura repetitiva Mientras se realizar si y slo si se cumple la condicin evaluada, de lo contrario el programa no entra en el ciclo, y continua en la siguiente instruccin fuera del bucle. La condicin evaluada debe programarse efectivamente fuera del ciclo, si se requiere realizar el bloque de instrucciones y luego cambiar su condicin dentro del bucle, cuando sea necesario finalizar el proceso, de lo contrario se estara programando un ciclo infinito.

ESTRUCTURA DE REPETICIN O ITERACINEstructura Repetir (REPEAT) Esta estructura permite realizar una o mas instrucciones, un nmero de veces hasta que se cumpla con una condicin programada para que finalice el ciclo; es decir, hasta que el resultado de la expresin lgica evaluada sea Verdadero. Utilizar esta estructura permite que el ciclo se realice al menos una vez, debido a que la expresin lgica que debe evaluar su finalizacin se encuentra despus del conjunto de instrucciones que contiene el ciclo.

ESTRUCTURA DE REPETICIN O ITERACINLa palabra Repetir indica el inicio de la secuencia de acciones que serepetirn, con la expresin lgica; indica, el fin del ciclo y hasta cuando se repetir la secuencia.

La diferencia entre la estructura repetitiva Mientras y la estructura Repeat es que la estructura Mientras termina cuando la condicin se hace falsa, por el contrario la estructura Repeat finaliza cuando la condicin es verdadera. La estructura Mientras puede ser que no se ejecute, pero la estructura Repeat se realiza al menos una vez.

ESTRUCTURA DE REPETICIN O ITERACINEstructura Para (FOR)

Al disear algoritmos se presentan oportunidades donde es

necesario repetir un conjunto de instrucciones un nmeropredeterminado de veces, para esto se utiliza la estructura Para (For), donde la secuencia se repite bajo el control de un

elemento variable que se incrementar o disminuir cada vezque se ejecute el ciclo completo.

ESTRUCTURA DE REPETICIN O ITERACIN

EJERCICIOS1. Desarrolle un algoritmo que permita leer tres valores y almacenarlos en las variables A, B y C respectivamente. El algoritmo debe imprimir cual es el mayor y cual es el menor. Recuerde constatar que los tres valores introducidos por el teclado sean valores distintos. Presente un mensaje de alerta en caso de que se detecte la introduccin de valores iguales.

2. Desarrolle un algoritmo que permita leer un valor entero positivo N y determinar si es primo o no.3. Desarrolle un algoritmo que permita convertir calificaciones numricas, segn la siguiente tabla: A = 19 y 20, B =16, 17 y 18, C = 13, 14 y 15, D = 10, 11 y 12, E = 1 hasta el 9. Se asume que la nota est comprendida entre 1 y 20.