* ALGORITMICA
Ing. MONICA BARRIOS R
        Profesora
  Cronograma Académico 2018
                                      ACTIVIDAD                                                     Fecha
Inicio de clases. Facultad de Ingeniería, Ciencias Económicas y Administrativas, Artes,
                                                                                           05 de Febrero de 2018
Ciencias jurídicas sociales y humanas.
Finalización de Clases. Facultad de Ingeniería, Ciencias Económicas y Administrativas,
                                                                                            02 de Junio de 2018
Artes, Ciencias jurídicas sociales y humanas,
Primeros parciales 30 % Facultad de Ingeniería, Ciencias Económicas y Administrativas,    Del 05 feb al 10 de Marzo
Artes, Ciencias jurídicas sociales y humanas                                                       de 2018
                                                                                          Hasta el 17 de Marzo de
Límite Entrega y Publicación de Notas. Primer corte
                                                                                                    2018
Segundos parciales 30 % Facultad de Ingeniería, Ciencias Económicas y                      Del 16 al 21 de Abril de
Administrativas, Artes, Ciencias jurídicas sociales y humanas                                        2018
                                                                                           Hasta el 28 de Abril de
Límite Entrega y Publicación de Notas. Segundo corte
                                                                                                    2018
Exámenes Finales 40% Facultad de Ingeniería, Ciencias Económicas y Administrativas,       Del 28 de Mayo al 02 de
Artes, Ciencias jurídicas sociales y humanas                                                   Junio de 2018
Habilitaciones. Facultad de Ingeniería, Ciencias Económicas y Administrativas, Artes,          Del 05 al 12 de
Ciencias jurídicas sociales y humanas                                                          Junio de 2018
Límite Entrega y Publicación de Notas. Facultad de Ingeniería, Ciencias Económicas y       Hasta el 23 de Junio de
Administrativas, Artes, Ciencias jurídicas sociales y humanas                                       2018
             ALGORITMICA
Definición                               Operadores
Caracterís    Lectura     Escritura de
                                          Variables
  ticas        datos         datos
                                          Tipos de
  Tipos      Estructura      Ciclos
                                           datos
                                * Definición
• Se denomina algoritmo a un grupo finito de operaciones
  organizadas de manera lógica y ordenada que permite
  solucionar un determinado problema.
• Se  trata de una serie de instrucciones o reglas
  establecidas que, por medio de una sucesión de pasos,
  permiten arribar a un resultado o solución.
                 *Características
Preciso: el resulto debe ser claro y concreto
    Definido: clara las instrucciones para obtener el mismo
    resultado
      Finito: debe terminar en algún momento
    Puede tener cero o mas elementos de entrada
Debe producir un resultado
Etapas para desarrollar un
        algoritmo
    Análisis del                                      Prueba de
                        Diseño y desarrollo
     problema              del algoritmo              escritorio
(considerar los datos   (seudo código y dfd)        (seguimiento de
    de entrada)                                       paso a paso)
   Codificación             Compilación                 Ejecución
                         (el código se convierte   (mostrar los resultados
  (selección de un
                        en lenguaje de máquina)         esperados)
    lenguaje de
   programación)
  Depuración
  (detectar error y
    eliminarlos)
                     *Clasificación
                • Cuando en sus pasos o instrucciones
CUALITATIVOS      no están involucrados cálculos
                  numéricos.
                • Se realizan en el computador
                  para aprovechar la velocidad de
CUANTITATIVOS     procesamiento    e    involucran
                  cálculos numéricos.
*Estructura de un algoritmo
                                   *TIPO DE DATOS
Constante                                     Variables
            * Valor fijo,                         *     Asume      diferentes
                                                  valores,
            * Determinado
                                                  *El valor varia mientras el
            * No se modifica a lo largo del       tiempo de ejecución
            tiempo durante la ejecución de        * Se guardan en la
            un programa                           memoria del computador
            Ej: g, e, PI….                        EJ: a,b,c,z….
                      *EXPRESIONES
*SENTENCIAS DE ASIGNACION
Ej:
      * NUM: <- 6+a
      * A:<- b+6*t
*OPERADORES
                          *Ejemplos
a<-5
b<-8
c<-6             ¿qué valores quedan
a<-a+4       almacenados en las variables
b<-b+5-a                a,b,c?
c<-a+b+c
                        Rta:/
a<-a+c
                         a<-?
b<-5                    b<-?
c<-c+4-b+3               c<-?
EJERCICIOS DE CLASE
*a<-10                  *a<-10               *a<-20
*b<-12                  *b<-8                *b<-10
*c<-18                  *a<-a+5              *a<-a-8
*d<-21                  *b<-b+3              *b<-b+5
                        *a<-a+11             *a<-a+12
