1. UNIVERSIDAD TÉCNICA DE
AMBATO
FACULTAD INGENIERÍA CIVIL Y
MECÁNICA
Módulo
“EMPLEO DE NTIC´s II”
2. [LÓGICA DE PROGRAMACIÓN] Elemento 4
INTRODUCCIÓN
Para la mayoría de personas que estudian algo relacionado con los sistemas se han
encontrado con la dificultad de asignaturas relacionadas con la Lógica y los algoritmos,
las cuales son fundamentales para poder llegar a desarrollar software (programas para
computador) de manera rápida, óptima y confiable.
Este modulo surge como una de las opciones que ofrecen solución a los diversos
problemas que se presentan en asignaturas como las antes mencionadas; utilizando un
método de autoaprendizaje, diseñado a objetivos cortos donde el estudiante pueda
aprender 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 que
el estudiante maneje completamente las estructuras básicas y fundamentales de la
Lógica y los Algoritmos; además, que sirvan de base para dar solución a ejercicios en
cualquier Lenguaje de Programación.
Para finalizar, sólo queda hacer la aclaración, que para un aprendizaje óptimo de estos
temas se recomienda dedicación en la lectura y en el análisis de los ejercicios; ya que
los ejercicios irán aumentando en complejidad y cualquiera de los temas tratados al
empezar serán incluidos en los temas finales, por tal motivo no deben quedar dudas
frente a alguno de ellos.
Confío en que usted pueda llegar a dar soluciones a cualquier algoritmo y sea capaz de
plasmarlo y aplicarlo en un lenguaje de programación. Las soluciones que aquí aparecen
son sólo algunas de las muchas que puede tener un problema (un sólo problema puede
tener múltiples 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 comprensión y al manejo de los
algoritmos, darle solución a cualquier ejercicio planteado y mejorar día a día en el
desarrollo de la lógica utilizando una de las mejores técnicas de estudio: el
autoaprendizaje (trabajo autónomo e independiente) combinado con un buen
material escrito puede dar excelentes resultados.
Ing. Fabián Morales F.,M.Sc. | 2
3. [LÓGICA DE PROGRAMACIÓN] Elemento 4
La Lógica es un mundo fascinante donde todo es importante si se quiere llegar a ser un
verdadero profesional. Cualquier duda, recomendación o corrección por favor hacerlo al
correo electrónico que se coloca en la parte inferior.
Fabian Morales Fiallos
Docente
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD INGENIERÍA CIVIL Y MECÁNICA
e-mail: frmorales@uta.edu.ec
Ing. Fabián Morales F.,M.Sc. | 3
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ógica
2. Características de un algoritmo
3. Partes de un algoritmo
4. Tipos de algoritmos
5. Pasos para la solución de un problema por computador
6. Pasos de elaboración de un algoritmo
7. Formas de representación de un algoritmo
7.1. Seudocódigo
7.2. Diagramación libre o de flujo
Ing. Fabián Morales F.,M.Sc. | 4
5. [LÓGICA DE PROGRAMACIÓN] Elemento 4
7.3. Diagramación rectangular o estructurada
8. Datos e información manejada en un algoritmo
8.1. Datos alfabéticos
8.2. Datos numéricos
8.3. Datos alfanuméricos
8.4. Datos lógicos o boléanos
9. Tipos de datos
9.1. Datos variables
9.2. Datos constantes
10. Condiciones para nombrar variables y constantes
11. Operadores
11.1. Operadores aritméticos
11.2. Operadores lógicos
11.2.1. Operadores lógicos relacionales
11.2.2. Operadores lógicos boléanos
12. Jerarquía de los operadores
13. Expresiones algorítmicas
14. Ejercicios de conversión de expresiones algorítmicas
14.1. Taller 1 (Conversión de Expresiones)
14.2. Solución Taller 1
15. Ejercicios de Jerarquía de los operadores
15.1. Taller 2 (Jerarquía de los operadores)
15.2. Solución Taller 2
Ing. Fabián Morales F.,M.Sc. | 5
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ógica
Un algoritmo es un procedimiento seguro y en cierta forma mecánica, de lograr un
resultado. También se define como el conjunto de pasos, operaciones o procedimientos
para obtener una solución a un problema determinado a partir de ciertas reglas
definidas.
El término algoritmo viene, por medio de varias traducciones, del nombre del
matemático árabe Mohamed Ibn Moussa Al Kow Rizmi al-Jwarizmi, matemático árabe
del siglo IX quien describe procedimientos aritméticos en sus libros escritos entre los
años 800 y 825. Su obra Quitab Al Jabr Al Mugabala, recogía el sistema de numeración
hindú 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, pensamiento
o razón, y la palabra ica que significa relacionado a. Por lo tanto, lógica hace relación el
pensamiento o la razón o también, a la forma en la cual el ser humano puede llegar a
actuar usando su raciocinio a través de ciertos principios básicos.
Ing. Fabián Morales F.,M.Sc. | 6
7. [LÓGICA DE PROGRAMACIÓN] Elemento 4
2. Características de un algoritmo
Todo algoritmo debe cumplir, estrictamente, las siguientes características.
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 mayoría de las variantes que se puedan presentar en la
definició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, en
computadoras.
A pesar de la complejidad que se maneja en todos los conceptos al iniciar el estudio de
Lógica de Programación y los Algoritmos, éstos son muy comunes, se encuentran en
todo lugar y los aplicamos constantemente para obtener los resultados más variados. El
ejemplo más claro está en que nos ayudan a preparar alimentos todos los días, ya que
una receta de cocina no es otra cosa que un algoritmo, por poco parecido que tenga con
un cálculo matemático o un programa informático. Estas pueden estar escritas en un
libro de recetas, explicados en un programa de televisión 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. Fabián Morales F.,M.Sc. | 7
8. [LÓGICA DE PROGRAMACIÓN] Elemento 4
3. Partes de un algoritmo
Entrada: Lugar donde se describe la información que va a ser leída. Aquí van todos los
datos que se desconocen, y se requieren para realizar los cálculos.
Proceso: Lugar donde se describen los cálculos y operaciones necesarias para alcanzar
el 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 la
información que dará respuesta a los requerimientos o peticiones que tenía el algoritmo
al empezar.
4. Tipos de algoritmos
Algoritmo cualitativo: Pasos o instrucciones descritos por medio de palabras que
sirven 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 para
llegar a un resultado o dar solución a un problema.
Ejemplos claros y cotidianos de algoritmos cualitativos pueden ser: el modo de operar
una lavadora, tocar música por medio de partituras, construir un aeroplano, búsqueda de
un número en el directorio telefónico, el montaje de una llanta pinchada, la búsqueda de
una 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 de
dos números, el algoritmo de Euclides para calcular el máximo común divisor de dos
enteros 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 en
determinado estudio.
Ing. Fabián Morales F.,M.Sc. | 8
9. [LÓGICA DE PROGRAMACIÓN] Elemento 4
5. Pasos para la solución de un problema por computador
Definición y delimitación del Problema: Para resolver un problema es fundamental
conocerlo por completo. Esta fase está dada por el enunciado del problema, que luego
de ser leído (cuantas veces sea necesario), se pasará a determinar si está claro o no y si
es posible o no, darle una solución. 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 solución a otro problema inexistente.
Análisis 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 información que se desea producir) y todos los cálculos y
fórmulas necesario para procesar los datos. Se recomienda ponerse en el lugar del
computador pensando en cómo satisfacer las necesidades de datos que se deberán leer y
se desconocen, los cálculos necesarios y la información que se entregará como solución
a unas peticiones planteadas con el enunciado del problema.
Diseño del Algoritmo: En esta fase se determinan los pasos o instrucciones que se
llevarán a cabo, el orden lógico de ejecución, y la manera como se desarrollará todo el
programa para un eficiente funcionamiento. De esta fase depende el éxito o el fracaso
de una solución a un problema por medio de la computadora. La forma como se
indicarán las instrucciones es determinada por el programador, ya que puede utilizar las
técnicas de representación de un algoritmo (El seudocódigo, la diagramación libre o la
diagramación rectangular).
Codificación: Es escribir la solución del problema en un lenguaje comprendido por la
computadora, pero basado en el diseño del algoritmo, el cual es conocido como código
fuente, 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 instrucciones
colocadas por el programador, teniendo en cuenta que las instrucciones estén escritas
correctamente en sintaxis y la gramática según las normas que rigen el lenguaje de
programación. Finalmente, transcribe el programa al interior de la memoria.
Ing. Fabián Morales F.,M.Sc. | 9
10. [LÓGICA DE PROGRAMACIÓN] Elemento 4
Depuración: Los errores dentro de la programación son muchos y aumentan con la
complejidad y dificultad del problema. Luego que el compilador identifique errores en
nuestro programa o código fuente, se debe hacer una depuración y corrección de
errores, para dar paso a una solución sin ninguno de ellos. Es de mucha ayuda
documentar los algoritmos y los programas que se desarrollen, ya que son una guía o
una comunicación escrita entre el código y cualquier usuario. Éstas ayudan a
comprender un programa y facilitan futuras modificaciones.
La documentación: se divide en Documentación Interna (comentarios o mensaje que
se 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 cual
es 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 la
manera 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 los
dispositivos de entrada y de salida. Tenga muy presente, que el hecho de que un
programa 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 de
ejecución. 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 revisión de alguno de las fases anteriores.
Mantenimiento: Se lleva a cabo después de terminado el programa, cuando se detecta
que es necesario hacer algún cambio, ajuste o complementación 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 elaboración 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. Fabián Morales F.,M.Sc. | 10
11. [LÓGICA DE PROGRAMACIÓN] Elemento 4
Determinar claramente los datos de entrada con los que se deben contar para la
solució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 del
problema.
Nota: Los cinco pasos anteriores, gozan de la misma importancia. La falta de análisis a
alguno de ellos causará problemas en el transcurso del desarrollo del algoritmo.
7. Formas de representación de un algoritmo
7.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. El
seudocódigo se puede definir como una imitación de un programa real; ya que es una
combinación de símbolos (/, *, >, >=, %), términos (Lea, Imprima, Hacer Para) y otras
caracterí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 en
forma fácil operaciones repetitivas complejas. Es muy fácil pasarlo a un programa en
algún lenguaje de programación. Y se puede observar claramente los niveles que tiene
cada operación.
Ejemplo de un algoritmo cualitativo: Diseñar 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 azúcar
Remover el agua hasta disolver completamente el azúcar
FIN
Ing. Fabián Morales F.,M.Sc. | 11
12. [LÓGICA DE PROGRAMACIÓN] Elemento 4
Ejemplo de un algoritmo cuantitativo: Diseñar un algoritmo que permita hallar la suma
de tres números.
INICIO
LEER numero1, numero2, numero3
suma = numero1 + numero2 + numero3
IMPRIMIR suma
FIN
7.2. Diagramación libre o de flujo
Representación gráfica de un algoritmo. También se puede decir que es la
representación detallada en forma gráfica de cómo deben realizarse los pasos en la
computadora para producir resultados. Esta representación gráfica se da cuando varios
sí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. Los
símbolos utilizados han sido normalizados por el instituto norteamericano de
normalización ANSI.
Para realizar Diagramas de Flujo se deben tener en cuenta lo siguiente: Usar sólo líneas
de flujo horizontal y/o vertical. Evitar el cruce de líneas utilizando los conectores. Usar
conectores solo cuando sea necesario. No dejar líneas de flujo sin conectar. Trazar los
símbolos de manera que se puedan leer arriba-abajo e izquierda-derecha. Todo texto
escrito dentro de un símbolo deberá ser escrito claramente, evitando el uso de muchas
palabras.
Los símbolos usados en la diagramación libre y sus significados son los siguientes:
Ing. Fabián Morales F.,M.Sc. | 12
14. [LÓGICA DE PROGRAMACIÓN] Elemento 4
Ejemplo de un diagrama de flujo (Tomando el ejemplo anterior):
7.3. Diagramación rectangular o estructurada
Tambié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 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. Fabián Morales F.,M.Sc. | 14
15. [LÓGICA DE PROGRAMACIÓN] Elemento 4
La forma de representación de un algoritmo en esta página será los seudocódigos o
algoritmos (Numeral 7.1.), porque es una de las formas más sencillas de resolver estos
problemas.
8. Datos e información 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 carácter tal como ‘b’, un valor entero tal como 35 o
un valor alfanumérico como “4-5555-0000”. El tipo de dato determina la naturaleza del
conjunto de valores que puede tomar una variable. Los tipos de datos más importantes
son los alfabéticos, los numéricos, los alfanuméricos y los lógicos. Dentro de los
lenguajes de programación se encontrarán con otros tipos distintos a éstos.
8.1. Datos alfabéticos: Permiten almacenar variables cuyos valores, sólo contengan
letras, como por ejemplo un nombre, un apellido, una ciudad, un lugar de nacimiento o
una ocupación: "Morales ", " Ambato " o "Ingeniero". También son de tipo carácter los
nú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 tipo
entero 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. [LÓGICA DE PROGRAMACIÓN] Elemento 4
comunes. Por ejemplo una edad, un salario, un valor de un producto, una cantidad
determinada, un número entero o decimal, entre otros. 20, 450.000, 25 ó 0.111111.
8.3. Datos alfanuméricos: Permiten almacenar variables que combinan datos
alfabéticos y datos numéricos. El ejemplo más claro es una dirección de una residencia
o una dirección de correo electrónico que constan de letras, números y símbolos o
caracteres 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ólo
dos valores, ellos pueden ser Cierto-falso, 1-0, F-V, entre otros. Estas variables son
resultado 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 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
números, con los cuales se identifica un valor en un momento determinado. El valor es
Ing. Fabián Morales F.,M.Sc. | 16
17. [LÓGICA DE PROGRAMACIÓN] 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 numérico o alfanumérico
que no cambia durante la ejecución 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, 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. Operadores
Son elementos que relacionan de forma diferente, los valores de una o más variables o
una constante. Es decir, los operadores nos permiten manipular valores.
Ing. Fabián Morales F.,M.Sc. | 17
18. [LÓGICA DE PROGRAMACIÓN] Elemento 4
11.1. Operadores aritméticos: Los operadores aritméticos permiten la realización de
operaciones matemáticas con los variables y las constantes. Los operadores aritméticos
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
aritmé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 entre
dos valores. Compara estos valores entre si y esta comparación produce un resultado de
Verdadero 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 los
aritmé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. [LÓGICA DE PROGRAMACIÓN] Elemento 4
11.2.2. Operadores lógicos boléanos
Estos operadores se utilizan para establecer relaciones entre valores lógicos. Estos
valores 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 operadores
Para resolver cualquier operación o ejercicio se debe desarrollar teniendo en cuenta el
siguiente 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 a
derecha. Cuando se encuentran varios paréntesis, se empiezan a desarrollar por el más
interno. Un paréntesis, sólo desaparece, cuando queda un solo término en medio de
ellos.
Ing. Fabián Morales F.,M.Sc. | 19
20. [LÓGICA DE PROGRAMACIÓN] Elemento 4
13. Expresiones algorítmicas
Expresiones manejadas dentro de un algoritmo en lenguaje entendible por la
computadora. Son diferentes a las expresiones matemáticas.
Una expresión matemática como [a2 + bx + c], se convierte a expresión algoritmo por
medio 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ón
algorítmica para ser entendida por la computadora al momento de realizar cualquier
operación o cálculo.
14. Ejercicios de conversión de expresiones algorítmicas
Ejercicios resueltos
Para convertir cualquier expresión matemática a expresión algorítmica, basta con
reemplazar las operaciones más comunes por los operadores aritméticos antes
mencionados. Por todo esto, las operaciones que comúnmente manejamos en el área de
matemática, no serán reconocidas como expresiones algorítmicas.
a2 + 2ab + b2 = a ^ 2 + 2 * a * b + b ^ 2
Observe que, tanto la letra a como la b, están elevadas al cuadrado, por tal motivo se
debe utilizar el operador ^. De igual forma, los términos 2, a y b, se están multiplicando
entre sí, por lo que también deben ser separados por el operador *. Por último la suma
queda tal cual está ubicada en la expresión.
Ing. Fabián Morales F.,M.Sc. | 20
21. [LÓGICA DE PROGRAMACIÓN] Elemento 4
Observe 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 diferenciar
operaciones dentro de una expresión.
Ing. Fabián Morales F.,M.Sc. | 21
22. [LÓGICA DE PROGRAMACIÓN] Elemento 4
Los paréntesis tienen prioridad sobre el resto de las operaciones. Por ejemplo en la
expresión A* (B + 3): la constante 3 se suma primero al valor de B, después este
resultado se multiplica por el valor de A. Mientras que (A * B) + 3, A y B se
multiplican primero y a continuación se suma 3. Pero si no se ponen los paréntesis no
habría ningún problema porque según la jerarquía de los operadores, primer multiplica y
luego 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í los
paré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 si
no se colocan en algunos ejercicios, se alteraría el resultado y se cometería un error muy
grande.
Los ejercicios también se puede hacer en sentido inverso, o sea dar una expresión
algorítmica y convertirla a expresión matemática:
Ing. Fabián Morales F.,M.Sc. | 22
23. [LÓGICA DE PROGRAMACIÓN] Elemento 4
Ejercicios 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 ^ 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. Fabián Morales F.,M.Sc. | 23
24. [LÓGICA DE PROGRAMACIÓN] Elemento 4
15. Ejercicios de Jerarquía de los operadores
Para desarrollar cualquier operación algorítmica es necesario utilizar la jerarquía de los
operadores, ya que ella indica el orden e importancia de cada uno de los operadores
aritméticos.
Tomaremos como ejemplo la expresión [2 * 5 + 3]. Algunos tendrían la duda de cual
operación resolver en primera instancia ¿La multiplicación o la suma?; otros sumarían y
luego multiplicaría diciendo que la respuesta es 16.
Para no cometer estos errores o no tener duda al momento de resolver una operación
matemática, tenga en cuenta la jerarquía de los operadores, donde notará que primero se
debe realizar la multiplicación 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 operación que se desarrollará en cada operación, la
resalataremos en negrilla. Todo lo anterior le ayudará a una mejor comprensión del
tema.
40 / 5 + 8 ^ 2 * 3 ------> 1° es la exponenciación
40 / 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 suma
200
Primero se resuelve la Exponenciación, ya que al no haber paréntesis, es el operador de
mayor jerarquía. En la segunda línea se da solución a la división, que a pesar de estar al
mismo nivel que la multiplicación, la condición es que se deben desarrollar de izquierda
a derecha. Así, luego de la división se desarrolla la multiplicación, y por última la suma
que 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. [LÓGICA DE PROGRAMACIÓN] Elemento 4
operación a solucionar, y en la línea siguiente va la solución a ese cálculo. Lo demás
queda igual, sin modificarse.
Luego de adquirir habilidad y práctica con estas operaciones, se podrán desarrollar
varias operaciones y cálculos de forma simultánea.
En algoritmos se manejan tres tipos de división, 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 división.
51 / 2 + 3 ---> La división ( / ) 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 división ( ) indica que sólo 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 división 51 mod 2 = 1
1 + 3 -----> Luego se realiza la suma de los dos valores
4
Observe lo distinto de los resultados. La división modular toma sólo el residuo de la
división: 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 división). 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. Fabián Morales F.,M.Sc. | 25
26. [LÓGICA DE PROGRAMACIÓN] 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 división (Ejercicio 11) se tienen en cuenta los decimales. En el
segundo sólo la parte entera (Ejercicio 12 - como es divisible da lo mismo que la
división anterior), y en el último, el residuo de la división (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 paréntesis distintos se empieza a resolver por el
má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 queda
125, o sea un solo término, mientras que el segundo no desaparece porque aún faltan
operaciones por realizar dentro de ellos).
Ing. Fabián Morales F.,M.Sc. | 26
30. [LÓGICA DE PROGRAMACIÓN] Elemento 4
505 + 8 + 1 + 240
513 + 1 + 240
514 + 240
754
Ejercicios propuestos de Jerarquía de los operadores (TALLER 2)
Resolver los siguientes ejercicios utilizando la teoría de Jerarquía 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. Dándole a x, y, z los valores (1.2, Pi, y
7.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 tomando
valores en (-36, -8.2 y Pi).
Ing. Fabián Morales F.,M.Sc. | 30