Anda di halaman 1dari 20

CAPITULO III: Estructuras Lógicas de Decisión

2.1. INTRODUCCIÓN
El presente capitulo, trata sobre las estructuras lógicas de decisión. Es importante
mencionar que utilizando las estructuras lógicas de decisión, se pueden desarrollar
algoritmos de tal forma que estos pueden ser diseñados en pseudocódigo o diagrama de
flujo, para luego ser codificados en un lenguaje de programación como C++, Java o C#...

2.2. ESTRUCTURAS LÓGICAS DE DECISIÓN


Las estructuras lógicas de decisión son construcciones que permiten alterar el flujo
secuencial de una solución de tal forma que en función de una condición o el valor de una
variable, se pueda desviar la secuencia de la solución entre diferentes alternativas.

Mapa de Estructuras Lógicas de Secuencia


Utilizando las estructuras lógicas de decisión se pueden desarrollar algoritmos
medianamente complejos de tal forma que estos puedan ser diseñados en pseudocódigo o
diagrama de flujo, para luego ser codificados en un lenguaje de programación.

ESTRUCTURAS LÓGICAS DE DECISIÓN

Estructura lógica Estructura lógica Estructura lógica de


de decisión simple de decisión doble decisión múltiple

“SI” “SI / NO” “CUANDO” “SI


ANIDADOS”

Mapa de Estructuras Lógicas de Secuencia detallado

ESTRUCTURAS LÓGICAS

INSTRUCCIONES
SECUENCIA DECISIÓN REPETICIÓN
DE BIFURCACIÓN

“LEER” “SI” “DESDE” “TERMINAR”

“ESCRIBIR” “SI / SINO” “MIENTRAS” “CONTINUAR”

“PROCESAR” “CUANDO” “HACER” “RETORNAR”


“SI ANIDADO”

2.3. ESTRUCTURA LÓGICA DE DECISIÓN SIMPLE


Una estructura lógica de decisión simple “SI… FINSI” permite alterar el flujo secuencial (o
pasos secuenciales) de una solución ejecutando un conjunto de pasos adicionales si el
resultado de una condición lógica es verdadero. Este tipo de estructura es útil cuando se
tiene la posibilidad de decidir si se ejecuta una determinada opción o no.

Representación
Formato para diseñar algoritmos:
ALGORITMOS ING. CIP: AMACHE SÁNCHEZ MILTON FREDDY
 En pseudocódigo:
EXPLICACIÓN
Si la condición resulta verdadera, se ejecutan
SI (condición) ENTONCES las instrucciones que se encuentran entre las
… reglas SI… ENTONCES y FINSI
instrucciones
… Si la condición resulta falsa, no se ejecutan las
FINSI instrucciones que se encuentran entre las
reglas SI… ENTONCES y FINSI

 En Diagrama de flujo
Primera forma

VERDADERO
condición


FALSO instrucciones

Segunda forma

FALSO
condición

VERDADERO

instrucciones

Tercera forma

VERDADERO
condición instrucciones

FALSO

EXPLICACION
Si la condición resulta verdadera, se ejecutan las instrucciones que se encuentran
en el flujo etiquetado con la regla “VERDADERO”.
Si la condición resulta falsa, se sigue el flujo etiquetado con la regla o pauta “FALSO”
y no se ejecutan las instrucciones que se encuentran en el flujo etiquetado con la
regla “VERDADERO”.
ALGORITMOS ING. CIP: AMACHE SÁNCHEZ MILTON FREDDY
Las figuras anteriores representan una estructura de decisión simple en diagrama
de flujo, donde el rombo indica el inicio de la estructura y el círculo el final. El rombo
permite evaluar una condición lógica, si el resultado de dicha evaluación es
verdadero se ejecuta una o varias instrucciones.
Existe también la posibilidad de obviar el círculo de cierre de la estructura de
decisión simple, tal y como se muestra en las siguientes figuras.

Primera forma

VERDADERO
condición


FALSO instrucciones

Segunda forma

FALSO
condición

VERDADERO

