lunes, 24 de agosto de 2015

Guia 2 - Estructuras Condicionales

---------------------- Guía No.2 - algoritmos condicionales ----------------------------

Apoyo audio visual:
https://www.youtube.com/watch?v=3o3H5bL88ac
https://www.youtube.com/watch?v=ALcrP0e80Ec
https://www.youtube.com/watch?v=jKmQ8RpioIs


Si tiene problemas con los comandos matemáticos están disponibles en:
ayuda>>PSeudoCodigo>>Expresiones>>Funciones

Dicho esto, vamos con condicionales, como podrá notar, muchas veces uno quiere hacer un
programa que haga una u otra cosa según la información ingresada, para esto, hacemos
comprobaciones o condiciones, veamos un ejemplo sencillo.


Proceso Ej_VA
    // Nota: Estas barras sirven para comentar el código.
    //           todo lo que escriba después de ellas el programa lo ignora
    Escribir "Ingrese un numero"
    Leer N1
   
    Si N1 < 0
        // Si el numero es menor que 0 se multiplica por -1
        N1 = -1 * N1
    FinSi
    Escribir "El valor absoluto del numero es: ", N1
FinProceso

Como se puede ver podemos hacer que el programa responda de cualquier forma
a un evento que que ocurra. En el si podemos usar los operadores lógicos
los básicos son =, >, <, >=, <= y <> podemos verlos en
ayuda>>PSeudoCodigo>>Expresiones>>Operadores

Todos ellos comprueban algo y devuelve Verdadero-falso o true-false. si devuelve true
se ejecuta la condición y si devuelve false no se ejecuta o se ejecuta el sino, ejemplo

Proceso Ej_NP
    Escribir "Ingrese un numero"
    Leer N1
    R1 = N1 % 2 // Si el número es par regresa 0 y si no regresa 1
           // Nota 1: el % es el mismo mod se puede escribir también como N1 mod 2
           // Nota 2: el mod devuelve el residuo de una división por lo que si el mod es 0 la  
           //              división es exacta
    Si R1 = 0
        Escribir "El numero es par"
    Sino // si regresa false ejecuta lo siguiente
        Escribir "El numero es impar"
    Finsi
FinProceso

También podemos meter una condición dentro de otra, a eso se le llama anidar,
más específicamente condiciones anidadas.


Proceso Ej_NC
    Escribir "Ingrese un numero"
    Leer N1
    Si N1 < 0
        Escribir "El numero es negativo"
    Sino
        //Podemos agregar todas las condiciones que queramos dentro de otra
        Si N1 = 0
            Escribir "El numero es neutro"
        Sino
            Escribir "El numero es positivo"
        FinSi
    Finsi
FinProceso


Podemos agregar más de una condición con el y/o, esto sigue la respuesta intuitiva
si colocamos "o" cuando una sea true pasara y si colocamos "y" solo en caso de que
ambas sean true pasara, ejemplo


Proceso Ej_C
    Escribir "Ingrese un numero"
    Leer N1
           // Nota: el trunc quita la parte decimal de un número y deja solo la entera
    Si N1 <> trunc(N1) y N1 > 0
        Escribir "El numero es un decimal positivo"
    Sino
        Si N1 > 0
            Escribir "El numero es positivo"
        FinSi
    FinSi
    Si N1 = trunc(N1) o N1 < 0
        Escribir "El numero es entero y/o negativo"
    FinSI
FinProceso


Bien pongamos algunos ejercicios, para practicar, la idea es que puede hacerlos como
quiera lo importante es que funcionen.

Ejercicios propuestos:
Los ejercicios están ordenados según su dificultad, realice ejercicios hasta que se sienta cómodo codificando, e intente hacer los últimos.

