Está en la página 1de 30

UNIVERSIDAD TCNICA DE AMBATO

FACULTAD INGENIERA CIVIL Y MECNICA

Mdulo

EMPLEO DE NTICs II

[LGICA DE PROGRAMACIN] Elemento 4 INTRODUCCIN Para la mayora de personas que estudian algo relacionado con los sistemas se han encontrado con la dificultad de asignaturas relacionadas con la Lgica y los algoritmos, las cuales son fundamentales para poder llegar a desarrollar software (programas para computador) de manera rpida, ptima y confiable. Este modulo surge como una de las opciones que ofrecen solucin a los diversos problemas que se presentan en asignaturas como las antes mencionadas; utilizando un mtodo de autoaprendizaje, diseado a objetivos cortos donde el estudiante pueda aprender y manejar la asignatura y avanzar en sus diferentes temas. Tambin se encontrar ejercicios desde lo ms sencillo hasta lo ms complejo, explicados paso por paso, con sus respectivas documentaciones y aclaraciones, para que el estudiante maneje completamente las estructuras bsicas y fundamentales de la Lgica y los Algoritmos; adems, que sirvan de base para dar solucin a ejercicios en cualquier Lenguaje de Programacin. Para finalizar, slo queda hacer la aclaracin, que para un aprendizaje ptimo de estos temas se recomienda dedicacin en la lectura y en el anlisis de los ejercicios; ya que los ejercicios irn aumentando en complejidad y cualquiera de los temas tratados al empezar sern incluidos en los temas finales, por tal motivo no deben quedar dudas frente a alguno de ellos. Confo en que usted pueda llegar a dar soluciones a cualquier algoritmo y sea capaz de plasmarlo y aplicarlo en un lenguaje de programacin. Las soluciones que aqu aparecen son slo algunas de las muchas que puede tener un problema (un slo problema puede tener mltiples soluciones, espero que usted haga una mejor de las que aqu se encuentran y podamos depurar todo el contenido de este tema tan importante). El objetivo primordial de ese modulo es ayudar a la comprensin y al manejo de los algoritmos, darle solucin a cualquier ejercicio planteado y mejorar da a da en el desarrollo de la lgica utilizando una de las mejores tcnicas de estudio: el autoaprendizaje (trabajo autnomo e independiente) combinado con un buen material escrito puede dar excelentes resultados. Ing. Fabin Morales F.,M.Sc. | 2

[LGICA DE PROGRAMACIN] Elemento 4

La Lgica es un mundo fascinante donde todo es importante si se quiere llegar a ser un verdadero profesional. Cualquier duda, recomendacin o correccin por favor hacerlo al correo electrnico que se coloca en la parte inferior.

Fabian Morales Fiallos Docente UNIVERSIDAD TCNICA DE AMBATO FACULTAD INGENIERA CIVIL Y MECNICA e-mail: frmorales@uta.edu.ec

Ing. Fabin Morales F.,M.Sc. | 3

[LGICA DE PROGRAMACIN] Elemento 4

CONCEPTOS BSICOS DE PROGRAMACIN OBJETIVOS

Conocer conceptos fundamentales de algoritmos y lgica de programacin, tales como los tipos de algoritmos y sus caractersticas primordiales.

Entender las diferentes formas de representar un algoritmo identificando la mejor al momento de dar solucin a un problema.

Convertir cualquier frmula y operacin matemticas en una expresin algortmica valida y entendible para la computadora.

Desarrollar los pasos necesarios para la realizacin de un algoritmo en la bsqueda de soluciones a problemas planteados.

Reconocer el concepto de dato y su interaccin con los diversos procesos de entrada y de salida.

Utilizar de forma correcta los diferentes operadores aritmticos y lgicos teniendo en cuenta la jerarqua de los operadores que indica la importancia y el orden en que deben resolverse.

CONCEPTOS BSICOS DE LGICA Y ALGORITMOS

1. Definicin de algoritmo y lgica 2. Caractersticas de un algoritmo 3. Partes de un algoritmo 4. Tipos de algoritmos 5. Pasos para la solucin de un problema por computador 6. Pasos de elaboracin de un algoritmo 7. Formas de representacin de un algoritmo 7.1. Seudocdigo 7.2. Diagramacin libre o de flujo Ing. Fabin Morales F.,M.Sc. | 4

[LGICA DE PROGRAMACIN] Elemento 4 7.3. Diagramacin rectangular o estructurada 8. Datos e informacin manejada en un algoritmo 8.1. Datos alfabticos 8.2. Datos numricos 8.3. Datos alfanumricos 8.4. Datos lgicos o bolanos 9. Tipos de datos 9.1. Datos variables 9.2. Datos constantes 10. Condiciones para nombrar variables y constantes 11. Operadores 11.1. Operadores aritmticos 11.2. Operadores lgicos 11.2.1. Operadores lgicos relacionales 11.2.2. Operadores lgicos bolanos 12. Jerarqua de los operadores 13. Expresiones algortmicas 14. Ejercicios de conversin de expresiones algortmicas 14.1. Taller 1 (Conversin de Expresiones) 14.2. Solucin Taller 1 15. Ejercicios de Jerarqua de los operadores 15.1. Taller 2 (Jerarqua de los operadores) 15.2. Solucin Taller 2

