Вы находитесь на странице: 1из 14

El ALGORITMO

La palabra "algoritmo" proviene del gran matemtico rabe Mohamed Al Kho Warizmi, quien escribi entre los aos 800 y 825 la obra Quitab Al Jabr Al Mugabala, donde se recoga el sistema de numeracin hind y el concepto del cero, alcanz gran reputacin por el enunciado de las reglas paso a paso para sumar, restar, multiplicar y dividir nmeros decimales; la traduccin al latn del apellido en la palabra algorismus deriv posteriormente en algoritmo. Segn, Brassard y Bratley(2000), algoritmo, es sencillamente un conjunto de reglas para efectuar algn clculo, bien sea a mano o, ms frecuentemente, en una mquina, segn Joyanes(2003), es un mtodo para resolver problemas y segn Torrealba(2004), Un algoritmo es una descripcin de los pasos bsicos a seguir para cumplir determinada tarea,.., Para que una computadora realice una tarea es necesario definir previamente un algoritmo. Definicin Un algoritmo es una serie de pasos secuenciales y ordenados que permiten conseguir un objetivo. Secuencial - Un paso debe realizarse a continuacin de otro. Ordenados - Su ejecucin se debe realizar de acuerdo a un orden especfico. El orden de los pasos no es conmutativo debido a que se pueden obtener resultados diferentes. Ejemplo #1 Algoritmo para comprar los boleto de entrada al cine. 1. Inicio 2. Seleccionar la pelcula 3. Llegar al lugar de proyeccin de la pelcula 4. Revisar la cartelera 5. Hacer la cola de pago 6. Esperar el turno 7. Solicitar la pelcula. Si la hay 8. Entregar el dinero 9. Esperar por los boletos y la diferencia de pago 10 Ver la pelcula. 11. Retirarse Si no hay la pelcula 12. Escoger otra pelcula o retirarse 13. Fin

Ejercicio #1 Plantee los siguientes algoritmos. Plantee un algoritmo para encender un computador. Construir un algoritmo que calcule el rea de un rectngulo. (rea=b.a) Plantee un algoritmo para preparar un alimento. Plantee un algoritmo que permita convertir una temperatura dada en Celsius a Fahrenheit. o C=(F-32).5/9 Plantee un algoritmo que permita montar en bicicleta.

Plantee un algoritmo que permita nadar en una piscina. Plantee un algoritmo que permita saltar la cuerda. Plantee un algoritmo que permita bailar con otra persona. Plantee un algoritmo que permita ejecutar el procedimiento de un plan de negocios.

Cuando un algoritmo deba ser ejecutado por una computadora, se necesita expresar el algoritmo en instrucciones comprensibles por la computadora; para esto ltimo, se utilizan los lenguajes de programacin. Al algoritmo expresado en un determinado lenguaje de programacin, se le denomina programa. Esto ndica que de un determinado problema o situacin dada, se elabora un algoritmo con los pasos necesarios para su solucin, y si se requiere sea ejecutado por un computador, se traduce el algoritmo a instrucciones editadas en un lenguaje de programacin. Vemoslo a travs del presente ejemplo: Algoritmo para resolver la sumatoria de dos nmeros. #

Tarea #1 1. Que es un lenguaje de programacin. 2. Tipos de lenguajes de programacin segn su nivel y ejemplos de lenguajes segn tipo.

PARTES DE UN ALGORITMO Todo algoritmo debe obedecer a la estructura bsica de un sistema, es decir: entrada, proceso y salida. Donde: ENTRADA Corresponde al insumo, a los datos necesarios que requiere el proceso para ofrecer los resultados esperados. PROCESO Pasos necesarios para obtener la solucin del problema o la situacin planteada. SALIDA

Resultados arrojados por el proceso como solucin. En el ejemplo del algoritmo de la sumatoria de los dos nmeros, tenemos:

ENTRADA Valores de de las variables A y B. PROCESO Asignar a la variable Suma, el valor de A mas el valor de B. SALIDA Impresin del valor de la variable Suma, que contiene la sumatoria de los valores de A y B.

