Está en la página 1de 14

Algoritmanía – Que fácil y divertido es construir algoritmos. [if then] – Cáp.

02 -15-

CAPITULO 02: Estructura condicional (if


then)
2.1 Estructura condicional [simple]
La condicional simple, se da cuando dentro de la estructura del algoritmo, existe un único
bloque condicional que dará como resultado verdadero o falso.

Importante: A partir de aquí todos los ejercicios planteados, se supondrá que los datos
ingresados por el usuario son válidos y correctos, a menos que al final del problema se
indique [Validar entradas], entonces se tendrá que restringir los datos de entrada.

Forma general [if simple] Descripción


Inicio  El comienzo del programa.

Leer: var  Capturamos cualquier dato


Inicio que ingresa el usuario, asignándole este
valor en este caso a la variable ‘var’.

leer: var Condición  Los datos de entrada (en


este caso: var) se comparan con algunos
valores que el usuario ha definido.
F Proceso a  Conjunto de instrucciones
que el programa realizará si la condición
Condició resulta ser verdadera.
V n Proceso
b Proceso b  Conjunto de instrucciones
Proceso
que el programa realizará si la condición
a resulta ser falsa.

Fin  El fin del programa.


Fin

2.1.1 Ejercicios desarrollados [if then simple]

01: Ingresar dos números cualquiera y mostrar un mensaje si son iguales.

Inicio Inicio
leer n1, n2;
si(n1=n2) entonces imprimir “Iguales”;
leer: n1, n2 sino imprimir “Diferentes”;
Fin

n1=n2
V “Diferentes”
“Iguales”

Variables que se usa:


n1  número uno.
Fin n2  número dos.
Algoritmanía – Que fácil y divertido es construir algoritmos. [if then] – Cáp. 02 -16-

02: Leer una palabra y verificar si coincide con “Bienvenido”. [Considerar mayùsculas]

Inicio Inicio
leer palabra;
si (palabra=” Bienvenido”) entonces
leer: palabra imprimir “Coincide”;
sino
imprimir “No coincide”;
Fin

Palabra F
=
“Bienvenido”

“No coincide”

“Coincide”

Variables que se usa:


palabra  la palabra.
Fin

03: leer dos números diferentes, y mostrarlos en pantalla en forma ascendente.

Inicio Inicio
leer n1, n2;
si(n1<n2) entonces {imprimir n1, n2;}
leer: n1, n2 sino {imprimir n2, n1;}
Fin

n1<n2
V n2, n1
n1, n2

Variables que se usa:


n1  número uno.
Fin n2  número dos.

Qué significan las llaves {, }:


{  El inicio de un proceso.
}  El final de un proceso.
¿Qué es un proceso?

Rspta: conjunto de una o más acciones que el programa realiza de acuerdo a ciertas condiciones
declaradas en la misma a través de las variables.
Algoritmanía – Que fácil y divertido es construir algoritmos. [if then] – Cáp. 02 -17-

04: Ingresar tres números diferentes entres si, y evaluar si por lo menos uno de ellos es menor o
igual a 20.

Inicio Inicio
leer n1, n2, n3;
si(n1<=20 o n2<=20 o n3<=20) entonces
leer: n1, n2, n3 imprimir “Si”;
sino
imprimir “No”;
Fin

(n1<=20 o F
n2<=20 o
n3<=20)

“No”

V
“Si”
Variables que se usa:
n1  número uno.
n2  número dos.
Fin n3  número tres.

05: Ingresar dos números diferentes entres si, y evaluar si están en el rango de [5-20].

Inicio
Inicio leer n1, n2;
si(n1>=5 y n1<=20 y n2>=5 y n2<=20) entonces
imprimir “Si”;
leer: n1, n2 sino imprimir “No”;
Fin

F Observación:
(5<=n1<=20 (5<=n<=20)  (n>=5 y n<=20)
y Son equivalencias matemáticas
5<=n2<=20) que debemos tener en cuenta al
programar.
“No”

V
“Si”

Variables que se usa:


n1  número uno.
Fin n2  número dos.
Algoritmanía – Que fácil y divertido es construir algoritmos. [if then] – Cáp. 02 -18-

06: Leer dos palabras y verificar si tienen la misma cantidad o número de letras.

