SlideShare uma empresa Scribd logo
1 de 30
Baixar para ler offline
UNIVERSIDAD TÉCNICA DE
        AMBATO




FACULTAD INGENIERÍA CIVIL Y
       MECÁNICA




          Módulo

  “EMPLEO DE NTIC´s II”
[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
[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
[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
[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
[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
[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
[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 para 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
[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
[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
[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
[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
[LÓGICA DE PROGRAMACIÓN] Elemento 4




                 Ing. Fabián Morales F.,M.Sc. | 13
[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
[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
[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
[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
[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
[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
[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
[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
[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
[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
[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
[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
[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
[LÓGICA DE PROGRAMACIÓN] 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 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 + 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. Fabián Morales F.,M.Sc. | 27
[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) * 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. Fabián Morales F.,M.Sc. | 28
[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 – 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. Fabián Morales F.,M.Sc. | 29
[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

Mais conteúdo relacionado

Mais procurados

Unidad II Algoritmo y Metodoligia para resolver problemas utilizando el compu...
Unidad II Algoritmo y Metodoligia para resolver problemas utilizando el compu...Unidad II Algoritmo y Metodoligia para resolver problemas utilizando el compu...
Unidad II Algoritmo y Metodoligia para resolver problemas utilizando el compu...JosAngelLaraMendoza
 
Algoritmo Y Pseudocódigo
Algoritmo Y PseudocódigoAlgoritmo Y Pseudocódigo
Algoritmo Y PseudocódigoJohanCaro5
 
desarrollo lógico de problemas de computadoras
desarrollo lógico de problemas de computadorasdesarrollo lógico de problemas de computadoras
desarrollo lógico de problemas de computadorasyanethcandanedo
 
Informatica II - 1 Terminologia Usada en Algoritmos
Informatica II - 1 Terminologia Usada en AlgoritmosInformatica II - 1 Terminologia Usada en Algoritmos
Informatica II - 1 Terminologia Usada en AlgoritmosGabriel Ruiz
 
Logica de la Programación Problemas y Soluciones
Logica de la  Programación  Problemas y SolucionesLogica de la  Programación  Problemas y Soluciones
Logica de la Programación Problemas y SolucionesVideoconferencias UTPL
 
1 introduccion a la programacion 1
1 introduccion  a la programacion 11 introduccion  a la programacion 1
1 introduccion a la programacion 1Evelin Claudia
 
ALGORITMO Y METODOLOGÍA PARA LA RESOLUCIÓN PROBLEMAS BASADOS EN EL COMPUTADOR
ALGORITMO Y METODOLOGÍA PARA LA RESOLUCIÓN PROBLEMAS BASADOS EN EL COMPUTADOR ALGORITMO Y METODOLOGÍA PARA LA RESOLUCIÓN PROBLEMAS BASADOS EN EL COMPUTADOR
ALGORITMO Y METODOLOGÍA PARA LA RESOLUCIÓN PROBLEMAS BASADOS EN EL COMPUTADOR DarkStarPlay
 
Presentación de computación
Presentación de computaciónPresentación de computación
Presentación de computaciónLuisRestan1
 
Introducción a la programación
Introducción a la programaciónIntroducción a la programación
Introducción a la programaciónjemarinoi
 
Algoritmos, Pseudocódigos, Diagrama de Flujo y Metodología
Algoritmos, Pseudocódigos, Diagrama de Flujo y MetodologíaAlgoritmos, Pseudocódigos, Diagrama de Flujo y Metodología
Algoritmos, Pseudocódigos, Diagrama de Flujo y MetodologíaJesus Freites
 

Mais procurados (19)

Pre lógica
Pre lógicaPre lógica
Pre lógica
 
Unidad II Algoritmo y Metodoligia para resolver problemas utilizando el compu...
Unidad II Algoritmo y Metodoligia para resolver problemas utilizando el compu...Unidad II Algoritmo y Metodoligia para resolver problemas utilizando el compu...
Unidad II Algoritmo y Metodoligia para resolver problemas utilizando el compu...
 
Algoritmo Y Pseudocódigo
Algoritmo Y PseudocódigoAlgoritmo Y Pseudocódigo
Algoritmo Y Pseudocódigo
 
desarrollo lógico de problemas de computadoras
desarrollo lógico de problemas de computadorasdesarrollo lógico de problemas de computadoras
desarrollo lógico de problemas de computadoras
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Algoritmica
AlgoritmicaAlgoritmica
Algoritmica
 
Tarea3
Tarea3Tarea3
Tarea3
 
Dropbox
DropboxDropbox
Dropbox
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Informatica II - 1 Terminologia Usada en Algoritmos
Informatica II - 1 Terminologia Usada en AlgoritmosInformatica II - 1 Terminologia Usada en Algoritmos
Informatica II - 1 Terminologia Usada en Algoritmos
 
Logica de la Programación Problemas y Soluciones
Logica de la  Programación  Problemas y SolucionesLogica de la  Programación  Problemas y Soluciones
Logica de la Programación Problemas y Soluciones
 
1 introduccion a la programacion 1
1 introduccion  a la programacion 11 introduccion  a la programacion 1
1 introduccion a la programacion 1
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
ALGORITMO Y METODOLOGÍA PARA LA RESOLUCIÓN PROBLEMAS BASADOS EN EL COMPUTADOR
ALGORITMO Y METODOLOGÍA PARA LA RESOLUCIÓN PROBLEMAS BASADOS EN EL COMPUTADOR ALGORITMO Y METODOLOGÍA PARA LA RESOLUCIÓN PROBLEMAS BASADOS EN EL COMPUTADOR
ALGORITMO Y METODOLOGÍA PARA LA RESOLUCIÓN PROBLEMAS BASADOS EN EL COMPUTADOR
 
Presentación de computación
Presentación de computaciónPresentación de computación
Presentación de computación
 
Introducción a la programación
Introducción a la programaciónIntroducción a la programación
Introducción a la programación
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Algoritmos, Pseudocódigos, Diagrama de Flujo y Metodología
Algoritmos, Pseudocódigos, Diagrama de Flujo y MetodologíaAlgoritmos, Pseudocódigos, Diagrama de Flujo y Metodología
Algoritmos, Pseudocódigos, Diagrama de Flujo y Metodología
 

Semelhante a Elemento4

Introduccion A La Programacion
Introduccion A La ProgramacionIntroduccion A La Programacion
Introduccion A La ProgramacionMary Sanchez
 
Algoritmos computacionales
Algoritmos computacionalesAlgoritmos computacionales
Algoritmos computacionalesJose Gonzalez
 
UNIDAD 2_Tema 1.pdf
UNIDAD 2_Tema 1.pdfUNIDAD 2_Tema 1.pdf
UNIDAD 2_Tema 1.pdfjaimelovato
 
Unidad1 130504213500-phpapp02
Unidad1 130504213500-phpapp02Unidad1 130504213500-phpapp02
Unidad1 130504213500-phpapp02Lesly Gonzalez
 
Unidad1 130504213500-phpapp02
Unidad1 130504213500-phpapp02Unidad1 130504213500-phpapp02
Unidad1 130504213500-phpapp02Lesly Gonzalez
 
Presentacion elmento 4
Presentacion elmento 4Presentacion elmento 4
Presentacion elmento 4KrizMorales15
 
Aplicacion de estandare de calidad en la construccion de un algoritmo
Aplicacion de estandare de calidad en la construccion de un algoritmoAplicacion de estandare de calidad en la construccion de un algoritmo
Aplicacion de estandare de calidad en la construccion de un algoritmoJonmar Rodiguez
 
Aplicacion de estandare de calidad en la construccion de un algoritmo
Aplicacion de estandare de calidad en la construccion de un algoritmoAplicacion de estandare de calidad en la construccion de un algoritmo
Aplicacion de estandare de calidad en la construccion de un algoritmoJonmar Rodiguez
 
Qué es un algoritmo 10
Qué es un algoritmo 10Qué es un algoritmo 10
Qué es un algoritmo 10Ricaurte Duran
 
LI_1164_140518_A_Analisis_Diseno_Implantacion_Algoritmos_Plan2016.pdf
LI_1164_140518_A_Analisis_Diseno_Implantacion_Algoritmos_Plan2016.pdfLI_1164_140518_A_Analisis_Diseno_Implantacion_Algoritmos_Plan2016.pdf
LI_1164_140518_A_Analisis_Diseno_Implantacion_Algoritmos_Plan2016.pdfCESAR ROGELIO TEJADA CASTAÑEDA
 
Presentacin1 150128161223-conversion-gate01
Presentacin1 150128161223-conversion-gate01Presentacin1 150128161223-conversion-gate01
Presentacin1 150128161223-conversion-gate01jhohamn
 

Semelhante a Elemento4 (20)

Introduccion A La Programacion
Introduccion A La ProgramacionIntroduccion A La Programacion
Introduccion A La Programacion
 
Algoritmos computacionales
Algoritmos computacionalesAlgoritmos computacionales
Algoritmos computacionales
 
Tema n° 1
Tema n° 1Tema n° 1
Tema n° 1
 
Unidad 1 margie
Unidad 1 margieUnidad 1 margie
Unidad 1 margie
 
Introduccion a-la-programacion-1234039307400760-3
Introduccion a-la-programacion-1234039307400760-3Introduccion a-la-programacion-1234039307400760-3
Introduccion a-la-programacion-1234039307400760-3
 
UNIDAD 2_Tema 1.pdf
UNIDAD 2_Tema 1.pdfUNIDAD 2_Tema 1.pdf
UNIDAD 2_Tema 1.pdf
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Presentación lenguaje programación
Presentación lenguaje programaciónPresentación lenguaje programación
Presentación lenguaje programación
 
Unidad1 130504213500-phpapp02
Unidad1 130504213500-phpapp02Unidad1 130504213500-phpapp02
Unidad1 130504213500-phpapp02
 
Unidad1 130504213500-phpapp02
Unidad1 130504213500-phpapp02Unidad1 130504213500-phpapp02
Unidad1 130504213500-phpapp02
 
Presentacion lemento 4
Presentacion lemento 4Presentacion lemento 4
Presentacion lemento 4
 
Presentacion elmento 4
Presentacion elmento 4Presentacion elmento 4
Presentacion elmento 4
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Aplicacion de estandare de calidad en la construccion de un algoritmo
Aplicacion de estandare de calidad en la construccion de un algoritmoAplicacion de estandare de calidad en la construccion de un algoritmo
Aplicacion de estandare de calidad en la construccion de un algoritmo
 
Aplicacion de estandare de calidad en la construccion de un algoritmo
Aplicacion de estandare de calidad en la construccion de un algoritmoAplicacion de estandare de calidad en la construccion de un algoritmo
Aplicacion de estandare de calidad en la construccion de un algoritmo
 
Qué es un algoritmo 10
Qué es un algoritmo 10Qué es un algoritmo 10
Qué es un algoritmo 10
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
LI_1164_140518_A_Analisis_Diseno_Implantacion_Algoritmos_Plan2016.pdf
LI_1164_140518_A_Analisis_Diseno_Implantacion_Algoritmos_Plan2016.pdfLI_1164_140518_A_Analisis_Diseno_Implantacion_Algoritmos_Plan2016.pdf
LI_1164_140518_A_Analisis_Diseno_Implantacion_Algoritmos_Plan2016.pdf
 
Diseño Estructurado de Algoritmos
Diseño Estructurado de AlgoritmosDiseño Estructurado de Algoritmos
Diseño Estructurado de Algoritmos
 
Presentacin1 150128161223-conversion-gate01
Presentacin1 150128161223-conversion-gate01Presentacin1 150128161223-conversion-gate01
Presentacin1 150128161223-conversion-gate01
 

Elemento4

  • 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 para 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
  • 13. [LÓGICA DE PROGRAMACIÓN] Elemento 4 Ing. Fabián Morales F.,M.Sc. | 13
  • 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
  • 27. [LÓGICA DE PROGRAMACIÓN] 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 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 + 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. Fabián Morales F.,M.Sc. | 27
  • 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) * 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. Fabián Morales F.,M.Sc. | 28
  • 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 – 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. Fabián Morales F.,M.Sc. | 29
  • 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