Algoritmo literal

                                                       Unidad 4

Estructuras de control

En esta unidad nos proponemos explicarte las estructuras de control elementales de un programa. Te presentaremos estructuras condicionales para la toma de decisiones, estructuras iterativas para realizar una acción varias veces y estructuras de selección para realizar alguna acción de acuerdo al valor de una variable.
¿Comenzamos?
Estructuras de control condicionales
En los algoritmos presentados previamente te has familiarizado con las instrucciones del lenguaje seudocódigo para ingresar y mostrar datos y para asignar un valor a una variable.

Retomemos el algoritmo de la unidad anterior:

SEUDOCÓDIGO PseInt

Algoritmo


CalcularPromedio Definir
NOTA1, NOTA2, NOTA3 Como Entero
Definir
PROMEDIO Como Real
Escribir "Ingrese nota 1" Leer
NOTA1 Escribir "Ingrese nota 2" Leer
NOTA2 Escribir "Ingrese nota 3" Leer
NOTA3 PROMEDIO <- (nota1+nota2+nota3)="" 3="">->Escribir "El promedio de notas es:", PROMEDIO FinAlgoritmo

En todos los algoritmos que realizamos hasta ahora, como este ejemplo, seguramente habrás observado que, sin importar los valores de los datos o alguna condición en especial, siempre se ejecutaban todas las instrucciones. 

Ahora bien, como en la vida diaria, donde por ejemplo ante el resultado de un promedio hay que decir si se aprobó o no, en los algoritmos también nos encontramos con estas situaciones. Hay momentos donde, de acuerdo a una determinada situación, el programa deberá realizar alguna instrucción. Por lo tanto, tenemos la necesidad de contar con una herramienta que nos permita poder ejecutar o no, un grupo de acciones ante una situación. Para esto vamos a utilizar el condicional.

Condicional simple

Ahora, te proponemos un desafío:

Leé el algoritmo que se encuentra a continuación para entender cómo funciona la estructura condicional.
Seguramente no tendrás problemas en entenderlo porque es muy claro y se corresponde con palabras de nuestro idioma.

SEUDOCÓDIGO
VARIABLES
     TEMPERATURA: REAL
INICIO   
    Mostrar (“Ingrese la temperatura”)
    Ingresar (TEMPERATURA)
    Si (TEMPERATURA < 20)="">
        Mostrar (“Hace frío, no olvide llevar abrigo”)
    FinSi
FIN

Analicemos un poco el ejemplo:

Lo primero que hace es mostrar al usuario que tiene que ingresar una temperatura, luego almacena ese valor en la variable TEMPERATURA.

La palabra “SI” da comienzo a la estructura condicional.

Inmediatamente después se encuentra la condición, en este caso TEMPERATURA < 20.=»» la=»» condición=»» podrá=»» evaluarse=»»>


VERDADERO:


Cuando el valor de la variable TEMPERATURA sea un n° menor a 20.

FALSO:


Cuando el valor de la variable TEMPERATURA no sea un n° menor a 20. Dicho de otro modo, cuando sea un valor mayor o igual a 20.

Luego de la condición se encuentra la palabra “entonces”, la cual forma parte de la estructura condicional. Luego de la palabra “entonces” se encuentra la acción que mostrará al usuario que debe llevar un abrigo. Y finalmente la estructura finaliza con una palabra “FinSi”.

A continuación, veamos cómo funciona el condicional simple…

¿Cómo funciona el condicional simple?

Al detectar la palabra “SI” el algoritmo procede a evaluar el valor lógico de la condición. 

Si el valor es VERDADERO, el algoritmo ejecuta las acciones que se encuentran entre las palabras “entonces” y “FinSi”. Si, por otro lado, el valor de la condición es FALSO, el algoritmo salta a la palabra “FinSi” y continúa con las siguientes acciones.