Ing. Fabin Morales F.,M.Sc. | 5

[LGICA DE PROGRAMACIN] Elemento 4

LGICA DE PROGRAMACIN Y ALGORITMOS

PRE-LGICA

CONCEPTOS BSICOS DE LGICA Y ALGORITMOS

1. Definicin de algoritmo y lgica Un algoritmo es un procedimiento seguro y en cierta forma mecnica, de lograr un resultado. Tambin se define como el conjunto de pasos, operaciones o procedimientos para obtener una solucin a un problema determinado a partir de ciertas reglas definidas. El trmino algoritmo viene, por medio de varias traducciones, del nombre del matemtico rabe Mohamed Ibn Moussa Al Kow Rizmi al-Jwarizmi, matemtico rabe del siglo IX quien describe procedimientos aritmticos en sus libros escritos entre los aos 800 y 825. Su obra Quitab Al Jabr Al Mugabala, recoga el sistema de numeracin hind y el concepto del cero, y fue Fibonacci, el que tradujo su obra al latn y la inici con las palabras: Algoritmi dicit. La lgica, etimolgicamente viene de logos que significa palabra, tratado, pensamiento o razn, y la palabra ica que significa relacionado a. Por lo tanto, lgica hace relacin el pensamiento o la razn o tambin, a la forma en la cual el ser humano puede llegar a actuar usando su raciocinio a travs de ciertos principios bsicos.

Ing. Fabin Morales F.,M.Sc. | 6

[LGICA DE PROGRAMACIN] Elemento 4 2. Caractersticas de un algoritmo Todo algoritmo debe cumplir, estrictamente, las siguientes caractersticas. Ser finito: Debe tener un INICIO y un FIN Ser definido: Debe tener un desarrollo claro y coherente. No debe permitir dobles interpretaciones. Ser general: Debe soportar la mayora de las variantes que se puedan presentar en la definicin del problema. Debe ser finito en tamao y tiempo de ejecucin. Ser neutral de material: Puede ser realizado en papel, en pizarras, transistores, en computadoras. A pesar de la complejidad que se maneja en todos los conceptos al iniciar el estudio de Lgica de Programacin y los Algoritmos, stos son muy comunes, se encuentran en todo lugar y los aplicamos constantemente para obtener los resultados ms variados. El ejemplo ms claro est en que nos ayudan a preparar alimentos todos los das, ya que una receta de cocina no es otra cosa que un algoritmo, por poco parecido que tenga con un clculo matemtico o un programa informtico. Estas pueden estar escritas en un libro de recetas, explicados en un programa de televisin por medio de movimientos y palabras, o simplemente existir grabados en la memoria de la mente como secreto profesional. Lo anterior demuestra la neutralidad que tiene un algoritmo para ser expresado.

Ing. Fabin Morales F.,M.Sc. | 7

[LGICA DE PROGRAMACIN] Elemento 4

3. Partes de un algoritmo Entrada: Lugar donde se describe la informacin que va a ser leda. Aqu van todos los datos que se desconocen, y se requieren para realizar los clculos. Proceso: Lugar donde se describen los clculos y operaciones necesarias para alcanzar el resultado esperado. Esta parte, se ignora en los algoritmos que no requieren clculos. Salida: lugar donde se describe la informacin que se va a imprimir, o sea toda la informacin que dar respuesta a los requerimientos o peticiones que tena el algoritmo al empezar.

4. Tipos de algoritmos Algoritmo cualitativo: Pasos o instrucciones descritos por medio de palabras que sirven para llegar a la obtencin de una respuesta o solucin de un problema. Algoritmo cuantitativo: Pasos o instrucciones que involucran clculos numricos para llegar a un resultado o dar solucin a un problema. Ejemplos claros y cotidianos de algoritmos cualitativos pueden ser: el modo de operar una lavadora, tocar msica por medio de partituras, construir un aeroplano, bsqueda de un nmero en el directorio telefnico, el montaje de una llanta pinchada, la bsqueda de una direccin, la adquisicin de algn producto o incluso hacer trucos de magia. Ejemplos de algoritmos cuantitativos pueden ser: la divisin para calcular el cociente de dos nmeros, el algoritmo de Euclides para calcular el mximo comn divisor de dos enteros positivos, la liquidacin de una nmina, la solucin a cualquier ecuacin, registro de transacciones en un banco o hasta realizar cualquier tipo de estadstica en determinado estudio.

Ing. Fabin Morales F.,M.Sc. | 8