*a<-a+15                *b<-b-15             *b<-b-15
*b<-b+8-c               *a<-a-16             *a<-a-16
*c<-c+6+b               *b<-b+5              *b<-b-4
*d<-d+b+a               *a<-a+5              *a<-a-3
*a<-a+2                 *b<-b+3              *b<-b-2
                        *a<-a+12             *a<-a+2
*b<-b+c                 *b<-b-12
*c<-b+c                                      *b<-b+12
*d<-b+d
      ¿qué valores quedan
                             ¿qué valores quedan almacenados en
       almacenados en las
                                       las variables a,b?
        variables a,b,c,d?
EJERCICIOS DE CLASE
   Resuelva:
   1.   Operaciones Aritméticas
   a.   7+5–6
   b.   4 * 2*(3 + 6) / 3
   c.   3 + (2 + 3) * 2 – 6 / 2
   d.   9 + 7 * 8 – 36 / 5
   e.   4 { 5 – [ 6 + ( 2 + -4)*2 / 2 + 8] }
   f.   4 [ 1 – ( 5 – 11) / 3]
   g.   7 * 5 ^ 3 / 4 div 3
   h.   7 * 8 * (160 mod 3 ^ 3) div 5 * 13 – 28
   i.   15 / 2 * ( 7 +(68 – 15 * 33 + (45 ^ 2 / 16) / 3) / 15) + 19
   j.   A=4 , B=5 , C=1 (((B + C) / 2 * A + 10) * 3 * B) – 6
2. Operadores Lógicos
a. NO (15 >=7 ^ 2) O (43 – 8 * 2 div 4 <> 3 * 2 div 2)
b. (15 >= 7 * 3 ^ 2 Y 8 > 3 Y 15 > 6) O NO (7 * 3 < 5 + 12 * 2 div 3 ^ 2)
NO (( 7 * 3 div 2 * 4) > (15 / 2 * 6 >= 15 * 2 / 17 = 15))
3.Deducir= A=5 B=25 C=10
   X<- A + B + C
   X<- A + B * C
   X<- A + B / C
   X<- A + B div C
   X<- A + B Mod C
   X<- (A + B) / C
  4. Operadores Relacionales
Diga si es verdadero o falso:
a. A=10, B=4, D=8, C=4    c. A=5 , B=16
     A<C                      (A^2)>(B*2)
     A >= D
     B >= C                     d. X=6, B=7.8
     (A + B) > C                (X * 5 + B ^ 3 / 4) <= (X ^ 3 div
     (A * B) <> C               B)
     (A - B) = C
                          e. ((1580 mod 6 * 2 ^ 7) > (7 + 8 * 3 ^
a. A=10 , B=5             4)) > ((15 * 2) = (60 * 2 / 4))
     (A<4) Y (B<1)
*Representación
            * Seudocódigo
•   Es un lenguaje de especificación de algoritmos.
•   El pseudocódigo nació como un lenguaje similar al
    lenguaje natural y era un medio para representar
    básicamente las estructuras de control de programación
    estructurada.
•   Se considera un primer borrador, dado que el
    pseudocódigo tiene que traducirse posteriormente a un
    lenguaje de programación.
                        * IDENTIFICADORES
Características:
    • Nombre claro
    • Menor de 20 caracteres
    • Contenido preciso: valor que toma dentro del programa
    • Tipo de dato definido
* Comando de Entrada y
            salida de datos
               Escribir: Pantalla,
               Impresora, puertos
     LEER: Teclado
                                         *Ejemplo
 Leer un numero y
mostrarlo en pantalla               Hola Mundo
Inicio                        Inicio
Escribir “Digite un numero”   Escribir “Hola MUNDO!!!!”
Leer (num)
Escribir num                  Fin
Fin
            DIAGRAMA DE FLUJO
Es la representación gráfica de flujo de un
algoritmo o de secuencia rutinarias se basan en
la utilización de diversos símbolos para
representar operaciones específicas.
Se les llama diagramas de flujo porque los
símbolos utilizados se conectan por medio de
flechas para indicar la secuencia de la
operación
*Diagrama de Flujo de Datos
      Inicio o fin: Se utiliza para señalar el comienzo así como el final de
      un diagrama. Tradicionalmente se colocan las palabras "INICIO" o
      "FIN" dentro de la figura para hacerlo más explícito
      Entrada de datos: Representa una operación de entrada. En este
      símbolo se indican los valores iníciales que deberá recibir el
      proceso. Esto se hace asignándoles letras o nombres de variables
      para cada uno de los valores y anotando estas letras en el interior
      de la figura.
      Despliegue de resultados: Este símbolo se utiliza para mostrar un
      resultado, el cual puede representar la solución al problema que se
      pretende resolver y que fue conseguida a través del resto del
      diagrama. Dentro de su interior se anotará la variable con el
      resultado final o el mensaje que represente el resultado del
      algoritmo.