La principal carácterística del condicional simple es que puede ejecutarse, o no, un grupo de acciones. Puede suceder que no se ejecute nada, en el caso de que el valor de la condición sea FALSO.

Seguramente recordarás los valores lógicos que te presentamos en la Unidad 3, donde abordamos las operaciones lógicas. Estas operaciones lógicas, junto con las variables booleanas, se utilizan en condiciones.

De forma genérica definimos un condicional simple de la siguiente manera:


SEUDOCÓDIGO
Si (CONDICIÓN VERDADERA) entonces
     Instrucción1
     Instrucción2
     ................
     InstrucciónN
FinSi

  VER VIDEO: Te proponemos que veas el siguiente video para comprender mejor el funcionamiento de un Condicional Simple.

Condicional alternativo

Supongamos ahora la situación que se presenta en el siguiente ejemplo:

SEUDOCÓDIGO
VARIABLES
     EDAD: ENTERO
INICIO
     Mostrar ("Ingrese su edad")
     INGRESAR (EDAD)
     Si (EDAD >= 18) entonces
     Mostrar ("Es mayor de edad")
     Sino
           Mostrar ("Es menor de edad")
     FinSi
FIN
Este algoritmo nos permite saber si una persona es, o no, mayor de edad. Toda persona será mayor o menor de edad, pero no simultáneamente, es decir, que deberá ocurrir alguna de las dos situaciones, dependiendo de la edad. En el caso de definir la mayoría de edad a los 18 años, para saber si una persona es mayor se deberá evaluar la edad, y si es mayor o igual a 18 se podrá decir que es mayor de edad, en caso contrario se podrá decir que es menor de edad. 

Esta situación es lo que llamamos en programación condicional alternativo, ya que ocurrirá alguna de las dos situaciones alternativamente. 

El funcionamiento del condicional alternativo es muy similar a un condicional simple, con la diferencia que acá tenemos dos grupos de acciones. Estos grupos se ejecutarán alternativamente de acuerdo al valor de la Condición.

Analizando el ejemplo, podemos comentar:


Lo primero que hace es mostrar al usuario que tiene que ingresar su edad, luego almacena ese valor en la variable EDAD.

La palabra “SI” da comienzo a la estructura condicional.

Inmediatamente después se encuentra la condición, en este caso EDAD >= 18.

Luego de la condición se encuentra la palabra “entonces”, que forma parte de la estructura condicional. 

Luego de la palabra “entonces” se encuentra una acción para mostrar por pantalla la leyenda “Es mayor de edad”.

Luego se encuentra la palabra “sino” que marca el fin del bloque de acciones que comenzó con la palabra “entonces” y el inicio de otro bloque de acciones. 

Luego de la palabra “sino” se encuentra una acción para mostrar por pantalla la leyenda “Es menor de edad”.

Y finalmente la estructura finaliza con una palabra “FinSi”.


A continuación, veremos cómo funciona el condicional alternativo.

¿Cómo funciona el condicional alternativo?

Al detectar la palabra “SI”, el algoritmo procede a evaluar el valor lógico de la condición. 


Si el valor es VERDADERO, el algoritmo ejecuta las acciones que se encuentran entre las palabras “entonces” y “sino”. Si, por otro lado, el valor de la condición es FALSO, el algoritmo ejecuta las acciones que se encuentran entre las palabras “sino” y “FinSi”.

La principal carácterística del condicional alternativo es que siempre se ejecutará un bloque de acciones. Si la condición es VERDADERA se ejecutará el bloque “entonces”, en cambio si la condición es FALSA se ejecutará el bloque “sino”.

De forma genérica definimos un condicional alternativo de la siguiente manera:

SEUDOCÓDIGO
Si (CONDICIÓN) entonces
     Instrucción1
     .......          Condición VERDADERA
     InstrucciónM
Sino
     InstrucciónN
     ......            Condición FALSA     
     InstrucciónP
FinSi


Continuamos con otros ejemplos…