[LGICA DE PROGRAMACIN] Elemento 4 5. Pasos para la solucin de un problema por computador Definicin y delimitacin del Problema: Para resolver un problema es fundamental conocerlo por completo. Esta fase est dada por el enunciado del problema, que luego de ser ledo (cuantas veces sea necesario), se pasar a determinar si est claro o no y si es posible o no, darle una solucin. Mientras no se tenga claro cuales son los requerimientos del problema, o sea, que es lo que se busca solucionar, no tiene caso continuar con la siguiente fase. Tenga cuidado no confundir el enunciado ya que puede terminar dando solucin a otro problema inexistente. Anlisis del Problema: Una vez que se ha comprendido completamente que es lo que vamos a desarrollar, es necesario definir los datos de entrada (datos que se necesitan), los datos de salida (la informacin que se desea producir) y todos los clculos y frmulas necesario para procesar los datos. Se recomienda ponerse en el lugar del computador pensando en cmo satisfacer las necesidades de datos que se debern leer y se desconocen, los clculos necesarios y la informacin que se entregar como solucin a unas peticiones planteadas con el enunciado del problema. Diseo del Algoritmo: En esta fase se determinan los pasos o instrucciones que se llevarn a cabo, el orden lgico de ejecucin, y la manera como se desarrollar todo el programa para un eficiente funcionamiento. De esta fase depende el xito o el fracaso de una solucin a un problema por medio de la computadora. La forma como se indicarn las instrucciones es determinada por el programador, ya que puede utilizar las tcnicas de representacin de un algoritmo (El seudocdigo, la diagramacin libre o la diagramacin rectangular). Codificacin: Es escribir la solucin del problema en un lenguaje comprendido por la computadora, pero basado en el diseo del algoritmo, el cual es conocido como cdigo fuente, el cual se escribe en un lenguaje de programacin o lenguaje de alto nivel. Compilacin: En esta etapa el computador hace una revisin de las instrucciones colocadas por el programador, teniendo en cuenta que las instrucciones estn escritas correctamente en sintaxis y la gramtica segn las normas que rigen el lenguaje de programacin. Finalmente, transcribe el programa al interior de la memoria.

Ing. Fabin Morales F.,M.Sc. | 9

[LGICA DE PROGRAMACIN] Elemento 4 Depuracin: Los errores dentro de la programacin son muchos y aumentan con la complejidad y dificultad del problema. Luego que el compilador identifique errores en nuestro programa o cdigo fuente, se debe hacer una depuracin y correccin de errores, para dar paso a una solucin sin ninguno de ellos. Es de mucha ayuda documentar los algoritmos y los programas que se desarrollen, ya que son una gua o una comunicacin escrita entre el cdigo y cualquier usuario. stas ayudan a comprender un programa y facilitan futuras modificaciones. La documentacin: se divide en Documentacin Interna (comentarios o mensaje que se aaden al cdigo fuente para hacer ms claro el entendimiento de un proceso), Documentacin Externa (normalmente se le conoce como Manual del usuario, el cual es un documento escrito con la descripcin del Problema, nombre del Autor, algoritmo, diccionario de datos y cdigo fuente. Adems, es una descripcin paso a paso de la manera cmo funciona el programa). Ejecucin: Luego de haber corregido todos los errores y haber compilado el programa, se pasa a ejecutarlo para ver los resultados obtenidos, para lo cual se utilizan los dispositivos de entrada y de salida. Tenga muy presente, que el hecho de que un programa digitado no tenga ningn error, no necesariamente quiere decir que funcionar correctamente. Deber tener en cuenta los errores de digitacin y, tambin, los de ejecucin. La nica forma de estar seguro de la efectividad de un algoritmo es comparar los Requerimientos con las Soluciones, y si todo lo que fue pedido por el enunciado del problema es realizado, ya se puede dar por terminado el programa, de lo contrario se tendr que hacer una revisin de alguno de las fases anteriores. Mantenimiento: Se lleva a cabo despus de terminado el programa, cuando se detecta que es necesario hacer algn cambio, ajuste o complementacin al programa para que siga trabajando de manera correcta. Para poder realizar este trabajo se requiere que el programa este correctamente documentado. 6. Pasos de elaboracin de un algoritmo Leer el enunciado del problema cuantas veces sea necesario, hasta entenderlo completamente. Aclarar dudas o preguntas que se tengan. No se debe continuar hasta no tener claridad de lo que se va a desarrollar. Ing. Fabin Morales F.,M.Sc. | 10

[LGICA DE PROGRAMACIN] Elemento 4 Determinar claramente los datos de entrada con los que se deben contar para la solucin del problema. Aclarar y determinar la informacin o resultados que se soliciten. Definir clculos y comparaciones que se necesiten para llegar al resultado final. Tener en cuenta toda clase de condiciones y restricciones para la solucin del problema. Nota: Los cinco pasos anteriores, gozan de la misma importancia. La falta de anlisis a alguno de ellos causar problemas en el transcurso del desarrollo del algoritmo.