Proceso: Es el símbolo más comúnmente utilizado. Se usa
para representar un evento o proceso determinado que es
controlado dentro del diagrama de flujo en que se encuentra,
sumar, restar y cualquier operación aritmética es un proceso.
Flujo de datos: Indica la secuencia (flujo) de operación del
diagrama, que a su vez indican el sentido y trayectoria.
Conector: Representa un punto de conexión entre procesos.
Se utiliza cuando es necesario dividir un diagrama de flujo en
varias partes o procesos dentro de la misma hoja, por razones
de espacio o simplicidad. Se usa para conectar procesos
contenidos dentro de la misma hoja. La mayoría de las veces
se utilizan números en los círculos para hacer la referencia.
Decisión. Se utiliza para representar una pregunta o
interrogante que tiene al menos dos respuestas posibles, para
cada una de las cuales hay un camino de continuación del
proceso. Lo anterior hace que a partir de éste el proceso tenga
dos o más caminos posibles.
            Características que debe cumplir un
                     diagrama de flujo
• Existe siempre un camino que permite llegar a una solución
  (finalización del algoritmo).
• Existe un único inicio del proceso.
• Existe un único punto de fin para el proceso de flujo (salvo
  del rombo que indica una comparación con dos caminos
  posibles).
Ejemplo
EJERCICIOS DE CLASE
                                 Ejemplos
 1. Un estudiante realiza cuatro exámenes durante el semestre, los cuales
    tienen la misma ponderación. Realice el pseudocódigo y el diagrama de
    flujo que representen el algoritmo correspondiente para obtener el
    promedio de las calificaciones obtenidas.
 2. Se requiere conocer el área de un rectángulo. Realice un algoritmo para
 tal fin y represéntelo mediante un diagrama de flujo y el pseudocódigo para
 realizar este proceso.
 3. Se requiere obtener el área de una circunferencia. Realizar el algoritmo
 correspondiente y representarlo mediante un diagrama de flujo y el
 pseudocódigo
 correspondiente.
4. Una empresa constructora vende terrenos con la forma A
de la figura, Realice un algoritmo y represéntelo mediante un
diagrama de flujo y el pseudocódigo para obtener el área
respectiva de un terreno de medidas de cualquier valor.
                             Ejemplos
5. Se requiere obtener el área de la figura. Para resolver este
problema se puede partir de que está formada por tres figuras: dos
triángulos rectángulos, con H como hipotenusa y R como uno de los
catetos, que también es el radio de la otra figura, una
semicircunferencia que forma la parte circular (ver forma B). Realice
un algoritmo para resolver el problema y represéntelo mediante el
diagrama de flujo y el pseudocódigo.
6. Un productor de leche lleva el registro de lo que produce en litros,
pero cuando entrega le pagan en galones. Realice un algoritmo, y
represéntelo mediante un diagrama de flujo y el pseudocódigo, que
ayude al productor a saber cuánto recibirá por la entrega de su
producción de un día (1 galón = 3.785 litros)
7. Se requiere determinar el sueldo semanal de un trabajador con
base en las horas que trabaja y el pago por hora que recibe. Realice
el diagrama de flujo y el pseudocódigo que representen el algoritmo
de solución correspondiente.
8. Determinar la cantidad de dinero que recibe un
trabajador por concepto de horas extras, sabiendo que
cuando las horas trabajadas excede 40 se consideran extras
y se pagan el doble. Valor hora $ 30.000
9. Calcular el total a pagar por compra de camisas. Si
compra 3 camisas o más se aplica un descuento del 20% y si
son menos el 10%.
10. Calcular el valor absoluto de un numero, el usuario
ingresa dicho valor.
Estructuras
EJERCICIOS DE CLASE
                        EJERCICIOS
•   Se desea implementar un algoritmo para determinar cuál de
    dos valores proporcionados es el mayor. Representarlo con
    pseudocódigo, diagrama de flujo
•   Realice un algoritmo para determinar si un número es positivo
    o negativo. Represéntelo en pseudocódigo, diagrama de flujo.
•   Realice un algoritmo para determinar cuánto se debe pagar
    por equis cantidad de lápices considerando que si son 1000 o
    más el costo es de $850; de lo contrario, el precio es de $1200.
    Represéntelo con el pseudocódigo, el diagrama de flujo .
EJERCICIOS DE CLASE
                                      EJERCICIOS