Condicional alternativo: ejemplo «Algoritmo Calcular el Promedio»

Veamos ahora en el ejemplo que te presentamos al comenzar la unidad, cómo debería modificarse el algoritmo para que al calcular el promedio de 3 notas, informe si aprobó (promedio >= a 4) o desaprobó (promedio < a=»» 4).=»»>

SEUDOCÓDIGO PseInt
Algoritmo CalcularPromedio
    Definir NOTA1, NOTA2, NOTA3 Como Entero
    Definir PROMEDIO Como Real
    
    Escribir "Ingrese nota 1"
    Leer NOTA1
    Escribir "Ingrese nota 2"
    Leer NOTA2
    Escribir "Ingrese nota 3"
    Leer NOTA3
    
    PROMEDIO <- (nota1+nota2+nota3)="" 3="" escribir="" "el="" promedio="" de="" notas="" es:",="" promedio="" si="" promedio="">= 4 Entonces
        Escribir "Aprobó la materio."
    Sino
        Escribir "Desaprobó la materia."
    FinSi
FinAlgoritmo
->

 VER VIDEO: Te proponemos que veas el siguiente video para comprender mejor el funcionamiento de un Condicional Alternativo.

Estructuras de control iterativas

En todos los ejemplos que vimos previamente las instrucciones se realizan una única vez. 

Este algoritmo pide una sola edad, es decir que, cada vez que se ejecute, funcionará para una sola persona. Seguramente estarás pensando que sería mucho mejor que se pudieran ingresar las edades de muchas personas, sin tener la necesidad de ejecutarlo nuevamente. 

En otras palabras, sería útil que hiciera lo mismo que hace para una persona, pero para muchas, de forma reiterativa. 


Por lo tanto, se presenta la necesidad de tener que ejecutar una o más acciones más de una vez, de forma reiterativa. En este caso haremos uso de las estructuras de control iterativas.

Nuestro lenguaje seudocódigo nos permite controlar las repeticiones de distintas maneras y es por eso que a continuación veremos tres estructuras de control iterativas.

1. Ciclo Mientras

Ahora te proponemos que leas detenidamente el siguiente algoritmo y trates de averiguar qué es lo que hace. No te parecerá difícil ya que el seudocódigo es muy similar al idioma castellano.

SEUDOCÓDIGO
INICIO
    Mostrar (“Ingrese un número mayor a 0”)
    Ingresar (NUM)
    Mientras (NUM <= 0)="">=>
          Mostrar (“Error. Ingrese un número. Deber ser mayor a 0”)
          Ingresar (NUM)
    FinMientras
    Mostrar (“Ingresó el número:”,NUM)
FIN

Lo primero que realiza este algoritmo es mostrar una leyenda al usuario y luego queda a la espera de que ingrese un número por teclado.
Luego, se encuentra esta nueva estructura de control MIENTRAS, seguida de una condición. 

Si leemos literalmente el algoritmo podremos deducir que mientas el valor de la variable NUM sea menor o igual a 0, mostrará el mensaje de error y luego pedirá nuevamente el ingreso del dato. 
Sabemos que el algoritmo realizará estas dos acciones porque están encerradas en el bloque Mientras – FinMientras.

De esta manera podemos explicar el modo de trabajar de la estructura Mientras.


Cuando se llega a una estructura Mientras, primero se evalúa la condición, en el caso de ser VERDADERA, se ejecutarán las acciones comprendidas en este bloque, que son aquellas que están hasta encontrar la palabra “FinMientras”. 

En el caso de que la condición sea FALSA, se dice que “sale” del Mientras, dando por finalizado el ciclo iterativo, y continuando la ejecución luego del FinMientras.


La estructura genérica de un Mientras es la siguiente:
SEUDOCÓDIGO
Mientras (CONDICIÓN) hacer
     Instrucción1
     ............    Condición VERDADERA
     InstrucciónN