Inicio Inicio
leer pal1, pal2;
tam1=tamaño(pal1);
tam1=tamaño(pal1) tam2=tamaño(pal2);
leer: pal1, pal2
tam2=tamaño(pal2) si(tam1=tam2) entonces
imprimir “Si”;
sino
V imprimir “No”;
Fin
tam1=tam
2 F

V “No”
“Si” Variables que se usa:
pal1  primera palabra.
pal2  segunda palabra.
tam1  # caracteres de la primera palabra.
tam2  # caracteres de la segunda palabra.
Fin

07: Ingresar tres palabras diferentes entres si, y evaluar si por lo menos uno de ellos es igual a
“Perú”. [Considerar mayúsculas]

Inicio
Inicio
leer pal1, pal2, pal3;
leer: pal1, pal2, pal3 si (pal1=” Perú” o pal2=” Perú”
o pal3=” Perú”) entonces
imprimir “Si”;
sino
imprimir “No”;
Fin
(pal1=” Perú” o F
pal2=” Perú” o
pal3=”Peru”)

“No”

“Si”
Variables que se usa:
pal1  primera palabra.
pal2  segunda palabra.
Fin pal3  tercera palabra.
.
Note la diferencia:
[1] si(var) entonces accíon1;
[2] si(var) entonces {accíon1; accíon2; }
var es una variable o expresión lógica con un determinado valor.
¿por qué en la condición [1] no se usa llaves?

Rspta: Por que cuando una condición tiene sólo una acción a ejecutar o procesar, no es necesario
usar llaves. A menos que, se encuentre anidado con otros controles y, la condición del programa lo
requiera.
Algoritmanía – Que fácil y divertido es construir algoritmos. [if then] – Cáp. 02 -19-

08: Ingresar dos letras diferentes entres si, y evaluar si uno de ellos coincide con cualquiera de las
letras: “g, e, r”.