instrucciones

Tercera forma

VERDADERO
condición instrucciones

FALSO

Recuerde que los diagramas de flujo deben elaborarse de izquierda a derecha y de


arriba hacia abajo preferentemente.

 En C++, Java y C#
EXPLICACIÓN
Si la condición resulta verdadera, se ejecutan
if (condición) {
las sentencias que se encuentra entre las llaves

{ }.
sentencias

Si la condición resulta falsa, no se ejecutan las
}
sentencias que se encuentra entre las llaves { }.

ALGORITMOS ING. CIP: AMACHE SÁNCHEZ MILTON FREDDY


EJEMPLO PRÁCTICO
Problema 04:
Etapa 001: Descripción del problema
Ingresar el lado de un cuadrado. Calcular y mostrar su área del cuadrado. Si el cuadrado
resulta menor que 50, se deberá visualizar el mensaje “El cuadrado es pequeño”.

Etapa 002: Descripción del problema


o Resultado deseado: Mostrar el área de un cuadrado y el mensaje.
o Datos necesarios: Lado del cuadrado.
o Procesamiento: El lado del cuadrado será almacenado en una variable (lado), luego
se realizara el cálculo del área utilizando la siguiente formula. area = lado * lado
El resultado será almacenado en una variable (area). Si el área resulta menor que
50 entonces se muestra el mensaje “El cuadrado es pequeño” asignado en una
variable (mensaje).

Etapa 003: Diseño de la lógica


1. Nombre del proyecto: ProyAreaCuadrado
2. Diseño del algoritmo
En Pseudocódigo
Algoritmo ProyAreaCuadrado
ENTRADA : lado
SALIDA : area, mensaje
INICIO :
NUMERO lado, area
TEXTO mensaje = “ ”
LEER lado
area = lado * lado
SI (área < 50) ENTONCES
mensaje = “El cuadrado es pequeño”
FINSI
ESCRIBIR area, mensaje
FIN

En diagrama de flujo
Algoritmo ProyAreaCuadrado – main( )
INICIO

REAL lado, area


TEXTO mensaje =

LEER lado

area = lado * lado

VERDADERO
area < 50

mensaje = El cuadrado es pequeño


FALSO

area , mensaje

FIN

ALGORITMOS ING. CIP: AMACHE SÁNCHEZ MILTON FREDDY


3. Desarrollo de la codificación
En lenguaje de programación C++
Clase ProyAreaCuadrado
#include <iostream>
#include <conio>
int main()
{
int lado, area;
cout<<"INGRESE EL LADO DEL CUADRADO: ";
cin>>lado;
area = lado * lado;
cout<<"El area es: "<<area<<endl;
if (area < 50)
{
cout<<“EL CUADRADO ES PEQUEÑO”;
}
getch();
}

En lenguaje de programación Java


Clase ProyAreaCuadrado
package proyareacuadrado;
import java.util.Scanner;
class ProyAreaCuadrado{
public static void main (String arg[ ]) {
int lado, area;
String mensaje= “ ”;
Scanner entrada = new Scanner (System.in);
System.out.print(“INGRESE EL LADO DEL CUADRADO: ”);
lado = entrada.nextInt();
area = lado * lado;
if (area < 50)
{ mensaje= “El cuadrado es pequeño”;
}
System.out.print(“El área es: ” + area + “ ” + mensaje)
}
}

En lenguaje de programación C#
Clase ProyAreaCuadrado
Using System;
namespace ProyAreaCuadrado
{
class Program
{
static void Main(string[] args)
{
int lado, area;
String mensaje="";
System.Console.Write("INGRESE LADO DE CUADRADO: ");
lado = Convert.ToInt32(System.Console.ReadLine());
area = lado * lado;
if (area < 50)
{
mensaje= "El cuadrado es pequeño";
}
System.Console.WriteLine("El area es: "+area+" "+mensaje);
System.Console.ReadKey();
}
}
}

ALGORITMOS ING. CIP: AMACHE SÁNCHEZ MILTON FREDDY