FinMientras

Retomamos el ejemplo de la Unidad 1…

Repasemos las carácterísticas del Mientras:
• Se evalúa primero la condición y luego se ejecuta el bloque, si corresponde.
• Cuando la condición es Verdadera se ejecutan las acciones del cuerpo del bucle.
• Cuando la condición es Falsa finaliza el bucle.
• El cuerpo del bucle puede no ejecutarse, en el caso de que la condición inicialmente sea Falsa. Por lo tanto, puede ejecutarse 0, 1 o más veces.

Ahora te pedimos que vuelvas al ejemplo que te planteamos en la Unidad 1, donde nuestro objetivo es ir de viaje por vacaciones.

Pensá qué tareas se podrían realizar repetidamente para lograr el objetivo… Nosotros te damos un ejemplo. Como todo viaje, necesita un presupuesto de dinero, y no podremos viajar hasta no tener el dinero suficiente, podríamos pensar en una estructura Mientras de la siguiente manera: 


Mientras DINERO sea menor que el PRESUPUESTO trabajar para ganar dinero



Esta tarea de trabajar para ganar dinero finalizará cuando tengas el mismo DINERO (o más) que requiere el PRESUPUESTO, es decir, que funciona como un ciclo Mientras de nuestros algoritmos.

Veamos ahora otro ejemplo…

Retomamos el algoritmo de notas y promedios

Volvemos el algoritmo de las notas y de los promedios para continuar el análisis del algoritmo…. 

El programa sirve para determinar si aprobó o desaprobó un solo alumno. Seguramente estarás pensando que sería más interesante poder realizarlo para todo un curso. Para poder realizar ese cambio, necesitaremos de una estructura Mientras para poder iterar el proceso para cada alumno que ingrese el usuario. De este modo, agreguemos la posibilidad de que el usuario ingrese, además de las notas, el nombre del alumno, y que para finalizar ingrese un asterisco (*) como nombre.

El algoritmo nos quedaría de la siguiente forma:

 

Como habrás notado, encerramos todo el proceso que se realizó para 1 alumno, dentro de un ciclo Mientras, para poder hacerlo muchas veces. Pero…

¿Cómo controla la iteración del bucle?

   VR VIDEO: Para finalizar, te proponemos que veas el siguiente video para comprender mejor el funcionamiento de una estructura Iterativa Mientras. 

2. Ciclo Repetir

Veamos ahora qué sucede con este otro ciclo Repetir y para eso te proponemos reflexionar sobre el siguiente caso:

SEUDOCÓDIGO
INICIO
   Repetir
        Mostrar (“Ingrese un número mayor a 0”)
        Ingresar (NUM)
   Hasta que (NUM > 0)
   Mostrar (“Ingresó el número:”,NUM)
FIN

Es muy similar al caso anterior, pero cuidado, porque los pequeños cambios son realmente muy significativos y originan la diferencia de comportamiento entre el “Mientras” y el “Repetir”.

Lo primero que encontramos es la acción Repetir, lo que produce que “entre” al bucle y se ejecuten las acciones que se encuentran hasta el momento de encontrar la frase “Hasta que”. Luego se encuentra una condición que habrá que evaluar. 

En el caso de que la condición sea FALSA, se realiza una nueva iteración del ciclo, es decir, que vuelve a repetir las acciones que se encuentran entre las palabras “Repetir” y “Hasta Que”. Si en cambio, la condición es VERDADERA, se da por finalizado el ciclo y continúa con la próxima acción.

La estructura genérica de un Repetir es la siguiente:

SEUDOCÓDIGO
Repetir
      Instrucción1
      ..........       Condición FALSA
      InstrucciónN
Hasta que (CONDICIÓN)

Antes de continuar, repasemos las carácterísticas del Repetir:

