Explora Libros electrónicos
Categorías
Explora Audiolibros
Categorías
Explora Revistas
Categorías
Explora Documentos
Categorías
1. Definicin
2. Estructura secuencial
inicio
Inicio
Accin1 Accion1
Accin2
. Accion2
.
. .
AccinN .
Fin .
AccionN
Fin
Ejemplo 01
Pseudocdigo para sumar dos nmeros.
Inicio
// Definir variables
entero: nro1, nro2, suma
// Lectura de datos
Escribir (Ingresar dos valores)
Leer (nro1, nro2)
// Calcular suma
suma nro1 + nro2
Escribir (La suma de ambos nmeros es: , suma)
Fin
Explicacin
Los Pseudocdigos estn delimitados por las palabras: Inicio y Fin.
Los comentarios son mensajes de texto opcionales que se utiliza para
documentar un programa hacindolo fcilmente entendibles a los lectores.
Empieza con los caracteres // seguido a continuacin del comentario deseado.
En nuestro ejemplo se ha utilizado:
// Definir e inicializar variables
// Lectura de datos
// Calcular suma
Se definen todas las variables que se van a utilizar en el desarrollo del
algoritmo. En nuestro ejemplo:
entero: nro1, nro2, suma
Aqui se define el tipo de dato de las variables y a continuacin la lista de
variables separadas por comas.
Se utiliza la palabra Leer para introducir el valor de una variable a travs del
teclado o algn otro medio. En nuestro ejemplo:
Leer (nro1, nro2)
Se asigna un valor a una variable, a travs del smbolo flecha ( ) que dice que
el valor a la derecha tiene que ser asignado a la variable que esta a la izquierda.
En nuestro ejemplo:
suma nro1 + nro2
Se suman los nmeros nro1 y nro2 utilizando el operador +. Luego este
resultado es asignado a la variable suma.
Se usa la palabra Escribir para identificar una salida estndar a travs del
monitor o consola. En nuestro ejemplo:
Escribir (La suma de ambos nmeros es: , suma)
De esta forma, se muestra en la pantalla el siguiente texto: La suma de ambos
nmeros es: , en este caso el operador , une el texto La suma de ambos
nmeros es: con el contenido de la variable suma.
Ejemplo 02
Pseudocdigo para calcular el rea de un rectngulo, donde la base y la altura
sern ingresados. La frmula es:
Inicio
// Definir variables
entero: base, altura, area
// Lectura de datos
Escribir (Ingrese la base y la altura)
Leer (base, altura)
// Proceso: calculo del area
area base * altura
// Salida de resultados
Escribir (El rea del rectngulo es ,area)
Fin
Ejemplo 03
Pseudocdigo para determinar la suma de las cifras de un nmero entero positivo
de 3 cifras.
Por ejemplo para sumar las cifras del nmero 257 se tiene:
2 + 5 + 7 = 14
Para obtener cada cifra del nmero ser necesario realizar divisiones sucesivas
entre 10.
Lectura de datos Impresin de datos
Inicio
// Definir e inicializar variables
entero: nro, unidades, decenas, centenas, suma 0
// Lectura de datos
Leer (nro)
// Proceso de clculo
unidades nro Mod 10
nro nro Div 10
decenas nro Mod 10
nro nro Div 10
centenas nro Mod 10
suma unidades + decenas + centenas
// Salida de resultados
Escribir (La suma de los dgitos es , suma)
Fin
Ejemplo 04
Pseudocdigo para sumar dos tiempos dados en horas, minutos y segundos.
Por ejemplo:
Tiempo 1 = 8:15:56
Tiempo 2 = 10:58:43
1 1
8 : 15 : 56
10 : 58 : 43
19 74 60 99 60
60 1 60 1
19 : 14 : 39
Para el desarrollo del pseudocdigo se suman los segundos de los dos tiempos, el
resultado de esta suma se divide entre 60, siendo el residuo de esta divisin el total
de segundos y el cociente se suma a los minutos, de igual forma se realiza la suma
de los minutos, el resultado de esta suma se divide entre 60, siendo el residuo de
la divisin el total de minutos y el cociente se suma a las horas.
Inicio
// Definir variables
entero: hor1, min1, seg1, llevaMin,hor2, min2, seg2, llevaHora, hor, min, seg
// Lectura de datos
Escribir (Ingresar primer tiempo)
Leer (hor1, min1, seg1)
Escribir (Ingresar segundo tiempo)
Leer (hor2, min2, seg2)
// Determina la cantidad total de segundos entre los dos tiempos
seg seg1 + seg2
llevaMin seg Div 60
seg seg Mod 60
min llevaMin + min1 + min2
llevaHora min Div 60
min min Mod 60
hor llevaHora + hor1 + hor2
// Salida de resultados
Escribir (La suma de los 2 tiempos es , hor, min, seg)
Fin
Ejemplo 05
Pseudocdigo que permita pasar de grados centgrados a grados Farenheit sabiendo
que:
9
F C 32
5
centi faren
10 50
20 68
30 86
40 104
Inicio
// Definir variables
real: centi, faren
// Lectura de datos
Escribir (Ingresar grados centgrados)
Leer (centi)
// Proceso de clculo: conversin de temperatura
faren 9 / 5 * centi +32
// Salida de resultados
Escribir (centi, centgrado equivale a , faren, Farenheit)
Fin
Ejemplo 06
Pseudocodigo calcular la suma de los n primeros nmeros naturales. Emplear la
frmula:
n(n 1)
suma
2
Factor de conversin
Es una fraccin en la que el numerador y denominador son medidas iguales
expresadas en unidades distintas, de tal manera, que esta fraccin vale la unidad.
Mtodo efectivo para cambio de unidades y resolucin de ejercicios sencillos
dejando de utilizar la regla de tres.
Ejemplo 07
Pseudocdigo para convertir una longitud dada en metros a sus equivalentes en
milmetros, centmetros, pies, pulgadas y yardas. Se sabe que:
Inicio
// Definir variables
real: metros, mili, cent, pies, pulg, yarda, km
// Lectura de datos
Escribir (Ingresar medida en metros)
Leer (metros)
// Proceso de clculo: conversiones mtricas
mili 1000 * metros
cent metros * 100
pulg cent / 2.54
pies pulg / 12
yarda pies / 3
km metros / 1000
// Salida de resultados
Escribir (metros, metros equivale a , mili, milmetros , cent,
Centmetros , pulg, pulgadas , pies, pies , yarda, yardas , km,
Kilmetros)
Fin
Ejemplo 08
Pseudocdigo para convertir pesos, dado en gramos a sus equivalentes en
miligramos, kilogramos, onza y libras. Se sabe que:
mili 1000*gramo
kilo gramo/1000
gramo onza gramo/28.35 mili, kilo, onza, libra
libra gramo/453.6
Inicio
// Definir variables
real: gramo, mili, kilo, onza, libra, tm
// Lectura de datos
Escribir (Ingresar peso en gramos)
Leer (gramo)
// Proceso de clculo: conversiones de pesos
mili 1000 * gramo
kilo gramo / 1000
onza gramo / 28.35
libra gramo / 453.6
tm libra / 2000
// Salida de resultados
Escribir (gramo, gramos equivale a , mili, miligramos , kilo,
Kilogramos , onza, Onzas , libra, Libra , tm , toneladas )
Fin
Ejemplo 09
Pseudocdigo para convertir velocidades dada en metros/segundos a sus
equivalentes en km/hora, km/seg, pies/seg, milla/hora, nudo. Se sabe que:
1 km = 1000 metros
1 minuto = 60segundos
1 hora = 3600 segundos
1 nudo = 1.852 km
1 pie = 12 pulgadas =0.3048 metros
1 milla =1.609 km
Inicio
// Definir variables
real: metroSeg, kmHora, kmSeg, piesSeg, millaHora, nudo
// Lectura de datos
Escribir (Ingresar velocidad en metros y segundos)
Leer (metroSeg)
// Proceso de clculo: conversiones de velocidades
kmHora metroSeg * 3.6
kmSeg metroSeg / 1000 piesSeg
metroSeg / 0.3048 millaHora 3600
* metroSeg / 1609
nudo 3600 * metroSeg / 1852
// Salida de resultados
Escribir (metroSeg, Metros/seg equivale a , kmHora, Kilmetros/hora ,
kmSeg, Kilmetros /seg , piesSeg, Pie/seg , millaHora, Millas/hora ,
nudo, Nudo )
Fin
Ejemplo 10
En una tienda se ha puesto en oferta la venta de cierto tipo de producto ofreciendo
un descuento fijo del 15% del monto de la compra. Elabore un algoritmo que
determine el monto del descuento y el monto a pagar por la compra de cierta
cantidad de unidades del producto.
Inicio
// Definir variables
entero: cantidad
real: precio, desc, compra, montoAPagar
// Lectura de datos
Escribir (Ingresar precio del producto)
Leer (precio)
Escribir (Ingresar cantidad)
Leer (cantidad)
// Proceso de calculo
compra precio * cantidad
desc 0.15 * compra
montoAPagar compra - desc
// Salida de resultados
Escribir (El monto del descuento es , desc)
Escribir (El monto a pagar es , montoAPagar)
Fin
Ejemplo 11
Pseudocdigo que determina el porcentaje de varones y de mujeres que hay en un
saln de clase.
Inicio
// Definir variables
entero: cvar, cmuj, total
real: pvar, pmuj
// Lectura de datos
Escribir (Ingresar cantidad de varones)
Leer (cvar)
Escribir (Ingresar cantidad de mujeres)
Leer (cmuj)
// Proceso de calculo
total cvar + cmuj
pvar (cvar * 100) / total
pmuj 100 - pvar
// Salida de resultados
Escribir (El porcentaje de varones es , pvar)
Escribir (El porcentaje de mujeres es , pmuj)
Fin
Ejemplo 12
Pseudocdigo que intercambie las cifras de las unidades de dos nmeros naturales.
Por ejemplo:
Nmero 1: 2485
Nmero 2: 17
Intercambiando sus unidades se obtiene: 2487 y 15.
Inicio
// Definir variables
entero: nro1, nro2, unro1, unro2
// Lectura de datos
Escribir (Ingresar dos nmeros)
Leer (nro1, nro2)
// Proceso de calculo
unro1 nro1 Mod 10
unro2 nro2 Mod 10
nro1 nro1 unro1 + unro2
nro2 nro2 unro2 + unro1
// Salida de resultados
Escribir (Los nmeros intercambiados son , nro1, nro2)
Fin
Ejemplo 13
Pseudocdigo que convierte una hora expresada como un nmero real a su
equivalente en horas, minutos y segundos.
Por ejemplo:
Hora: 16.235
Equivale a: 16 horas, 14 minutos y 6 segundos
Inicio
// Definir variables
real: hora, minuto, segundo
entero: hor, min, seg, cs
// Lectura de datos
Escribir (Ingresar hora)
Leer (hora)
// Proceso de clculo
hor entero (hora)
hora hora - hor
minuto hora * 60
min entero (minuto)
minuto minuto - min
segundo minuto * 60
seg entero (segundo)
segundo segundo seg
cs segundo * 100
// Salida de resultados
Escribir (El equivalente es , hor, min, seg, cs)
Fin
Ejemplo 14
Pesudocdigo para calcular el monto final que se paga por la compra de un auto al
crdito, al precio de venta se le aumenta el 4% de impuestos estatales, de tal
forma que el cliente tendr que pagar como cuota inicial el 20% de este nuevo
precio, el monto financiado tendr un inters del 7% anual.
Inicio
// Definir variables
real: imp, precio, cuota, finan, inter, total
// Lectura de datos
Escribir (Ingresar precio)
Leer (precio)
Escribir (Ingresar aos financiados)
Leer (tiempo)
// Proceso de clculo
imp 0.04 * precio
precio precio + imp
cuota 0.20 * precio
finan precio - cuota
inter 0.07 * finan * tiempo
total cuota + finan + inter
// Salida de resultados
Escribir (El total a pagar es , total)
Fin
Ejemplo 15
Pseudocdigo para calcular la cantidad de arena que se necesita para pulir una
pared, se conoce las medidas de la pared (largo y alto) y se sabe que se necesita
0,5 metros cbicos de arena por cada metro cuadrado de pared.
Inicio
// Definir variables
real: largo, alto, area, arena
// Lectura de datos
Escribir (Ingresar largo y alto de la pared)
Leer (largo, alto)
// Proceso de clculo
area largo * alto
arena 0.5 * area
// Salida de resultados
Escribir (Se necesita , arena, metros cbicos de arena)
Fin
Ejemplo 16
Pesudocdigo para calcular el tiempo que tarda el atleta en dar 2 vueltas a una
pista de atletismo, se tiene como datos la velocidad en metros/segundos y el radio
de la circunferencia de la pista, se sabe adems que el atleta descansa 1 minuto
cada 100 metros.
Inicio
// Definir variables
real: vel, radio, recor, tiempo, tiemdes
// Lectura de datos
Escribir (Ingresar velocidad)
Leer (vel)
Escribir (Ingresar radio)
Leer (radio)
// Proceso de clculo
recor (2 * 3.1416 * radio) * 2
tiempo recor / vel
tiemdes (recor Div 100) * 2
tiempo tiempo + tiemdes
// Salida de resultados
Escribir (El tiempo empleado en dar 2 vueltas es , tiempo)
Fin
Ejemplo 17
Pseudocdigo para calcular el precio de venta de una pizza; el tamao de la pizza
vara segn la solicitud del cliente, quien determina el dimetro en centmetros que
tendr la pizza. El costo bsico (pizza sin ingredientes extras) es de 0,48 soles por
cm, el costo de cada ingrediente extra agregado a la pizza base es de 0,10 soles
por cm, el precio de venta de la pizza se obtiene recargando un 120% en costo
total.
Inicio
// Definir variables
entero: diam, extra
real: precio, adic, recar, venta
// Lectura de datos
Escribir (Ingresar dimetro de la pizza)
Leer (diam)
Escribir (Ingresar cantidad de ingredientes extras)
Leer (extra)
// Proceso de clculo
precio diam * 0.48
adic extra * diam
recar (precio + adic) * 1.2
venta precio + adic + recar
// Salida de resultados
Escribir (El precio de venta es , venta)
Fin
Ejemplo 18
Pesudocdigo para calcular el mnimo de monedas de 2.00, 1.00, 0.50, 0.20 y 0.10
que una mquina electrnica da como vuelto por la compra de un paquete de
galletas, dicha maquina solo acepta monedas de 5 soles.
Inicio
// Definir variables
entero: vueltoEnt, vueltoReal, m1, m2, m50, m20, m10
real: precio, vuelto
// Lectura de datos
Escribir (Ingresar precio de la galleta)
Leer (precio)
// Proceso de clculo
vuelto 5 precio
vueltoEnt entero (vuelto)
vueltoReal (vuelto vueltoEnt) * 100
m2 vueltoEnt Div 2
m1 vueltoEnt Mod 2 m50
vueltoReal Div 50 vueltoReal
vueltoReal Mod 50
m20 vueltoReal Div 20
m10 vueltoReal Mod 20
// Salida de resultados
Escribir (Se recibe , m2, monedas de 2.00 soles, m1, monedas de 1.00
sol, m50, monedas de 0.50 cntimos, m20, monedas de 0.20 cntimos,
m10, monedas de 0.10 cntimos)
Fin
Ejemplo 19
Pseudocdigo para calcular el tiempo, en horas y minutos que emplea un profesor
para calificar un grupo de exmenes. Se tienen tres tipos de examen A, B, C y el
tiempo en minutos requerido para cada tipo son: A = 5 min, B = 7 min y C = 8
min.
Inicio
// Definir variables
entero: ca, cb, cc, hor, min
// Lectura de datos
Escribir (Ingresar cantidad de exmenes tipo A)
Leer (ca)
Escribir (Ingresar cantidad de exmenes tipo B)
Leer (cb)
Escribir (Ingresar cantidad de exmenes tipo C)
Leer (cc)
// Proceso de clculo
tiempo (ca * 5) + (cb * 7) + (cc * 8)
hor tiempo Div 60
min tiempo Mod 60
// Salida de resultados
Escribir (Se emplea , hor, horas con, min, minutos)
Fin
2.2.Ejercicios Propuestos
Si (expresin_lgica) entonces
Accin(es)
Fin_si
Ejemplo 01
Pseudocdigo que lea tres notas de un alumno: examen parcial, examen final y
promedio de prcticas imprima el promedio final del estudiante y el mensaje
aprobado, solo si el promedio final es mayor o igual que 10.5.
promedio =
exPar exFin promP mensaje
(exPar+exFin+promP)/3
14 16 12 14.00 aprobado
10 14 15 13.00 aprobado
Inicio
// Definir variables
real: exPar, exFin, promP, promedio
// Lectura de datos
Escribir (Ingresar tres notas:)
Leer (exPar, exFin, promP)
// Calcula promedio
promedio (exPar + exFin + promP) / 3
Si (promedio >= 10.5) entonces
Escribir (El promedio es , promedio, "aprobado)
Fin_si
Fin
Explicacin
Para resolver el ejemplo planteado se definen las variables reales exPar, exFin,
promP y promedio:
real: exPar, exFin, promP, promedio
Ejemplo 02
Pseudocdigo que lea el sueldo de un trabajador, aplique un aumento del 15%
si su sueldo es inferior a 500 e imprima el nuevo sueldo.
Inicio
// Definir variables
real: sueldo, nuevoSueldo, aum 0
// Lectura de datos
Escribir (Ingresar sueldo: )
Leer (sueldo)
// Calcula el sueldo
Si (sueldo >=0 and sueldo < 500) entonces
aum 0.15*sueldo
Fin_si
nuevoSueldo sueldo + aum
Escribir (Nuevo sueldo , nuevoSueldo)
Fin
Ejemplo 03
Pseudocdigo calcula el monto final que se paga por un consumo en un
restaurante, sabiendo que por consumos mayores a S/.100.00 se aplica un
descuento del 20%.
Ejemplo 04
Pseudocdigo que calcula el sueldo semanal de un obrero que trabaja por horas,
si durante la semana trabaj ms de 40 horas se le paga por cada hora extra
dos veces la tarifa normal.
Inicio
// Definir e inicializar variables
real: tarifa, sueldo, extra 0
entero: horas
// Lectura de datos
Escribir (Ingresar tarifa: )
Leer (tarifa)
Escribir (Ingresar horas trabajadas: )
Leer (horas)
// Calcula el sueldo
sueldo horas * tarifa
Si (horas > 40) entonces
extra (horas 40) * (2*tarifa)
Fin_si
sueldo sueldo +extra
Escribir (El sueldo final es , sueldo)
Fin
Ejemplo 05
Pseudocdigo para hallar el menor de 4 nmeros.
Inicio
// Definir variables
entero: nro1, nro2, nro3, nro4, menor
// Lectura de datos
Escribir (Ingresar 4 nmeros: )
Leer (nro1, nro2, nro3, nro4)
// Proceso
menor nro1
Si (nro2 < menor) entonces
menor nro2
Fin_si
Si (nro3 < menor) entonces
menor nro3
Fin_si
Si (nro4 < menor) entonces
menor nro4
Fin_si
Escribir (El menor es , menor)
Fin
Si (expresin_lgica) entonces
Accin1
Sino
Accin2
Fin_si
Ejemplo 06
Pseudocdigo para hallar el mayor de dos nmeros.
Inicio
// Definir variables
entero: nro1, nro2, mayor
// Lectura de datos
Escribir (Ingresar dos nmeros: )
Leer (nro1, nro2)
// Calcula el mayor de dos nmeros
Si (nro1 > nro2) entonces
mayor nro1
Sino
mayor nro2
Fin_si
Escribir ("El mayor de dos nmeros es:", mayor)
Fin
Explicacin
Para resolver el ejemplo planteado se definen las variables enteras nro1, nro2,
mayor:
entero: nro1, nro2, mayor
Ejemplo 07
Pseudocdigo para hallar el mayor de tres nmeros
Inicio
// Definir variables
entero: nro1, nro2, nro3, t, mayor
// Lectura de datos
Escribir (Ingresar tres nmeros:)
Leer (nro1, nro2, nro3)
// Calcula el mayor de tres nmeros
Si (nro1 > nro2) entonces
t nro1
Sino
t nro2
Fin_si
Si (t > nro3) entonces
mayor t
Sino
mayor nro3
Fin_si
Escribir (El mayor de tres nmeros es: , mayor)
Fin
Ejemplo 08
Pseudocdigo que lea el espacio recorrido por un auto y su tiempo empleado en
este recorrido. Se pide hallar la velocidad del recorrido. Frmula:
Tenga en cuenta que en caso de que el tiempo sea igual a cero la velocidad no
se podr calcularse.
Inicio
// Definir variables
real : espacio, tiempo, velocidad
// Lectura de datos
Escribir (Ingresar espacio recorrido y tiempo)
Leer (espacio, tiempo)
// Calcula velocidad
Si (tiempo <> 0) entonces
velocidad espacio / tiempo
Escribir (La velocidad es: , velocidad)
Sino
Escribir (Error)
Fin_si
Fin
Ejemplo 09
Pseudocdigo que lea tres valores tal como a, b, c. Calcular el resultado de la
siguiente expresin:
y = (a - b) / c
Inicio
// Definir variables
real: a, b, c, y
// Lectura de datos
Escribir (Ingresar tres nmeros)
Leer (a, b, c)
// Calcula expresin
Si (c <> 0 ) entonces
y (a - b ) / c
Escribir (y)
Sino
Escribir (No se puede calcular la expresin)
Fin_si
Fin
Ejemplo 10
Pseudocdigo que lea tres notas de un alumno: examen parcial, examen final y
promedio de prcticas, imprima el promedio y el mensaje aprobado en caso de
que el promedio es mayor o igual que 10.5, si su promedio es menor de 10.5
imprimir el promedio y el mensaje desaprobado.
Inicio
// Definir variables
real: exPar, exFin, promP, promedio
// Lectura de datos
Escribir ("Ingrese tres notas: ")
Leer (exPar, exFin, promP)
// Calcula promedio
promedio (exPar + exFin + promP) / 3
Si (promedio >= 10.5) entonces
Escribir (promedio, aprobado)
sino
Escribir (promedio, desaprobado)
Fin_si
Fin
Ejemplo 11
Pseudocdigo que lea como dato el sueldo de un trabajador, aplique un
aumento del 15% si su sueldo es inferior a 500 y 10% en caso contrario.
Imprima el nuevo sueldo del trabajador.
Inicio
// Definir variables
real: sueldo, aum, nuevoSueldo
// Lectura de datos
Escribir (Ingrese sueldo)
Leer (sueldo)
// Calcula sueldo
Si (sueldo < 500) entonces
aum 0.15 * sueldo
sino
aum 0.10 * sueldo
Fin_si
nuevoSueldo sueldo + aum
Escribir (Nuevo sueldo , nuevoSueldo)
Fin
Ejemplo 12
Pseudocdigo que determine si un nmero es mltiplo de otro. Un nmero a es
mltiplo de otro numero b, cuando el residuo de la divisin de a entre b es cero.
Inicio
// Definir variables
entero: nro1,nro2, r
// Lectura de datos
Escribir (Ingresar dos numeros)
Leer (nro1, nro2)
// Calcular mltiplo
r nro1 Mod nro2
Si (r = 0) entonces
Escribir (nro1, es mltiplo de, nro2)
sino
Escribir (nro1, no es mltiplo de, nro2)
Fin_si
Fin
Ejemplo 13
Pseudocdigo que lea tres nmeros e imprima su producto si el primero de ellos
es positivo, en caso contrario imprima su suma.
Por ejemplo:
a = 4, b = 3, c = 2 entonces su producto es p = a * b * c = 42
a = -4, b = 3, c = 2 entonces la suma es s = a + b + c = 1
Inicio
// Definir variables
entero: a, b, c, p, s
// Lectura de datos
Escribir (Ingresar primer numero:)
Leer (a)
Escribir (Ingresar segundo nmero:)
Leer (b)
Escribir (Ingresar tercer nmero:)
Leer (c)
Si (a > 0) entonces
p a*b*c
Escribir (El producto es igual , p)
Sino
s a+b+c
Escribir (La suma es igual , s)
Fin_si
Fin
Ejemplo 14
Pseudocdigo que lea dos nmeros y diga si la suma de los nmeros es par o
impar.
Por ejemplo:
a = 4, b = 3 entonces su suma es s = a + b = 7 es impar
a = 4, b = 4 entonces la suma es s = a + b = 8 es par
Inicio
// Definir variables
entero: a, b, s
// Lectura de datos
Escribir ("Ingresar primer numero:")
Leer (a)
Escribir ("Ingresar segundo nmero:")
Leer (b)
s a+b
Si (s Mod 2 = 0) entonces
Escribir (s, La suma es par)
Sino
Escribir (s, La suma es impar)
Fin_si
Fin
Ejemplo 15
Pseudocdigo que determine si un ao es bisiesto. Un ao es bisiesto si es
mltiplo de 4 y no de 100 o cuando es mltiplo de 400.
Inicio
// Definir variable
entero: a
// Lectura de datos
Escribir ("Ingresar ao:")
Leer (a)
Si (((a Mod 4 = 0) and (a Mod 100 <> 0)) or (a Mod 400 = 0)) entonces
Escribir (El ao es bisiesto)
Sino
Escribir (El ao no es bisiesto)
Fin_si
Fin
Ejemplo 16
Pseudocdigo que calcule el total a pagar por la compra de camisas. Si se
compran tres camisas o ms se aplica un descuento del 20% sobre el total de
la compra, sino se aplica un descuento del 10%.
Inicio
// Definir variables
entero: cant
real: precio, compra, desc, total
// Lectura de datos
Escribir ("Ingresar precio unitario:")
Leer (precio)
Escribir ("Ingresar cantidad de camisas:")
Leer (cant)
compra cant * precio
Si (compra >=3) entonces
desc 0.20 * compra
Sino
desc 0.10 * compra
Fin_si
total compra desc
Escribir (El total a pagar es , total)
Fin
Ejemplo 17
Pseudocdigo que calcule el total que se paga en una playa de estacionamiento,
en el que se registra la hora de ingreso y la hora de salida del vehculo en
HH:MM, la tarifa por hora o fraccin de S/.2.00.
Por ejemplo:
Hora de inicio:4:20
Hora de trmino: 7:10
Total a pagar: 7:10- 4:20= 2: 40 = 6
Hora de inicio:3:20
Hora de termino: 8:40
Total a pagar: 8:40- 3:20= 5: 20 = 12
Inicio
// Definir e inicializar variables
entero: h1, m1, h2, m2, min, hor 0
real : pago
// Lectura de datos
Escribir ("Ingresar hora de ingreso:")
Leer (h1, m1)
Escribir ("Ingresar hora de salida:")
Leer (h2, m2)
Si (m2 >= m1) entonces
min m2 m1
Sino
min (m2 + 60) m1
h2 h2 - 1
Fin_si
hor h2 h1
Si (min > 0)
hor hor + 1
Fin_si
pago hor * 2
Escribir (El total a pagar es , pago)
Fin
Si (expresin_lgica1) entonces
Accin1
Sino
Si (expresin_lgica2) entonces
Accin2
Sino
Accin3
Fin_si
Fin_si
Ejemplo 18
Pseudocdigo que lea un nmero y determine si es positivo, negativo o cero.
Inicio
// Definir variables
entero: nro
cadena: mensa
// Lectura de datos
Escribir (Ingresar numero:)
Leer (nro)
Si (nro = 0 ) entonces
mensa Cero
Sino
Si (nro>0) entonces
mensa
Positivo
Sino
mensa Negativo
Fin_si
Fin_si
Fin Escribir (nro, mensa)
Explicacin
Este sino esta conformado por un SI que evalua la expresin logica (nro >
0), si la asignacin es verdadera se asigna Positivo a la variable mensa:
Si (nro>0) entonces
mensa Positivo
Ejemplo 19
En una tienda comercial se realizan descuentos en las compras en funcin
del importe total de dichas compras. Se desea calcular el importe que se
cobra a un cliente, teniendo en cuenta los siguientes supuestos:
Inicio
// Definir variables
real: importeTotal, descto, importeACobrar
cadena: nombre
// Lectura de datos
Escribir (Ingresar nombre del cliente:)
Leer (nombre)
Escribir (Ingresar monto total de la compra:)
Leer (importeTotal)
// Calcula el importe a Cobrar
Si (importeTotal >= 0 and importeTotal < 200) entonces
descto 0
Sino
Si (importeTotal <= 800) entonces
descto 0.10*importeTotal
Sino
descto 0.20*importeTotal
Fin_si
Fin_si
ImporteACobrar importeTotal - descto
Escribir (Cliente: , nombre)
Escribir (Descuento: , descto)
Escribir (Importe total: , importeTotal)
Escribir (Importe a cobrar: , importeACobrar)
Fin
Ejemplo 20
Una compaa de gaseosas est realizando una promocin por la compra de
su producto. Dentro de cada chapa viene un nmero que determina el
premio que obtiene un comprador.
Si la chapa tiene un nmero entre 1 y 5 el comprador obtiene como
premio el doble del precio pagado por la gaseosa.
Si la chapa tiene un nmero entre 6 y 8 el comprador obtiene como
premio la devolucin del precio pagado por la gaseosa.
Si chapa tiene un nmero entre 9 y 10 el comprador no gana ningn
premio.
Escribir un pseudocdigo que muestre los diferentes resultados que se
podra obtener al comprar una gaseosa.
Ejemplo 21
El precio de venta de DVD vara de acuerdo a la cantidad que se compra:
S/.2.50 si se compran unidades separadas hasta 9.
S/.2.20 si se compran entre 10 unidades hasta 99.
S/.1.90 entre 100 y 499 unidades
S/.1.50 para mas de 500
El vendedor gana por cada CD vendido el 20% del costo. Realizar un
pseudocdigo que calcule el pago total y la ganancia para el vendedor.
Inicio
// Definir variables
entero: cant
real: pago, ganan
// Lectura de datos
Escribir (Ingresar cantidad de DVD: )
Leer (cant)
Si (cant < 10) entonces
pago 2.50 * cant
Sino
Si (cant < 100) entonces
pago 2.20 * cant
Sino
Si (cant < 500) entonces
pago 1.90 * cant
Sino
pago 1.50 * cant
Fin_si
Fin_si
Fin_si
ganan 0.20 * pago
Escribir (El pago total es: , pago)
Escribir (La ganancia del vendedor es: , ganan)
Fin
Ejemplo 22
Pseudocdigo que calcule el sueldo neto de un trabajador, que tiene los
siguientes descuentos:
Inicio
// Definir variables
caracter: afp
real: sueldoBruto, desc1, desc2, sueldoNeto
// Lectura de datos
Escribir (Ingresar sueldo bruto: )
Leer (sueldoBruto)
Escribir (Ingresar AFP: )
Leer (afp)
Si (afp = A) entonces
desc1 0.11 * sueldoBruto
Sino
Si (afp = B) entonces
desc1 0.10 * sueldoBruto
Fin_si
Fin_si
Si (sueldoBruto > 4000) entonces
desc2 0.07 * sueldoBruto
Sino
Si (sueldoBruto > 3000) entonces
desc2 0.06 * sueldoBruto
Sino
desc2 0.05 * sueldoBruto
Fin_si
Fin_si
sueldoNeto sueldoBruto desc1 desc2
Escribir (El sueldo neto es: , sueldoNeto)
Fin
Ejemplo 23
Un supermercado ofrece a sus clientes descuentos de acuerdo al monto de
compra, como se muestra en el siguiente cuadro:
Elaborar un pseudocdigo que calcule el monto final que paga un cliente por
una compra.
Inicio
// Definir variables
real: montoCompra, desc, montoFinal
// Lectura de datos
Escribir (Ingresar monto compra: )
Leer (montoCompra)
Si (montoCompra <= 250) entonces
desc 0
Sino
Si (montoCompra <= 500) entonces
desc 0.10 * montoCompra
Sino
Si (montoCompra <= 1000) entonces
desc 0.15 * montoCompra
Sino
desc 0.20 * montoCompra
Fin_si
Fin_si
Fin_si
montoFinal montoCompra desc
Escribir (El total a pagar es: , montoFinal)
Fin
Ejemplo 24
En empresa ensambladora de computadoras oferta a sus clientes descuentos
que varan de acuerdo al nmero de computadoras que se compre. Si se
compra hasta cinco computadoras se descontar el 10%, si se compra entre
6 y 10 computadoras se descuenta el 20% y si se compra ms de 10
computadoras se descuenta el 40%.
Elaborar un pseudocdigo que calcule el monto final que se paga por un
cierto nmero de computadoras.
Fin
Ejemplo 25
Pseudocdigo que compruebe si tres lados forman un tringulo, de ser as
calcule su rea y muestre que tipo de triangulo forma: equiltero, issceles
o escaleno.
Teorema: En todo tringulo cada lado es menor que la suma de los otros dos
lados, pero mayor que su diferencia.
Donde, p es el semipermetro.
Inicio
// Definir variables
real: p, area
entero: a, b, c
// Lectura de datos
Escribir (Ingresar lados: )
Leer (a, b, c)
Si ((a < b + c) and (b < a + c) and (c < a + b)) entonces
Escribir (Forman un tringulo)
p (a + b + c) /2
area raiz (p * (p - a) * (p - b) * (p - c))
Si (a = b and b = c) entonces
Escribir (Equiltero)
Sino
Si (a = b or b = c or a = c) entonces
Escribir (Issceles)
Sino
Escribir (Escaleno)
Fin_si
Fin_si
Escribir (El rea es , area)
Sino
Escribir (No forman un tringulo)
Fin_si
Fin
Ejemplo 26
Pseudocdigo que calcula la calificacin de un alumno en base a 3 notas,
validar el ingreso de notas entre 0 y 100, considerar la siguiente tabla:
Promedio Calificacin
90 100 A
80 89 B
70 79 C
50 69 D
0 49 E
Inicio
// Definir variables
entero: nt1, nt2, nt3, prom
caracter: calf
// Lectura de datos
Escribir (Ingresar tres notas: )
Leer (nt1, nt2, nt3)
Si ((nt1 >= 0 and nt1 <= 100) and (nt2 >= 0 and nt2 <= 100) and
(nt3 >= 0 and nt3 <= 100)) entonces
prom (nt1 + nt2 + nt3) Div 3
Si (prom > 89) entonces
calf A
Sino
Si (prom > 79) entonces
calf B
Sino
Si (prom > 69) entonces
calf C
Sino
Si (prom > 49) entonces
calf D
Sino
calf E
Fin_si
Fin_si
Fin_si
Fin_si
Escribir (La calificacin es: , calf)
Sino
Escribir (Ingreso incorrecto)
Fin_si
Fin
Ejemplo 27
Una clnica ofrece tres tipos de seguro:
Inicio
// Definir variables
entero: cant, max
real: pago 0, padic
caracter: tipo
entero: cant
// Lectura de datos
Escribir (Ingresar tipo de seguro: )
Leer (tipo)
Escribir (Ingresar cantidad de consultas: )
Leer (cant)
Si (tipo = A) entonces
pago 80.00
max 8
padic 8.50
Sino
Si (tipo = B) entonces
pago 60.00
max 6
padic 6.50
Sino
Si (tipo = C) entonces
pago 40.00
max 4
padic 5.00
Fin_si
Fin_si
Fin_si
Si (cant > max) entonces
padic padic * (cant - max)
Fin_si
pago pago + padic
Escribir (El total a pagar es: , pago)
Fin
Ejemplo 28
Un centro comercial bonifica a sus clientes con puntos los cuales son
reemplazados por obsequios. Por compras menores a S/.10.00 el cliente
recibe 1 punto, por compras de S/.10.00 a ms el cliente recibe 2 puntos
por cada S/.10.00 y un punto por el monto adicional. Elaborar un
pseudocdigo que calcule la cantidad de puntos que obtiene un cliente en
una compra.
Por ejemplo:
Si la compra es de S/.7.00 el cliente recibe 1 punto
Si la compra es de S/.23.00 el cliente recibe 5 puntos (2 puntos por cada
S/.10.00 y 1 punto por los S/.3.00).
Si la compra es de S/.40.00 el cliente recibe 8 puntos (2 puntos por cada
S/.10.00)
Variables a utilizar en el pseudocdigo
punto puntos obtenidos monto
monto de la compra parEnt valor
entero de la compra
resto1 residuo del valor entero de la compra
resto2 valor real de la compra
c10 cantidad de montos de S/.10.00
Inicio
// Definir variables
entero: punto 0, parEnt, resto2, c10
real: monto, resto1 0
// Lectura de datos
Escribir (Ingresar monto de la compra: )
Leer (monto)
Si (monto < 10) entonces
punto 1
Sino
parEnt entero (monto)
resto1 monto parEnt
resto2 parEnt Mod 10
c10 parEnt Div 10
Si (resto1 > 0 or resto2 >0) entonces
punto (2 * c10) + 1
Sino
punto 2 * c10
Fin_si
Fin_si
Escribir (Los puntos obtenidos son: , punto)
Fin
Ejemplo 29
Un grupo de alumnos de un centro educativo, desea saber cuanto se va a
gastar en pasajes para realizar el viaje de promocin, el precio de cada
pasaje vara de acuerdo al da en que viajan y al nmero de alumnos que
viajan:
Inicio
// Definir variables
entero: dia, cant
real: total
// Lectura de datos
Escribir (Ingresar da del mes: )
Leer (dia)
Escribir (Ingresar cantidad de alumnos: )
Leer (cant)
Si (dia <= 15) entonces
Si (cant < 11) entonces
total 60 * cant
Sino
Si (cant < 21) entonces
total 55 * cant
Sino
total 50 * cant
Fin_si
Fin_si
Sino
Si (cant < 11) entonces
total 50 * cant
Sino
Si (cant < 21) entonces
total 45 * cant
Sino
total 40 * cant
Fin_si
Fin_si
Fin_si
Escribir (El costo total de los pasajes es: , total)
Fin
Donde:
Selector, cuyo valor se compara con cada una de las alternativas (c1, c2,
etc).
c1, c2, etc., son constantes enteras o de tipo caracter compatibles con el
selector. Si es de tipo caracter c1, c2, etc. deben de ir encerradas entre
comillas simples, es decir c1, c2, etc.
Sino, cuando toma un valor distinto de las alternativas (c1, c2, etc). El
Sino es opcional, si se omite y no hay coincidencia finaliza la sentencia
En caso sea Fin_caso sin ejecutar nada.
Ejemplo 30
Pseudocdigo que lea una variable entera, que representa un da de la
semana y que muestre el texto correspondiente al da. Por ejemplo: Lunes si
es 1, Martes si es 2, , Domingo si es 7.
Da Texto a mostrar
1 Lunes
4 Jueves
6 Sbado
Inicio
// Definir variable
entero: dia
// Lectura de datos
Escribir (Ingresar dia:)
Leer (dia)
En caso sea (dia) hacer
1 : Escribir (lunes)
2 : Escribir (martes)
3 : Escribir (mircoles)
4 : Escribir (jueves)
5 : Escribir (viernes)
6 : Escribir (sbado)
7 : Escribir (domingo)
Sino
Escribir (Fuera de rango)
Fin_Caso
Fin
Explicacin
Ejemplo 31
Pseudocdigo que permite ingresar una calificacin expresada con un
caracter (a, b, c o d) y averiguar su equivalencia correspondiente de acuerdo
a la siguiente tabla:
Nota Descripcin
A Sobresaliente
B Notable
C Aprobado
D Insuficiente
Otra letra Nota no esta en el rango
Inicio
// Definir variable
caracter: nota
// Lectura de datos
Escribir (Ingresar nota)
Leer (nota)
En caso sea (nota) hacer
A: Escribir (Sobresaliente)
B: Escribir (Notable)
C: Escribir (Aprobado)
D: Escribir (Insuficiente)
Sino
Escribir (Nota no esta en el rango)
Fin_caso
Fin
Ejemplo 32.
Una compaa incrementa el sueldo actual de sus empleados de acuerdo a
su categora como se muestra en el siguiente cuadro:
Inicio
// Definir e inicializar variables
entero: cant
real: sueldo, aum, adic, desc, sueldoNeto
caracter: cat
// Lectura de datos
Escribir (Ingresar categora)
Leer (cat)
Escribir (Ingresar sueldo)
Leer (sueldo)
Escribir (Ingresar cantidad de hijos)
Leer (cant)
En caso sea (cat) hacer
A: aum 0.25 * sueldo
B: aum 0.20 * sueldo
C: aum 0.15 * sueldo
D: aum 0.10 * sueldo
Sino
Escribir (Categora no existe)
sw 1
Fin_caso
Si (sw = 0) entonces
sueldo sueldo + aum
Si (cant > 0) entonces
adic 0.025 * sueldo * cant
Fin_si
sueldo sueldo + adic
Si (sueldo > 2000) entonces
desc 0.03 * sueldo
Fin_si
sueldoNeto sueldo - desc
Escribir (El sueldo neto del empleado es , sueldoNeto)
Fin_si
Fin
Ejemplo 33
Pseudocdigo que acte como una calculadora, permitiendo realizar las
operaciones de suma, resta, multiplicacin y divisin entre dos nmeros
cualquiera.
Inicio
// Definir e inicializar variables
real: n1, n2, res
caracter: oper
entero: sw 0
// Lectura de datos
Escribir (Ingresar primer nmero)
Leer (n1)
Escribir (Ingresar operador)
Leer (oper)
Escribir (Ingresar segundo nmero)
Leer (n2)
En caso sea (oper) hacer
+: res n1 + n2
- : res n1 - n2
*: res n1 * n2
/ : Si (n2 <>0)
res n1 / n2
Sino
Escribir (Error)
sw 1
Fin_si
Sino
Escribir (Operador no vlido)
sw 1
Fin_caso
Si (sw = 0) entonces
Escribir (El resultado es , res)
Fin_si
Fin
Ejemplo 34
Un centro comercial ofrece ventas financiadas por medio de 3 tipos de
tarjetas de crdito como indica a continuacin:
El cliente solo puede financiar una compra hasta el mximo de letras que se
indica en el cuadro anterior, en caso contrario la venta no debe proceder.
Calcular el monto de cada letra por pagar as como el monto total.
Inicio
// Definir variables
entero: cant, max, sw 0
real: monto, inte, letra
caracter: tipo
// Lectura de datos
Escribir (Ingresar tipo de tarjeta)
Leer (tipo)
Escribir (Ingresar monto de la compra)
Leer (monto)
Escribir (Ingresar cantidad de letras a financiar)
Leer (cant)
En caso sea (tipo) hacer
A: max 36
inte 0.07 * monto
B: max 24
inte 0.06 * monto
C: max 12
inte 0.05 * monto
Sino
Escribir (Tipo de tarjeta no existe)
sw 1
Fin_caso
Si (sw = 0) entonces
monto monto + inte
Si (cant <= max) entonces
letra monto / cant
Escribir (El monto total a pagar es , monto)
Escribir (El monto de cada letra es , letra)
Sino
Escribir (La venta no procede)
Fin_si
Fin_si
Fin
Ejemplo 35
Calcular el consumo de combustible y el total que se invirti en el recorrido
de un automvil. Para esto se debe disear un algoritmo en el que se
ingresa los kilometrajes con el que inicia y termina el recorrido, as como la
cantidad de galones de combustible con el que se inicia y termina el
recorrido. Adems calcular la cantidad de galones que consume el auto por
cada 100 kilmetros. Los precio por cada galn de combustible son:
Tipo de combustible Precio (S/.) x galn
Gasolina 97 16.98
Gasolina 95 15.60
Gasolina 89 13.50
Diesel 10.20
Inicio
// Definir variables
entero: tipo
real: kil1, kil2, gal1, gal2, kilRec 0, totGal 0, total, c100
// Lectura de datos
Escribir (Ingresar kilometraje de inicio y fin del recorrido)
Leer (kil1, kil2)
Escribir (Ingresar galones con el que inicia y termina el recorrido)
Leer (gal1, gal2)
Escribir (Ingresar tipo de combustible que usa el automvil
(1)Gasolina 97, (2)Gasolina 95, (3)Gasolina 89, (4)Diesel)
Leer (tipo)
Si (tipo > 0 and tipo < 5) entonces
En caso sea (tipo) hacer
1 : precio 16.98
2 : precio 15.60
3 : precio 13.50
4 : precio 10.20
Fin_caso
kilRec kil2 kil1
totGal gal2 gal1
total totGal * precio
c100 (totGal * 100) / kilRec
Escribir (El total de combustible que se consumi es , totGal)
Escribir (El total de se invirti en el recorrido es , total)
Escribir (El consumo por cada 100 kilmetros es , c100)
Sino
Escribir (El tipo de combustible no es vlido)
Fin_si
Fin
Inicio
// Definir variable
entero: nro
// Lectura de datos
Escribir (Ingresar nmero:)
Leer (nro)
En caso sea (nro) hacer
1: 3: 5: 7: 9: Escribir (impar)
2: 4: 6: 8 : Escribir (par )
sino
Escribir (Fuera de rango)
Fin_Caso
Fin
Ejemplo 37
En un campeonato de tiro al blanco se ha llegado a un acuerdo entre los
participantes para que el puntaje obtenido sea calculado en base al puntaje
original (el que esta entre 0 y 10) alcanzado en el tiro multiplicado por un
factor el cual se muestra en el siguiente cuadro. Hacer un pseudocdigo que
muestre el nuevo puntaje obtenido por cualquier participante.
Inicio
// Definir e inicializar variables
entero: factor, puntaje, nuevoPuntaje, sw 0
// Lectura de datos
Escribir (Ingresar puntaje:)
Leer (puntaje)
// Calcula puntaje
En caso sea (puntaje) hacer
0: factor 0
1: 2: 3: 4: 5: factor 6
6: 7: 8: factor 9
9: 10: factor 10
Sino
Escribir (Fuera de rango)
sw 1
Fin_Caso
Si (sw = 0) entonces
nuevoPuntaje puntaje + factor
Escribir (El nuevo puntaje es , nuevoPuntaje)
Fin_si
Fin
Ejemplo 38
Pseudocdigo que permita calcular cuntos das tiene un mes, teniendo en
cuenta lo siguiente:
a) El orden del calendario indica que enero es 1, febrero es 2, etc.
b) Enero, marzo, mayo, julio, agosto, octubre y diciembre tienen 31 das.
c) Abril, junio, setiembre y noviembre tienen 30 das.
d) Febrero tiene 28 das o 29 das si el ao bisiesto. Un ao es bisiesto si es
mltiplo de 4 y no de 100 o cuando es mltiplo de 400.
Inicio
// Definir variables
entero: mes, year, dias
// Lectura de datos
Escribir (Ingresar mes, ao )
Leer (mes, year)
En caso sea (mes) Hacer
1: 3: 5: 7: 8: 10: 12: dias 31
4: 6: 9: dias 30
2: Si (year Mod 4 = 0) and (year Mod 100 <> 0) or
(year Mod 400 = 0)) entonces
dias 29
Sino
dias 28
Fin_si
Fin_Caso
Escribir (mes, year, dias)
Fin
Ejemplo 39
Pseudocdigo para calcular la pensin que tiene que pagar un alumno de un
instituto cuya cuota de matricula tiene un porcentaje de descuento que se
establece en la siguiente tabla y esta en funcin del colegio de procedencia
del alumno y de las tres categoras que existe en el instituto. Considere que
la pensin esta exonerada de impuesto.
Colegio de Categora
procedencia A B C
Nacional 50 40 30
Particular 15 20 25
Inicio
// Definir e inicializar variables
real: cuota, dscto, importe 0
caracter: colegio, categora
entero: sw 0
// Lectura de datos
Escribir (Ingresar colegio de procedencia (N)acional, (P)articular:)
Leer (colegio)
Escribir (Ingresar categora (A, B, C):)
Leer (categoria)
Escribir (Ingresar cuota:)
Leer (cuota)
// Clculos
En caso sea (colegio) hacer
N: En caso sea (categoria) hacer
A : dscto 0.50 * cuota
B : dscto 0.40 * cuota
C : dscto 0.30 * cuota
Sino
Escribir (Opcin no contemplada)
sw 1
Fin_caso
P: En caso sea (categoria) hacer
A : dscto 0.25 * cuota
B : dscto 0.20 * cuota
C : dscto 0.15 * cuota
Sino
Escribir (Opcin no contemplada)
sw 1
Fin_caso
Sino
Escribir (Opcin no contemplada)
sw 1
Fin_caso
Si (sw = 0) entonces
importe cuota dscto
Escribir(El importe a pagar es: , importe)
Fin_si
Fin
Ejemplo 40
Calcular el pago de un obrero que trabaja al destajo. El pago que recibe el
obrero por cada unidad producida depende de su categora y del tipo de
producto que produce, como se muestra en el siguiente cuadro:
Inicio
// Definir e inicializar variables
entero: cant, sw 0
real: pago, bonf, desc 25.00
caracter: cat, prod
// Lectura de datos
Escribir (Ingresar categora:)
Leer (cat)
Escribir (Ingresar producto que produce (T)ejas, (L)osetas)
Leer (prod)
Escribir (Ingresar cantidad producida:)
Leer (cant)
// Clculos
En caso sea (prod) hacer
T: En caso sea (cat) hacer
A : pago 2.50 * cant
B : pago 2.00 * cant
C : pago 1.50 * cant
Sino
Escribir (Categora no existe)
sw 1
Fin_caso
L: En caso sea (cat) hacer
A : pago 2.00 * cant
B : pago 1.50 * cant
C : pago 1.00 * cant
Sino
Escribir (Categora no existe)
sw 1
Fin_caso
Sino
Escribir (Producto no existe)
sw 1
Fin_caso
Si (sw = 0) entonces
Si (cant <= 250) entonces
bonf 0
Sino
Si (cant <= 500) entonces
bonf 50.00
Sino
Si (cant <= 1000) entonces
bonf 100.00
Sino
bonf 150.00
Fin_si
Fin_si
Fin_si
pago pago + bonf desc
// Salida de resultados
Escribir (El pago del obrero es: , pago)
Fin_si
Fin
3.4.Ejercicios propuestos
x 2 si ( x Mod 4 ) 0
x / 6 si ( x Mod 4 ) 1
fx
x si ( x Mod 4 ) 2
x 3 5 si ( x Mod 4 ) 3
0, si x 0
x x, si x 0
- x, si x 0
Por Ejemplo:
De -7 su valor absoluto es: -(-7) = 7 (cuando es negativo se cambia de
signo)
De 7 su valor absoluto es: (7) = 7 (cuando es positivo nos da el mismo
nmero)
4. Escribir un programa para leer dos nmeros a, b y obtenga el valor
numrico de la funcin.
2 a b, si a2 - b 2 0
f x a2 - 2b, si a2 - b 2 0
a b, si a2 - b 2 0
5. Pseudocdigo que determine si un nmero es divisible por 5. Un nmero es
divisible por 5 cuando acaba en cero 0 en 5.
6. Mostrar el nombre correspondiente a un nmero de mes y adems mostrar
la estacin al cual pertenece. Considerar 3 meses por estacin.
Verano = enero, febrero, marzo
Otoo = abril, mayo, junio
Invierno = julio, agosto, setiembre
Primavera = octubre, noviembre, diciembre.
7. Ingresar cuatro valores por el teclado a, b, c, d. Se desea redondear a la
centena ms prxima y visualizar la salida. Por ejemplo:
a = 2, b = 3, c = 6 y d = 2 entonces n = 2362 el resultado redondeado ser
2400.
Si n = 2342 el resultado redondeado ser 2300
Si n = 2962 el resultado redondeado ser 3000
8. Pseudocdigo que lea tres nmeros y diga si la suma de los dos primeros
nmeros es igual al tercer nmero.
9. Una empresa de bienes y races ofrece casas de inters social bajo las
siguientes condiciones: si el ingreso mensual del comprador es menos de
S/2250 la cuota inicial ser igual al 15% del costo de la casa y el resto se
distribuir en 120 cuotas mensuales. Si el ingreso mensual del comprador es
mayor o igual a S/.2250 la cuota inicial ser igual al 30% del costo de la
casa y el resto se distribuir en 75 cuotas mensuales. Disee un algoritmo
que permita determinar cuanto debe pagar un comprador por concepto de
cuota inicial y cuanto por cada cuota mensual.
10. En una escuela la colegiatura de los alumnos se determina segn el nmero
de materias que cursan. El costo de todas las materias es el mismo. Se ha
establecido un programa para estimular a los alumnos, el cual consiste en lo
siguiente: si el promedio obtenido por un alumno en el ultimo periodo es
mayor o igual que 15, se le har un descuento del 30% sobre la colegiatura
y no se le cobrara impuesto; si el promedio obtenido es menor que 15
deber pagar la colegiatura completa, la cual incluye el 10% de impuesto.
Obtener cuanto debe pagar un alumno.
11. Una persona desea iniciar un negocio, para lo cual piensa verificar cuanto
dinero le prestar el banco por hipotecar su casa. Tiene una cuenta
bancaria, pero no quiere disponer de ella a menos que el monto por
hipotecar su casa sea muy pequeo. Si el monto de la hipoteca es menor
que $30,000 entonces invertir el 50% de la inversin total y un socio
invertir el otro 50%. Si el monto de la hipoteca es de $30,000 o mas,
entonces invertir el monto total de la hipoteca y el resto del dinero que se
necesite para cubrir la inversin total se repartir a partes iguales entre el
socio y el.
12. Elaborar un algoritmo que tenga como entrada los valores de dos ngulos,
expresados en grados, minutos y segundos, obtenga el valor de su suma de
la misma forma. Se supone que las entradas son correctas, en el sentido de
que cada ngulo est expresado como tres nmeros enteros, en los rangos
respectivos (0 - 360), (0 - 60) y (0 - 60). La salida debe estar expresada de
la misma manera.
13. El ministerio de agricultura ha distribuido la siembra de 3 productos en
terrenos con ms de 1000 hectreas de la siguiente manera:
4. Estructura repetitiva
4.1.Conceptos bsicos
Contador
Es una variable numrica entera que se incrementa o decrementa cada vez que
se ejecuta la accin que lo contiene, toma un valor inicial de cero o uno, segn
sea el caso. En la siguiente figura la variable i representa a un contador.
i = i + 1
Acumulador o totalizador
Es una variable numrica que se incrementa o decrementa de forma no
constante, toma un valor inicial de cero o uno segn sea el caso. En la siguiente
figura, la variable total representa a un acumulador y la variable parcial es la
cantidad que se incrementar el acumulador en cada iteracin.
Bucle
Es un mecanismo de programacin que repite un segmento de un programa
(una o mas sentencias) un cierto nmero de veces. Los bucles se implementan
utilizando las sentencias repetitivas: mientras, repetir y para.
Iteracin
Representa cada repeticin del cuerpo de bucle.
Ejemplo 01
Pseudocdigo que invierta un nmero entero positivo.
Inicio
// Definir e inicializar variables
entero: nro, nro1, digito, nroinvertido 0
// Leer Datos
Escribir (Ingresar nmero:)
Leer (nro)
// Calcular nmero invertido
nro1 nro
Mientras (nro > 0) hacer
digito nro Mod 10
nroinvertido 10 * nroinvertido + digito
nro nro Div 10
Fin_Mientras
Escribir (El nmero invertido de , nro1, es , nroinvertido)
Fin
Explicacin
Para resolver el ejemplo planteado se definen las variables enteras: nro, nro1,
dgito y se inicializa en cero la variable nroinvertido
entero: nro, nro1, digito, nroinvertido 0
Se ingresa la variable nro:
Escribir (Ingresar nmero:)
Leer (nro)
Y se asigna nro a una nueva variable nro1, para conservar el valor original del
nmero ingresado:
nro1 nro
La sentencia Mientras ejecuta tres sentencias, mientras que la expresin lgica
(nro > 0) es verdadera, en estas sentencia se va extrayendo cada dgito del
nmero ingresado:
Mientras (nro > 0) hacer
digito nro Mod 10
nroinvertido 10 * nroinvertido + digito
nro nro Div 10
Fin_Mientras
Cuando la expresin logica (nro > 0) llega a ser falsa, se ejecuta la sentencia
escribir y finaliza el pseudocdigo:
Escribir (El nmero invertido de , nro1, es , nroinvertido)
Por ejemplo si el nmero es 134, entonces el nmero invertido ser 431. Para
ir reduciendo cada nmero emplearemos la operacin:
134 Div 10 = 13
13 Div 10 = 1
1 Div 10 = 0 Se detiene cuando
es cero
As tenemos:
134 Mod 10 = 4
13 Mod 10 = 3
1 Mod 10 = 1
10 * 0 + 4 = 4
10 * 4 + 3 = 43
10 * 43+ 1 = 431
Inicialmente nroinvertido = 0
Resultado
Iteracin Valores Expresin Resultados del cuerpo del bucle
de la
nro de nro Lgica digito = nroinvertido = nro =
Expresin
nro > 0 nro Mod 10 10*nroinvertido nro Div 10
Lgica
+ digito
1 134 134>0 True 4 4 13
2 13 13 >0 True 3 43 1
3 1 1> 0 True 1 431 0
--- 0 0>0 False Fin del Mientras
Ejemplo 02
Pseudocdigo que multiplique dos nmeros enteros utilizando el siguiente
algoritmo:
23 Div 2 = 11
11 Div 2 = 5
5 Div 2 = 2 Se detiene cuando
2 Div 2 = 1 es 1
4*2=8
8 * 2 = 16
16 * 2 = 32
32 * 2 = 64
Inicio
// Definir e inicializar variables
entero: nro1, nro2, suma 0
// Leer Datos
Escribir (Ingresar dos nmeros:)
Leer (nro1, nro2)
// Calcula multiplicacin
Mientras (nro1 >= 1) Hacer
Si (nro1 Mod 2 = 1) entonces
suma suma + nro2
Fin_si
nro1 nro1 Div 2
nro2 nro2 * 2
Fin_mientras
Escribir (El producto es: , suma)
Fin
Ejemplo 03
Pseudocdigo que muestre los n trminos de la siguiente serie y calcule su
suma:
2 + 5 + 8 + 11 + 14 +
Inicio
// Definir e inicializar variables
entero: n, ter 2, con , suma 0
// Leer Datos
Escribir (Ingresar cantidad de trminos:)
Leer (n)
// Calcula serie y suma
con 1
Mientras (con <= n) Hacer
Escribir (ter)
suma suma + ter
ter ter + 3
con con + 1
Fin_mientras
Escribir (La suma es: , suma)
Fin
Ejemplo 04
Pseudocdigo que calcule la suma total y determine cuantos nmeros mltiplos
de M hay en los N primeros nmeros naturales, tal que M <= N.
Por ejemplo:
Si se desea saber cuantos mltiplos de 7 hay en los primeros 80 nmeros
naturales.
Diremos que existen 11 nmeros y son:
Inicio
// Definir e inicializar variables
entero: n, m, con, suma 0
// Leer Datos
Escribir (Ingresar cantidad de nmeros:)
Leer (n)
Escribir (Ingresar mltiplo a validar:)
Leer (m)
// Calcula serie y suma
con 1
Mientras (m <= n) Hacer
Escribir (m)
con con + 1
suma suma + m
m m+n
Fin_mientras
Escribir (La suma es: , suma)
Escribir (La cantidad de mltiplos de , m, encontrados en los , n,
primeros nmeros naturales es , con)
Fin
Ejemplo 05
Pseudocdigo que calcule el cuadrado de un nmero realizando slo sumas. El
cuadrado de un nmero n es la suma de los n primeros nmeros impares.
Ejemplo: 32 = 1 + 3 + 5 = 9.
Inicio
// Definir e inicializar variables
entero: n, cuad 0, ter 1, con
// Leer Datos
Escribir (Ingresar nmero:)
Leer (n)
// Calcula serie y suma
con 1
Mientras (con <= n) Hacer
cuad cuad + ter
ter ter + 2
con con + 1
Fin_mientras
Escribir (El cuadrado de , n, es: , cuad)
Fin
Ejemplo 06
Pseudocdigo que imprima la serie y calcule el producto de los n trminos de:
Inicio
// Definir e inicializar variables
entero: n, con
real : num 1, den 1, prod 1
// Leer Datos
Escribir (Ingresar cantidad de trminos:)
Leer (n)
// Calcula serie y multiplica
con 1
Mientras (con <= n) Hacer
Escribir (num, /, den, ^2)
prod prod * (num/(den^2))
num num + 2
den den + 1
con con + 1
Fin_mientras
Escribir (El producto es: , prod)
Fin
Ejemplo 07
Pseudocdigo que imprima la serie y calcule la suma de los n trminos de:
1 + 2 + 5 + 10 + 17 + 26 +
Inicio
// Definir e inicializar variables
entero: n, con, ter 1, suma 0, inc 1
// Leer Datos
Escribir (Ingresar cantidad de trminos:)
Leer (n)
con 1
// Calcula serie y suma
Mientras (con <= n) Hacer
Escribir (ter)
suma suma + ter
ter ter + inc
inc inc + 2
con con + 1
Fin_mientras
Escribir (La suma es: , suma)
Fin
Ejemplo 08
Pseudocdigo en el que se ingresa un nmero entero y se calcula:
a) La suma de sus dgitos
b) El nmero total (cantidad) de dgitos.
c) La cantidad de dgitos pares e impares
Para obtener cada digito emplearemos la operacin digito digito Mod 10, que
en valores es:
3897 Mod 10 = 7
389 Mod 10 = 9
38 Mod10 = 8
3 Mod 10 = 3
Inicio
// Definir e inicializar variables
entero: nro, digito, suma 0, c 0, cpar 0, cimpar 0
// Leer Datos
Escribir (Ingresar nmero:)
Leer (nro)
Mientras (nro>0) Hacer digito
nro Mod 10 suma
suma + digito c c+
1
Si (digito Mod 2 = 0) entonces
cpar cpar + 1
Sino
cimpar cimpar + 1
Fin_si
nro nro Div 10
Fin_mientras
Escribir (La suma es: , suma)
Escribir (El total de dgitos es: , c)
Escribir (La cantidad de digitos pares es: , cpar)
Escribir (La cantidad de digitos impares es: , cimpar)
Fin
Ejemplo 09
Pseudocdigo que calcula los salarios de un conjunto de N trabajadores,
conociendo la tarifa por hora y las horas trabajadas, asi como, la cantidad de
trabajadores que reciben un salario mayor o igual a S/.700. Considerar una
nica tarifa por hora para todos los trabajadores.
Inicio
// Definir e inicializar variables
entero: tar, n, con, hor, salario, conS 0
// Leer Datos
Escribir (Ingresar tarifa:)
Leer (tar)
Escribir (Ingresar cantidad de trabajadores:)
Leer (n)
// Calculo
con 1
Mientras (con <= n) Hacer
Escribir (Ingresar horas trabajadas del trabajador, con, :)
Leer (hor)
salario hor * tar
Si (salario >= 700) entonces
conS conS + 1
Fin_si
con con + 1
Escribir (El salario del trabajador , con, es , salario)
Fin_mientras
Escribir (La cantidad de trabajadores con salarios mayores o iguales a
S/.700.00 es: , conS)
Fin
Ejemplo 10
Durante un censo se registra los datos de n personas como: sexo (masculino,
femenino), edad y estado civil (soltero, casado, viudo, divorciado). Elaborar un
pseudocdigo que muestre el nmero de jvenes solteras que tienen entre 18 y
30 aos.
Inicio
// Definir e inicializar variables
entero: n, edad, con 1 , conM 0
caracter: sexo, estCiv
// Leer Datos
Escribir (Ingresar cantidad de personas:)
Leer (n)
// Calculo
con 1
Mientras (con <= n) Hacer
Escribir (Ingresar sexo (M)asculino, (F)emenino:)
Leer (sexo)
Escribir (Ingresar edad:)
Leer (edad)
Escribir (Ingresar estado civil (S)oltero, (C)asado, (V)iudo, (D)ivorsiado:)
Leer (estCiv)
Si (sexo = F and estCiv = S and edad>=18 and edad <=30) entonces
conM conM + 1
Fin_si
con con + 1
Fin_mientras
Escribir (La cantidad de mujeres solteras entre 18 y 30 aos son: , conM)
Fin
Ejemplo 11
Una organizacin de bienestar familiar registra los pesos de las N personas de
un centro poblado, a partir de estos datos, se desea determinar el promedio de
peso de los nios, jvenes, adultos y ancianos que existen en la zona.
Considerar la siguiente tabla de categoras:
Categora Edad
Nios 0 12
Jvenes 13 29
Adultos 30 59
Ancianos 60 ms
Inicio
// Definir e inicializar variables
entero: n, edad, con 1, conN 0, conJ 0, conA 0, conC 0
real: peso, sumaN 0, sumaJ 0, sumaA 0, sumaC 0,
promN,
promJ, promA, promC
// Leer Datos
Escribir (Ingresar cantidad de poblacin)
Leer (n)
// Calculo
con 1
Mientras (con <= n) Hacer
Escribir (Ingresar edad)
Leer (edad)
Escribir (Ingresar peso)
Leer (peso)
Si (edad <= 12) entonces
sumaN sumaN + peso
conN conN + 1
Sino
Si (edad <= 29) entonces
sumaJ sumaJ + peso
conJ conJ + 1
Sino
Si (edad <= 59) entonces
sumaA sumaA + peso
conA conA + 1
Sino
sumaC sumaC + peso
conC conC + 1
Fin_si
Fin_si
Fin_si
Fin_mientras
promN sumaN / conN
promJ sumaJ/ conJ
promA sumaA / conA
promC sumaC / conC
Escribir (El promedio de peso de los nios es: , promN)
Escribir (El promedio de peso de los jvenes es: , promJ)
Escribir (El promedio de peso de los adultos es: , promA)
Escribir (El promedio de peso de los ancianos es: , promC)
Fin
Ejemplo 12
Pseudocdigo para calcular el mximo comn divisor (M.C.D.) de dos nmeros a
y b, empleando el algoritmo de Euclides.
El algoritmo consiste en:
a) Dividir el mayor nmero entre el menor nmero, obteniendo el cociente q1 y
el resto r1.
b) Si r1 < > 0, se divide el menor nmero entre r1, obteniendo el cociente q2
y el resto r2.
c) Si r2 < > 0, se divide r1 entre r2 obteniendo cociente q3 y resto r3.
d) Este proceso continua hasta obtener un resto igual a 0.
e) El mximo comn divisor (M.C.D.) es el resto anterior al resto igual a 0.
Cociente
a 1560 432 264 168
Residuo 264 168
Observamos que a toma el valor de b y b toma el valor del residuo para lo cual
escribimos a byb residuo.
Inicio
// Definir variables
entero: a, b, residuo, n1, n2
// Leer Datos
Escribir (Ingresar dos nmeros:)
Leer (n1, n2)
// Calculo
Si (n1 > n2) entonces
a n1
b n2
Sino
a n2
b n1
Fin_si
Mientras (b > 0) Hacer
residuo a Mod b
a b
b residuo
Fin_mientras
Escribir (El mximo comn divisor es: , a)
Fin
Ejemplo 13
Para convertir un nmero en base diferente de 10 a base 10, emplearemos la
descomposicin polinmica, se denomina as por que tiene la caracterstica de
un polinomio donde la variable del polinomio viene a estar dado por la base en
la cual se ha escrito el nmero. Se pide realizar un Pseudocdigo para realizar la
descomposicin polinmica
Numero a
Resultado
convertir y su Proceso de Conversin
de la
correspondiente (descomposicion polinomica)
conversin
base
344(7 3*72 + 4*71 + 4*70 = 3*49 + 4*7 + 4 179
*1= 147 + 28 + 4
Para ir reduciendo cada nmero emplearemos la operacin nro nro Div 10,
que en valores es:
344 Div 10 = 34
34 Div 10 = 3
3 Div 10 = 0 Se detiene cuando es cero
Para obtener cada dgito emplearemos la operacin digito digito Mod 10, que
en valores es:
344 Mod 10 = 4
34 Mod 10 = 4
3 Mod 10 = 3
0 + 4 * 70 = 4
4 + 4 * 71 = 32
32 + 3 * 72 = 179
Inicio
// Definir e inicializar variables
entero: nro, nro1, base, digito, suma 0, expo 0
// Leer datos
Escribir (Ingresar un nmero y su base)
Leer (nro, base)
nro1 nro
Mientras( nro > 0) hacer
digito nro Mod 10
suma suma + digito * base ^ expo
expo expo +1
nro nro Div 10
Fin_mientras
Escribir (El nmero , nro1, en base 10 es , suma)
Fin
Ejemplo 14
Pseudocdigo para convertir un nmero decimal a una base que puede ser
binario u octal.
Existe varios sistemas de numeracin como:
El sistema binario utiliza los dgitos 0, 1
El sistema octal usa ocho dgitos 0, 1, 2, 3, 4, 5, 6 y 7.
El sistema hexadecimal utiliza 16 dgitos, del 0 al 9 y para los otros seis se
usan las letras A, B, C, D, E y F, que tienen valores 10, 11, 12, 13, 14 y 15,
respectivamente. Se usan indistintamente maysculas y minsculas.
En la tabla se muestran los primeros diecisiete nmeros decimales con su
respectiva equivalencia binaria, octal y hexadecimal.
10
10(10) =1010(2)
Inicio
// Definir e inicializar variables
entero: nro, nro1, base, residuo, nuevonro 0, coeficiente 1
cadena: mensa
// Lectura de datos
Escribir ("Ingrese numero en base decimal: " )
Leer (nro)
Escribir ("Ingrese base: ")
Leer (base)
nro1 nro
Mientras (nro >0) hacer
residuo nro Mod base
nuevonro nuevonro + coeficiente * residuo
coeficiente 10*coeficiente
nro nro Div base
Fin_mientras
Si (base = 2) entonces
mensa "Binario"
Fin_si
Si (base = 8) entonces
mensa "Octal"
Fin_si
Escribir (El nmero ,nro1, en , mensa, es , nuevonro)
Fin
Concatenar ( unir)
digito = nro Mod base nro = nro / base
cadena = digito + cadena
12 Mod 2 = 0 0+=0 12 Div 2 = 6
6 Mod 2 = 0 0 + 0 = 00 6 Div 2 = 3
3 Mod 2 = 1 1 + 00 = 100 3 Div 2 = 1
1 Mod 2 = 1 1 + 100 = 1100 1 Div 2 = 0
El resultado es 1100.
Inicio
// Definir e inicializar variables
entero: nro,nro1,base,residuo
cadena: nuevonro , mensa
// Lectura de datos
Escribir (Ingrese numero en base decimal:)
Leer (nro)
Escribir (Ingrese base:)
Leer (base)
nro1 nro
Mientras (nro >0) hacer residuo
nro Mod base nuevonro
residuo + nuevonro nro nro
Div base
Fin_mientras
Si (base = 2) entonces
mensa Binario
Fin_si
Si (base = 8) entonces
mensa Octal
Fin_si
Escribir (El nmero ,nro1, en , mensa, es , nuevonro)
Fin
Inicio
// Definir e inicializar variables
entero: nro, base, residuo, nro1
cadena: nuevonro , mensa
// Lectura de datos
Escribir (Ingresar nmero en base dcimal: )
Leer (nro)
Escribir (Ingresar base: )
Leer (base)
nro1 nro
Mientras (nro > 0) hacer
residuo nro Mod base
Si (residuo <= 9) entonces
nuevonro residuo + nuevonro
Fin_si
Si (residuo <= 10) entonces
nuevonro a + nuevonro
Fin_si
Si (residuo <= 11) entonces
nuevonro b + nuevonro
Fin_si
Si (residuo <= 12) entonces
nuevonro c + nuevonro
Fin_si
Si (residuo <= 13) entonces
nuevonro c + nuevonro
Fin_si
Si (residuo <= 14) entonces
nuevonro d + nuevonro
Fin_si
Si (residuo <=15 ) entonces
nuevonro f + nuevonro
Fin_si
Si (base = 2) entonces
mensa Binario
Fin_si
Si (base = 8) entonces
mensa Octal
Fin_si
Si (base = 16) entonces
mensa Hexadecimal
Fin_si
nro nro Div base
Fin_mientras
Escribir (nro1, en base , mensa, es , nuevonro)
Fin
Repetir
Accin
Hasta_que (expresin_lgica)
Ejemplo 15
Pseudocdigo que imprime los 10 primeros trminos de la serie:
1, 3, 5, 7, ...
Inicio
// Definir e inicializar variables
entero: termino 1, con 1
// Calcula e imprime termino
Repetir
Escribir (termino)
termino termino + 2
con con + 1
Hasta_que (con = 10)
Fin
Ejemplo 16
Pseudocdigo que encuentra el menor nmero, de un conjunto de nmeros
positivos ingresados. El pseudocdigo termina cuando se ingresa el cero o un
nmero negativo.
Inicio
// Definir e inicializar variables
entero: nro, menor 99999
// Calcula e imprime trmino
Repetir
Escribir (Ingresar nmero)
Leer (nro)
Si (nro < menor) entonces
menor nro
Fin_si
Hasta_que (nro <= 0)
Escribir (El menor nmero ingresado es , menor)
Fin
Ejemplo 17
Pseudocdigo que genere una secuencia de nmeros utilizando el siguiente
algoritmo:
Nmero Proceso
7 7 es impar, entonces 7 * 3 + 1 = 22
22 22 es par, entonces 22 / 2 = 11
11 11 es impar, entonces 11 * 3 + 1 =34
34 34 es par, entonces 34 / 2 = 17
17 17 es impar, entonces 17 * 3 + 1 = 52
52 52 es par, entonces 52 / 2 = 26
26 26 es par, entonces 26 / 2 = 13
12 13 es impar, entonces 13 * 3 + 1 = 40
40 40 es par, entonces 40 / 2 = 10
10 10 es par, entonces 10 / 2 = 5
5 5 es impar, entonces 5 * 3 + 1 = 16
16 16 es par, entonces 16 / 2 = 8
8 8 es par, entonces 8 / 2 = 4
4 4 es par, entonces 4 / 2 = 2
2 2 es par, entonces 2 / 2 = 1
1
Inicio
// Definir variables
entero: nro, residuo
// Leer Datos
Escribir (Ingresar nmero:)
Leer (nro)
// Calcula la serie
Repetir
residuo nro Mod 2
Si (residuo = 0) entonces
nro nro Div 2
Sino
nro 3 * nro + 1
Fin_si
Escribir (nro)
Hasta_que (nro = 1)
Fin
Ejemplo 18
Pseudocdigo que calcule el promedio de nmeros positivos y el promedio de
nmeros negativos de un conjunto de nmeros ingresados. El pseudocdigo
termina cuando se ingresa el cero.
Variables a utilizar en el pseudocdigo nro
cada nmero ingresado sumap
suma de nmeros positivos suman
suma de nmeros negativos
cp contador de nmeros positivos cn
contador de nmeros negativos promp
promedios de los nmeros positivos promn
promedios de los nmeros negativos
Inicio
// Definir e inicializar variables
entero: nro, sumap 0, suman 0, cp 0, cn
0 real: promp, promn
// Ingreso y clculo
Repetir
Escribir (Ingresar nmero)
Leer (nro)
Si (nro > 0) entonces
sumap sumap + nro
cp cp + 1
Sino
Si (nro < 0) entonces
suman suman + nro
cn cn + 1
Fin_si
Fin_si
Hasta_que (nro = 0)
promp sumap / cp
promn suman / cn
Escribir (El promedio de los nmeros positivos es , promp)
Escribir (El promedio de los nmeros negativos es , promn)
Fin
Ejemplo 19
Pseudocdigo que lee N consumos de un restaurante. Si el consumo ingresado
excede los S/.70.00, se le descontar el 15%. Mostrar el monto de cada
consumo realizado y el total que recauda el restaurante por todos los consumos.
Ejemplo 20
Pseudocdigo que calcula la compra de N productos de diferentes precios, dicha
compra se realiza hasta que el cliente ya no desea seguir comprando. Mostrar el
monto total que paga el cliente.
Inicio
// Definir e inicializar variables
entero: cant
real: precio, subTot, total 0
caracter: resp
// Clculo
Repetir
Escribir (Ingresar precio del producto)
Leer (precio)
Escribir (Ingresar cantidad de productos)
Leer (cant)
subTot precio * cant
total total + subTot
Escribir (Desea seguir comprando (S/N)?)
Leer (resp)
Hasta_que(resp = N)
Escribir (El total a pagar es , total)
Fin
Ejemplo 21
Pseudocdigo que calcula el monto total que se paga por una entrada a un
evento cultural, los precios varan de acuerdo al tipo de entrada:
Adems el precio tiene un incremento del 12% por impuesto. Validar el ingreso
de datos.
Inicio
// Definir variables
real: precio, inc
caracter: tipo
// Clculo
Repetir
Escribir (Ingresar tipo de entrada (V)ip, (P)latea, Popu(L)ar)
Leer (tipo)
Si (tipo <> V and tipo <> P and tipo <> L)
Escribir (Tipo no existe)
Fin_si
Hasta_que (tipo = V or tipo = P or tipo = L)
Segn sea (tipo)
V: precio 70.00
P: precio 50.00
L: precio 30.00
Fin_segn
inc precio * 0.12
precio precio + inc
Escribir (El precio final a pagar es , precio)
Fin
Ejemplo 22
Un entrenador le ha propuesto a un atleta recorrer una ruta de cinco kilmetros
durante 10 das, para determinar si es apto para competir. Para que el atleta
sea considerado apto debe cumplir por lo menos una de las siguientes
condiciones:
Que en ninguna de las pruebas haga un tiempo mayor a 16 minutos.
Que su promedio de tiempos sea menor o igual a 15 minutos.
Inicio
// Definir e inicializar variables
entero: tpo, ct 0, suma 0, con
0 real: prom
// Clculo
Repetir
Escribir (Ingresar tiempo en minutos)
Leer (tpo)
Si (tpo > 16) entonces
ct ct + 1
Fin_si
suma suma + tpo
con con + 1
Hasta_que (con = 10)
prom suma / 10
Si ((ct = 0) or (prom <= 15))
Escribir (Si es apto para competir)
Sino
Escribir (No es apto para competir)
Fin_si
Fin
Ejemplo 23
Se ingresan los resultados de la evaluacin de un cierto nmero de alumnos del
curso de Programacin; por cada alumno se informa: su asistencia (1 =
presente; 0 = ausente) y su calificacin. A partir de esta informacin se debe
calcular:
La cantidad y el porcentaje de alumnos presentes.
Promedio de calificaciones de alumnos presentes.
Si un alumno esta ausente no se registra su calificacin. El pseudocdigo
termina cuando se ingresa como asistencia un valor diferente a 1 0.
Inicio
// Definir e inicializar variables
entero: asis, calf, suma 0, cap 0, caa 0, cant
0 real: porp, prom
// Clculo
Repetir
Escribir (Ingresar asistencia (1)Presente, (0)Ausente)
Leer (asis)
Si (asis = 1)
Escribir (Ingresar calificacin)
Leer (calf)
suma suma + calf
Fin_si
Segn sea (asis) hacer
1 : cap cap + 1
0 : caa caa + 1
Fin_segn
cant cant + 1
Hasta_que (asis <> 0 or asis <>1)
porp (cap * 100) / cant
prom suma / cap
Escribir (La cantidad de alumnos presentes es , cap)
Escribir (El porcentaje de alumnos presentes es , porp)
Escribir (El promedio de calificaciones de los alumnos presentes es , prom)
Fin
Ejemplo 24
Pseudocdigo que lee de forma consecutiva y aleatoria una serie de nmeros, y
finalice cuando se ingresa un nmero mayor que la suma de los dos nmeros
anteriores ingresados, mostrndose la cantidad de nmeros ingresados y los
tres nmeros que cumplieron la condicin.
Inicio
// Definir e inicializar variables
entero: nro, sw 0, n1 0, n2 0, con 0, suma
// Clculo
Repetir
Escribir (Ingresar nmero)
Leer (nro)
Si (con >= 2)
suma n1 + n2
Si (nro > suma) entonces
sw 1
Fin_si
Fin_si
Si (sw = 0) entonces
Si (con Mod 2 = 0) entonces
n1 nro
Sino
n2 nro
Fin_si
Fin_si
con con + 1
Hasta_que (sw = 1)
Escribir (La cantidad de nmeros ingresados es , con)
Escribir (Los nmeros que cumplieron la condicion son , n1, n2, nro)
Fin
Ejemplo 25
Pseudocdigo que lee nmeros de forma consecutiva y aleatoria hasta que se
ingrese el nmero 0 (cero). Calcular la suma de todos los nmeros ingresados
antes de que aparezca el primer nmero mayor a 150, asi como la suma de
todos los nmeros que entran a continuacin de ste, hasta la aparicin del
cero.
Mostrar la cantidad de nmeros ingresados (sin contar el cero ni el primer
nmero mayor de 150), en la primera y la segunda suma.
Contemplar la posibilidad de que entre antes el 0 que el primer nmero mayor
de 150.
Inicio
// Definir e inicializar variables
entero: nro, sw 0, suma1 0, suma2 0, con 0
// Clculo
Repetir
Escribir (Ingresar nmero)
Leer (nro)
Si (nro <> 0) entonces
con con + 1
Fin_si
Si (sw = 1) entonces
suma2 suma2 + nro
Fin_si
Si ((nro < 150) and (sw = 0)) entonces
suma1 suma1 + nro
Sino
sw = 1
con con - 1
Fin_si
Hasta_que (nro = 0)
Escribir (La cantidad de nmeros ingresados es , con)
Escribir (La primera suma es , suma1)
Escribir (La segunda suma es , suma2)
Fin
Ejemplo 26
Suponga que se piden X soles prestados a un banco, con el acuerdo de devolver
Y soles cada mes hasta devolver el prstamo completo. Parte del pago mensual
sern los intereses calculados como el i por ciento del capital por devolver en
ese momento. El resto del pago mensual se aplica a reducir el capital a
devolver. El algoritmo debe determinar:
La cantidad de intereses que se paga cada mes.
La cantidad de dinero aplicada cada mes al capital por devolver.
La cantidad acumulada de intereses.
La cantidad del prstamo an pendiente al final de cada mes.
La cantidad probable que se devuelve en el ltimo pago.
Inicio
// Definir e inicializar variables
real: x, i, inte, y, ma, suma 0
// Leer dato
Escribir (Ingresar monto prestado)
Leer (x)
Escribir (Ingresar interes)
Leer (i)
Escribir (Ingresar monto que se devuelve)
Leer (y)
Repetir
inte (i/100) * x
Escribir (El interes del mes es, inte)
ma y - inte
Si (y > x) entonces
Escribir (El monto aplicado al capital es , x)
Sino
Escribir (El monto aplicado al capital es , ma)
Fin_si
x x - ma
Si (x < 0) entonces
Escribir (El monto pendiente es 0)
Escribir (Se le devuelve , -x)
Sino
Escribir (El monto pendiente es ,x)
Fin_si
suma suma + inte
Hasta_que (x > 0)
Escribir (La cantidad acumulada de inters es , suma)
Fin
4.4.Estructura repetitiva Desde Fin_desde
Ejemplo 27
Pseudocdigo que calcule la suma de los cuadrados y los cubos de los N
primeros nmeros naturales.
Inicio
// Definir e inicializar variables
entero: n, nro, cuad, cubo, sumaCuad 0, sumaCubo 0
// Leer dato
Escribir (Ingresar cantidad de nmeros naturales)
Leer (n)
Desde (nro 1) hasta (nro <= n) con incremento 1 Hacer
cuad nro * nro
sumaCuad sumaCuad + cuad
cubo nro * nro * nro
sumaCubo sumaCubo + cubo
Fin_desde
Escribir(La suma de los cuadrados es , sumaCuad)
Escribir(La suma de los cubos es , sumaCubo)
Fin
Explicacin
Para realizar el ejercicio planteado se definen las variables enteras n, nro, cuad,
cubo y se define e inicializa en cero las variables sumaCuad, sumaCubo:
entero: n, nro, cuad, cubo, sumaCuad 0, sumaCubo 0
Ejemplo 28
Pseudocdigo que calcula el numero PI, de acuerdo a la siguiente frmula:
PI/4 = 1 - 1/3 + 1/5 - 1/7 + ...
Inicio
// Definir e inicializar variables
entero : n, con
real : pi, suma 0, num 1, den 1
// Leer dato
Escribir (Ingresar cantidad de trminos)
Leer (n)
Desde (con 1) hasta (con <= n) con incremento 1 Hacer
suma suma + (num / den)
num num * -1
den den + 2
Fin_desde
pi suma * 4
Escribir (El valor de PI es , pi)
Fin
Ejemplo 29
Pseudocdigo para encontrar todos los divisores de un nmero ingresado. Un
nmero a es divisor de otro nmero b, cuando el residuo de la divisin de b
entre a es cero, en otras palabras cuando el residuo es exacto.
As pues, decimos que 5 es divisor de 20, porque 20 Mod 5 nos da residuo cero.
Por ejemplo, los divisores de 24 son: 1, 2, 3, 4, 6, 8, 12, 24, para hallar estos
valores es necesario dividir al nmero 24 con valores comprendidos entre 1 y
24, los cuales se trabajarn mediante la variable i, si el residuo de la divisin
del nmero 24 entre i es cero entonces i es uno de los divisores de 24.
Nro Mod i
24 Mod 1 = 0 entonces 1 es divisor de 24
24 Mod 2 = 0 entonces 2 es divisor de 24
24 Mod 3 = 0 entonces 3 es divisor de 24
24 Mod 4 = 0 entonces 4 es divisor de 24
24 Mod 5 <> 0 entonces 5 no es divisor de 24
y as sucesivamente
Inicio
// Definir e inicializar variables
entero: nro, i 1
// Leer datos
Escribir (Ingresar nmero)
Leer (nro)
Desde (i 1) hasta (i <= nro) con incremento 1 hacer
Si (nro Mod i = 0) entonces
Escribir (i)
Fin_si
Fin_desde
Fin
Ejemplo 30
Pseudocdigo que calcule el factorial de un nmero entero. El factorial de un
nmero n se representa por n! y su frmula es:
n ! = 1 * 2 * 3 * 4 * * (n-2) * (n-1) * n
As por ejemplo:
1! = 1
2! = 1*2=2
3! = 1*2*3=6
4! = 1 * 2 * 3 * 4 = 24
4! = 3 ! * 4 = 24
n! = (n-1)! * n
fact fact * i
Variables a utilizar en el pseudocdigo
i controla el bucle desde
fact calcula el factorial
nro numero al cual se va a calcular el factorial
Inicio
// Definir e inicializar variables
entero i, nro, fact 1
// Leer Datos
Escribir (Ingresar nmero:)
Leer (nro)
// Calcula el factorial
Desde (i 1) hasta (i <= nro) con incremento 1 hacer
fact fact * i
Fin_desde
Escribir (El factorial es: , fact)
Fin
Resultados
Iteracin Expresin Valor de la del cuerpo
Nro lgica Expresin del bucle Incremento
i i<=5 lgica fact = fact * i i=i+1
1 1<= 5 true 1 2
2 2<= 5 true 2 3
3 3 <=5 true 6 4
4 4 <=5 true 24 5
5 5<= 5 true 120 6
6 6<= 5 false Finaliza la sentencia desde
Ejemplo 31
Pseudocdigo que obtenga el cuadrado de un nmero entero utilizando la
formula:
2
n = 1 + 3 + 5 + . . . + 2n-1.
Si n = 1 2*11=1
Si n = 2 2*2-1=3
Si n = 3 2*31=5
1 0+1
4 1+3
9 4+5
Inicio
// Definir e inicializar variables
entero: nro, i, termino, suma 0
// Leer Datos
Escribir (Ingresar nmero:)
Leer (nro)
Desde (i 1) hasta (i <= nro) con incremento 1 hacer
termino 2*i-1
Escribir (termino)
suma suma + termino
Fin-desde
Escribir (El nmero al cuadrado es : , suma)
Fin
Ejemplo 32
Pseudocdigo para determinar si un ao es bisiesto en un rango dado. Un ao
es bisiesto si es mltiplo de 4 pero no mltiplo de 100 excepto los mltiplos de
400.
Como tenemos que hallar los aos bisiestos en un rango, empleamos un bucle
repetitivo que permita recorrer los aos determinados en el rango aoinicio y
aotermino que definen el ao de inicio y trmino respectivamente, de esta
manera usamos un contador ao que empieza en aoinicio y termina en
aotermino que se ir incrmentando en 1, el mismo que definir cada ao que
se evala como bisiesto. De esta manera, dentro del bucle realizamos los
clculos correspondientes
Inicio
// Definir variables
entero: aoinicio, aotermino, a
// Leer dato
Escribir (Ingresar ao inicial y ao final)
Leer (aoinicio, aotermino)
Desde (a aoinicio) hasta (a <= aotermino) con incremento 1 Hacer
Si ((a Mod 4 = 0) and (a Mod 100 <> 0) or (a Mod 400 = 0)) entonces
Escribir (El ao , a, es bisiesto)
Fin_si
Fin_desde
Fin
Ejemplo 33
Pseudocdigo que muestra y calcula el promedio de todos los nmeros pares
comprendidos entre a y b. Indistintamente a puede ser menor que b o b menor
que a.
Ejemplo 34
Pseudocdigo que lee dos nmeros, el primero representa el nmero a ser
transformado, y el segundo el transformador, se debe hacer girar hacia la
derecha el nmero a transformarse, tantas veces lo indique el transformador, e
ir desplegando el nmero despus de cada transformacin.
Inicio
// Definir e inicializar variables
entero: n1, n2, aux, dig, cd 0, con
// Leer dato
Escribir (Ingresar dos nmeros)
Leer (n1, n2)
aux n1
Mientras (aux > 0) hacer
dig aux Mod 10
cd cd + 1
aux aux Div 10
Fin_mientras
cd cd - 1
Desde (con 0) hasta (con < n2) con incremento 1 Hacer
dig n1 Mod 10
n1 n1 Div 10
dig dig * 10 ^ cd
n1 dig + n1
Fin_desde
Escribir(El nmero transformado es , n1)
Fin
Ejemplo 35
Pseudocdigo para averiguar si un nmero ingresado es primo. Un nmero es
primo, si solo tiene como divisores al mismo nmero y a la unidad.
Inicio
// Declarar e inicializar variables
entero: nro, d, con 0
// Leer Datos
Escribir (Ingresar nmero:)
Leer (nro)
Desde (d 1) hasta (d <= nro) con incremento 1 hacer
Si (nro Mod d = 0) entonces
con con + 1
Fin_si
Fin-desde
Si (con <= 2)
Escribir (El nmero es primo)
Sino
Escribir (El nmero no es primo)
Fin_si
Fin
Ejemplo 36
Una empresa almacena los datos de N empleados, para esto, en un proceso
repetitivo se ingresa el sexo (masculino, femenino) y el salario de cada
empleado. Se pide calcular:
a) El mayor y el menor salario
b) El promedio de salarios.
c) La cantidad de mujeres y varones que trabajan en esa empresa
Inicio
// Definir e inicializar variables
entero: n, con, conVar 0, conMuj 0
real: sal, mayor 0, menor 99999, suma 0,
prom caracter: sexo
// Leer dato
Escribir (Ingresar cantidad de empleados)
Leer (n)
Desde (con 1) hasta (con <= n) con incremento 1 Hacer
Escribir (Ingresar sexo)
Leer (sexo)
Escribir (Ingresar salario)
Leer (sal)
Si (sal > mayor) entonces
mayor sal
Fin_si
Si (sal < menor) entonces
menor sal
Fin_si
suma suma + sal
Segn sea (sexo) hacer
M : conVar conVar + 1
F : conMuj conMuj + 1
Fin_segn
Fin_desde
prom suma / n
Escribir (El mayor salario es , mayor)
Escribir (El menor salario es , menor)
Escribir (El promedio de salarios es , prom)
Escribir (La cantidad de varones que trabajan en la empresa es , conVar)
Escribir (La cantidad de mujeres que trabajan en la empresa es , conMuj)
Fin
Ejemplo 37
Pseudocdigo que indica mediante un mensaje si dos nmeros son amigos o no.
Se dice que dos nmeros son amigos si la suma de los divisores del primer
nmero (excepto l mismo) coincide con el segundo nmero y viceversa.
1 + 2 + 4 + 5 + 10 + 11 + 20 + 22 + 44 + 55 + 110 = 284
1 + 2 + 4 + 71 + 142 = 220
Ejemplo 38
Se ha seleccionado n nmeros de personas para realizar una encuesta, en un
proceso repetitivo se ingresa el grado de instruccin y la edad de cada persona.
Se desea saber el promedio de edades, la mayor edad y el porcentaje de
personas con instruccin Primaria, Secundaria y Superior (P, S, R).
Inicio
// Definir e inicializar variables
entero: n, con, edad, suma 0, mayor 0, conp 0, cons 0, conr
0 real: prom, p1, p2, p3
caracter: grad
// Leer Datos
Escribir (Ingresar cantidad de personas:)
Leer (n)
Desde (con 1) hasta (con <= n) con incremento 1 hacer
Escribir (Ingrese grado de instruccin (P)rimaria, (S)ecunadaria, supe(R)ior:)
Leer (grad)
Escribir (Ingrese edad:)
Leer (edad)
suma suma + edad
Si (edad > mayor) entonces
mayor edad
Fin_si
Segn sea (grad) hacer
P: conp conp + 1
S: cons cons + 1
R: conr conr + 1
Fin_segn
Fin-desde
prom suma / n
p1 (conp * 100) / n
p2 (cons * 100) / n
p3 (conr * 100) / n
Escribir (El promedio de edades es , prom)
Escribir (La mayor edad es , mayor)
Escribir (El porcentaje de personas con instruccin primaria es , p1)
Escribir (El porcentaje de personas con instruccin secundaria es , p2)
Escribir (El porcentaje de personas con instruccin superior es , p3)
Fin
Ejemplo 39
Bucle anidado Desde dentro de otro Desde, para hallar la tabla de multiplicar
del 1 y del 2. Se pide la siguiente salida:
Ejemplo 40
Un centro de estudios desea saber cul ha sido el promedio ms alto, de un
conjunto de 120 alumnos, sabiendo que cada alumno a llevado 5
asignaturas.
Inicio
// Definir e inicializar variables
entero: nota, suma 0, prom, mayor 0, con1 1, con2 1
// Calculo
Mientras (con1 <= 120) Hacer
Mientras (con2 <= 5) Hacer
Escribir (Ingresar nota de asignatura, con, :)
Leer (nota)
suma suma + nota
Fin_mientras
prom suma / 5
Si (prom > mayor) entonces
mayor prom
Fin_si
Fin_mientras
Escribir (El mayor promedio es: , mayor)
Fin
Ejemplo 41
Pesudocdigo que reduce una fraccin a su mnima expresin.
Por ejemplo:
Si se ingresa 36 / 48
num den
36 48 2
18 24 2
9 12 3
3 4
En su mnima expresin es 3 / 4
Inicio
// Definir e inicializar variables
entero: num, den, d 2
// Leer Datos
Escribir (Ingresar fraccin:)
Leer (num, den)
// Calcula serie y multiplica
Mientras ((d < num) and (d < den)) Hacer
Mientras ((num mod d = 0) and (den mod d = 0)) Hacer
num num Div d
den den Div d
Fin_mientras
d d+1
Fin_mientras
Escribir (La fraccin en su mnima expresin es: , num, /, den)
Fin
Ejemplo 42
Pseudocdigo que lea N notas de un estudiante y calcule su promedio,
sabiendo que se elimina la nota mas baja. Se debe validar el ingreso de
notas, que debe estar comprendido entre 0 y 20.
Inicio
// Definir e inicializar variables
entero: n, con, nota, menor 21
real: suma 0, prom
Escribir (Ingresar cantidad de notas)
Leer (n)
// Calculo
con 1
Mientas (con <= n)
Repetir
Escribir (Ingresar nota)
Leer (nota)
Hasta_que(nota >= 0 and nota <= 20)
suma suma + nota
con con + 1
Si (nota < menor)
menor nota
Fin_si
Fin_mientras
prom (suma menor) / (n 1)
Escribir (El promedio es , prom)
Fin
Ejemplo 43
Pseudocdigo para encontrar todos los nmeros que sean capicas en un
rango dado. Un nmero es capica o poliandro, si al invertir el nmero nos
da el mismo nmero.
Inicio
// Definir e inicializar variables
entero: vi, vf, nro, digito, inver 0, i
// Leer datos
Escrbir (Ingresar el valor inicial y final de un rango de nmeros)
Leer (vi, vf)
// Calcula nmero capica
Desde (i vi) hasta (i<= vf) com incremento 1 Hacer
nro i
inver 0
Mientras (nro >0) Hacer
digito nro Mod 10
inver 10 * inver + digito
nro nro Div 10
Fin_ mientras
Si (inver = i) entonces
Escribir (inver)
Fin_si
Fin_desde
Fin
Ejemplo 44
Pseudocdigo para buscar el nmero del tarot de una persona; para hallar el
nmero del tarot, se tiene que sumar cada uno de los nmeros de la fecha
de nacimiento de una persona y a continuacin reducirlos hasta obtener un
solo dgito.
Inicio
// Definir e inicializar variables
entero: d, m, a, nro 0, digito, tarot 0
// Leer datos
Escribir (Ingresar fecha)
Leer (d, m, a)
nro d+m+a
Mientras (nro >9) Hacer
tarot 0
Mientras (nro > 0) Hacer
digito nro Mod 10
tarot tarot + digito
nro nro Div 10
Fin_mientras
nro tarot
Fin_mientras
Escribir (El nmero del tarot es , tarot)
Fin
Ejemplo 45
Pseudocdigo para hallar los nmeros primos en un rango dado, un nmero
es primo si es divisible por si mismo y por la unidad. Algunos nmeros
primos son:
1 2 3 5 7 11 13
Inicio
// Definir variables
entero: vi, vf, nro, k, p
// Leer datos
Escribir (Ingresar valor inicial y final de un rango)
Leer (vi, vf)
// Calcula los nmeros primos
Desde (nro vi) hasta (nro <= vf) con incremento 1 hacer
p 0
Desde (k 1) hasta (k <= nro) con incremento 1 hacer
Si (nro Mod k = 0) entonces
p p+1
Fin_si
Fin_desde
Si (p <= 2 ) entonces
Escribir (nro)
Fin_si
Fin_desde
Fin
Ejemplo 46
Pseudocdigo que solicite un valor no negativo (si se ingresa un valor
negativo volver a pedir el nmero hasta que se ingrese un nmero
positivo), una vez ingresado el nmero mostrar los nmeros naturales desde
el 1 hasta el nmero ingresado de forma consecutiva de manera que se vaya
mostrando un nmero menos hasta que se muestre solo la unidad.
Inicio
// Definir variables
entero: nro, aux, con, n
// Leer Datos
Repetir
Escribir (Ingresar nmero:)
Leer (nro)
Hasta_que (nro>0)
aux nro
Desde (con 1) hasta (con <= aux) con incremento 1 hacer
Desde (n 1) hasta (n <= nro) con incremento 1 hacer
Escribir (n)
Fin_desde
nro nro -1
Fin-desde
Fin
Ejemplo 47
Pseudocdigo que permita ingresar nmeros enteros, y calcule el factorial de
cada nmero ingresado. El algoritmo termina cuando se ingresa un nmero
negativo.
Inicio
// Definir variables
entero: nro, fact, con
// Leer Datos
Repetir
Escribir (Ingresar nmero:)
Leer (nro)
fact 1
Si (nro >= 0) entonces
Desde (con 1) hasta (con <= nro) con incremento 1 hacer
fact fact * con
Fin_desde
Escribir (El factorial de , nro, es , fact)
Fin_si
Hasta_que (nro < 0)
Fin
Ejemplo 48
Se desea calcular los sueldos semanales de N obreros; durante los 5 das de
la semana se registran la cantidad de horas diarias y el turno en el que
trabaj el obrero. Un obrero puede alternar su trabajo en cualquiera de los
dos turnos. La tarifa de cada hora trabajada para el turno maana es de
S/23.00 y para el turno tarde S/25.40. Adems, si un obrero trabaj durante
una semana ms de 40 horas, se le pagar S/.12.00 por cada hora adicional
a las 40.
Inicio
// Definir e inicializar variables
entero: n, hor, dia, con 0, totHor
caracter: tur
real: pagoDia, pagoSem, pagoExtra
// Leer Datos
Escribir (Ingresar cantidad de obreros:)
Leer (n)
Repetir
pagoSem 0
totHor 0
Desde (dia 1) hasta (dia <= 5) con incremento 1 hacer
Escribir (Ingresar turno (M)aana, (T)arde)
Leer (tur)
Escribir (Ingresar cantidad de horas trabajadas)
Leer (hor)
Segn sea (tur) hacer
M: pagoDia hor * 23.00
T : pagoDia hor * 25.40
Fin_segn
pagoSem pagoSem + pagoDia
totHor totHor + hor
Fin_desde
Si (totHor >40) entonces
pagoExtra (hor 40) * 12.00
Fin_si
pagoSem pagoSem + pagoExtra
Escribir (El pago semanal es , pagoSem)
con con + 1
Hasta_que (con = n)
Fin
Son bucles que nunca terminan (no tienen fin). Pueden implementarse
fcilmente utilizando las sentencias Mientras o Repetir Hasta_que.
Generalmente son condiciones no deseadas y el programador las utiliza
segn su criterio, colocando en su interior una instruccin que fuerza la
terminacin del bucle, para nuestro caso se utiliza la palabra Salir (break).
Ejemplo 49
Pseudocdigo que genera una secuencia de nmeros utilizando el siguiente
algoritmo:
Empezamos por cualquier nmero entero positivo
Si es par, Lo dividimos por dos, si es impar lo multiplicamos por tres y le
sumamos 1
Repetimos el segundo paso con el nmero resultante, la secuencia se
puede repetir indefinidamente, detenerlo hasta que aparezca el primer
nmero 1
Inicio
// Definir variable
entero: nro
// Leer Datos
Escribir (Ingresar nmero que inicia la serie:)
Leer (nro)
Mientras (verdadero) hacer // bucle infinito
Si (nro Mod 2 = 0)
nro nro / 2
Sino
nro 3*nro + 1
Fin_si
Escribir (nro)
Si (nro = 1) entonces // cuando nro es igual a 1
Salir // termina el bucle infinito
Fin_si
Fin_mientras
Fin
Ejemplo 50
Pseudocdigo que muestra el mensaje BUCLE INFINITO infinitas veces.
Inicio
Mientras (verdadero)
Escribir (BUCLE INFINITO)
Fin_mientras
Fin
Ejemplo 51
Pseudocdigo que imprima el mensaje es par o impar, en caso se ingrese un
nmero entre 3 y 13, sino est en el intervalo, imprimir el mensaje fuera de
rango.
Inicio
// Definir e inicializar variable
lgico: r falso
Repetir
Escribir (Ingresar nmero)
Leer (nro)
Si (nro >= 3 and nro <= 13) entonces
Si ( nro Mod 2 = 0 ) entonces
Escribir (Es par) // es par
Sino
Escribir (Es impar) // es impar
Fin_si
r verdadero // r se hace verdadero para que
// salga del bucle infinito
Sino
Escribir (No esta entre 3 y 13)
r falso // r se hace falso para que siga en
el bucle infinito
Fin_si
Hasta_que (r)
Fin
4.6.Ejercicios propuestos