1. Desarrollar un diagrama que permita determinar si un valor cualquiera es positivo o negativo
2. Desarrollar un diagrama que permita determinar sin un valor cualquiera es par o impar
3. Desarrolle un diagrama que permita determinar si un valor N es múltiplo de un Valor Z
4. Desarrollar un diagrama que permita determinar si un valor N (cualquiera), es divisor común de otros dos valores X y Y (que se ingresan por teclado)
5. Diseñar un diagrama que lea un valor N y determine si es múltiplo común de X y Z donde X y Z también se ingresan por teclado
6. Diseñar un diagrama que permita leer dos valores V1 y V2 y determine cuál es el mayor y cuál es el menor o si son iguales
7. Diseñe un diagrama que permita leer dos números N1 y N2 e indicar si uno de los dos divide exactamente al otro.
8. Crear un programa que reciba 2 números, los sume, reste, multiplique o divida (el usuario escoge).
9. Desarrollar un diagrama que permita el ingreso de dos valores X1 y X2 donde indique si el resultado de dividir la suma de los números entre la resta de X1 – X2 es exacta o no.
10. Desarrollar un diagrama que permita el ingreso de 3 números Num1, Num2, Num3 e indicar si la suma de los 3 números es par, impar o neutra.
11. Desarrollar un diagrama que permita leer 3 valores diferentes e indique cual es el mayor de ellos, el menor o si son iguales.
12. Desarrollar un diagrama que permita leer 3 valores X1, X2, X3 e indicar si alguno de ellos divide a los otros dos exactamente.
13. Diseñar un diagrama que permita emitir la factura correspondiente a una compra de un artículo del cual se adquiere una o varias unidades y se conoce su precio antes de IVA (iva igual al 16%), y si el precio bruto (precio de venta más IVA) es mayor de $500.000.oo se debe realizar un descuento del 15%.

14. Desarrolle un diagrama que permita determinar la nota minima que se debe sacar en el examen final del curso de acuerdo a las condiciones 75% (las 3 primeras notas) y 25%(nota 4), esta nota debe estar representada tanto en puntos y en nota.

Recordar que hay 4 notas y una nota final, y se dividen los puntos así:

Nota 1: 25
Nota 2: 100
Nota 3: 125
Nota 4: 125

Examen o Nota final: 125

La nota del examen podrá ser desde 0 puntos a 5 puntos.

15. Una fábrica de tornillos hace controles de calidad tomando una muestra del 10%
de los tornillos por cada lote de tornillos que sacan, dependiendo de la calidad
de los tornillos se harán descuentos para venderlos, si el porcentaje de tornillos
malos es menor al 5% se venderá al 100% del precio del lote, si el porcentaje esta
entre el 5% y 10% se hará un descuento del 10% al precio del lote, si el porcentaje
de tornillos dañados es del 10 al 15% al descuento original se le restará el
5% + 10000 pesos del precio del lote, si el porcentaje es del 15 al 30%, se hará un
descuento del 20% y se hará un llamado de atención a las personas que hicieron el lote,
si el porcentaje de tornillos dañados esta entre el 30 y 50% se aplicará el descuento
del 10% a 15% + el porcentaje de tornillos dañados dividido en 2, y se diezmara
el grupo que hizo el lote, si el porcentaje supera el 50% el lote no se venderá y
se desintegrará el grupo que realizó el lote, con posible despido del total de sus
integrantes (supongo que es una empresa romana :P).

Realizar un algoritmo que reciba el precio del lote de los tornillos, el numero de
tornillos por lote, y el número de tornillos dañados y muestre el precio del lote
de tornillos.

// XD lo deje bien enredado para ver si pueden jeje.




16. Hacer un algoritmo que lea un año y diga si es bisiesto o no.
    Un año es bisiesto si es divisible entre 4, a menos que sea divisible entre 100.
    Sin embargo, si un año es divisible entre 100 y además es divisible entre 400,
    también resulta bisiesto. Obviamente, esto elimina los años finiseculares
    (últimos de cada siglo, que ha de terminar en 00) divisibles sólo entre 4 y
    entre 100.

17. Desarrollar un diagrama de flujo que permita determinar el tiempo un segundo después de un tiempo ingresado en horas:minutos:segundos. Ejemplo 4:59:59 // 5:00:00.
18. Desarrollar un diagrama de flujo que permita determinar la fecha un día después a un fecha ingresada (tenga en cuenta meses de 30, 31, 28 días, cambio de año y el año bisiesto, ejemplo 31-12-2004 el día siguiente será 1-1-2005).

No hay comentarios:

Publicar un comentario