2.4. ESTRUCTURA LÓGICA DE DECISIÓN DOBLE
Una estructura de decisión doble “SI… SINO… FINSI” permite alterar el flujo secuencial (o
pasos secuenciales) de una solución, ejecutando un conjunto de pasos dependiendo del
resultado de una condición lógica. Si la condición resulta verdadera, se ejecuta un conjunto
de pasos, y si la condición resulta falsa, se ejecuta otro conjunto de pasos. En ningún caso
se podrá ejecutar ambos conjuntos de pasos a la vez.
Este tipo de estructura es útil cuando se tiene la necesidad de escoger entre dos posibles
opciones.

Representación
Formato para diseñar algoritmos:

 En pseudocódigo:
EXPLICACIÓN
Si la condición resulta verdadera, se ejecutan
SI (condición) ENTONCES
las instrucciones que se encuentran entre las

reglas SI… ENTONCES y SINO
instrucciones
Si la condición resulta falsa, se ejecutan las

instrucciones que se encuentran entre las
SINO
reglas SINO y FINSI

Solo se ejecuta uno de los grupos de
instrucciones
instrucciones, en ningún caso se podrá ejecutar

ambos grupos en una misma ejecución o
FINSI
corrida de programa.

 En Diagrama de flujo
Primera forma

FALSO VERDADERO
Condición

Instrucciones Instrucciones
... ...

Segunda forma

VERDADERO
Condición Instrucciones
...
FALSO

Instrucciones
...

ALGORITMOS ING. CIP: AMACHE SÁNCHEZ MILTON FREDDY


Tercera forma

VERDADERO
Condición

FALSO

Instrucciones Instrucciones
... ...

EXPLICACIÓN
Si la condición resulta verdadera, se ejecutan las instrucciones que se encuentran
en el flujo etiquetado con la regla “VERDADERO”.
Si la condición resulta falsa, se ejecutan las instrucciones que se encuentran en el
flujo etiquetado con la regla “FALSO”.

También se puede elaborar los diagramas de flujo mostrados sin utilizar el círculo
de cierre de la estructura de decisión doble, tal como se muestra a continuación.
Primera forma

FALSO VERDADERO
Condición

Instrucciones Instrucciones
... ...

Segunda forma

VERDADERO
Condición Instrucciones
...
FALSO

Instrucciones
...

Tercera forma

VERDADERO
Condición

FALSO

Instrucciones
Instrucciones ...
...

ALGORITMOS ING. CIP: AMACHE SÁNCHEZ MILTON FREDDY


 En C++, Java y C#
EXPLICACIÓN
if (condición) {
… Si la condición resulta verdadera, se ejecutan
sentencias las sentencias que se encuentra entre las llaves
… { } ubicadas después de la palabra reservada if.
} else {
… Si la condición resulta falsa, no se ejecutan las
sentencias sentencias que se encuentra entre las llaves { }
… ubicadas después de la palabra reservada else.
}

EJEMPLO PRÁCTICO
Problema 05:
Etapa 001: Descripción del problema
Calcular y mostrar la nota final de un alumno en base a 3 notas ingresadas. Si la
nota final es menor o igual a 10 se deberá mostrar el mensaje “Desaprobado”,
caso contrario se mostrara el mensaje “Aprobado”.

Etapa 002: Descripción del problema


o Resultado deseado: Mostrar nota final y mensaje.
o Datos necesarios: las 3 notas del alumno.
o Procesamiento: Las notas serán ingresadas y almacenadas en variables (n1,
n2 y n3), luego se realiza el cálculo de la nota final: nf = (n1+n2+n3)/3 el
cual se almacenara en la variable nf. Si la nota final resulta menor o igual
que 10 entonces se mostrara una variable (mensaje) el mensaje
“Desaprobado”, caso contrario se mostrara el mensaje “Aprobado”.
Finalmente se mostrara la nota y el mensaje.

Etapa 003: Diseño de la lógica