• Se evalúa la condición luego de ejecutar el bloque.
• Cuando la condición es Falsa se ejecutan las acciones del cuerpo del bucle.
• Cuando la condición es Verdadera finaliza el bucle.
• El cuerpo del bucle se ejecuta al menos una sola vez, ya que, si bien inicialmente la condición puede ser Verdadera, se evalúa después de ejecutarse el bloque.

¿Resolvemos el algoritmo de notas y promedios con un Repetir?

Como habrás notado en estos ciclos, tanto en el Mientras como en el Repetir, no sabemos previamente la cantidad de veces que se ejecutará. 

Esta misma carácterística trae como consecuencia que si cometemos algún error en la programación, podremos hacer que un ciclo sea infinito, es decir, que no finalice ya que estará iterando siempre en el mismo ciclo. Para eso alcanzará con quitar la instrucción ingresar (NUM) del cuerpo del ciclo. 

Este cambio provocará que el usuario no pueda volver a ingresar un número, por lo tanto, la variable nunca cambiará de valor, provocando que el ciclo se ejecute eternamente. 

Esta condición es lo que se conoce como loop o ciclo infinito y es considerado como un error grave de programación, ya que el control del programa quedará repitiendo el ciclo y nunca podrá salir. De esta manera el programa nunca finalizará ni producirá el resultado esperado.


Dento de las tareas de pruebas que se realizan en el algoritmo se debe asegurar que todos los ciclos lleguen a un fin en algún momento.



Resumiendo..


Tanto en un Mientras como en un Repetir, hay que garantizar que alguna de las instrucciones del cuerpo del ciclo cambie el valor de verdad de la condición. De lo contrario el bucle no finalizará, provocando lo que se conoce como loop o ciclo infinito.


Ahora te proponemos repasar el ejemplo de los promedios de un curso, y realizarlo con un Repetir. Seguramente no tendrás dificultades para realizarlo. 

Aquí te brindamos nuestra solución…  
 

Seguramente habrás notado que la principal diferencia con el Mientras, es que el Repetir se ejecuta por lo menos una vez.
Es por eso que siempre debemos ingresar un alumno, y luego habrá que indicar si tenemos o no más datos. A este funcionamiento se llega debido a  que la condición se evalúa luego de haber ejecutado el cuerpo del ciclo.


VER VIDEO: Para finalizar, te proponemos que veas el siguiente video para comprender mejor el funcionamiento de una estructura Iterativa Repetir.

3. Ciclo Para

Veamos ahora otro ciclo, pero con carácterísticas distintas a los ciclos que te presentamos anteriormente.


Antes de continuar con la explicación, te proponemos que analices este ejemplo para que puedas deducir qué es lo que hace.


SEUDOCÓDIGO
VARIABLES
    N : ENTERO
INICIO
    Para N <- 1="" hasta="" 10="">->
        Mostrar (N)
    FinPara
FIN
¿Qué tal resultó el análisis?  

Seguramente estarás pensando que se muestran los números del 1 al 10. Si es así, ¡felicitaciones! Porque este ciclo realiza precisamente eso.


Analicémoslo en profundidad para poder comprenderlo, ya que este ciclo es completamente distinto al “Mientras” y al “Repetir”.

En el ciclo Para se utiliza lo que se llama la variable del índice.
Esta variable tiene que estar definida como una variable de tipo Entero. En nuestro ejemplo, la variable de control es N. La variable de control se inicializa con el número 1 e irá tomando todos los valores enteros hasta llegar al número 10 ¿Cómo se realiza esta asignación? 

Luego de inicializarse en 1 (su valor inicial), se ejecuta el cuerpo del ciclo, en este caso una sola acción que muestra el valor de N. 
Luego de ejecutar el cuerpo del ciclo, se incrementa en uno el valor de N, es decir, que internamente se realiza una asignación N <- n=»» +=»»>->