CARACTERSTICAS DE LOS ALGORITMOS Las caractersticas fundamentales que debe cumplir un algoritmo son: PRECISIN: Indica el orden de realizacin de cada paso dentro del proceso. DEFINICION: Indica la exactitud y consistencia de los pasos descritos en el proceso, si el algoritmo se prueba dos veces, en estas dos pruebas, se debe obtener el mismo resultado. FINITUD Indica el nmero razonable de pasos, los cuales deben conllevar a la finalizacin del proceso y producir un resultado en un tiempo finito. Visualicemos estas caractersticas a travs del siguiente ejemplo: Ejemplo #2 Algoritmo para hacer una torta Entrada: Harina de trigo, mantequilla, huevos, sal, azcar Proceso: 1.- Unir la mantequilla con el azcar 2.- Batir hasta lograr consistencia cremosa 3.- Agregar harina de trigo, huevos, sal y azcar 4.- Batir hasta que esponje 5.- Precalentar el horno, en 250 , y enmantequillar tortera 6.- Una vez logre la consistencia de esponjado, colocar en la tortera 7.- Introducir en el horno por espacio de 45 minutos Salida: Torta Siguiendo el ejemplo recuerde determinar las instrucciones de Entrada, Proceso y Salida. Ejercicio #2 Segn el ejercicio anterior, se puede determinar que el algoritmo para hacer torta, cumple con las caractersticas fundamentales de los algoritmos. Es decir, Es preciso?, Es definido?, Es finito?, razona tus respuestas.

Definamos algoritmo como un conjunto de pasos conducentes a resolver un problema, cada uno de esos pasos, corresponde a lo que se denomina en el programa, una instruccin, aunque pudiera darse que, en una instruccin se junten dos o ms pasos. Aprender a realizar un algoritmo se fundamenta en lo que se persigue lograr con su desarrollo; debido a que no existe un mtodo nico para resolver problemas se estudian diferentes mtodos de resolucin o modelos de construccin para lograr la generacin del resultado deseado. Esto nos lleva a reestructurar el concepto de algoritmo, como un conjunto de instrucciones o pasos en los que se describe su inicio, desarrollo o proceso y salida o resultado del algoritmo; elaborados para lograr resolver un problema.

REPRESENTACIN DE LOS ALGORITMOS Los algoritmos se pueden representar de dos formas: 1. A travs de un conjunto de palabras por medio de las cuales se pueden representar la lgica de un lenguaje de programacin, denominado Pseudocdigo. 2. A travs de una representacin grfica, denominada Diagrama de Flujo.

ESTRUCTURA DE SELECCIN: La seleccin ofrece un medio de dividir el flujo del programa en ramas considerando el resultado de una condicin lgica.

EJEMPLO #3 Construir un algoritmo para calcular el rea de un rectngulo, donde el valor de la base y de la altura son ingresadas desde el teclado. Pseudocdigo 1. Inicio. 2. Mostrar: Ingrese la base y la altura. 3. Leer: (Asignarle valores a las variables) BASE y ALTURA. 4. Calcular: AREA = BASE * ALTURA. 5. Mostrar: El rea del rectngulo es , AREA. 6. Fin.

EJEMPLO #4 Construir un algoritmo capaz de calcular la nota definitiva de una materia, al ingresar cuatro notas donde c/u de ellas tiene el siguiente porcentaje (20%, 25%, 25%, 30%).

Ejercicio #3 La presin, el volumen y la temperatura de una masa de aire se relacionan por la frmula

Ejercicio #4 Realizar un algoritmo que calcule la edad de una persona, al ingresar el ao de nacimiento y el ao actual. Ejercicio #5 Desarrollar un programa en el que se pidan al usuario tres datos de tipo entero, a, b y c, y escriba en pantalla la ecuacin de segundo grado y = ax2 +bx+c . Ejercicio #6 Construir un algoritmo en el cual se da una temperatura en grados Fahrenheit y se obtiene los valores equivalentes de temperatura en grados Celsius, en grados Kelvin y por ltimo en grados Rankine teniendo en cuenta las siguientes expresiones:

Ejercicio #7. 2 Dado un polinomio de la forma y =ax +bx+c , calcular sus races teniendo en cuenta la expresin:

Nota: Recuerde que para que esta expresin tenga solucin en los reales, 2 el trmino B 4ac>0. Ejercicio #8 Tres personas desean invertir su dinero para fundar una empresa. Cada una de ellas invierte una cantidad distinta. Obtener el porcentaje que cada cual invierte con respecto al total del capital.

ESTRUCTURA DE SELECCIN La seleccin ofrece un medio de dividir el flujo del programa en ramas considerando el resultado de una condicin lgica. La decisin indica dos caminos diferentes por donde avanza determinado algoritmo.

Para escoger la trayectoria del algoritmo se debe evaluar una condicin. Por ejemplo: a>b, a mayor b. prom>= 30, prom mayor igual a 30 cont!=0, cont diferente de 0.