1. Nombre del proyecto: ProyNotaFinal
2. Diseño del algoritmo
En Pseudocódigo
Algoritmo ProyNotaFinal
ENTRADA : n1, n2, n3
SALIDA : nf, mensaje
INICIO
REAL n1, n2, n3
TEXTO mensaje
LEER n1, n2, n3
nf = (n1+n2+n3)/3
SI (nf <= 10) ENTONCES
mensaje = “DESAPROBADO”
SINO
mensaje = “APROBADO”
FINSI
ESCRIBIR nf, mensaje
FIN

ALGORITMOS ING. CIP: AMACHE SÁNCHEZ MILTON FREDDY


En diagrama de flujo
Algoritmo ProyNotaFinal – main( )
INICIO

NUMERO n1, n2, n3, nf


TEXTO mensaje

LEER n1, n2, n3

FALSO VERDADERO
nf <= 10

mensaje = APROBADO mensaje = DESAPROBADO

nf, mensaje

FIN

3. Desarrollo de la codificación
En lenguaje de programación C++
Clase ProyNotaFinal
#include <iostream>
#include <conio>
int main() {
double n1, n2, n3;
int nf;
cout<<"Ingrese primera nota: ";
cin>>n1;
cout<<"Ingrese segunda nota: ";
cin>>n2;
cout<<"Ingrese tercera nota: ";
cin>>n3;
nf = (n1+n2+n3)/3;
if (nf <= 10) {
cout<<"LA NOTA ES: "<<nf<<" DESAPROBADO";
} else {
cout<<"LA NOTA ES: "<<nf<<" APROBADO";
}
getch();
}

En lenguaje de programación Java


Clase ProyNotaFinal
package proynotafinal;
import java.util.Scanner;
class ProyNotaFinal{
public static void main (String arg[ ]) {
double n1, n2, n3, nf;
String mensaje;
Scanner entrada = new Scanner (System.in);
System.out.print(“Ingrese primera nota: ”);
n1 = entrada.nextDouble();
System.out.print(“Ingrese segunda nota: ”);
n2 = entrada.nextDouble();
System.out.print(“Ingrese tercera nota: ”);

ALGORITMOS ING. CIP: AMACHE SÁNCHEZ MILTON FREDDY


n3 = entrada.nextDouble();
nf = (n1+n2+n3)/3;
if (nf <= 10) {
mensaje = “DESAPROBADO”;
} else {
mensaje = “APROBADO”;
}
System.out.print(“La nota final es: ” + nf);
System.out.print(mensaje);
}
}

En lenguaje de programación C#
Clase ProyNotaFinal
Using System;
namespace ProyectoNotaFinal
{
class Program
{
static void Main(string[] args)
{
double n1, n2, n3, nf;
String mensaje;
System.Console.Write("Ingrese primera nota: ");
n1 = double.Parse(System.Console.ReadLine());
System.Console.Write("Ingrese segunda nota: ");
n2 = double.Parse(System.Console.ReadLine());
System.Console.Write("Ingrese tercera nota: ");
n3 = double.Parse(System.Console.ReadLine());
nf = (n1+n2+n3)/3;
if (nf <= 10) {
mensaje = "DESAPROBADO";
} else {
mensaje = "APROBADO";
}
System.Console.WriteLine("La nota final es: "+nf);
System.Console.WriteLine(mensaje);
System.Console.ReadKey();
}
}
}

2.5. ESTRUCTURA LÓGICA DE DECISIÓN MULTIPLE: CUANDO


Una estructura de decisión múltiple “CUANDO… FINCUANDO” permite alterar el flujo
secuencial de una solución ejecutando un conjunto de pasos dependiendo del valor de una
variable. Generalmente, para cada posible valor que pueda tener la variable se define un
conjunto de pasos a ejecutar. También se define un conjunto de pasos a ejecutar en caso
que uno de los valores de la variable no tenga asociado un conjunto de pasos a ejecutar. La
variable a utilizar podrá ser de tipo CARACTER o ENTERO.
Este tipo de estructura es útil cuando se tiene la necesidad de escoger entre más de dos
opciones y se presentan múltiples opciones a las cuales se le puede asociar valores de tipo
CARACTER o ENTERO.

