miércoles, 29 de septiembre de 2010

Estructuras de control, Ejemplos y Ejercicios

Las estructuras de control indican el orden de ejecución de las acciones en un algoritmo e instrucciones en un programa.
ü  Selección
ü  Repetición

Estructuras de Control de Selección
Las estructuras de control selectivas permiten condicionar la realización de acciones dentro del algoritmo.
ü  Selección Simple
ü   Selección Doble
ü   Selección Múltiple

Estructuras de Selección Simple:
Formato:   
Si  (Expresión Lógica)  Entonces
    Acción o Acciones a ejecutar
Fin Si   

Ejemplo : Aplicar el 15% de descuento a un monto, si éste es  >= 100000.
Si  (monto >= 100000) Entonces
    monto ß monto – (monto * 0.15)
Fin Si   

Estructuras de Selección Simple Anidada:
Formato:   
Si (Expresión Lógica)  Entonces
    Acción o Acciones a ejecutar
          Si (Expresión Lógica)  Entonces
              Acción o Acciones a ejecutar
          Fin Si         
Fin Si

Ejemplo : Aplicar el 15% de descuento a un monto, si éste es  >= 100000 y si el resultado es mayor 400000 se le aplicará 10%.
Si (monto >= 100000) Entonces
    monto ß monto – (monto * 0.15)
               Si  (Monto > 400000) Entonces
                    monto ß monto – (monto * 0.10)
             Fin Si
Fin Si   

Estructuras de Selección Doble
Formato:
Si (Expresión Lógica)  Entonces
    Acción o Acciones a ejecutar
Sino
    Acción o Acciones a ejecutar
Fin Si

Ejemplo: Actualizar el saldo de una cuenta bancaria, a partir de un retiro.
Si ((Saldo – Retiro) >= 0) Entonces
    Saldo ß Saldo - Retiro
Sino
    Escribir “Fondos Insuficientes”
Fin Si

 Estructuras de Selección Doble Anidada
Formato:
Si (Expresión Lógica)  Entonces
    Acción o Acciones a ejecutar
       Si (Expresión Lógica)  Entonces
         Acción o Acciones a ejecutar
       Sino
         Acción o Acciones a ejecutar
       Fin Si            
Sino
    Acción o Acciones a ejecutar
       Si (Expresión Lógica) Entonces
         Acción o Acciones a ejecutar
       Sino
         Acción o Acciones a ejecutar
       Fin Si
Fin Si    

Ejemplo: Actualizar el saldo de una cuenta bancaria, a partir de un retiro si el saldo es mayor o igual a 100000 se le restará 1500, si el saldo es menor de 100000 se le restará 1000.
Si ((Saldo – Retiro) >= 0) Entonces
    Saldo ß Saldo – Retiro
                Si (Saldo >= 100000) Entonces
                    Saldo ß Saldo - 1500
                Sino
                    Saldo ß Saldo - 1000
                Fin Si    
Sino
    Escribir “Fondos Insuficientes”
Fin Si    

Estructuras de Selección Múltiples
Formato:
Caso (Nombre_de_Variable)
        Valor1: Accion(es) a ejecutar
        Valor2: Accion(es) a ejecutar
        Valor3: Accion(es) a ejecutar
        ValorN: Accion(es) a ejecutar
Sino
        Accion(es) a ejecutar
Fin Caso

Ejemplo: Costo de una pizza, según su tamaño.
Caso (Tamaño_Pizza)
        ‘P’: Costo  ß  6000
        ‘M’: Costo ß  8000
        ‘G’: Costo  ß 10000
Sino
        Escribir “Tamaño de Pizza no válido“
        Costo  ß 0
Fin Caso

Ejercicios:
1.- Realice un algoritmo en pseudocódigo en español que permita obtener la suma de dos números teniendo en cuenta que el primer número tiene que ser mayor que el segundo y si el resultado de la suma es mayor o igual que 230 se dividirá entre 2

Algoritmo que permite Calcular la suma de dos números
Declaración de Variables
        Número_1, Número_2,  Suma: Entero
Inicio
Escribir “Calcular la suma de dos números”
Escribir “Introduzca los siguientes datos:”
Escribir “Primer número: ”
Leer(Número_1)
Escribir “Segundo número: ”
Leer(Número_2)
       
        Si (Número_1 > Número_2) Entonces
                Escribir “Se realizará la suma el primer número es mayor que el segundo”
                Suma ß Número_1 + Número_2
                       Si (Suma>=230) Entonces
                       Escribir “La suma es mayor a 230 se dividirá entre 2”
                        Suma ß Suma / 2
                       Fin Si    
           Fin Si
         Escribir “El resultado es:  ”, Suma
Fin

2.- Realice un algoritmo en pseudocódigo que permita mostrar el día de la semana correspondiente según un número entero dado

Algoritmo que permite Calcular  la nota acumulada en biología y mostrar una apreciación
Declaración de Variables
        Numero_1: Entero
Inicio
Escribir “Mostrar día de la semana”
Escribir “Introduzca un número del 1 al 7:”
Leer (Numero_1)
Caso (Numero_1)
        1: Escribir “El día es Lunes ”
        2: Escribir “El día es Martes ”
        3: Escribir “El día es Miércoles ”
        4: Escribir “El día es Jueves ”
        5: Escribir “El día es Viernes ”
        6: Escribir “El día es Sábado ”
        7: Escribir “El día es Domingo ”