7. Formas de representacin de un algoritmo 7.1. Seudocdigo: Mezcla de lenguaje de programacin y espaol que se emplea, dentro de la programacin estructurada, para realizar el diseo de un programa. El seudocdigo se puede definir como una imitacin de un programa real; ya que es una combinacin de smbolos (/, *, >, >=, %), trminos (Lea, Imprima, Hacer Para) y otras caractersticas comnmente utilizadas en uno o ms lenguajes de alto nivel. Un seudocdigo ocupa menos espacio en una hoja de papel. Permite representar en forma fcil operaciones repetitivas complejas. Es muy fcil pasarlo a un programa en algn lenguaje de programacin. Y se puede observar claramente los niveles que tiene cada operacin. Ejemplo de un algoritmo cualitativo: Disear un algoritmo para preparar una limonada. INICIO Llenar una jarra con un litro de agua Echar el jugo de tres limones Echar cuatro cucharadas de azcar Remover el agua hasta disolver completamente el azcar FIN

Ing. Fabin Morales F.,M.Sc. | 11

[LGICA DE PROGRAMACIN] Elemento 4 Ejemplo de un algoritmo cuantitativo: Disear un algoritmo que permita hallar la suma de tres nmeros. INICIO LEER numero1, numero2, numero3 suma = numero1 + numero2 + numero3 IMPRIMIR suma FIN

7.2. Diagramacin libre o de flujo Representacin grfica de un algoritmo. Tambin se puede decir que es la representacin detallada en forma grfica de cmo deben realizarse los pasos en la computadora para producir resultados. Esta representacin grfica se da cuando varios smbolos, que indican diferentes procesos en la computadora, se relacionan entre s mediante lneas que indican el orden en que se deben ejecutar los procesos. Los smbolos utilizados han sido normalizados por el instituto norteamericano de normalizacin ANSI. Para realizar Diagramas de Flujo se deben tener en cuenta lo siguiente: Usar slo lneas de flujo horizontal y/o vertical. Evitar el cruce de lneas utilizando los conectores. Usar conectores solo cuando sea necesario. No dejar lneas de flujo sin conectar. Trazar los smbolos de manera que se puedan leer arriba-abajo e izquierda-derecha. Todo texto escrito dentro de un smbolo deber ser escrito claramente, evitando el uso de muchas palabras. Los smbolos usados en la diagramacin libre y sus significados son los siguientes:

Ing. Fabin Morales F.,M.Sc. | 12

[LGICA DE PROGRAMACIN] Elemento 4

Ing. Fabin Morales F.,M.Sc. | 13

[LGICA DE PROGRAMACIN] Elemento 4 Ejemplo de un diagrama de flujo (Tomando el ejemplo anterior):

7.3. Diagramacin rectangular o estructurada Tambin conocido con el nombre de diagrama estructurado N-S (Nassi-Schneiderman). En esta diagramacin se utiliza una serie de rectngulos consecutivos, que son de diferentes tipos, y representan diferentes partes de un algoritmo. Los cuales son los siguientes:

Ejemplo de un diagrama de flujo (Tomando el ejemplo anterior):

Ing. Fabin Morales F.,M.Sc. | 14

[LGICA DE PROGRAMACIN] Elemento 4

La forma de representacin de un algoritmo en esta pgina ser los seudocdigos o algoritmos (Numeral 7.1.), porque es una de las formas ms sencillas de resolver estos problemas.

8. Datos e informacin manejada en un algoritmo Todos los datos que se manejan dentro de un algoritmo tienen un tipo asociado con ellos. Un dato puede ser un simple carcter tal como b, un valor entero tal como 35 o un valor alfanumrico como 4-5555-0000. El tipo de dato determina la naturaleza del conjunto de valores que puede tomar una variable. Los tipos de datos ms importantes son los alfabticos, los numricos, los alfanumricos y los lgicos. Dentro de los lenguajes de programacin se encontrarn con otros tipos distintos a stos.

8.1. Datos alfabticos: Permiten almacenar variables cuyos valores, slo contengan letras, como por ejemplo un nombre, un apellido, una ciudad, un lugar de nacimiento o una ocupacin: "Morales ", " Ambato " o "Ingeniero". Tambin son de tipo carcter los nmeros con los que no es posible realizar o no se hacen operaciones matemticas, como por ejemplo un nmero de cdula, un NIT, un cdigo postal: 1.023.245, 2454545 o 259.

8.2. Datos numricos: Permiten almacenar variables de forma numrica, ya sea de tipo entero o real, negativos o positivos, es decir nmeros del 0 al 9, signos ms (+) o menos (-), y puntos decimales. Con estos datos se pueden realizar las operaciones bsicas

Ing. Fabin Morales F.,M.Sc. | 15

[LGICA DE PROGRAMACIN] Elemento 4 comunes. Por ejemplo una edad, un salario, un valor de un producto, una cantidad determinada, un nmero entero o decimal, entre otros. 20, 450.000, 25 0.111111.

8.3. Datos alfanumricos: Permiten almacenar variables que combinan datos alfabticos y datos numricos. El ejemplo ms claro es una direccin de una residencia o una direccin de correo electrnico que constan de letras, nmeros y smbolos o caracteres especiales. Cra 52 # 88-00 o micorreo_2432@servidor.com.