EJEMPLO #5 Crear un algoritmo que permita conocer si un nmero ingresado por el usuario es par o impar. Nota: - Un nmero es par si el residuo de la divisin es igual a cero. - El residuo lo calculamos mediante el operador % . Ejm. El nmero 10 es par, porque si lo divido entre dos, el residuo es igual a cero, por lo tanto residuo= 10%2, residuo= 0. 1. inicio 2. mostrar Introduzca Numero a evaluar 3. Leer Asignar valor a nmero. 4. Calcula residuo=numero%2 5. Si residuo =0 entonces 6. mostrar numero es par. 7. Si no mostrar numero es Impar.

8. Fin

Toda condicin va acompaada de dos tipos de operadores de comparacin y lgicos. Adems que son validas las combinaciones. Operadores de comparacin Mayor que Menor que Mayor igual que Menor igual que Diferente de Igual a Operadores lgicos Por ejemplo, A>B & prom=5. Condicion1 = A>B. Condicion2=Prom=5.

> < >= <= = =

Donde 0 es equivalente a Falso, y 1 es equivalente a Verdad Tarea #2 Cuales son todas las funciones lgicas y sus tablas de la verdad. Ejercicio #9 Crear un programa que permita calcular el promedio de notas de una asignatura. El programa debe mostrar un mensaje que indique si el estudiante aprob o no el curso. Ejercicio #10

Dado un polinomio de la forma y = ax +bx+c , calcular sus races teniendo en cuenta la expresin:

Nota: En caso que se cumpla que b2 4ac<0, el programa debe mostrar un mensaje indicando que la solucin del polinomio no tiene solucin en los reales. Ejercicio #11: Crear un algoritmo que dados dos nmeros diferentes, sea capaz de determinar cul de los dos es el mayor. Ejercicio #12: Crear un algoritmo que dados tres nmeros diferentes, sea capaz de determinar cul de ellos es el mayor. Ejercicio #13: Crear un algoritmo que ingresados dos nmeros, si son iguales los multiplique, si el primero el mayor que el segundo los reste y si no que los sume. Ejercicio #14: Calcular el valor de la siguiente funcin de acuerdo a lo siguiente:

Ejercicio #15: Construir un algoritmo que determine si un ao dado es bisiesto o no, teniendo en cuenta lo siguiente: Regla 1: Un ao es bisiesto si es mltiplo de 4. Por ejemplo: 1984 (Bisiesto) Regla 2: Excepto los mltiplos de 100 que no son bisiestos, salvo si son mltiplos de 400. Por ejemplo: 2000 (Bisiesto) 1800 (No bisiesto) ESTRUCTURA DE REPETICIN Esta 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. Pasos de una estructura anidada o cclica: 1. Entrada de datos e instrucciones previas 2. Lazo o bucle 3. Instrucciones finales o resto del proceso 4. Salida de resultado Las estructuras repetitivas o ciclos se emplean cuando a una serie de N datos se les debe realizar la misma operacin. CICLO PARA El ciclo para realiza un nmero de instrucciones un nmero finito de veces. Para realizar este ciclo se necesita definir la variable, y especificarle un valor inicial, un valor final y un incremento, de la siguiente manera:

Ciclo Para. El ciclo para ejecuta un nmero de instrucciones un nmero finito de veces. Es decir, el programador necesita que el ciclo se realice de forma completa determinado nmero de veces.

EJEMPLO #6 Se requiere realizar la tabla de multiplicacin desde el 1 hasta el 10 de un nmero entero positivo ingresado por el usuario. Este problema tendra la siguiente estructura:

CICLO MIENTRAS El ciclo mientras permite ejecutar una serie de instrucciones siempre y cuando se cumpla una condicin lgica, es decir mientras la evaluacin de una condicin lgica sea verdadera.

Esta expresin lgica se evala al inicio del bloque de instrucciones. Este ciclo se utiliza por lo general, cuando el programador, no necesita ejecutar un ciclo completo, es decir, dependiendo que se cumpla una condicin, no necesito realizar nuevamente el ciclo. A diferencia del ciclo para, el ciclo mientras no tiene una variable contadora por tanto hay que crearla de forma adicional.

EJEMPLO #7 Se requiere realizar la tabla de multiplicacin desde el 1 hasta el 10 de un nmero entero positivo ingresado por el usuario.

NOTAS