Representación
Formato para diseñar algoritmos:

ALGORITMOS ING. CIP: AMACHE SÁNCHEZ MILTON FREDDY


 En pseudocódigo:
EXPLICACIÓN
CUANDO (variable) SEA
CASO valor 1:
Instrucciones… Si el valor de la variable es igual a uno de los
TERMINAR… valores colocados después de una de las reglas
CASO valor 2: CASO, se ejecutan las instrucciones que están
Instrucciones… dentro del mismo.
TERMINAR… Si el valor de la variable no es igual a ninguno
CASO valor n: de los valores colocados después de una de las
Instrucciones… reglas CASO, se ejecutan las instrucciones que
TERMINAR… están dentro de la regla OTROS. La regla OTROS
OTROS: es opcional (es decir, puede aparecer como no).
Instrucciones…
FINCUANDO

 En diagrama de flujo:
Primera forma

valor variable

valor 1 valor 2 valor n OTROS

instrucciones instrucciones instrucciones instrucciones

Segunda forma

valor
variable

valor 1 valor 2 valor n OTROS

instrucciones instrucciones instrucciones instrucciones

Tercera forma

VERDADERO
valor == 1 Instrucciones
...
FALSO

VERDADERO
valor == 2 Instrucciones
...
FALSO

VERDADERO
valor == 3 Instrucciones
...
FALSO

Instrucciones
...

ALGORITMOS ING. CIP: AMACHE SÁNCHEZ MILTON FREDDY


EXPLICACIÓN
Si el valor de la variable es igual a uno de los valores que tiene como etiqueta el
flujo, se ejecutan las instrucciones que están seguidas del flujo (las que indica la
flecha).
Si el valor de la variable no es igual a uno de los valores de las etiquetas de los flujos,
se ejecuta el flujo que tiene como regla OTROS. El flujo con la regla OTROS es
opcional.

 En C++, Java y C#
EXPLICACIÓN
switch (variable) { Si el valor de la variable es igual a uno de los
case valor 1: valores colocados después de la palabra
sentencias… reservada case (valor 1, valor 2, etc), se
break… ejecutan las sentencias que están dentro del
case valor 2: mismo hasta llegar al final (es decir, hasta la
sentencias… llave) a no ser que se encuentre una palabra
break… reservada break entre las sentencias que se
case valor n: ejecutan.
sentencias… Si el valor de la variable no es igual a ninguno
break… de los valores colocados después de una de las
default: palabras reservadas case, se ejecutan las
sentencias… sentencias que están dentro de la palabra
} reservada default.

EJEMPLO PRÁCTICO
Problema 06:
Etapa 001: Descripción del problema
Ingresar un número del 1 al 7 y mostrar el día de la semana que le corresponde.
Asumir que el lunes es equivalente al día 1 y el domingo al día 7.
Etapa 002: Descripción del problema
o Resultado deseado: Mostrar el día equivalente.
o Datos necesarios: Un número.
o Procesamiento: Se ingresara un número por el teclado y se almacenara en
una variable (numero). Luego se almacenara el día equivalente en una
variable (dia), sabiendo que el número 1 equivale al día lunes, el 2 equivale
al día martes y así sucesivamente hasta el 7 que equivale al día domingo.
Finalmente, se mostrara el contenido de la variable día.
Etapa 003: Diseño de la lógica
1. Nombre del proyecto: ProyectoDia
2. Diseño del algoritmo
En Pseudocódigo
Algoritmo ProyectoDia
ENTRADA : numero
SALIDA : dia
INICIO
ENTERO numero
TEXTO dia
LEER numero
CUANDO (numero) SEA
CASO 1:
dia = “Lunes”
TERMINAR
CASO 2:
dia = “Martes”
TERMINAR
ALGORITMOS ING. CIP: AMACHE SÁNCHEZ MILTON FREDDY
CASO 3:
dia = “Miercoles”
TERMINAR
CASO 4:
dia = “Jueves”
TERMINAR
CASO 5:
dia = “Viernes”
TERMINAR
CASO 6:
dia = “Sábado”
TERMINAR
CASO 7:
dia = “Domingo”
TERMINAR
OTROS
ESCRIBIR “Día no valido”
FINCUANDO
ESCRIBIR dia
FIN