8.4. Datos lgicos o bolanos: Permiten almacenar aquellas variables que tenga slo dos valores, ellos pueden ser Cierto-falso, 1-0, F-V, entre otros. Estas variables son resultado de una comparacin entre otros datos. Por ejemplo si se tiene: A=1, B=10, C=-5, entonces Al comparar A>B A != B C>A C<A C>0 B>0 B<0 El resultado sera FALSO VERDADERO FALSO VERDADERO FALSO VERDADERO FALSO

9. Tipos de datos

9.1. Datos variables: Son todos aquellos valores que pueden o no cambiar en el transcurso de un algoritmo. Usualmente son introducidas como datos. Toda variable consta de un nombre y un valor. El nombre es un conjunto de letras o caracteres y nmeros, con los cuales se identifica un valor en un momento determinado. El valor es

Ing. Fabin Morales F.,M.Sc. | 16

[LGICA DE PROGRAMACIN] Elemento 4 la cantidad que una variable contiene, representa o tiene asociado en determinado momento. 9.2. Datos constantes: Son todos aquellos valores que no cambian en el transcurso de un algoritmo y son introducidos al momento de utilizarse. En determinados casos se puede presentar que el valor de una variable no cambie en el transcurso de un algoritmo; pero por este hecho no puede ser catalogada como constante, sino que es una variable que se comporta como constante. Una constante es un dato numrico o alfanumrico que no cambia durante la ejecucin del programa. Un ejemplo claro de un valor constante es el valor de (pi siempre va a ser igual a 3.1416, y este valor nunca cambiar).

10. Condiciones para nombrar variables y constantes Toda variable o constante al momento de definirse su nombre debe tener en cuenta las siguientes condiciones:

Debe comenzar con una letra, mayscula o minscula comprendida entre la A y la Z. No debe empezar por un nmero o por un smbolo.