El ciclo “Para” evalúa el valor de N y como todavía no llego a 10 (el valor final) vuelve a ejecutar el cuerpo del ciclo. Y así sucesivamente hasta que N alcanza su valor final.
Es importante destacar que el incremento de la variable del índice no se debe realizar en el algoritmo, ya que forma parte del funcionamiento de la estructura del “Para”.
Esta es una diferencia con respecto a los otros dos ciclos en donde debemos asegurarnos que la condición se modifique para poder finalizar. 
También es importante que comprendas que los valores iniciales y finales son también válidos, es decir que la primera iteración se ejecutará con N = 1, y la última iteración se ejecutará con N = 10.

¿Resolvemos el algoritmo de notas y promedios con un Para?

Otra carácterística de este ciclo Para es que nosotros sabemos cuántas veces se va a ejecutar el ciclo, ya que debemos especificar el valor inicial y final que tendrá la variable del ciclo. 

En el ejemplo que vimos en la sección anterior, 

¿Cuántas veces se ejecuta el Para?

Se ejecuta diez veces, ya que N toma los valores desde 1 hasta 10



La estructura genérica de un Para es la siguiente:

SEUDOCÓDIGO
Para N <- valorinicial="" hasta="" valorfinal="">->
     Instrucción1
     .........
     InstrucciónN
FinPara
Destacamos algunas carácterísticas del Para:
 

• La variable del índice del Para debe ser una Variable de tipo Entero.
ValorInicial y ValorFinal deben ser variables o expresiones de tipo entero.
• ValorInicial debe ser menor o igual a ValorFinal para que el ciclo se ejecute, de lo contrario no se ejecutará.
• La cantidad de veces que se ejecuta un ciclo “Para” es  ValorFinal – ValorInicial +1.
• Dentro del cuerpo del ciclo es un error grave modificar el valor del índice o bien del ValorInicial o del ValorFinal.

Ahora, hagamos una modificación al algoritmo ya conocido de las notas. El cambio será que, al comenzar el programa, le preguntaremos al usuario cuántos alumnos quiere ingresar. Y de ese modo realizaremos el ciclo la cantidad de veces que nos diga el usuario, ¿te animás a proponer el algoritmo?

Aquí te brindamos nuestra propuesta….


VER VIDEO: Para finalizar, te proponemos que veas el siguiente video para comprender mejor el funcionamiento de una estructura Iterativa Para.

Estructuras de control selectiva

Ahora te presentaremos la última estructura de control de esta unidad, con la que podrás evaluar el valor de una variable y seleccionar distintos caminos de ejecución. Esta acción forma parte de una estructura condicional también llamada “múltiple”, pero la vemos en una sección aparte porque presenta muchas carácterísticas especiales.


Estructura Según

Te presentamos un ejemplo para que lo analices y puedas determinar qué es lo que hace:


SEUDOCÓDIGO
VARIABLES
       Opción : ENTERO
INICIO
   Mostrar (“Ingrese su opción”)
   Ingresar (Opción)
   Según (Opción) Hacer
       Caso 1: Mostrar (“Selecciónó opción 1”)
       Caso 2: Mostrar (“Selecciónó opción 2”)
       Caso 3: Mostrar (“Selecciónó opción 3”)
   FinSegún
FIN

En este ejemplo habrás notado que el dato de entrada es uno solo (en este caso se llama opción pero podemos asignarle el nombre de variable que queramos), y podrá tener múltiples valores o alternativas a seguir. De esta forma, se evalúa el valor ingresado y dependiendo de ese valor será el conjunto de instrucciones que se van a ejecutar.


En el algoritmo que te presentamos, Opción deberá ser una variable de tipo ENTERO. Se evalúa el valor de la variable Opción. 

Si el valor es 1 se mostrará “Selecciónó opción 1” y luego el control pasa al “FinSegún”, continuando con la ejecución de la siguiente instrucción. 

En cambio, si el valor de Opción es 2, se mostrará “Selecciónó opción 2”. Y, si en cambio, el valor es 3 se mostrará “Selecciónó opción 3”.