Sino
        Escribir “Error, Debe introducir un número del 1 al 7:”
Fin Caso
Fin

Estructuras de Control de Repetición
Las estructuras de control repetitivas permiten que un grupo de acciones se repitan varias veces dentro del algoritmo.
ü  Mientras
ü   Repetir
ü   Para

Variables Auxiliares
CONTADOR: es una variable cuyo valor se incrementa o decrementa en una cantidad constante en cada iteración.
Incrementa: Contador ß Contador + Valor_Fijo
Decrementa: Contador ß Contador - Valor_Fijo

ACUMULADOR: es una variable que almacena cantidades resultantes de sumas sucesivas en
cada iteración.
Acumulador ß Acumulador +  Variable

Estructura Repetitiva Mientras: Mientras el resultado de la expresión lógica sea Verdadero, se realizarán iteraciones donde se ejecutarán las acciones encerradas en el cuerpo del bucle.
Formato:
Mientras (Expresión Lógica)  Hacer
       Acción o Acciones
Fin Mientras


Uso de Contadores y Acumuladores en ciclos
Ejemplo: Estructura repetitiva para sumar los  precios de 3 artículos.
Suma ß   0
Articulo ß  0
Mientras (Articulo < 3) Hacer
     Articulo ß Articulo + 1
     Escribir “Introduzca Precio del Artículo # ”, Articulo
     Leer  (Precio)
     Suma ß Suma + Precio
Fin Mientras
     Escribir “El resultado de la suma es = “, Suma

Estructura Repetitiva Repetir: Repetir (realizar iteraciones) hasta que  la expresión lógica
resulte Verdadero.
Formato:
Repetir
       Acción o Acciones
Hasta (Expresión Lógica)
Ejemplo: Validación de un dato de entrada.
Repetir
                Escribir “Introduzca la nota a procesar [0..10]:”
                Leer (nota)
                Si ((nota < 0) O (nota > 10)) Entonces
                               Escribir “Error, la nota está fuera del rango.”
                Fin Si
Hasta ((nota >=0) Y (nota <= 10))

Estructura Repetitiva Para: Realiza una iteración por cada valor que tome Variable.
Formato:
Para Variable = Vi Hasta Vf   Inc o Dec [Valor]
       Acción o Acciones
Fin Para 
Ejemplo: Estructura repetitiva para sumar los  precios de 3 artículos.
Suma ß 0
Para Articulo = 1 Hasta 3 Inc 1
                Escribir “Introduzca Precio del Artículo # ”, Articulo
                Leer (Precio)
                Suma ß Suma + Precio
Fin Para
Escribir “El resultado de la suma es “, Suma

Ejercicios:
1.- Realice un algoritmo en pseudocódigo en español que permita leer y mostrar los nombres
de 10 estudiantes.

Algoritmo que permite leer y mostrar los nombres de 10 estudiantes
Declaración de Variables
                Nombre_Estudiante: Alfabetico
                Contador: Entero
Inicio
 Escribir (“Programa que permite leer y mostrar los nombres de 10 estudiantes ”)
 Contador ß 0
Mientras (Contador <= 10)
Contador ß  Contador + 1
Escribir “Introduzca el nombre nº ”, Contador, “:”
Leer (Nombre_Estudiante)
Escribir “El nombre del estudiante nº ”, Contador, “es:”, Nombre_Estudiante
 Fin Mientras   
Fin

2.- Realice un algoritmo en pseudocódigo en español que permita contar una serie de 40 números e indiquen cuántos de ellos son negativo y cuántos de ellos son positivo.

Algoritmo que permite contar una serie de 40
Declaración de Variables
                Numero_positivo, Numero_negativo: Entero
                Numero, Contador_Numero: Entero
Inicio
Escribir (“Programa que permite contar una serie de 40 números y lleva la cuenta de cuantos  son positivos y negativos ”)
         Contador_Numero ß 0, Numero_positivo ß 0, Numero_negativo ß 0
Repetir
                Escribir “Introduzca un Número”
                Leer (Numero)
                Contador_Numero ß  Contador_Numero + 1
                Si (Numero >= 0) Entonces
                        Numero_positivo = Numero_positivo +1
                sino
                      Numero_negativo  = Numero_negativo +1
                Fin Si    
Hasta (Contador_Numero = 40)
Escribir (“Números positivos: ”, Numero_positivo)
Escribir (“Números negativos: ”, Numero_negativo )
Fin

Algoritmo que permite contar una serie de 40
Declaración de Variables
                Numero_positivo, Numero_negativo: Entero
                Numero, Contador_Numero: Entero
Inicio
Escribir (“Programa que permite contar una serie de 40 números y lleva la cuenta de cuantos  son positivos y negativos ”)
Numero_positivo ß 0, Numero_negativo ß 0
Para Contador_Numero = 1 Hasta 40 Inc 1
                Escribir “Introduzca un Número”
                Leer (Numero)
                Si (Numero >= 0) Entonces
                        Numero_positivo = Numero_positivo + 1
                sino
                      Numero_negativo  = Numero_negativo + 1
                Fin Si    
Fin Para
Escribir (“Números positivos: ”, Numero_positivo)
Escribir (“Números negativos: ”, Numero_negativo )
Fin



Concepto de Algoritmo

Conjunto de pasos para resolver un problema computacional que deben ser traducidos posteriormente en un Lenguaje de Programacíón de alto nivel con una sintaxis específica que pueda ser entendida por el hardware del computador.