En diagrama de flujo
Algoritmo ProyectoDia – main( )
INICIO

NUMERO numero
TEXTO dia =

LEER numero

numero

dia = LUNES dia = MARTES dia = MIERCOLES dia = JUEVES dia = VIERNES dia = SABADO dia = DOMINGO dia = Dia no valido

dia

FIN

3. Desarrollo de la codificación
En lenguaje de programación C++
Clase ProyectoDia
#include <iostream>
#include <conio>
int main() {
int numero;
cout<<"Ingrese un numero: ";
cin>>numero;
switch (numero) {
case 1:
cout<<"El dia ingresado es: ";
cout<< "LUNES";
break;
case 2:
cout<<"El dia ingresado es: ";
cout<< "MARTES";
break;
case 3:
cout<<"El dia ingresado es: ";
cout<< "MIERCOLES";
break;
case 4:
ALGORITMOS ING. CIP: AMACHE SÁNCHEZ MILTON FREDDY
cout<<"El dia ingresado es: ";
cout<< "JUEVES";
break;
case 5:
cout<<"El dia ingresado es: ";
cout<< "VIERNES";
break;
case 6:
cout<<"El dia ingresado es: ";
cout<< "SABADO";
break;
case 7:
cout<<"El dia ingresado es: ";
cout<< "DOMINGO";
break;
default:
cout<< "Dia no valido";
}
getch();
}

En lenguaje de programación Java


Clase ProyectoDia
package proyectodia;
import java.util.Scanner;
class ProyectoDia{
public static void main (String arg[ ]) {
int numero;
String dia;
Scanner entrada = new Scanner (System.in);
System.out.print(“Ingrese un numero: ”);
numero = entrada.nextInt();
switch (numero) {
case 1:
dia = “LUNES”;
break;
case 2:
dia = “MARTES”;
break;
case 3:
dia = “MIERCOLES”;
break;
case 4:
dia = “JUEVES”;
break;
case 5:
dia = “VIERNES”;
break;
case 6:
dia = “SABADO”;
break;
case 7:
dia = “DOMINGO”;
break;
default:
dia = “Dia no valido”;
}
System.out.print(“El dia ingresado es: ” + dia);
}
}

ALGORITMOS ING. CIP: AMACHE SÁNCHEZ MILTON FREDDY


En lenguaje de programación C#
Clase ProyectoDia
Using System;
namespace ProyectoDia
{
class Program
{
static void Main(string[] args)
{
int numero;
String dia = “ ”;
System.Console.Write("Ingrese un numero: ");
numero = int.Parse(System.Console.ReadLine());
switch (numero) {
case 1:
dia = “LUNES”;
break;
case 2:
dia = “MARTES”;
break;
case 3:
dia = “MIERCOLES”;
break;
case 4:
dia = “JUEVES”;
break;
case 5:
dia = “VIERNES”;
break;
case 6:
dia = “SABADO”;
break;
case 7:
dia = “DOMINGO”;
break;
default:
dia = “Dia no valido”;
}
System.Console.WriteLine("El dia ingresado es: ",dia);
System.Console.ReadKey();
}
}
}

2.6. ESTRUCTURA LÓGICA DE DECISIÓN MULTIPLE: SI ANIDADOS


Una estructura de decisión múltiple “SI ANIDADOS” permite alterar el flujo secuencial de
una solución ejecutando un conjunto de pasos dependiendo del resultado de varias
condiciones lógicas. Generalmente, cuando se tiene un problema con múltiples condiciones
lógicas la mejor opción será emplear SI ANIDADOS para la solución. Esto fundamentalmente
porque la estructura lógica de decisión múltiple CUANDO no trabaja con condiciones lógicas
sino solo con el valor de una variable que puede ser de tipo CARÁCTER o ENTERO.
Este tipo de estructura es útil cuando se tiene la necesidad de escoger entre más de dos
opciones y se presentan múltiples condiciones lógicas.