- Observe que el ciclo mientras como no tiene una variable contadora (a Excepcin del ciclo para) hay que definirla dentro del proceso. - Existen aplicaciones en las cuales se puede utilizar cualquiera de las dos Estructuras. Sin embargo, existen otras en las que es necesario emplear una de las dos. Tarea #3 Consultar en qu consisten y construir un ejemplo para los siguientes tipos de variables: Variables contadoras. Variables sumadoras. Variables bandera. En el ejemplo #7, porque la condicin MQ (Mientras Que) evala la Variable i, como i<10, sabiendo que son las tablas del 1 al 10? No debera ser i <=10?,para que haga las multiplicaciones de 1 hasta 10 ?. Explique.

Ejercicio #16: Calcular la suma de los primeros 10 nmeros enteros. Respuesta: 55. Ejercicio #17: Con base en el numeral anterior construir un algoritmo que realice el producto de los primeros 10 nmeros. Respuesta: 3628800 Ejercicio #18: Adivinar Nmero: El algoritmo consiste en adivinar en un nmero de intentos determinado, un valor aleatorio dado por el computador. Para ello, el programa debe crear un nmero aleatorio entre 0 y 100. A continuacin, el programa debe pedir al usuario el ingreso de un valor y el programa devuelve el mensaje (muy grande) si el valor ingresado es mayor que el nmero aleatorio. En caso contrario devuelve el mensaje (muy pequeo). El procedimiento se repite hasta adivinar el nmero aleatorio creado por el computador. Cuando esto ocurra el programa debe mostrar un mensaje donde se especifique el nmero aleatorio y el nmero de intentos realizado para adivinar el nmero.

INSTRUCCIN SELECTIVA (Case). Se utiliza cuando existen ms de dos opciones posibles; se conoce tambin como opciones mltiples. La estructura de decisin mltiple o selectiva evaluar una expresin 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. Ejemplo #8 Resuelva el ejercicio #14, usando la instruccin Case. Para Facilitar el desarrollo se usaran solo los x mayores o iguales a cero. En seudocdigo Tenemos: 1.inicio 2.Ingrese valor de x. 3.Lea x. 4.segun x: 5.Case 0: 6.y=x*x+5. 7.break 8.Case 1: 9.y=3*x-1. 10.break 11.Case 2: 12. y=3*x-1. 13 break 14.OtherCase

15. y=x*x-4*x+5. 16 Break 17. FinCase Diagrama de flujo

Ejercicio 19: Realice los seudocdigos de los ejemplo: 4,6 y 7. Ejercicio 20: En un supermercado se hacen promociones en los productos durante toda la semana para atraer ms a los clientes. El gerente del establecimiento ha decidido que se harn las promociones de acuerdo al da de la semana, por lo tanto ha contratado a un tcnico de sistemas para que realice un programa que le ayude al cajero a calcular estos descuentos. Da lunes: descuento del 15% en Carnes y leche. Da martes: descuento del 20% en Panela y Frijoles. Da mircoles: descuento del 10% en paales. Da jueves: descuento del 15% en Atn y arroz. Da viernes: descuento del 30% en Jabones. Da sbado: descuento del 5% en Frutas. Da Domingo: descuento del 15% en Huevos. Al programa se le ingresaran el da de la semana y el cdigo del producto. Codificacin de productos: Carnes y Leche = 1. Panela y Frijoles = 2. Paales = 3. Atn y arroz = 4. Jabones = 5. Frutas = 6. Huevos = 7.

Ejercicio #21. En la siguiente tabla se muestra el nmero de camas de las habitaciones de una
casa rural, adems de la planta donde est ubicada cada una de ellas: Habitacin Camas 1. Azul 2. Roja 3. Verde 4. Rosa 5. Gris 2 1 3 2 1 Planta Primera Primera Segunda Segunda Tercera

Disee el algoritmo (en pseudocdigo y flujo de datos) de un programa que: 1) Muestre el listado de las habitaciones de la casa rural. 2) Pida por teclado el nmero (dato entero) asociado a una habitacin. 3) Muestre por pantalla la planta y el nmero de camas de la habitacin seleccionada. Nota: Si el nmero introducido por el usuario, no est asociado a ninguna habitacin, se mostrar el mensaje: "ERROR: <nmero> no est asociado a ninguna habitacin.". Ejercicio #22. Disee el algoritmo (en pseudocdigo y Flujo de Datos) de un programa que: 1) Pida por teclado el resultado (dato entero) obtenido al lanzar un dado de seis caras. 2) Muestre por pantalla el nmero en letras (dato cadena) de la cara opuesta al resultado obtenido. Nota 1: En las caras opuestas de un dado de seis caras estn los nmeros: 1-6, 2-5 y 3-4. Nota 2: Si el nmero del dado introducido es menor que 1 mayor que 6, se mostrar el mensaje: "ERROR: Nmero incorrecto.".

Вам также может понравиться