No debe contener espacios en blanco. No se puede utilizar caracteres especiales (, , , ), smbolos (%, &, #, @) ni operadores aritmticos (+, -, *, /).

Las letras, dgitos y caracteres como la subraya ( _ ) estn permitidos despus del primer carcter.

Se recomienda que no supere los ocho (8) caracteres.

11. Operadores Son elementos que relacionan de forma diferente, los valores de una o ms variables o una constante. Es decir, los operadores nos permiten manipular valores.

Ing. Fabin Morales F.,M.Sc. | 17

[LGICA DE PROGRAMACIN] Elemento 4

11.1. Operadores aritmticos: Los operadores aritmticos permiten la realizacin de operaciones matemticas con los variables y las constantes. Los operadores aritmticos pueden ser utilizados con tipos de datos enteros o reales. Si ambos son enteros, el resultado es entero; si alguno de ellos es real, el resultado es real. Los operadores aritmticos son: [+] Suma. [-] Resta. [*] Multiplicacin. [/] Divisin con decimales. [\] Divisin entera. [Mod o Modulo] Divisin modular o Residuo de la divisin. [** o ^] Exponenciacin.

11.2. Operadores lgicos: Operadores que permiten comparar dos valores o variables. Se dividen en operadores lgicos relacionales y operadores lgicos bolanos.

11.2.1. Operadores lgicos relacionales: Se utilizan para establecer una relacin entre dos valores. Compara estos valores entre si y esta comparacin produce un resultado de Verdadero o Falso. Los operadores relacionales comparan valores del mismo tipo, tienen el mismo nivel de prioridad en su evaluacin y tienen menor prioridad que los aritmticos. Los operadores relacinales son: [>] Mayor que. [<] Menor que. [>=] Mayor o igual que. [<=] Menor o igual que. [=] Igual. [< >] Diferente.

Ing. Fabin Morales F.,M.Sc. | 18

[LGICA DE PROGRAMACIN] Elemento 4

11.2.2. Operadores lgicos bolanos Estos operadores se utilizan para establecer relaciones entre valores lgicos. Estos valores pueden ser resultado de una expresin relacional. Los operadores lgicos son: [And o ^] Disyuncin Y. [Or o v] Conjuncin O. [Not o !] Negacin.

12. Jerarqua de los operadores Para resolver cualquier operacin o ejercicio se debe desarrollar teniendo en cuenta el siguiente orden: 1. Todas las expresiones entre parntesis se evalan primero. Las expresiones con parntesis anidados se evalan desde el centro hacia fuera, el parntesis ms interno se evala primero. Dentro de una misma expresin los operadores se evalan en el siguiente orden. 2. Exponenciacin 3. Multiplicacin, Divisin (Con decimales) 4. Divisin Entera y Divisin Modular. 5. Suma y resta. Cuando se encuentran operadores del mismo nivel, estos se desarrollan de izquierda a derecha. Cuando se encuentran varios parntesis, se empiezan a desarrollar por el ms interno. Un parntesis, slo desaparece, cuando queda un solo trmino en medio de ellos.

Ing. Fabin Morales F.,M.Sc. | 19

[LGICA DE PROGRAMACIN] Elemento 4

13. Expresiones algortmicas Expresiones manejadas dentro de un algoritmo en lenguaje entendible por la computadora. Son diferentes a las expresiones matemticas. Una expresin matemtica como [a2 + bx + c], se convierte a expresin algoritmo por medio de los operadores aritmticos, quedando de la siguiente forma [a ^ 2 + b * x + c]. Toda expresin matemtica o frmula general tiene que ser convertida a expresin algortmica para ser entendida por la computadora al momento de realizar cualquier operacin o clculo.

14. Ejercicios de conversin de expresiones algortmicas

Ejercicios resueltos Para convertir cualquier expresin matemtica a expresin algortmica, basta con reemplazar las operaciones ms comunes por los operadores aritmticos antes mencionados. Por todo esto, las operaciones que comnmente manejamos en el rea de matemtica, no sern reconocidas como expresiones algortmicas. a2 + 2ab + b2 = a ^ 2 + 2 * a * b + b ^ 2 Observe que, tanto la letra a como la b, estn elevadas al cuadrado, por tal motivo se debe utilizar el operador ^. De igual forma, los trminos 2, a y b, se estn multiplicando entre s, por lo que tambin deben ser separados por el operador *. Por ltimo la suma queda tal cual est ubicada en la expresin.

Ing. Fabin Morales F.,M.Sc. | 20

[LGICA DE PROGRAMACIN] Elemento 4

Observe los siguientes ejemplos:

Note y observe la diferencia entre las expresiones matemticas y las algortmicas.

Adems, mire la importancia de utilizar los parntesis para separar y diferenciar operaciones dentro de una expresin.

Ing. Fabin Morales F.,M.Sc. | 21

[LGICA DE PROGRAMACIN] Elemento 4 Los parntesis tienen prioridad sobre el resto de las operaciones. Por ejemplo en la expresin A* (B + 3): la constante 3 se suma primero al valor de B, despus este resultado se multiplica por el valor de A. Mientras que (A * B) + 3, A y B se multiplican primero y a continuacin se suma 3. Pero si no se ponen los parntesis no habra ningn problema porque segn la jerarqua de los operadores, primer multiplica y luego realiza la suma. Por lo tanto (A * B) + 3 es igual o dara el mismo resultado que A * B + 3. A + (B/C) + D equivale a A + B/C + D. A + (B/C) + D equivale a A + B/C + D. Y por ltimo, A * B/C * D equivale a ((A * B)/C) * D y no a (A * B)/(C * D), porque aqu los parntesis obligan a que se realicen primero las multiplicaciones y luego se divida. La anterior observa nos indica que los parntesis en algunos casos sobraran; pero que si no se colocan en algunos ejercicios, se alterara el resultado y se cometera un error muy grande. Los ejercicios tambin se puede hacer en sentido inverso, o sea dar una expresin algortmica y convertirla a expresin matemtica:

Ing. Fabin Morales F.,M.Sc. | 22

[LGICA DE PROGRAMACIN] Elemento 4 Ejercicios propuestos de conversin de expresiones (TALLER 1) A- Convertir las siguientes expresiones matemticas a expresiones algortmicas:

B- Convertir las siguientes expresiones algortmicas en expresiones matemticas: 1) 7 * (1 + y) 2) a ^ 3 + b ^ 3 3) (x + y) / (u + w / a) 4) x / y * (z + w) 5) a ^ 3 + 3 * a ^ 2 * b + 3 * a * b ^ 2 + b ^ 3 6) (a + b) ^ 2 - (a - b ^ 2) 7) x - y ^ 2 8) (x - y) ^ 2 9) a / b + c / a / b + c 10) (a / (b + c)) / ((a / b) + c)

Ing. Fabin Morales F.,M.Sc. | 23

[LGICA DE PROGRAMACIN] Elemento 4

15. Ejercicios de Jerarqua de los operadores Para desarrollar cualquier operacin algortmica es necesario utilizar la jerarqua de los operadores, ya que ella indica el orden e importancia de cada uno de los operadores aritmticos. Tomaremos como ejemplo la expresin [2 * 5 + 3]. Algunos tendran la duda de cual operacin resolver en primera instancia La multiplicacin o la suma?; otros sumaran y luego multiplicara diciendo que la respuesta es 16. Para no cometer estos errores o no tener duda al momento de resolver una operacin matemtica, tenga en cuenta la jerarqua de los operadores, donde notar que primero se debe realizar la multiplicacin y luego la suma, por lo tanto la respuesta correcta ser 13, discriminado de la siguiente manera: 2*5+3 10 + 3 13 Para identificar cual es la operacin que se desarrollar en cada operacin, la resalataremos en negrilla. Todo lo anterior le ayudar a una mejor comprensin del tema. 40 / 5 + 8 ^ 2 * 3 ------> 1 es la exponenciacin 40 / 5 + 64 * 3 ---------> Primero se resuelve la divisin (de izquierda a derecha) 8 + 64 * 3 --------------> Luego divisin (mismo nivel jerarquico de multiplicacin) 8 + 192-----------------> Por ltimo se realiza la suma 200 Primero se resuelve la Exponenciacin, ya que al no haber parntesis, es el operador de mayor jerarqua. En la segunda lnea se da solucin a la divisin, que a pesar de estar al mismo nivel que la multiplicacin, la condicin es que se deben desarrollar de izquierda a derecha. As, luego de la divisin se desarrolla la multiplicacin, y por ltima la suma que es el operador ubicado en el ltimo nivel. Observe que en cada lnea se seala la Ing. Fabin Morales F.,M.Sc. | 24

