Elemento4

149 views
105 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
149
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Elemento4

  1. 1. UNIVERSIDAD TÉCNICA DE AMBATOFACULTAD INGENIERÍA CIVIL Y MECÁNICA Módulo “EMPLEO DE NTIC´s II”
  2. 2. [LÓGICA DE PROGRAMACIÓN] Elemento 4 INTRODUCCIÓNPara la mayoría de personas que estudian algo relacionado con los sistemas se hanencontrado con la dificultad de asignaturas relacionadas con la Lógica y los algoritmos,las cuales son fundamentales para poder llegar a desarrollar software (programas paracomputador) de manera rápida, óptima y confiable.Este modulo surge como una de las opciones que ofrecen solución a los diversosproblemas que se presentan en asignaturas como las antes mencionadas; utilizando unmétodo de autoaprendizaje, diseñado a objetivos cortos donde el estudiante puedaaprender y manejar la asignatura y avanzar en sus diferentes temas.También se encontrará ejercicios desde lo más sencillo hasta lo más complejo,explicados paso por paso, con sus respectivas documentaciones y aclaraciones, para queel estudiante maneje completamente las estructuras básicas y fundamentales de laLógica y los Algoritmos; además, que sirvan de base para dar solución a ejercicios encualquier Lenguaje de Programación.Para finalizar, sólo queda hacer la aclaración, que para un aprendizaje óptimo de estostemas se recomienda dedicación en la lectura y en el análisis de los ejercicios; ya quelos ejercicios irán aumentando en complejidad y cualquiera de los temas tratados alempezar serán incluidos en los temas finales, por tal motivo no deben quedar dudasfrente a alguno de ellos.Confío en que usted pueda llegar a dar soluciones a cualquier algoritmo y sea capaz deplasmarlo y aplicarlo en un lenguaje de programación. Las soluciones que aquí aparecenson sólo algunas de las muchas que puede tener un problema (un sólo problema puedetener múltiples soluciones, espero que usted haga una mejor de las que aquí seencuentran y podamos depurar todo el contenido de este tema tan importante).El objetivo primordial de ese modulo es ayudar a la comprensión y al manejo de losalgoritmos, darle solución a cualquier ejercicio planteado y mejorar día a día en eldesarrollo de la lógica utilizando una de las mejores técnicas de estudio: elautoaprendizaje (trabajo autónomo e independiente) combinado con un buenmaterial escrito puede dar excelentes resultados. Ing. Fabián Morales F.,M.Sc. | 2
  3. 3. [LÓGICA DE PROGRAMACIÓN] Elemento 4La Lógica es un mundo fascinante donde todo es importante si se quiere llegar a ser unverdadero profesional. Cualquier duda, recomendación o corrección por favor hacerlo alcorreo electrónico que se coloca en la parte inferior.Fabian Morales FiallosDocenteUNIVERSIDAD TÉCNICA DE AMBATOFACULTAD INGENIERÍA CIVIL Y MECÁNICAe-mail: frmorales@uta.edu.ec Ing. Fabián Morales F.,M.Sc. | 3
  4. 4. [LÓGICA DE PROGRAMACIÓN] Elemento 4 “CONCEPTOS BÁSICOS DE PROGRAMACIÓN”OBJETIVOS  Conocer conceptos fundamentales de algoritmos y lógica de programación, tales como los tipos de algoritmos y sus características primordiales.  Entender las diferentes formas de representar un algoritmo identificando la mejor al momento de dar solución a un problema.  Convertir cualquier fórmula y operación matemáticas en una expresión algorítmica valida y entendible para la computadora.  Desarrollar los pasos necesarios para la realización de un algoritmo en la búsqueda de soluciones a problemas planteados.  Reconocer el concepto de dato y su interacción con los diversos procesos de entrada y de salida.  Utilizar de forma correcta los diferentes operadores aritméticos y lógicos teniendo en cuenta la jerarquía de los operadores que indica la importancia y el orden en que deben resolverse.“CONCEPTOS BÁSICOS DE LÓGICA Y ALGORITMOS”1. Definición de algoritmo y lógica2. Características de un algoritmo3. Partes de un algoritmo4. Tipos de algoritmos5. Pasos para la solución de un problema por computador6. Pasos de elaboración de un algoritmo7. Formas de representación de un algoritmo7.1. Seudocódigo7.2. Diagramación libre o de flujo Ing. Fabián Morales F.,M.Sc. | 4
  5. 5. [LÓGICA DE PROGRAMACIÓN] Elemento 47.3. Diagramación rectangular o estructurada8. Datos e información manejada en un algoritmo8.1. Datos alfabéticos8.2. Datos numéricos8.3. Datos alfanuméricos8.4. Datos lógicos o boléanos9. Tipos de datos9.1. Datos variables9.2. Datos constantes10. Condiciones para nombrar variables y constantes11. Operadores11.1. Operadores aritméticos11.2. Operadores lógicos11.2.1. Operadores lógicos relacionales11.2.2. Operadores lógicos boléanos12. Jerarquía de los operadores13. Expresiones algorítmicas14. Ejercicios de conversión de expresiones algorítmicas14.1. Taller 1 (Conversión de Expresiones)14.2. Solución Taller 115. Ejercicios de Jerarquía de los operadores15.1. Taller 2 (Jerarquía de los operadores)15.2. Solución Taller 2 Ing. Fabián Morales F.,M.Sc. | 5
  6. 6. [LÓGICA DE PROGRAMACIÓN] Elemento 4 LÓGICA DE PROGRAMACIÓN Y ALGORITMOS PRE-LÓGICA “CONCEPTOS BÁSICOS DE LÓGICA Y ALGORITMOS”1. Definición de algoritmo y lógicaUn algoritmo es un procedimiento seguro y en cierta forma mecánica, de lograr unresultado. También se define como el conjunto de pasos, operaciones o procedimientospara obtener una solución a un problema determinado a partir de ciertas reglasdefinidas.El término algoritmo viene, por medio de varias traducciones, del nombre delmatemático árabe Mohamed Ibn Moussa Al Kow Rizmi al-Jwarizmi, matemático árabedel siglo IX quien describe procedimientos aritméticos en sus libros escritos entre losaños 800 y 825. Su obra Quitab Al Jabr Al Mugabala, recogía el sistema de numeraciónhindú y el concepto del cero, y fue Fibonacci, el que tradujo su obra al latín y la iniciócon las palabras: Algoritmi dicit.La lógica, etimológicamente viene de logos que significa palabra, tratado, pensamientoo razón, y la palabra ica que significa relacionado a. Por lo tanto, lógica hace relación elpensamiento o la razón o también, a la forma en la cual el ser humano puede llegar aactuar usando su raciocinio a través de ciertos principios básicos. Ing. Fabián Morales F.,M.Sc. | 6
  7. 7. [LÓGICA DE PROGRAMACIÓN] Elemento 42. Características de un algoritmoTodo algoritmo debe cumplir, estrictamente, las siguientes características.Ser finito: Debe tener un INICIO y un FINSer definido: Debe tener un desarrollo claro y coherente. No debe permitir doblesinterpretaciones.Ser general: Debe soportar la mayoría de las variantes que se puedan presentar en ladefinición del problema. Debe ser finito en tamaño y tiempo de ejecución.Ser neutral de material: Puede ser realizado en papel, en pizarras, transistores, encomputadoras.A pesar de la complejidad que se maneja en todos los conceptos al iniciar el estudio deLógica de Programación y los Algoritmos, éstos son muy comunes, se encuentran entodo lugar y los aplicamos constantemente para obtener los resultados más variados. Elejemplo más claro está en que nos ayudan a preparar alimentos todos los días, ya queuna receta de cocina no es otra cosa que un algoritmo, por poco parecido que tenga conun cálculo matemático o un programa informático. Estas pueden estar escritas en unlibro de recetas, explicados en un programa de televisión por medio de movimientos ypalabras, o simplemente existir grabados en la memoria de la mente como secretoprofesional. Lo anterior demuestra la neutralidad que tiene un algoritmo para serexpresado. Ing. Fabián Morales F.,M.Sc. | 7
  8. 8. [LÓGICA DE PROGRAMACIÓN] Elemento 43. Partes de un algoritmoEntrada: Lugar donde se describe la información que va a ser leída. Aquí van todos losdatos que se desconocen, y se requieren para realizar los cálculos.Proceso: Lugar donde se describen los cálculos y operaciones necesarias para alcanzarel resultado esperado. Esta parte, se ignora en los algoritmos que no requieren cálculos.Salida: lugar donde se describe la información que se va a imprimir, o sea toda lainformación que dará respuesta a los requerimientos o peticiones que tenía el algoritmoal empezar.4. Tipos de algoritmosAlgoritmo cualitativo: Pasos o instrucciones descritos por medio de palabras quesirven para llegar a la obtención de una respuesta o solución de un problema.Algoritmo cuantitativo: Pasos o instrucciones que involucran cálculos numéricos parallegar a un resultado o dar solución a un problema.Ejemplos claros y cotidianos de algoritmos cualitativos pueden ser: el modo de operaruna lavadora, tocar música por medio de partituras, construir un aeroplano, búsqueda deun número en el directorio telefónico, el montaje de una llanta pinchada, la búsqueda deuna dirección, la adquisición de algún producto o incluso hacer trucos de magia.Ejemplos de algoritmos cuantitativos pueden ser: la división para calcular el cociente dedos números, el algoritmo de Euclides para calcular el máximo común divisor de dosenteros positivos, la liquidación de una nómina, la solución a cualquier ecuación,registro de transacciones en un banco o hasta realizar cualquier tipo de estadística endeterminado estudio. Ing. Fabián Morales F.,M.Sc. | 8
  9. 9. [LÓGICA DE PROGRAMACIÓN] Elemento 45. Pasos para la solución de un problema por computadorDefinición y delimitación del Problema: Para resolver un problema es fundamentalconocerlo por completo. Esta fase está dada por el enunciado del problema, que luegode ser leído (cuantas veces sea necesario), se pasará a determinar si está claro o no y sies posible o no, darle una solución. Mientras no se tenga claro cuales son losrequerimientos del problema, o sea, que es lo que se busca solucionar, no tiene casocontinuar con la siguiente fase. Tenga cuidado no confundir el enunciado ya que puedeterminar dando solución a otro problema inexistente.Análisis del Problema: Una vez que se ha comprendido completamente que es lo quevamos a desarrollar, es necesario definir los datos de entrada (datos que se necesitan),los datos de salida (la información que se desea producir) y todos los cálculos yfórmulas necesario para procesar los datos. Se recomienda ponerse en el lugar delcomputador pensando en cómo satisfacer las necesidades de datos que se deberán leer yse desconocen, los cálculos necesarios y la información que se entregará como solucióna unas peticiones planteadas con el enunciado del problema.Diseño del Algoritmo: En esta fase se determinan los pasos o instrucciones que sellevarán a cabo, el orden lógico de ejecución, y la manera como se desarrollará todo elprograma para un eficiente funcionamiento. De esta fase depende el éxito o el fracasode una solución a un problema por medio de la computadora. La forma como seindicarán las instrucciones es determinada por el programador, ya que puede utilizar lastécnicas de representación de un algoritmo (El seudocódigo, la diagramación libre o ladiagramación rectangular).Codificación: Es escribir la solución del problema en un lenguaje comprendido por lacomputadora, pero basado en el diseño del algoritmo, el cual es conocido como códigofuente, el cual se escribe en un lenguaje de programación o lenguaje de alto nivel.Compilación: En esta etapa el computador hace una revisión de las instruccionescolocadas por el programador, teniendo en cuenta que las instrucciones estén escritascorrectamente en sintaxis y la gramática según las normas que rigen el lenguaje deprogramación. Finalmente, transcribe el programa al interior de la memoria. Ing. Fabián Morales F.,M.Sc. | 9
  10. 10. [LÓGICA DE PROGRAMACIÓN] Elemento 4Depuración: Los errores dentro de la programación son muchos y aumentan con lacomplejidad y dificultad del problema. Luego que el compilador identifique errores ennuestro programa o código fuente, se debe hacer una depuración y corrección deerrores, para dar paso a una solución sin ninguno de ellos. Es de mucha ayudadocumentar los algoritmos y los programas que se desarrollen, ya que son una guía ouna comunicación escrita entre el código y cualquier usuario. Éstas ayudan acomprender un programa y facilitan futuras modificaciones.La documentación: se divide en Documentación Interna (comentarios o mensaje quese añaden al código fuente para hacer más claro el entendimiento de un proceso),Documentación Externa (normalmente se le conoce como Manual del usuario, el cuales un documento escrito con la descripción del Problema, nombre del Autor, algoritmo,diccionario de datos y código fuente. Además, es una descripción paso a paso de lamanera cómo funciona el programa).Ejecución: 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 losdispositivos de entrada y de salida. Tenga muy presente, que el hecho de que unprograma digitado no tenga ningún error, no necesariamente quiere decir que funcionarácorrectamente. Deberá tener en cuenta los errores de digitación y, también, los deejecución. La única forma de estar seguro de la efectividad de un algoritmo es compararlos Requerimientos con las Soluciones, y si todo lo que fue pedido por el enunciado delproblema es realizado, ya se puede dar por terminado el programa, de lo contrario setendrá que hacer una revisión de alguno de las fases anteriores.Mantenimiento: Se lleva a cabo después de terminado el programa, cuando se detectaque es necesario hacer algún cambio, ajuste o complementación al programa para quesiga trabajando de manera correcta. Para poder realizar este trabajo se requiere que elprograma este correctamente documentado.6. Pasos de elaboración de un algoritmoLeer el enunciado del problema cuantas veces sea necesario, hasta entenderlocompletamente. Aclarar dudas o preguntas que se tengan. No se debe continuar hasta notener claridad de lo que se va a desarrollar. Ing. Fabián Morales F.,M.Sc. | 10
  11. 11. [LÓGICA DE PROGRAMACIÓN] Elemento 4Determinar claramente los datos de entrada con los que se deben contar para lasolución del problema.Aclarar y determinar la información o resultados que se soliciten.Definir cálculos y comparaciones que se necesiten para llegar al resultado final.Tener en cuenta toda clase de condiciones y restricciones para la solución delproblema.Nota: Los cinco pasos anteriores, gozan de la misma importancia. La falta de análisis aalguno de ellos causará problemas en el transcurso del desarrollo del algoritmo.7. Formas de representación de un algoritmo7.1. Seudocódigo: Mezcla de lenguaje de programación y español que se emplea,dentro de la programación estructurada, para realizar el diseño de un programa. Elseudocódigo se puede definir como una imitación de un programa real; ya que es unacombinación de símbolos (/, *, >, >=, %), términos (Lea, Imprima, Hacer Para) y otrascaracterísticas comúnmente utilizadas en uno o más lenguajes de alto nivel.Un seudocódigo ocupa menos espacio en una hoja de papel. Permite representar enforma fácil operaciones repetitivas complejas. Es muy fácil pasarlo a un programa enalgún lenguaje de programación. Y se puede observar claramente los niveles que tienecada operación.Ejemplo de un algoritmo cualitativo: Diseñar un algoritmo para preparar una limonada.INICIOLlenar una jarra con un litro de aguaEchar el jugo de tres limonesEchar cuatro cucharadas de azúcarRemover el agua hasta disolver completamente el azúcarFIN Ing. Fabián Morales F.,M.Sc. | 11
  12. 12. [LÓGICA DE PROGRAMACIÓN] Elemento 4Ejemplo de un algoritmo cuantitativo: Diseñar un algoritmo que permita hallar la sumade tres números.INICIOLEER numero1, numero2, numero3suma = numero1 + numero2 + numero3IMPRIMIR sumaFIN7.2. Diagramación libre o de flujoRepresentación gráfica de un algoritmo. También se puede decir que es larepresentación detallada en forma gráfica de cómo deben realizarse los pasos en lacomputadora para producir resultados. Esta representación gráfica se da cuando variossímbolos, que indican diferentes procesos en la computadora, se relacionan entre símediante líneas que indican el orden en que se deben ejecutar los procesos. Lossímbolos utilizados han sido normalizados por el instituto norteamericano denormalización ANSI.Para realizar Diagramas de Flujo se deben tener en cuenta lo siguiente: Usar sólo líneasde flujo horizontal y/o vertical. Evitar el cruce de líneas utilizando los conectores. Usarconectores solo cuando sea necesario. No dejar líneas de flujo sin conectar. Trazar lossímbolos de manera que se puedan leer arriba-abajo e izquierda-derecha. Todo textoescrito dentro de un símbolo deberá ser escrito claramente, evitando el uso de muchaspalabras.Los símbolos usados en la diagramación libre y sus significados son los siguientes: Ing. Fabián Morales F.,M.Sc. | 12
  13. 13. [LÓGICA DE PROGRAMACIÓN] Elemento 4 Ing. Fabián Morales F.,M.Sc. | 13
  14. 14. [LÓGICA DE PROGRAMACIÓN] Elemento 4Ejemplo de un diagrama de flujo (Tomando el ejemplo anterior):7.3. Diagramación rectangular o estructuradaTambién conocido con el nombre de diagrama estructurado N-S (Nassi-Schneiderman).En esta diagramación se utiliza una serie de rectángulos consecutivos, que son dediferentes tipos, y representan diferentes partes de un algoritmo. Los cuales son lossiguientes:Ejemplo de un diagrama de flujo (Tomando el ejemplo anterior): Ing. Fabián Morales F.,M.Sc. | 14
  15. 15. [LÓGICA DE PROGRAMACIÓN] Elemento 4La forma de representación de un algoritmo en esta página será los seudocódigos oalgoritmos (Numeral 7.1.), porque es una de las formas más sencillas de resolver estosproblemas.8. Datos e información manejada en un algoritmoTodos los datos que se manejan dentro de un algoritmo tienen un tipo asociado conellos. Un dato puede ser un simple carácter tal como ‘b’, un valor entero tal como 35 oun valor alfanumérico como “4-5555-0000”. El tipo de dato determina la naturaleza delconjunto de valores que puede tomar una variable. Los tipos de datos más importantesson los alfabéticos, los numéricos, los alfanuméricos y los lógicos. Dentro de loslenguajes de programación se encontrarán con otros tipos distintos a éstos.8.1. Datos alfabéticos: Permiten almacenar variables cuyos valores, sólo contenganletras, como por ejemplo un nombre, un apellido, una ciudad, un lugar de nacimiento ouna ocupación: "Morales ", " Ambato " o "Ingeniero". También son de tipo carácter losnúmeros con los que no es posible realizar o no se hacen operaciones matemáticas,como por ejemplo un número de cédula, un NIT, un código postal: “1.023.245”,“2454545” o “259”.8.2. Datos numéricos: Permiten almacenar variables de forma numérica, ya sea de tipoentero o real, negativos o positivos, es decir números del 0 al 9, signos más (+) o menos(-), y puntos decimales. Con estos datos se pueden realizar las operaciones básicas Ing. Fabián Morales F.,M.Sc. | 15
  16. 16. [LÓGICA DE PROGRAMACIÓN] Elemento 4comunes. Por ejemplo una edad, un salario, un valor de un producto, una cantidaddeterminada, un número entero o decimal, entre otros. 20, 450.000, 25 ó 0.111111.8.3. Datos alfanuméricos: Permiten almacenar variables que combinan datosalfabéticos y datos numéricos. El ejemplo más claro es una dirección de una residenciao una dirección de correo electrónico que constan de letras, números y símbolos ocaracteres especiales. Cra 52 # 88-00 o micorreo_2432@servidor.com.8.4. Datos lógicos o boléanos: Permiten almacenar aquellas variables que tenga sólodos valores, ellos pueden ser Cierto-falso, 1-0, F-V, entre otros. Estas variables sonresultado de una comparación entre otros datos. Por ejemplo si se tiene: A=1, B=10,C=-5, entonces Al comparar El resultado sería A>B FALSO A != B VERDADERO C>A FALSO C<A VERDADERO C>0 FALSO B>0 VERDADERO B<0 FALSO9. Tipos de datos9.1. Datos variables: Son todos aquellos valores que pueden o no cambiar en eltranscurso de un algoritmo. Usualmente son introducidas como datos. Toda variableconsta de un nombre y un valor. El nombre es un conjunto de letras o caracteres ynúmeros, con los cuales se identifica un valor en un momento determinado. El valor es Ing. Fabián Morales F.,M.Sc. | 16
  17. 17. [LÓGICA DE PROGRAMACIÓN] Elemento 4la cantidad que una variable contiene, representa o tiene asociado en determinadomomento.9.2. Datos constantes: Son todos aquellos valores que no cambian en el transcurso deun algoritmo y son introducidos al momento de utilizarse. En determinados casos sepuede 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 variableque se comporta como constante. Una constante es un dato numérico o alfanuméricoque no cambia durante la ejecución del programa. Un ejemplo claro de un valorconstante es el valor de π (pi siempre va a ser igual a 3.1416, y este valor nuncacambiará).10. Condiciones para nombrar variables y constantesToda variable o constante al momento de definirse su nombre debe tener en cuenta lassiguientes condiciones:  Debe comenzar con una letra, mayúscula o minúscula comprendida entre la A y la Z. No debe empezar por un número o por un símbolo.  No debe contener espacios en blanco.  No se puede utilizar caracteres especiales (´, ¨, ¿, ¡), símbolos (%, &, #, @) ni operadores aritméticos (+, -, *, /).  Las letras, dígitos y caracteres como la subraya ( _ ) están permitidos después del primer carácter.  Se recomienda que no supere los ocho (8) caracteres.11. OperadoresSon elementos que relacionan de forma diferente, los valores de una o más variables ouna constante. Es decir, los operadores nos permiten manipular valores. Ing. Fabián Morales F.,M.Sc. | 17
  18. 18. [LÓGICA DE PROGRAMACIÓN] Elemento 411.1. Operadores aritméticos: Los operadores aritméticos permiten la realización deoperaciones matemáticas con los variables y las constantes. Los operadores aritméticospueden ser utilizados con tipos de datos enteros o reales. Si ambos son enteros, elresultado es entero; si alguno de ellos es real, el resultado es real. Los operadoresaritméticos son: [+] Suma. [-] Resta. [*] Multiplicación. [/] División con decimales. [] División entera. [Mod o Modulo] División modular o Residuo de la división. [** o ^] Exponenciación.11.2. Operadores lógicos: Operadores que permiten comparar dos valores o variables.Se dividen en operadores lógicos relacionales y operadores lógicos boléanos.11.2.1. Operadores lógicos relacionales: Se utilizan para establecer una relación entredos valores. Compara estos valores entre si y esta comparación produce un resultado deVerdadero o Falso. Los operadores relacionales comparan valores del mismo tipo,tienen el mismo nivel de prioridad en su evaluación y tienen menor prioridad que losaritméticos. Los operadores relaciónales son: [>] Mayor que. [<] Menor que. [>=] Mayor o igual que. [<=] Menor o igual que. [=] Igual. [< >] Diferente. Ing. Fabián Morales F.,M.Sc. | 18
  19. 19. [LÓGICA DE PROGRAMACIÓN] Elemento 411.2.2. Operadores lógicos boléanosEstos operadores se utilizan para establecer relaciones entre valores lógicos. Estosvalores pueden ser resultado de una expresión relacional. Los operadores lógicos son: [And o ^] Disyunción Y. [Or o v] Conjunción O. [Not o !] Negación.12. Jerarquía de los operadoresPara resolver cualquier operación o ejercicio se debe desarrollar teniendo en cuenta elsiguiente orden: 1. Todas las expresiones entre paréntesis se evalúan primero. Las expresiones con paréntesis anidados se evalúan desde el centro hacia fuera, el paréntesis más interno se evalúa primero. Dentro de una misma expresión los operadores se evalúan en el siguiente orden. 2. Exponenciación 3. Multiplicación, División (Con decimales) 4. División Entera y División Modular. 5. Suma y resta.Cuando se encuentran operadores del mismo nivel, estos se desarrollan de izquierda aderecha. Cuando se encuentran varios paréntesis, se empiezan a desarrollar por el másinterno. Un paréntesis, sólo desaparece, cuando queda un solo término en medio deellos. Ing. Fabián Morales F.,M.Sc. | 19
  20. 20. [LÓGICA DE PROGRAMACIÓN] Elemento 413. Expresiones algorítmicasExpresiones manejadas dentro de un algoritmo en lenguaje entendible por lacomputadora. Son diferentes a las expresiones matemáticas.Una expresión matemática como [a2 + bx + c], se convierte a expresión algoritmo pormedio de los operadores aritméticos, quedando de la siguiente forma [a ^ 2 + b * x + c].Toda expresión matemática o fórmula general tiene que ser convertida a expresiónalgorítmica para ser entendida por la computadora al momento de realizar cualquieroperación o cálculo.14. Ejercicios de conversión de expresiones algorítmicasEjercicios resueltosPara convertir cualquier expresión matemática a expresión algorítmica, basta conreemplazar las operaciones más comunes por los operadores aritméticos antesmencionados. Por todo esto, las operaciones que comúnmente manejamos en el área dematemática, no serán reconocidas como expresiones algorítmicas.a2 + 2ab + b2 = a ^ 2 + 2 * a * b + b ^ 2Observe que, tanto la letra a como la b, están elevadas al cuadrado, por tal motivo sedebe utilizar el operador ^. De igual forma, los términos 2, a y b, se están multiplicandoentre sí, por lo que también deben ser separados por el operador *. Por último la sumaqueda tal cual está ubicada en la expresión. Ing. Fabián Morales F.,M.Sc. | 20
  21. 21. [LÓGICA DE PROGRAMACIÓN] Elemento 4Observe los siguientes ejemplos:Note y observe la diferencia entre las expresiones matemáticas y las algorítmicas.Además, mire la importancia de utilizar los paréntesis para separar y diferenciaroperaciones dentro de una expresión. Ing. Fabián Morales F.,M.Sc. | 21
  22. 22. [LÓGICA DE PROGRAMACIÓN] Elemento 4Los paréntesis tienen prioridad sobre el resto de las operaciones. Por ejemplo en laexpresión A* (B + 3): la constante 3 se suma primero al valor de B, después esteresultado se multiplica por el valor de A. Mientras que (A * B) + 3, A y B semultiplican primero y a continuación se suma 3. Pero si no se ponen los paréntesis nohabría ningún problema porque según la jerarquía de los operadores, primer multiplica yluego realiza la suma. Por lo tanto (A * B) + 3 es igual o daría 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í losparéntesis obligan a que se realicen primero las multiplicaciones y luego se divida.La anterior observa nos indica que los paréntesis en algunos casos sobrarían; pero que sino se colocan en algunos ejercicios, se alteraría el resultado y se cometería un error muygrande.Los ejercicios también se puede hacer en sentido inverso, o sea dar una expresiónalgorítmica y convertirla a expresión matemática: Ing. Fabián Morales F.,M.Sc. | 22
  23. 23. [LÓGICA DE PROGRAMACIÓN] Elemento 4Ejercicios propuestos de conversión de expresiones (TALLER 1)A- Convertir las siguientes expresiones matemáticas a expresiones algorítmicas: B- Convertir las siguientes expresiones algorítmicas en expresiones matemáticas:1) 7 * (1 + y)2) a ^ 3 + b ^ 33) (x + y) / (u + w / a)4) x / y * (z + w)5) a ^ 3 + 3 * a ^ 2 * b + 3 * a * b ^ 2 + b ^ 36) (a + b) ^ 2 - (a - b ^ 2)7) x - y ^ 28) (x - y) ^ 29) a / b + c / a / b + c10) (a / (b + c)) / ((a / b) + c) Ing. Fabián Morales F.,M.Sc. | 23
  24. 24. [LÓGICA DE PROGRAMACIÓN] Elemento 415. Ejercicios de Jerarquía de los operadoresPara desarrollar cualquier operación algorítmica es necesario utilizar la jerarquía de losoperadores, ya que ella indica el orden e importancia de cada uno de los operadoresaritméticos.Tomaremos como ejemplo la expresión [2 * 5 + 3]. Algunos tendrían la duda de cualoperación resolver en primera instancia ¿La multiplicación o la suma?; otros sumarían yluego multiplicaría diciendo que la respuesta es 16.Para no cometer estos errores o no tener duda al momento de resolver una operaciónmatemática, tenga en cuenta la jerarquía de los operadores, donde notará que primero sedebe realizar la multiplicación y luego la suma, por lo tanto la respuesta correcta será13, discriminado de la siguiente manera:2*5+310 + 313Para identificar cual es la operación que se desarrollará en cada operación, laresalataremos en negrilla. Todo lo anterior le ayudará a una mejor comprensión deltema.40 / 5 + 8 ^ 2 * 3 ------> 1° es la exponenciación40 / 5 + 64 * 3 ---------> Primero se resuelve la división (de izquierda a derecha)8 + 64 * 3 --------------> Luego división (mismo nivel jerarquico de multiplicación)8 + 192-----------------> Por último se realiza la suma200Primero se resuelve la Exponenciación, ya que al no haber paréntesis, es el operador demayor jerarquía. En la segunda línea se da solución a la división, que a pesar de estar almismo nivel que la multiplicación, la condición es que se deben desarrollar de izquierdaa derecha. Así, luego de la división se desarrolla la multiplicación, y por última la sumaque es el operador ubicado en el último nivel. Observe que en cada línea se señala la Ing. Fabián Morales F.,M.Sc. | 24
  25. 25. [LÓGICA DE PROGRAMACIÓN] Elemento 4operación a solucionar, y en la línea siguiente va la solución a ese cálculo. Lo demásqueda igual, sin modificarse.Luego de adquirir habilidad y práctica con estas operaciones, se podrán desarrollarvarias operaciones y cálculos de forma simultánea.En algoritmos se manejan tres tipos de división, las cuales a pesar de su similitud sontotalmente diferentes. Tomaremos el caso de dividir 51 por 2 y sumarle 3 utilizandoestos tres tipos de división.51 / 2 + 3 ---> La división ( / ) indica que se manejan decimales. 51 / 2= 25.525.5 + 3 -----> Luego se realiza la suma de los dos valores28.551 2 + 3 ---> La división ( ) indica que sólo se maneja la parte entera. 51 2= 2525 + 3 -----> Luego se realiza la suma de los dos valores2851 mod 2 + 3 ---> (mod) indica que se usa el residuo de la división 51 mod 2 = 11 + 3 -----> Luego se realiza la suma de los dos valores4Observe lo distinto de los resultados. La división modular toma sólo el residuo de ladivisión: El 2 en el 51 está 25 veces. 25 x 2 = 50. Por lo tanto de 50 a 51 hay 1 (este esel residuo de la división). Para entender mejor observe los siguientes ejemplos:1) 45 / 2 = 22.52) 45 2 = 223) 45 mod 2 = 14) 100 / 3 = 33.335) 100 3= 336) 100 mod 3= 1 Ing. Fabián Morales F.,M.Sc. | 25
  26. 26. [LÓGICA DE PROGRAMACIÓN] Elemento 47) 48 / 10 = 4.88) 48 10 = 49) 48 mod 10 = 810) 50 / 2 + 30 = 25 + 30 = 5511) 50 2 + 30 = 25 + 30 = 5512) 50 mod 2 + 30 = 0 + 30 = 30En el primer tipo de división (Ejercicio 11) se tienen en cuenta los decimales. En elsegundo sólo la parte entera (Ejercicio 12 - como es divisible da lo mismo que ladivisión anterior), y en el último, el residuo de la división (en este caso es 0, porque es50 es divisible por 2).Ejercicios resueltos9 + 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 + 159 + 2 * 12 / 4 + 159 + 24 / 4 + 159 + 6 + 1515 + 1530Observe como al encontrarse con dos paréntesis distintos se empieza a resolver por elmás interno, y sólo desaparece uno de ellos cuando queda entre ellos un solo término(en la segunda línea desaparece un paréntesis, porque luego de elevar 5 a la 3 queda125, o sea un solo término, mientras que el segundo no desaparece porque aún faltanoperaciones por realizar dentro de ellos). Ing. Fabián Morales F.,M.Sc. | 26
  27. 27. [LÓGICA DE PROGRAMACIÓN] Elemento 420 / 2 / 2 / 5 + (41 2 5 + 3)20 / 2 / 2 / 5 + (20 5 + 3)20 / 2 / 2 / 5 + (4 + 3)20 / 2 / 2 / 5 + 710 / 2 / 5 + 75/5+71+78A continuación combinaremos los tres tipos de división 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 + 824 + 832(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 319 mod 31 Ing. Fabián Morales F.,M.Sc. | 27
  28. 28. [LÓGICA DE PROGRAMACIÓN] 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) * 11501100 + 54 - (605 mod 2) * 11501100 + 54 – 1 *11501100 + 54 -11501154 - 11504360 / 2 / 10 / 3 - (45 mod 8) * 8 + 38 + 500360 / 2 / 10 / 3 – 5 * 8 + 38 + 500180 / 10 / 3 – 5 * 8 + 38 + 50018 / 3 – 5 * 8 + 38 + 5006 – 5 * 8 + 38 + 5006 – 40 + 38 + 500-34 + 38 + 5004 + 50050436 – 32 - 80 mod (48 mod 10 - 6) + 2036 – 32 - 80 mod (8 - 6) + 2036 – 32 - 80 mod 2 + 2036 – 32 – 0 + 204 – 0 + 204 + 2024-4 * 7 + 2 ^ 3 / 4 - 5-4 * 7 + 8 / 4 - 5-28 + 8 / 4 – 5-28 + 2 – 5– 26 – 5-31 Ing. Fabián Morales F.,M.Sc. | 28
  29. 29. [LÓGICA DE PROGRAMACIÓN] 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 – 31177 * 10 – 50 mod 3 * 4 + 970 – 50 mod 3 * 4 + 970 – 50 mod 12 + 970 – 2 + 968 + 9773 * (2 ^ 4 + (5 * 3 ^ 3 + 2) 7) mod 23 * (2 ^ 4 + (5 * 27 + 2) 7) mod 23 * (2 ^ 4 + (135 + 2) 7) mod 23 * (2 ^ 4 + 137 7) mod 23 * (16 + 137 7) mod 23 * (16 + 19) mod 23 * 35 mod 2105 mod 212002 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 + 240500 + 5 + 8 + 1 + 240 Ing. Fabián Morales F.,M.Sc. | 29
  30. 30. [LÓGICA DE PROGRAMACIÓN] Elemento 4505 + 8 + 1 + 240513 + 1 + 240514 + 240754Ejercicios propuestos de Jerarquía de los operadores (TALLER 2)Resolver los siguientes ejercicios utilizando la teoría de Jerarquía de los operadores1) 2 + 3 * 42) 42 / 2 / 3 / 7 ^ 33) 10 ^ 2 ^ 2 74) 5 ^ 3 + 120 – 1 ^ 55) 4 + 5 ^ 2 – 500 + 20 ^ 2 * 106) (4 ^ 3 + 2 * 40 - 140 ) ^ 27) (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. Dándole a x, y, z los valores (1.2, Pi, y7.5)11) Calcule la parte entera de la división a sobre (b + c) con a, b y c tomando valores en(-3, -1.2 y Pi).12) Calcule la parte decimal de la división de a sobre (b + c) con a, b y c tomandovalores en (-36, -8.2 y Pi). Ing. Fabián Morales F.,M.Sc. | 30

×