De esta forma podemos, en este ejemplo, tomar tres caminos distintos ante la evaluación de una variable.

La instrucción “Según” se utiliza cuando tenemos que decidir entre más de dos alternativas de acuerdo al valor de una sola variable, de esa manera es mucho más práctica que el uso anidado de sentencias Si – Sino – Finsi.

¿Cómo funciona la estructura «Según»?

Para ayudar a que aclares su funcionamiento te proponemos que pienses, por ejemplo, en el menú de un sistema. El menú se presenta como una lista de opciones y, en general, se suele identificar cada una ellas con un número o una letra. Luego, el usuario debe indicar ese número o letra para informar cuál es la acción a realizar. El sistema tomará el camino del menú de acuerdo a la opción ingresada. 

Veamos la estructura genérica del Según:

SEUDOCÓDIGO
Según (Opción) Hacer
    Caso 1: Instrucción 1
    Caso 2: Instrucción 2
    Caso N: Instrucción N
Sino
       Instrucción P
FinSegún

Habrás notado que dentro del “Según” se encuentra un “Sino”.
Esta sentencia es opcional y se utilizará en el caso de que la variable del “Según” no tenga ninguno de los valores que se encuentran en la lista. 

Veamos otro ejemplo que es de la vida diaria…


Supongamos que nos dicen el número del día de la semana (1 al 7) y tenemos que decir cuál es ese día. Por ejemplo, si es 2, el día será martes (asumimos que la semana comienza el lunes).


Te proponemos que realices el algoritmo y luego revises nuestra versión.


Aquí te presentamos nuestra propuesta…  
SEUDOCÓDIGO
VARIABLES
    DIA : ENTERO
INICIO
   Mostrar (“Ingrese el número del día (1 a 7)”)
   Ingresar (DIA)
   Según (DIA) Hacer
       Caso 1: Mostrar (“Es Lunes”)
       Caso 2: Mostrar (“Es Martes”)
       Caso 3: Mostrar (“Es Miércoles”)
       Caso 4: Mostrar (“Es Jueves”)
       Caso 5: Mostrar (“Es Viernes”)
       Caso 6: Mostrar (“Es Sábado”)
       Caso 7: Mostrar (“Es Domingo”)
   Sino
      Mostrar (“No es un día válido”)
   FinSegún
FIN

   VER VIDEO: Para finalizar, te proponemos que veas el siguiente video para comprender mejor el funcionamiento de una estructura Selectiva Según.

Ejercicio

Te proponemos que realices  el análisis del siguiente problema y luego desarrolles el algoritmo.

Problema

Hacer un algoritmo que lea las ventas efectuadas por una farmacia. Por cada venta se ingresa un código indicador (O, E ó T) y un importe.

• Si el código es O, significa que corresponde a una obra social (se abona sólo en efectivo), le corresponde un 40% de descuento.
• Si el código es E, significa que se abona en efectivo, le corresponde un 10% de descuento.
• Si el código es T, significa que se abona con tarjeta, le corresponde un 15% de recargo.

Al terminar el día se ingresa un movimiento con ‘*’ en el código.

Se pide informar:
a) Total de operaciones y monto del día.

b) Total de operaciones y total de montos en efectivo, discriminando cuáles fueron por obra social y cuáles no.

c) Total de operaciones y montos por tarjeta.

Tener en cuenta


: el total de montos debe ser el efectivamente cobrado luego de efectuar los descuentos o recargos correspondientes.

Antes de pasas a la siguiente página, te recomendamos que hagas tu propio algoritmo. Cuando finalices, podrás comparar tu solución con la que nosotros proponemos.

Solución del Problema

A continuación, te presentamos nuestro algoritmo para que puedas comparar y realizar tus propias conclusiones:


algoritmo6
algoritmo7
algoritmo8

 

 

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.