[LGICA DE PROGRAMACIN] Elemento 4 operacin a solucionar, y en la lnea siguiente va la solucin a ese clculo. Lo dems queda igual, sin modificarse. Luego de adquirir habilidad y prctica con estas operaciones, se podrn desarrollar varias operaciones y clculos de forma simultnea. En algoritmos se manejan tres tipos de divisin, las cuales a pesar de su similitud son totalmente diferentes. Tomaremos el caso de dividir 51 por 2 y sumarle 3 utilizando estos tres tipos de divisin. 51 / 2 + 3 ---> La divisin ( / ) indica que se manejan decimales. 51 / 2= 25.5 25.5 + 3 -----> Luego se realiza la suma de los dos valores 28.5 51 \ 2 + 3 ---> La divisin ( \ ) indica que slo se maneja la parte entera. 51 \ 2= 25 25 + 3 -----> Luego se realiza la suma de los dos valores 28 51 mod 2 + 3 ---> (mod) indica que se usa el residuo de la divisin 51 mod 2 = 1 1 + 3 -----> Luego se realiza la suma de los dos valores 4 Observe lo distinto de los resultados. La divisin modular toma slo el residuo de la divisin: El 2 en el 51 est 25 veces. 25 x 2 = 50. Por lo tanto de 50 a 51 hay 1 (este es el residuo de la divisin). Para entender mejor observe los siguientes ejemplos: 1) 45 / 2 = 22.5 2) 45 \ 2 = 22 3) 45 mod 2 = 1 4) 100 / 3 = 33.33 5) 100 \ 3= 33 6) 100 mod 3= 1 Ing. Fabin Morales F.,M.Sc. | 25

[LGICA DE PROGRAMACIN] Elemento 4 7) 48 / 10 = 4.8 8) 48 \ 10 = 4 9) 48 mod 10 = 8 10) 50 / 2 + 30 = 25 + 30 = 55 11) 50 \ 2 + 30 = 25 + 30 = 55 12) 50 mod 2 + 30 = 0 + 30 = 30 En el primer tipo de divisin (Ejercicio 11) se tienen en cuenta los decimales. En el segundo slo la parte entera (Ejercicio 12 - como es divisible da lo mismo que la divisin anterior), y en el ltimo, el residuo de la divisin (en este caso es 0, porque es 50 es divisible por 2). Ejercicios resueltos 9 + 2 * 12 / 2 ^ 2 + ((5 ^ 3) / 10 + 2.5) 9 + 2 * 12 / 2 ^ 2 + (125 / 10 + 2.5) 9 + 2 * 12 / 2 ^ 2 + (12.5 + 2.5) 9 + 2 * 12 / 2 ^ 2 + 15 9 + 2 * 12 / 4 + 15 9 + 24 / 4 + 15 9 + 6 + 15 15 + 15 30 Observe como al encontrarse con dos parntesis distintos se empieza a resolver por el ms interno, y slo desaparece uno de ellos cuando queda entre ellos un solo trmino (en la segunda lnea desaparece un parntesis, porque luego de elevar 5 a la 3 queda 125, o sea un solo trmino, mientras que el segundo no desaparece porque an faltan operaciones por realizar dentro de ellos).

Ing. Fabin Morales F.,M.Sc. | 26

[LGICA DE PROGRAMACIN] Elemento 4

20 / 2 / 2 / 5 + (41 \ 2 \ 5 + 3) 20 / 2 / 2 / 5 + (20 \ 5 + 3) 20 / 2 / 2 / 5 + (4 + 3) 20 / 2 / 2 / 5 + 7 10 / 2 / 5 + 7 5/5+7 1+7 8 A continuacin combinaremos los tres tipos de divisin dentro de un mismo ejercicio. (2 ^ 2 * 4 * 3) \ 2 + (2 ^ 5 mod 2 ^ 2 * 3) (4 * 4 * 3) \ 2 + (2 ^ 5 mod 2 ^ 2 * 3) (16 * 3) \ 2 + (2 ^ 5 mod 2 ^ 2 * 3) 48 \ 2 + (2 ^ 5 mod 2 ^ 2 * 3) 48 \ 2 + (32 mod 2 ^ 2 * 3) 48 \ 2 + (32 mod 4 * 3) 48 \ 2 + (32 mod 12) 48 \ 2 + 8 24 + 8 32 (3 ^ 3 + 2 ^ 3 4 ^ 2 + 5 / 5 \ 2) mod 3 (27 + 2 ^ 3 4 ^ 2 + 5 / 5 \ 2) mod 3 (27 + 8 4 ^ 2 + 5 / 5 \ 2) mod 3 (27 + 8 16 + 5 / 5 \ 2) mod 3 (27 + 8 16 + 1 \ 2) mod 3 (27 + 8 16 + 0) mod 3 (35 16 + 0) mod 3 (19 + 0) mod 3 19 mod 3 1