Representación
Formato para diseñar algoritmos:

ALGORITMOS ING. CIP: AMACHE SÁNCHEZ MILTON FREDDY


 En pseudocódigo:
EXPLICACIÓN
SI (condición) ENTONCES
… Si la condición resulta verdadera, se ejecutan
instrucciones las instrucciones que se encuentran entre las
… reglas SI... ENTONCES y SINO.
SINO Si la condición resulta falsa se ejecutan las
SI (condición) ENTONCES instrucciones que se encuentran entre las
… reglas SINO y FINSI.
instrucciones Solo se ejecuta uno de los grupos de
… instrucciones, en ninguna caso se podrá
FINSI ejecutar ambos grupos.
FINSI

 En diagrama de flujo:
Primera forma

FALSO VERDADERO
condición 1

Instrucciones
VERDADERO ...
condición 2

Instrucciones
FALSO
...

Segunda forma

FALSO VERDADERO
condición 1

FALSO VERDADERO
condición 2 Instrucciones
...
Instrucciones Instrucciones
... ...

Tercera forma

FALSO VERDADERO
condición 1

VERDADERO
FALSO condición 2

Instrucciones
... Instrucciones Instrucciones
... ...

ALGORITMOS ING. CIP: AMACHE SÁNCHEZ MILTON FREDDY


Cuarta forma

VERDADERO
condición 1

FALSO
VERDADERO
condición 2

Instrucciones
... Instrucciones
FALSO
...

Quinta forma

FALSO VERDADERO
condición 1

FALSO VERDADERO FALSO VERDADERO


condición 2 condición 3

Instrucciones Instrucciones Instrucciones Instrucciones


... ... ... ...

Existe la posibilidad de reducir el tamaño del diagrama de flujo cuando se tienen


múltiples condiciones y cada condición en su flujo “VERDADERO” ejecuta una o dos
instrucciones. Esto se puede apreciar a continuación.
Sexta forma

VERDADERO
condición 1 Instrucciones
...
FALSO

VERDADERO
condición 2 Instrucciones
...
FALSO

VERDADERO
condición 3 Instrucciones
...
FALSO

Instrucciones
...

 En C++, Java y C#
EXPLICACIÓN
if (condición) { Si la condición resulta verdadera, se ejecutan
… las sentencias que se encuentra entre las llaves
sentencias { } ubicadas después de la palabra reservada if.

ALGORITMOS ING. CIP: AMACHE SÁNCHEZ MILTON FREDDY
} else { Si la condición resulta falsa, se ejecutan las
if (condición) { sentencias que se encuentra entre las llaves { }
… ubicadas después de la palabra reservada else,
sentencias ingresando nuevamente la condición if
… ejecutándose las sentencias que se encuentran
} else { entre llaves { } y si la condición resulta falsa, se
… ejecutan las sentencias que se encuentra entre
sentencias
las llaves { } ubicadas después de la palabra

reservada else.
}
}