•   Almacenes “El harapiento distinguido” tiene una promoción: a todos los trajes que tienen un precio
    superior a $250.000 se les aplicará un descuento de 15 %, a todos los demás se les aplicará sólo 8 %. Realice
    un algoritmo para determinar el precio final que debe pagar una persona por comprar un traje y de cuánto
    es el descuento que obtendrá. Represéntelo mediante el pseudocódigo, el diagrama de flujo.
•   Se requiere determinar cuál de tres cantidades proporcionadas es la mayor. Realizar su respectivo
    algoritmo y representarlo mediante un diagrama de flujo, pseudocódigo.
•   La langosta ahumada” es una empresa dedicada a ofrecer banquetes; sus tarifas son las siguientes: el
    costo de platillo por persona es de $35.000, pero si el número de personas es mayor a 200 pero menor o
    igual a 300, el costo es de $45.000. Para más de 300 personas el costo por platillo es de $25.000. Se
    requiere un algoritmo que ayude a determinar el presupuesto que se debe presentar a los clientes que
    deseen realizar un evento. Mediante pseudocódigo, diagrama de flujo
•   El director de una escuela está organizando un viaje de estudios, y requiere determinar cuánto debe cobrar
    a cada alumno y cuánto debe pagar a la compañía de viajes por el servicio. La forma de cobrar es la
    siguiente: si son 100 alumnos o más, el costo por cada alumno es de $65.00; de 50 a 99 alumnos, el costo es
    de $70.00, de 30 a 49, de $95.00, y si son menos de 30, el costo de la renta del autobús es de $4000.00, sin
    importar el número de alumnos. Realice un algoritmo que permita determinar el pago a la compañía de
    autobuses y lo que debe pagar cada alumno por el viaje (represente en pseudocódigo, diagrama de flujo.
                                    Ejercicios
•   Fábricas “El cometa” produce artículos con claves (1, 2, 3, 4, 5 y 6). Se requiere un
    algoritmo para calcular los precios de venta, para esto hay que considerar lo siguiente:
    Costo de producción = materia prima + mano de obra + gastos de fabricación. Precio de
    venta = costo de producción + 45 % de costo de producción. El costo de la mano de obra
    se obtiene de la siguiente forma: para los productos con clave 3 o 4 se carga 75 % del
    costo de la materia prima; para los que tienen clave 1 y 5 se carga 80 %, y para los que
    tienen clave 2 o 6, 85 %. Para calcular el gasto de fabricación se considera que si el
    artículo que se va a producir tiene claves 2 o 5, este gasto representa 30 % sobre el costo
    de la materia prima; si las claves son 3 o 6, representa 35 %; si las claves son 1 o 4,
    representa 28 %. La materia prima tiene el mismo costo para cualquier clave. Represente
    mediante el diagrama de flujo, el pseudocódigo.
•   El banco “Pueblo desconocido” ha decidido aumentar el límite de crédito de las tarjetas de
    crédito de sus clientes, para esto considera que si su cliente tiene tarjeta tipo 1, el aumento
    será de 25 %; si tiene tipo 2, será de 35 %; si tiene tipo 3, de 40 %, y para cualquier otro
    tipo, de 50 %. Ahora bien, si la persona cuenta con más de una tarjeta, sólo se considera la
    de tipo mayor o la que el cliente indique. Realice un algoritmo y represente su diagrama de
    flujo y el pseudocódigo para determinar el nuevo límite de crédito que tendrá una persona
    en su tarjeta.
•   Una empresa les paga a sus empleados con base en las horas trabajadas en la semana.
    Para esto, se registran los días que laboró y las horas de cada día. Realice un algoritmo
    para determinar el sueldo semanal de N trabajadores y además calcule cuánto pagó la
    empresa por los N empleados. Represéntelo mediante diagrama de flujo, pseudocódigo.
                           Ejercicios
•   Una compañía de viajes cuenta con tres tipos de autobuses (A, B y C),
    cada uno tiene un precio por kilómetro recorrido por persona, los
    costos respectivos son $2.0, $2.5 y $3.0. Se requiere determinar el
    costo total y por persona del viaje considerando que cuando éste se
    presupuesta debe haber un mínimo de 20 personas, de lo contrario el
    cobro se realiza con base en este número límite, Represéntelo
    mediante diagrama de flujo, Pseudocodigo.
•   “El náufrago satisfecho” ofrece hamburguesas sencillas, dobles y
    triples, las cuales tienen un costo de $20.00, $25.00 y $28.00
    respectivamente. La empresa acepta tarjetas de crédito con un cargo
    de 5 % sobre la compra. Suponiendo que los clientes adquieren sólo
    un tipo de hamburguesa, realice un algoritmo para determinar cuánto
    debe pagar una persona por N hamburguesas. Represéntelo mediante
    diagrama de flujo, Seudocódigo.