Ing. Fabin Morales F.,M.Sc. | 27

[LGICA DE PROGRAMACIN] Elemento 4 (10 ^ 3 + 5 * 100 / 5) + 54 - (605 mod 2) * 1150 (1000 + 5 * 100 / 5) + 54 - (605 mod 2) * 1150 (1000 + 500 / 5) + 54 - (605 mod 2) * 1150 (1000 + 100) + 54 - (605 mod 2) * 1150 1100 + 54 - (605 mod 2) * 1150 1100 + 54 1 *1150 1100 + 54 -1150 1154 - 1150 4 360 / 2 / 10 / 3 - (45 mod 8) * 8 + 38 + 500 360 / 2 / 10 / 3 5 * 8 + 38 + 500 180 / 10 / 3 5 * 8 + 38 + 500 18 / 3 5 * 8 + 38 + 500 6 5 * 8 + 38 + 500 6 40 + 38 + 500 -34 + 38 + 500 4 + 500 504 36 32 - 80 mod (48 mod 10 - 6) + 20 36 32 - 80 mod (8 - 6) + 20 36 32 - 80 mod 2 + 20 36 32 0 + 20 4 0 + 20 4 + 20 24 -4 * 7 + 2 ^ 3 / 4 - 5 -4 * 7 + 8 / 4 - 5 -28 + 8 / 4 5 -28 + 2 5 26 5 -31

Ing. Fabin Morales F.,M.Sc. | 28

[LGICA DE PROGRAMACIN] Elemento 4 ((12 + 3) * 8) (9 - (4 ^ 2) + 10) (15 * 8) (9 - (4 ^ 2) + 10) 120 (9 - (4 ^ 2) + 10) 120 (9 - 16 + 10) 120 (-7 + 10) 120 3 117 7 * 10 50 mod 3 * 4 + 9 70 50 mod 3 * 4 + 9 70 50 mod 12 + 9 70 2 + 9 68 + 9 77 3 * (2 ^ 4 + (5 * 3 ^ 3 + 2) \ 7) mod 2 3 * (2 ^ 4 + (5 * 27 + 2) \ 7) mod 2 3 * (2 ^ 4 + (135 + 2) \ 7) mod 2 3 * (2 ^ 4 + 137 \ 7) mod 2 3 * (16 + 137 \ 7) mod 2 3 * (16 + 19) mod 2 3 * 35 mod 2 105 mod 2 1 2002 \ 4 + 5 + 8 + (36 / 6 ^ 2) - (400 + (5 5 * 5) * 8 * 4) 2002 \ 4 + 5 + 8 + (36 / 36) - (400 + (5 5 * 5) * 8 * 4) 2002 \ 4 + 5 + 8 + 1 - (400 + (5 5 * 5) * 8 * 4) 2002 \ 4 + 5 + 8 + 1 - (400 + (5 25) * 8 * 4) 2002 \ 4 + 5 + 8 + 1 - (400 - 20 * 8 * 4) 2002 \ 4 + 5 + 8 + 1 - (400 - 160 * 4) 2002 \ 4 + 5 + 8 + 1 - (400 - 640) 2002 \ 4 + 5 + 8 + 1 - ( -240) 2002 \ 4 + 5 + 8 + 1 + 240 500 + 5 + 8 + 1 + 240 Ing. Fabin Morales F.,M.Sc. | 29

[LGICA DE PROGRAMACIN] Elemento 4 505 + 8 + 1 + 240 513 + 1 + 240 514 + 240 754

Ejercicios propuestos de Jerarqua de los operadores (TALLER 2) Resolver los siguientes ejercicios utilizando la teora de Jerarqua de los operadores 1) 2 + 3 * 4 2) 42 / 2 / 3 / 7 ^ 3 3) 10 ^ 2 ^ 2 \ 7 4) 5 ^ 3 + 120 1 ^ 5 5) 4 + 5 ^ 2 500 + 20 ^ 2 * 10 6) (4 ^ 3 + 2 * 40 - 140 ) ^ 2 7) (5 ^ 2 + 3 * 10 + 5) - (5 ^ 2 2 * 5 - 6) 8) (33 + 5 * 3 ^ 5 + 11 * 3 + 14) / (3 + 2) 9) (2 * 5 * 3 * 4 ^ 2) / ((48 / 2 ^ 2) 20 + 2 ^ 2) 10) Calcule x al cuadrado + y al cuadrado + z. Dndole a x, y, z los valores (1.2, Pi, y 7.5) 11) Calcule la parte entera de la divisin a sobre (b + c) con a, b y c tomando valores en (-3, -1.2 y Pi). 12) Calcule la parte decimal de la divisin de a sobre (b + c) con a, b y c tomando valores en (-36, -8.2 y Pi).

Ing. Fabin Morales F.,M.Sc. | 30

También podría gustarte