EJEMPLO PRÁCTICO
Problema 07:
Etapa 001: Descripción del problema
Calcular el área de un rectángulo conociendo su base y altura Si el área es menor
que 100 se deberá visualizar el mensaje “RECTANGULO PEQUEÑO”; si el área es
mayor o igual a 100 y menor que 1000, se visualizara el mensaje “RECTANGULO
MEDIANO”, y si el área es mayor o igual que 1000, el mensaje será
“RECTANGULO GRANDE”.
Etapa 002: Descripción del problema
o Resultado deseado: Mostrar el área de un rectángulo y un mensaje referido
al tamaño de este.
o Datos necesarios: La base y altura de un rectángulo.
o Procesamiento: La base y altura de un rectángulo se almacenaran en
variables (base y altura). Se calcula el área del rectángulo (base y altura) y
se almacena en una variable (área). Si el área resulta menor que 100, se
almacenara en una variable (mensaje) el texto “RECTANGULO PEQUEÑO”.
Si el área resulta mayor o igual que 100 y menor que 1000, se almacenara
el texto “RECTANGULO MEDIAÑO”. Si el área resulta mayor o igual que
1000, se almacenara el texto “RECTANGULO GRANDE”. Finalmente, se
mostrara el área (área) y el texto respectivo (mensaje) en pantalla.
Etapa 003: Diseño de la lógica
4. Nombre del proyecto: ProyectoDia
5. Diseño del algoritmo
En Pseudocódigo
Algoritmo ProyAreaRectangulo
ENTRADA : base, altura
SALIDA : area, mensaje
INICIO
REAL base, altura, area
TEXTO mensaje
LEER base, altura
area = base * altura
SI (area < 100) ENTONCES
mensaje = “RECTANGULO PEQUEÑO”
SINO
SI (area >= 1000) ENTONCES
mensaje = “RECTANGULO MEDIANO”
SINO
mensaje = “RECTANGULO GRANDE”
FINSI
FINSI
ESCRIBIR area, mensaje
FIN

ALGORITMOS ING. CIP: AMACHE SÁNCHEZ MILTON FREDDY


En diagrama de flujo
Algoritmo ProyAreaRectangulo – main( )
INICIO

REAL base, altura, area


TEXTO mensaje

LEER base, altura

area = base * altura

FALSO VERDADERO
area < 100

FALSO VERDADERO
area >=1000
mensaje = RECTANGULO
mensaje = RECTANGULO mensaje = RECTANGULO PEQUEÑO
MEDIANO GRANDE

ESCRIBIR El rectangulo es:


, mensaje

FIN

6. Desarrollo de la codificación
En lenguaje de programación C++
Clase ProyAreaRectangulo
#include <iostream>
#include <conio>
int main() {
double base, altura, area;
cout<<"Ingrese base : ";
cin>>base;
cout<<"Ingrese altura : ";
cin>>altura;
area = base * altura;
if (area < 100) {
cout<<“RECTANGULO PEQUEÑO”;
} else {
If (area >= 1000){
cout<<“RECTANGULO GRANDE”;
} else {
cout<<“RECTANGULO MEDIANO”;
}
}
getch();
}

En lenguaje de programación Java


Clase ProyAreaRectangulo
package proyectoarearectangulo;
import java.util.Scanner;
class ProyectoAreaRectangulo{
public static void main (String arg[ ]) {
double base, altura, area;
String mensaje;
Scanner entrada = new Scanner (System.in);
System.out.print("Ingrese base: ");
base = entrada.nextDouble();
System.out.print("Ingrese altura: ");
ALGORITMOS ING. CIP: AMACHE SÁNCHEZ MILTON FREDDY
altura = entrada.nextDouble();
area = base * altura;
if (area < 100) {
mensaje = "RECTANGULO PEQUEÑO";
} else {
if (area >= 1000){
mensaje = "RECTANGULO GRANDE";
} else {
mensaje = "RECTANGULO MEDIANO";
}
}
System.out.print("El rectangulo es: " + mensaje);
}
}

En lenguaje de programación C#
Clase ProyAreaRectangulo
Using System;
namespace ProyAreaRectangulo
{
class Program
{
static void Main(string[] args)
{
double bas, altura, area;
String mensaje;
System.Console.Write("Ingrese base: ");
base = double.Parse(System.Console.ReadLine());
System.Console.Write("Ingrese altura: ");
altura = double.Parse(System.Console.ReadLine());
area = base * altura;
if (area < 100) {
mensaje = "RECTANGULO PEQUEÑO";
} else {
if (area >= 1000){
mensaje = "RECTANGULO GRANDE";
} else {
mensaje = "RECTANGULO MEDIANO";
}
}
System.Console.WriteLine("El rectangulo es: " + mensaje);
System.Console.ReadKey();
}
}
}

ALGORITMOS ING. CIP: AMACHE SÁNCHEZ MILTON FREDDY

Anda mungkin juga menyukai