Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Alg Capitulo 02
Alg Capitulo 02
02 -15-
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.
Inicio Inicio
leer n1, n2;
si(n1=n2) entonces imprimir “Iguales”;
leer: n1, n2 sino imprimir “Diferentes”;
Fin
n1=n2
V “Diferentes”
“Iguales”
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”
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
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”
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”
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.
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”
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
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
.
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
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”
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
res2=0
V
F n2, entero (n2/2) Variables que se usa:
n1 número uno.
Fin n2 número dos.
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
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.
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
F n3=99999
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]
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