Inicio Inicio
leer let1, let2;
si ((let1=” g” o let1=” e” o let1=” r” o let2=”
leer: let1, let2 g”
o let2=” e” o let2=” r”) entonces
imprimir “Coincide”;
sino imprimir “No coincide”;
Fin

(let1=”g” o let1=”e” o F
let1=”r”o let2=”g” o
let2=”e”o let2=”r”)
“No coincide”
V

“Coincide”

Variables que se usa:


let1  primera letra.
Fin let2  segunda letra.
.

09: Ingresar dos palabras diferentes entres si, y evaluar si el número de letras en ambas palabras
están en el rango de 5 a 11.

Inicio Variables que se usa:


pal1, pal2  primera y segunda palabra.
tam1, tam2  # caracteres de pal1 y pal2.
leer: pal1, pal2

tam1=tamaño (pal1); tam2=tamaño (pal2)

F
(tam1>=5 y tam1<=11 y
tam2>=5 y tam2<=11)

V “No”
“Si”

Fin
Inicio
leer pal1, pal2;
tam1=tamaño (pal1); tam2=tamaño (pal2);
si (tam1>=5 y tam1<=11 y tam2>=5 y tam2<=11) entonces
Imprimir “Si”;
sino imprimir “No”;
Fin
Algoritmanía – Que fácil y divertido es construir algoritmos. [if then] – Cáp. 02 -20-

10: Ingresar dos letras diferentes entres si, y evaluar si cada uno coincide con cualquiera de las
letras siguientes: “x, e, r”.

Inicio
Inicio
leer let1, let2;
si ((let1=”x” o let1=” e” o let1=” r”) y
(let2=”x”
leer: let1, let2
o let2=”e” o let2=”r”)) entonces
imprimir “Coincide”;
sino imprimir “No coincide”;
Fin

((let1=”x”o let1=”e” F
o let1=”r”) y
(let2=”x” o
let2=” e” o
let2=”r”)) “No coincide”

“Coincide”

Variables que se usa:


let1  primera letra.
Fin let2  segunda letra.
.

11: Ingresar una fecha en el formato (dd/mm/aa), y evaluar si coincide con [31/12/06].

Inicio
Inicio leer dia, mes, año;
si (dia=31 y mes=12 y año=06)
entonces
leer: dia, mes, año imprimir “Coincide”;
sino imprimir “No coincide”;
Fin

(dia=31 y F
mes=12 y
año=06)

“No coincide”

“coincide”
Variables que se usa:
dia  el día.
mes  el mes.
Fin año  el año.

.
Algoritmanía – Que fácil y divertido es construir algoritmos. [if then] – Cáp. 02 -21-

12: Ingresar una hora en el formato (hh:mm: ss), si coincide con [12:25:59]. Imprimir en pantalla la
hora al revés, en caso contrario mostrar la suma de sus dígitos.

Inicio Inicio
leer hor, min, seg;
suma=””;
si (hor=12 y min=59 y
leer: hor, min, seg
seg=59) entonces
imprimir seg, min, hor;
suma=”” sino
{suma=hor+min+seg, imprimir suma;}
Fin
(hor=12 y F
min=59 y
seg=59)

suma=hor+min+seg
V

seg, min, hor Variables que se usa:


hor  la hora.
suma min  el minuto.
seg  el segundo.
suma  la suma (hor+min+seg).
Fin
.

13: Imprimir el descuento y el importe a pagar de una cuenta, según: si el consumo es menor a 150,
el descuento es del 12%, en caso contrario es del 18%.

Inicio Inicio
leer consu;
pagar=””;
leer: consu si(consumo<150) entonces
desc = consu – 0.12*consu;
pagar=”” sino
{desc= consu – 0.18*consu }
pagar=consu – desc;
consu<150 imprimir desc, pagar;
F Fin
V
desc= consu - 0.12-consu
desc= consu - 0.18*consu

pagar=consu - decs

Variables que se usa:


consu  la cuenta.
desc, pagar desc  el descuento.
pagar  el pago final.

.
Fin
Algoritmanía – Que fácil y divertido es construir algoritmos. [if then] – Cáp. 02 -22-

14: Ingresar tres números diferentes entres si, identificar si por lo menos dos de ellos es consecutivo
uno del otro. [Validar entradas]

Inicio
leer n1=n2=n3=0;
si(no(n1<>n2 y n1<>n3 y n2<>n3)) entonces
{leer: n1, n2, n3;
si (n1=n2-1 o n2=n1-1 o n1=n3-1 o n3=n1-1 o
Inicio n2=n3-1 o n3=n2-1) entonces
imprimir “Si”;
sino imprimir “No”;
leer: n1, n2, n3 }
sino imprimir ‘Entrada incorrecta’;
Fin

(n1<>n2 y n1<>n3 y n2<>n3)


F
V
‘Entrada
incorrecta’
(n1=n2-1 o n2=n1-1 o F
n1=n3-1 o n3=n1-1 o
n2=n3-1 o n3=n2-1)
“No”
V
Variables que se usa:
“Si” n1  número uno.
n2  número dos.
n3  número tres.
Fin

2.2 Estructura condicional [if anidado]


Forma general [if anidado]
Descripción
Inicio  El comienzo del programa.
Inicio
Ingreso de datos  Capturamos
cualquier dato que ingresa el usuario,
Ingreso de datos asignándole este valor a una variable.

Condición1, Condición2  Los datos de


F entrada se comparan con algunos valores
que el usuario ha definido.
Condición
V 1 Proceso Proceso a  Conjunto de instrucciones
F b que el programa realizará si la primera y
segunda condición resultan ser
verdaderas.
Condición
V 2 Proceso
Proceso b, c  Conjunto de instrucciones
c que el programa realizará si la condición1
Proceso
a y 2 resultan ser falsas respectivamente.

Fin  El fin del programa.


Fin
Algoritmanía – Que fácil y divertido es construir algoritmos. [if then] – Cáp. 02 -23-

2.2.1 Ejercicios desarrollados [if then anidado]

15: Leer un nombre de usuario y una clave, mostrar los mensajes “Bienvenido”, “Error usuario” y
“Error clave”, según sea el caso. [user=” germany”, pwd=” sverige”]

Inicio Inicio
leer user, pwd;
si (user=” germany”) entonces
leer: user, pwd {si (pwd=” sverige”) entonces
imprimir “Bienvenido”;
sino imprimir “Error clave”;
}
V sino imprimir “Error usuario”;
user=”german Fin
y”

F V
clave=”sverige
“Error usuario” ”
F “Bienvenido”
“Error clave”

Variables que se usa:


user usuario.
Fin pwd  contraseña.

16: Leer dos números, determinar aquellos que son múltiplo de 2, de ser así, mostrar en pantalla el
número y el cociente obtenido.

Inicio Inicio
leer n1, n2;
res1=residuo(n1);
leer: n1, n2 res2=residuo(n2);
si (res1=0) entonces
res1=residuo(n1/2) {imprimir n1; entero(n1/2);}
res2=residuo(n2/2) si (res2=0) entonces
{imprimir n2; entero(n2/2);}
V Fin
res1=0

F n1, entero (n1/2)

res2=0
V
F n2, entero (n2/2) Variables que se usa:
n1 número uno.
Fin n2 número dos.

ESC --> Evita bucles infinitos.


Es importante evitar los bucles infinitos, es decir, si usamos una condición que capture el código
ASCII de una tecla lo podremos usar para salidas de emergencia. Ejemplo:
tecla=obtener(ASCII);
si tecla= ‘##’ entonces salir del bucle;
Algoritmanía – Que fácil y divertido es construir algoritmos. [if then] – Cáp. 02 -24-

17: Leer tres palabras e identificar (en el orden que fueron ingresados) la primera de ellas que
coincida con “Perú”, dar como respuesta el orden de ingreso que corresponde a la palabra.

Inicio
leer p1, p2, p3;
si (p1= ”Perú”) entonces imprimir “1”;
sino {
si (p2= ”Perú”) entonces imprimir “2”;
Inicio sino {
si ( p3= ”Perú”)entonces imprimir “3”;
}
leer: p1, p2, p3 }
Fin

Variables que se usa:


F
p1 primera palabra.
p1=”Perú” p2 segunda palabra.
p3 tercera palabra.
V F
p2=”Perú”
“1”
V
p3=”Perú”
“2”
V
“3”

Fin

18: Ingresar tres números diferentes entres si, y evaluar cuantos de ellos son <=20.

Inicio Inicio
leer n1, n2, n3;
c=0;
leer: n1, n2, n3 si (n1<=20) entonces c=c+1;
si (n2<=20) entonces c=c+1;
si (n3<=20) entonces c=c+1;
imprimir c;
c=0 Fin

V
n1<=20

c=c+1
F
V
n2<=20

c=c+1
F
V
n3<=20 Variables que se usa:
n1 primer número.
c=c+1 n2 segundo número.
F n1 tercer número.
“c” c el contador.
Fin
Algoritmanía – Que fácil y divertido es construir algoritmos. [if then] – Cáp. 02 -25-

19: Leer dos fechas distintas en el formato (mm/aa). Identificar la fecha más antigua.

Inicio Inicio
leer m1, a1, m2, a2;
si(a1<a2) entonces imprimir m1, a1;
leer: m1, a1, m2, a2 sino
{
si(a1=a2) entonces
{
V si (m1<m2) entonces imprimir m1, a1;
a1<a2 sino imprimir m2, a2;
}
m1, a1 sino imprimir m2, a2;
F
}
V Fin
a1=a2

V
F m1<m Importante:
2 01/06  enero del 2006
m2, a2 07/06  julio del 2006
m1, a1
F La primera fecha es mayor
m2, a2 que la segunda, por haber
ocurrido primero en el tiempo.

Variables que se usa:


Fin m1, m2 primer y segundo mes; a1, a2 primer y segundo año.

20: Leer tres números diferentes entres si, y mostrar en pantalla el menor de todos.

Inicio Inicio
leer n1, n2, n3;
si(n1<n2) entonces
leer: n1, n2, n3 {
si(n1<n3) entonces imprimir n1;
sino imprimir n3;
}
F sino
n1<n2
{
F si(n2<n3) entonces imprimir n2;
V sino imprimir n3;
n2<n3
}
F
n1<n3 Fin
V n3

n3 V n2

n1
Variables que se usa:
n1 primer número.
n2 segundo número.
Fin n3 tercer número.
Algoritmanía – Que fácil y divertido es construir algoritmos. [if then] – Cáp. 02 -26-

21: Leer dos horas en el formato (hh: mm). Identificar la hora más reciente, o si son iguales.

Inicio Inicio
leer h1, a1, h2, m2;
si (h1>h2) entonces imprimir h1, m1;
leer: h1, m1, h2, m2 sino {
si(h1=h2) entonces {
si(m1>m2) entonces imprimir h1, m1;
sino {
V si(m1=m2) entonces imprimir “Iguales”;
h1>h2
sino imprimir h2, m2;}
h1, m1 }
F sino imprimir h2, m2;
}
V
h1=h2 Fin

F m1>m
F Nota:
h2, m2 2
07:15  siete y cuarto
V F
m1=m 08:30  ocho y media
2 La segunda hora es la
h1, m1
V h2, m2 más reciente, por haber
ocurrido después en el
tiempo.
“Iguales

Variables que se usa:
h1, h2 primera y segunda hora;
m1, m2 primer y segundo minuto.
Fin

22: Leer un año y evaluar si es bisiesto o no. [Un año es bisiesto cuando es divisible por 4;
excluyendo los que sean divisibles por 100, pero no los divisibles por 400]

Inicio Inicio
leer año; res1=residuo(año/4);
res2=residuo(año/100); res3=residuo(año/400);
leer: año si (res1=0 y (no(res2=0) o res3=0))entonces
imprimir “Bisiesto”;
sino imprimir “No bisiesto”;
Fin
res1=residuo(año/4); res2=residuo(año/100);
res3=residuo(año/400)

F
res1=0 y (no(res2=0) o res3=0)

V
“Bisiesto” Variables que se usa:
“No bisiesto” res1 residuo de dividir año/4.
res2 residuo de dividir año/100.
Fin res3 residuo de dividir año/400.
Algoritmanía – Que fácil y divertido es construir algoritmos. [if then] – Cáp. 02 -27-

23: Ingresar cuatro números no nulos diferentes entres si, y evaluar el segundo menor de todos.
[Validar entradas]

Inicio X

leer: n1, n2, n3, n4


V
n3=menor

F n3=99999

(n1<>n2 y n2<>n3 y F n4=menor V


n3<>n4 y n1<>n3 y
n1<>n4 y n2<>n4 y F n4=99999
n1<>”” y n2<>””
y n3<>”” y n4<>”” menor=88888;

V
menor>n1 V
‘Entrada
F menor=n1
menor=99999; incorrecta’

menor>n2 V
V
menor>n1 menor=n2
F
F menor=n1
V
menor>n3
menor>n2 V
menor=n1
F
menor=n2
F menor>n4 V

menor>n3 V menor=n1
F

F menor=n3 menor

menor>n4 V
Fin
menor=n4
F

n1=menor V

n1=99999
F
Variables que se usa:
n1 primer número.
n2=menor V n2 segundo número.
n3 tercer número.
n2=99999 n4 cuarto número.
menor el segundo número menor.
X
Algoritmanía – Que fácil y divertido es construir algoritmos. [if then] – Cáp. 02 -28-

Seudocódigo: Ejercicio # 23
Inicio
leer n1; n2; n3; n4;
si(n1<>n2 y n2<>n3 y n3<>n4 y n1<>n3 y n1<>n4
y n2<>n4 y n1<>”” y n2<>”” y n3<>”” y n4<>””)
entonces { menor=99999; Seudocódigo: Ejercicio # 24
si(menor>n1) entonces menor=n1;
si(menor>n2) entonces menor=n2;
Inicio
si(menor>n3) entonces menor=n3;
leer L1; L2; L3;
si(menor>n4) entonces menor=n4;
si(no(L1<>L2 y L1<>L3 y
si(n1=menor) entonces n1=99999;
L2<>L3)) entonces {
si(n2=menor) entonces n2=99999;
con=0;
si(n3=menor) entonces n3=99999;
si (L1=’a’ o L1=’b’ o L1=’c’) entonces
si(n4=menor) entonces n4=99999;
con=con+1;
menor=88888;
si (L2=’a’ o L2=’b’ o L2=’c’) entonces
si(menor>n1) entonces menor=n1;
con=con +1;
si(menor>n2) entonces menor=n2;
si (L3=’a’ o L3=’b’ o L3=’c’) entonces
si(menor>n3) entonces menor=n3;
con=con +1;
si(menor>n4) entonces menor=n4;
imprimir con; }
imprimir menor;
Else imprimir ‘Entrada incorrecta’;
}
Fin
Else imprimir ‘Entrada incorrecta’;
Fin

24: Ingresar tres letras diferentes entres si, y evaluar ¿cuántos de ellos son ‘a’,’b’ ó ‘c’. [Validar
entradas]

Inicio Variables que se usa:


L1 primera letra.
L2 segunda letra.
leer: L1, L2, L3 L3 tercera letra.
con contador.

F
(L1<>L2 y L1<>L3 ‘Entrada
incorrecta’
con = 0
V

V
(L1=’a’ o L1=’b’ o L1=’c’)

con=con +1
F
V
(L2=’a’ o L2=’b’ o L2=’c’)

con=con +1
F

V
(L3=’a’ o L3=’b’ o L3=’c’)

con=con +1
F

con

Fin

También podría gustarte