You are on page 1of 101

Programacin estructurada

1. Definicin
La programacin estructurada es un conjunto de tcnicas utilizadas para escribir
programas de forma clara.
La programacin estructurada se basa en el diseo descendente, esto es, se
plantea una operacin como un todo y se divide en segmentos ms sencillos o de
menor complejidad, facilitando as el desarrollo de un programa; una vez terminado
todos los segmentos del programa se procede a unirlos.
La programacin estructurada logra minimizar la complejidad y errores de los
programas.
La principal desventaja de la programacin estructurada, es que en el momento de
hacerse demasiado grande puede resultar bastante problemtico su manejo, ya que
todo se constituye en un solo bloque.
Utiliza nicamente tres estructuras: la secuencial, la selectiva y la iterativa.
2. Estructura secuencial
Se representa por una sentencia un conjunto de sentencias (a la que en adelante
llamaremos accin) que se ejecutan una a continuacin de otra a modo de
secuencia. Las sentencias se suceden de tal modo que la salida de una es la
entrada de la siguiente, y as sucesivamente hasta finalizar el algoritmo. Su sintaxis
es:
Pseudocodigo

Diagrama de flujo
inicio

Inicio
Accin1
Accin2
.
.
.
AccinN

Accion1
Accion2

.
.
.

Fin

AccionN
Fin

2.1.

Ejercicios resueltos

Ejemplo 01
Pseudocdigo para sumar dos nmeros.
Lectura de datos
nro1, nro2

Impresin de datos
suma

nro1 + nro2

suma

Variables a utilizar en el pseudocdigo


nro1
primer nmero
nro2
segundo nmero
suma
suma 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:
area = base * altura
Lectura de datos
base, altura

Impresin de datos
area

base * altura

area

Variables a utilizar en el pseudocdigo


base
base del rectngulo
altura
altura del rectngulo
area
rea del rectngulo
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

nro
suma

unidades
nro Mod 10
nro
nro Div 10
decenas
nro Mod 10
nro
nro Div 10
centenas
nro Mod 10
unidades + decenas + centenas

Variables a utilizar en el pseudocdigo


nro
nmero ingresado de tres dgitos
suma
suma de los dgitos del nmero
unidades
unidades del nmero
decenas
decenas del nmero
centenas
centenas del nmero
Inicio
// Definir e inicializar variables
entero: nro, unidades, decenas, centenas, suma
// 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

suma

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
8
10
19

:
:

19

1
15
58
74
60
14

:
:
60
1
:

56
43
99
60
39

60
1

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.
Lectura de datos
hor1, min1, seg1
hor2, min2, seg2

Impresin de datos
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

hor, min, seg

Variables a utilizar en el pseudocdigo


hor1
horas del primer tiempo
min1
minutos del primer tiempo
seg1
segundos del primer tiempo
hor2
horas del segundo tiempo
min2
minutos del segundo tiempo
seg2
segundos del segundo tiempo
llevaMin
minutos que se lleva
llevaHora
hora que se lleva
hor
horas resultante
min
minutos resultante
seg
segundos resultante
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
El siguiente cuadro muestra resultados con datos de prueba, para diferentes
valores de la variable centi.
centi
10
20
30
40

faren
50
68
86
104

Lectura de datos
centi

Impresin de datos

faren 9/5*centi +32

faren

Variables a utilizar en el pseudocdigo


centi
medida ingresada en centgrado
faren
medida en farenheit
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
Lectura de datos
nro

Impresin de datos

suma

nro*(nro+1)/2

suma

Variables a utilizar en el pseudocdigo


nro
nro ingresado
suma
suma de los nros
Inicio
// Definir variables
entero: nro, suma
// Lectura de datos
Escribir (Ingresar cantidad de nmeros a sumar)
Leer (nro)
// Proceso de clculo: Suma de los n nros naturales
suma
nro * (nro + 1) / 2
// Salida de resultados
Escribir (La suma es , suma)
Fin

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 1: Pasar 15 pulgadas a centmetros (1 pulgada = 2.54 cm)
15 pulgadas (2.54 cm / 1 pulgada) = 15 2.54 cm = 38.1 cm.
Ejemplo 2: Pasar 25 metros por segundo a kilmetros por hora (1 kilmetro =
1000 metros, 1 hora = 3600 segundos)
25 m/s (1 km / 1000 m ) (3600 s / 1 h) = 90 km/h.

Ejemplo 07
Pseudocdigo para convertir una longitud dada en metros a sus equivalentes en
milmetros, centmetros, pies, pulgadas y yardas. Se sabe que:
1
1
1
1
1
1

metro = 1000 milmetros


metro = 100 centmetros
pulgada = 2.54 centmetros
pie = 12 pulgadas
yarda = 3 pies
Kilmetro = 1000 metros

El siguiente cuadro muestra resultados con datos de prueba, para diferentes


valores:
Metros
5
10
20
50
70

Milmetros
5000
10000
20000
50000
70000

Centmetros
500
1000
2000
5000
7000

Pulgadas
196.85
393.701
787.402
1968.50
2755.91

Pies
16.4042
32.8084
65.6168
164.042
229.659

Yardas
5.46807
10.9361
21.8723
54.6807
76.5529

Kilmetros
0.005
0.01
0.02
0.05
0.07

Impresin de datos

Lectura de datos
metros

mili
1000*metros
cent
metros*100
pulg
cent/2.54
pies
pulg/12
yarda
pies/3
km
m /1000

mili, cent, pulg, pies,


yardas, km

Variables a utilizar en el pseudocdigo


metros
medida ingresada en metros
mili
medida en milmetros
cent
medida en centmetros
pies
medida en pies
pulg
medida en pulgadas
yarda
medida en yardas
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:
1
1
1
1
1

gramo = 1000 miligramos


kilogramo = 1000 gramos
onza = 28.35 gramos
libra = 16 onzas = 453.6 gramos
tonelada = 2000 libras

El siguiente cuadro muestra resultados con datos de prueba, para diferentes


valores:
Gramos
500
300
600
700
900

Miligramos
500000
300000
20000
50000
900000

Kilogramos
0.5
0.3
0.6
0.7
0.9

Onza
17.6367
10.5822
21.1644
24.6918
31.7466

Libra
1.10229
0.66139
1.32277
1.54324
1.98416

Toneladas
0.0005
0.0003
0.0006
0.0007
0.0009

Lectura de datos

Impresin de datos
mili
kilo
onza
libra

gramo

1000*gramo
gramo/1000
gramo/28.35
gramo/453.6

mili, kilo, onza, libra

Variables a utilizar en el pseudocdigo


gramo
peso ingresada en gramos
mili
peso en miligramos
kilo
peso en kilos
onza
peso en onza
libra
peso en libra
tm
peso en toneladas
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
equivalentes en km/hora, km/seg, pies/seg, milla/hora, nudo. Se sabe que:
1
1
1
1
1
1

sus

km = 1000 metros
minuto = 60segundos
hora = 3600 segundos
nudo = 1.852 km
pie = 12 pulgadas =0.3048 metros
milla =1.609 km

El siguiente cuadro muestra resultados con datos de prueba, para diferentes


valores:
Mts/seg
10
20
30
40
50

Km/hora
36
72
108
144
180

Km/seg
0.01
0.02
0.03
0.04
0.05

Pies/seg
32.8084
65.6168
98.4252
131.234
164.042

Milla/hora
22.3741
44.7483
67.1224
89.4966
111.871

Nudo
19.4384
38.8769
58.3153
77.7538
97.1922

Lectura de datos

metroSeg

Impresin de datos

kmHora
metroSeg * 3.6
kmSeg
metroSeg/1000
piesSeg
100 * metroSeg /30.48
millaHora
3600 * metroSeg /1609
nudo
3600 * metroSeg /1852

kmHora, kmSeg,
piesSeg, millaHora,
nudo

Variables a utilizar en el pseudocdigo


metroSeg
medida ingresada en metros/ seg
kmHora
medida en kilmetros/ Hora
kmSeg
medida en kilmetros/seg
piesSeg
medida en pies/ seg
millaHora
medida en millas /hora
nudo
medida en nudos
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.
Lectura de datos
precio, cantidad

Impresin de datos
compra
precio * cantidad
desc
0.15 * compra
montoAPagar
compra - desc

Variables a utilizar en el pseudocdigo


cantidad
cantidad de productos a comprar
precio
precio del producto
desc
monto descontado
compra
monto de la compra
montoAPagar
monto a pagar
Inicio

desc, compra

// 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.
Lectura de datos
cvar, cmuj

Impresin de datos
total
cvar + cmuj pvar
(cvar * 100) / total pmuj
100 - pvar

pvar, pmuj

Variables a utilizar en el pseudocdigo


cvar
cantidad de varones
cmuj
cantidad de mujeres
total
total de alumnos
pvar
porcentaje de varones
pmuj
porcentaje de mujeres
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.


Lectura de datos
nro1, nro2

Impresin de datos
unro1
unro2
nro1
nro1
nro2
nro2

nro1 Mod 10
nro2 Mod 10
unro1 + unro2
unro2 + unro1

nro1, nro2

Variables a utilizar en el pseudocdigo


nro1
primer nmero ingresado
nro2
segundo nmero ingresado
unro1
unidades del primer nmero
unro2
unidades del segundo nmero
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
Lectura de datos

hora

Impresin de datos
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

hor, min, seg, cs

Para la resolucin de este ejemplo se hace uso de la funcin predefinida entero().


Variables a utilizar en el pseudocdigo
hora
hora real
minuto
minuto real
segundo
segundo real
hor
hora entera

min
seg
cs

minuto entero
segundo entero
centsimo de segundos entero

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.
Lectura de datos

precio, tiempo

Impresin de datos
imp
0.04 * precio
precio
precio + imp
cuota
0.20 * precio
finan
precio - cuota
inter
0.07 * finan * tiempo
total
cuota + finan + inter

Variables a utilizar en el pseudocdigo


imp
impuesto estatal
precio
precio del auto
cuota
cuota inicial
finan
monto financiado
inter
intereses generados
total
total a pagar
tiempo
tiempo a financiar
Inicio
// Definir variables
real: imp, precio, cuota, finan, inter, total
// Lectura de datos
Escribir (Ingresar precio)
Leer (precio)
Escribir (Ingresar aos financiados)

total

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.

Lectura de datos
largo, alto

Impresin de datos
area
arena

largo * alto
0.5 * area

arena

Variables a utilizar en el pseudocdigo


largo
largo de la pared
ancho
ancho de la pared
area
rea total de la pared
arena
cantidad de arena que se necesita
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.
Lectura de datos

Impresin de datos
recor

vel, radio

(2 * 3.1416 * radio) * 2
tiempo
recor / vel
tiemdes
(recor Div 100) * 2
tiempo
tiempo + tiemdes

tiempo

Variables a utilizar en el pseudocdigo


vel
velocidad que corre el atleta
radio
radio de la pista de atletismo
recor
recorrido total
tiemdes tiempo que descansa el atleta
tiempo
tiempo empleado en dar 2 vueltas a la pista
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.
Lectura de datos
diam, extra

Impresin de datos
precio
diam * 0.48
adic
extra * diam
recar
(precio + adic) * 1.2
venta
precio + adic + recar

Variables a utilizar en el pseudocdigo


diam
dimetro de la pizza
extra
cantidad de ingredientes extras
precio
precio base de la pizza
adic
monto adicional por los ingredientes extras
recar
monto recargado
venta
precio de venta
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)

venta

// 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.
Lectura de datos

precio

Impresin de datos
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

m1, m2, m50,


m20, m10

Variables a utilizar en el pseudocdigo


precio
precio de la galleta
vuelto
vuelto de la compra
vueltoEnt
parte entera del vuelto expresado como valor entero
vueltoReal
parte fraccionaria del vuelto expresado como valor entero
m2
cantidad de monedas de 2.00 soles
m1
cantidad de monedas de 1.00 sol
m50
cantidad de monedas de 0.50 cntimos
m20
cantidad de monedas de 0.20 cntimos
m10
cantidad de monedas de 0.10 cntimos
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

Fin

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)

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.
Lectura de datos

Impresin de datos
tiempo

ca, cb, cc

(ca*5) + (cb*7) + (cc*8)


hor
tiempo Div 60
min
tiempo Mod 60

hor, min

Variables a utilizar en el pseudocdigo


ca
cantidad de exmenes tipo a
cb
cantidad de exmenes tipo b
cc
cantidad de exmenes tipo c
hor
horas empleadas para calificar los exmenes min
minutos empleados para calificar los exmenes tiempo
tiempo en horas,minutos para calificar los exmenes
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
1. Dada las siguientes ecuaciones:
a = b + 2c + 3m
c = a + 3b + n
z = m + n + 5a
Disee un pesudocdigo que determine los valores de m y z conociendo los
valores de a, b, y c.
2. Una persona tiene 2 recipientes llenos de gasolina cuyas capacidades estn
dadas en galones y pies cbicos, respectivamente. Disee un pesudocdigo
que determine la cantidad total de gasolina en metros cbicos, pies cbicos
y yardas cbicas. Considere los siguientes factores de conversin:

1 pie cbico = 0.0283 metros cbicos


1 galn = 3.79 litros
1 metro cbico = 1000 litros
1 yarda cbica = 27 pies cbicos
3. Disee un pesudocdigo que calcule las HH:MM:SS transcurridos entre dos
tiempos. Ambos tiempos vienen dados en el formato HH:MM:SS.
4. Disee un pesudocdigo que lea la hora actual del da HH:MM:SS y
determine cuantas horas, minutos y segundos restan para culminar el da.
5. El sueldo neto de un vendedor se calcula como la suma de un sueldo bsico
ms el 12% del monto total que ha vendido. Disee un pesudocdigo que
determine el sueldo neto de un vendedor sabiendo que hizo tres ventas en
el mes.
6. Elaborar un pseudocdigo que permita convertir un volumen dado en litros a
sus equivalentes en mililitros, hectolitro, pie cbico, pinta, galones. Se sabe
que:
1 litro = 1000 mililitros
1 hectolitro = 100 litros
1 pie cbico = 28.32 litros
1 onza fluida = 29.57 mililitro
1 pinta = 16 onza fluida
1 galn = 3.785 litros
7. Desarrollar un programa que dado el largo y el ancho de un campo, permita
determinar cuantos metros de alambre sern necesarios para colocar al
permetro 5 hilos de alambrado.
8. Una empresa exportadora de trigo trabaja con 2 proveedores; el primer
proveedor le brinda una cierta cantidad de trigo en gramos y el segundo
proveedor otra cierta cantidad
de trigo en libras. Se pide elaborar un
pesudocdigo que calcule la cantidad total de trigo que obtiene la empresa.
1 libras = 16 onzas
1 onza = 28.35 gramos
1 kilogramo = 1000 gramos
1 tonelada = 1000 kilogramos
9. Calcular el permetro de una circunferencia dado su radio. Luego calcule el
permetro de la misma si se reduce al 50%, y el permetro de la misma si se
reduce al 25% con respecto al resultado anterior.
10. La calificacin final de un estudiante viene dada por tres calificaciones: nota
de laboratorio que cuenta un 30% del total, nota de examen parcial que
cuenta un 20% del total y nota de examen final que cuenta el 50% restante.
Disear un pesudocdigo que lea la nota de laboratorio, la nota del examen
parcial y la nota del examen final de un estudiante y muestre el tanto por
ciento correspondiente a cada una de las notas as como la calificacin final.
11. Disee un algoritmo que lea un nmero de 4 dgitos luego intercambie el
primer digito con el ltimo dgito.
12. Una empresa constructora ofrece departamentos al crdito, para adquirir un
departamento se abona una cuota inicial del 12% y se determina la cantidad
de aos que se financia. Al monto financiado se le aplica un inters del 10%
anual. Disear un pesudocdigo que calcule el monto mensual que se paga
por un departamento.
13. Tres personas deciden invertir su dinero para fundar una empresa. Cada una
de ellas invierte una cantidad distinta. Obtener el porcentaje que cada
persona invierte con respecto a la cantidad total invertida.

3. Estructura selectiva
Para poder desarrollar aplicaciones, no basta con ejecutar sentencias secuenciales,
tambin resulta esencial tomar decisiones en base a evaluaciones de expresiones
lgicas que nos sealaran el camino alternativo a seguir.
El tipo de resultado de una estructura selectiva es lgico (booleano), es decir,
verdadero (true) o falso (false).
Las estructuras selectivas que se utilizan para tomar decisiones podemos
clasificarlas en: simple, doble y mltiple.

3.1.Estructura selectiva simple: Si - Fin_si


Evala una expresin lgica y si su resultado es verdadero (true), se ejecuta
una accin determinada. Su sintaxis es la siguiente:
Si (expresin_lgica) entonces
Accin(es)
Fin_si
Funcionamiento de la estructura selectiva Si - Fin_si
Cuando la sentencia Si - Fin_si inicia su ejecucin, se suceden los siguientes
pasos:
a) Se evala una expresin_lgica, obtenindose un resultado lgico.
b) Si este resultado es verdadero (true), se ejecuta una accin, luego el
pseudocdigo proseguir con la siguiente accin que sigue al Fin_si.
c) Si este resultado es falso (false), la ejecucin del pseudocdigo saltar a la
accin que sigue al Fin_si, es decir, no se ejecuta la accin que se
encuentra a continuacin del 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.
El siguiente cuadro muestra los resultados con datos de prueba:
exPar

exFin

promP

14
10

16
14

12
15

promedio =
(exPar+exFin+promP)/3
14.00
13.00

Variables a utilizar en el pseudocdigo


exPar
examen parcial
exFin
examen final
promP
promedio de prcticas
promedio
promedio final
Inicio
// Definir variables
real: exPar, exFin, promP, promedio
// Lectura de datos
Escribir (Ingresar tres notas:)
Leer (exPar, exFin, promP)

mensaje
aprobado
aprobado

// 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
Se ingresa tres notas exPar, exFin, promP:
Escribir (Ingresar tres notas)
Leer (exPar, exFin, promP)
Posteriormente se calcula el promedio de las tres notas ingresadas exPar, exFin,
promP:
promedio
(exPar + exFin + promP) / 3
Con el promedio calculado se evalua la expresin lgica (promedio >= 10.5) si
esta condicin es verdadera se imprime el mensaje solicitado:
Si (promedio>=10.5) entonces
Escribir (El promedio es , promedio, "aprobado)
Fin_si
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.
Variables a utilizar en el pseudocdigo
sueldo
sueldo aum
aumento nuevoSueldo
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%.
Variables a utilizar en el pseudocdigo
consumo
monto del consumo
desc
descuento
montoFinal monto final a pagar

Inicio
// Definir e inicializar variables
real: consumo, desc
0, montoFinal
// Lectura de datos
Escribir (Ingresar consumo: )
Leer (consumo)
// Calcula el descuento
Si (consumo > 100) entonces
desc
0.20 * consumo
Fin_si
montoFinal
consumo - desc
Escribir (El total a pagar es , montoFinal)
Fin
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.
Variables a utilizar en el pseudocdigo
tarifa
tarifa de cada hora trabajada
horas
total de horas trabajadas
extra
pago extra
sueldo
sueldo del obrero
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.
Variables a utilizar en el pseudocdigo
nro1
primer nmero
nro2
segundo nmero
nro3
tercero nmero
nro4
cuarto nmero
menor
menor nmero
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
3.2. Estructura selectiva doble: Si Sino Fin_si
Se
evala la expresin-lgica, si este resultado es verdadero se ejecuta la
Accion1, si el resultado es falso se ejecuta la Accion2. En ambos casos, luego de
finalizar la accin seleccionada, se termina la sentecia Si Sino - Fin_si y la
ejecucin del pseudocdigo proseguir con la primera sentencia que sigue al Si
- Sino - Fin_si. Su sintaxis es la siguiente:
Si (expresin_lgica) entonces
Accin1
Sino
Accin2
Fin_si
Funcionamiento de la estructura selectiva Si Sino - Fin_si
Cuando la sentencia Si Sino - Fin_si inicia su ejecucin, se suceden los
siguientes pasos:
a) Se evala expresin-lgica, obteniendo un resultado lgico.
b) Si este resultado es verdadero, se ejecuta la Accin1 y se va al paso d.
c) Si este resultado es falso, se ejecuta la Accin2 y se va al paso d.
d) La ejecucin del pseudocdigo proseguir con la siguiente sentencia que
sigue al Fin_si
Ejemplo 06
Pseudocdigo para hallar el mayor de dos nmeros.
El siguiente cuadro muestra resultados con datos de prueba:
nro1
14
12

nro2
16
10

Variables a utilizar en el pseudocdigo


nro1
primer nmero
nro2
segundo nmero
mayor
mayor de dos nmeros
Inicio
// Definir variables
entero: nro1, nro2, mayor

mayor
16
12

Fin

// 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)

Explicacin
Para resolver el ejemplo planteado se definen las variables enteras nro1, nro2,
mayor:
entero: nro1, nro2, mayor
Se lee dos nmeros:
Leer (nro1, nro2)
Se evalua la expresin logica (nro1 > nro2) si esta condicion es verdadera se
asigna nro1 a mayor, de lo contrario se asigna nro2 a mayor.
Si (nro1 > nro2) entonces
mayor
nro1
Sino
mayor
nro2
Fin_si
Ejemplo 07
Pseudocdigo para hallar el mayor de tres nmeros
El siguiente cuadro muestra los resultados con datos de prueba:
nro1
14
12
08

nro2
16
14
05

Variables a utilizar en el pseudocdigo


nro1
primer nmero
nro2
segundo nmero
nro3
tercer nmero
t
variable temporal
mayor
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

nro3
18
11
04

mayor
18
14
08

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:
velocidad = espacio / tiempo.
Tenga en cuenta que en caso de que el tiempo sea igual a cero la velocidad no
se podr calcularse.
Variables a utilizar en el pseudocdigo
espacio
espacio recorrido
tiempo
tiempo empleado
velocidad
velocidad del recorrido
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
Donde: a > b > c, adems c no puede ser cero.
Variables a utilizar en el pseudocdigo
a
primer valor
b
segundo valor
c
tercer valor
y
resultado de la expresin
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.
El siguiente cuadro muestra los resultados con datos de prueba:
exPar

exFin

promP

14
10

16
08

12
06

promedio =
(exPar+exFin+promP)/3
14.00
8.0

mensaje
aprobado
desaprobado

Variables a utilizar en el pseudocdigo


exPar
examen parcial
exFin
examen final
promP
promedio de practicas
promedio
promedio final
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.
Variables a utilizar en el pseudocdigo
sueldo
sueldo
aum
aumento
nuevoSueldo
nuevo sueldo
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.
En la siguiente tabla se muestra resultados para diferentes valores de las
variables:
nro1
20
18
9
Variables
nro1
nro2
r

nro2
5
6
2

r = nro1 Mod nro2


0
0
1

Mensaje a mostrar
20 es mltiplo de 5
18 es mltiplo de 6
9 no es mltiplo de 2

a utilizar en el pseudocdigo
primer nmero
segundo nmero
residuo de dos nmeros

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
Variables
a
b
c

a utilizar en el pseudocdigo
primer nmero
segundo nmero
tercer nmero

p
s

producto
suma

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
a = 4, b = 4
Variables
a
b
s

entonces su suma es s = a + b = 7
entonces la suma es s = a + b = 8

es impar
es par

a utilizar en el pseudocdigo
primer nmero
segundo nmero
suma

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.
Un ao es bisiesto si es mltiplo de 4. Para esto tendremos que verificar si el
residuo de la divisin del ao entre 4 es igual a cero.

a Mod 4 = 0
Adems, se sabe que no debe ser mltiplo de 100 para lo cual escribimos
a Mod 100 <> 0
Sea mltiplo de 400.
a Mod 400 = 0
Entonces un ao es bisiesto si mltiplo de 4, que no debe ser multiplo de 100 a
menos que sea mltiplo de 400
(((a Mod 4 = 0 ) and (a Mod 100 <> 0)) or (a Mod 400 = 0))
Variables a utilizar en el pseudocdigo
a
ao
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%.
Variables a utilizar en el pseudocdigo
precio
precio de cada camisa
cant
cantidad a comprar
compra
monto de la compra
desc
descuento
total
total a pagar
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
Variables a utilizar en el pseudocdigo
h1, m1
hora de ingreso
h2, m2
hora de salida
pago
total a pagar
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
3.3.Estructura selectiva mltiple
3.3.1. Estructura selectiva mltiple: Si anidado
Un Si anidado es una sentencia Si que esta contenido dentro de otro Si o
Sino. Cuando se anidan Si, cada sentencia Sino siempre se corresponde a la
sentencia Si mas prxima dentro del mismo bloque y que no este asociada
con otro Sino. Un caso particular de una sentencia Si anidada es la
siguiente:
Si (expresin_lgica1) entonces
Accin1
Sino
Si (expresin_lgica2) entonces
Accin2

Sino
Fin_si

Fin_si

Accin3

Funcionamiento de Si anidado: Si Sino - Si ...


Cuando la sentencia si mltiple inicia su ejecucin, se suceden los siguientes
pasos:
a) Se evala expresin_lgica1, obteniendo un resultado lgico.
b) Si este resultado es verdadero (true), se ejecuta la Accion1 y se va al
paso d.
c) Si este resultado es falso, se evala expresin_lgica2, obteniendo un
resultado lgico, si este resultado es verdadero, se ejecuta la Accion2 y
se va al paso d, si este resultado es falso, se ejecuta la Accion3 y se va
al paso d.
d) La ejecucin del pseudocdigo proseguir con la siguiente sentencia que
sigue al ultimo Fin_si
Ejemplo 18
Pseudocdigo que lea un nmero y determine si es positivo, negativo o cero.
Variables a utilizar en el pseudocdigo
nro
nmero a ingresar
mensa
mensaje a mostrar
Inicio

Fin

// 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
Escribir (nro, mensa)

Explicacin
Para resolver el ejemplo planteado se define la variable entera nro y la
variable cadena mensa:
entero: nro
cadena: mensa
Se ingresa un nmero cualquiera:
Escribir (Ingresar numero:)
Leer (nro)
Se evalua la expresin lgica (nro = 0) en caso de cumplirse la igualdad se
asigna Cero a la variable mensa:

Si (nro = 0 ) entonces
mensa
Cero
Despus de esta asignacin la ejecucin pasa a la sentencia escribir y
finaliza el pseudocodigo:
Escribir (nro, mensa)
Pero, si la expresin lgica (nro = 0) resulta ser falsa, se ejecuta el SINO
asociado al primer SI:
SINO
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
Despus de esta asignacin la ejecucin pasa a la sentencia escribir y
finaliza el pseudocodigo:
Escribir (nro, mensa)
Pero, si la expresin logica resulta ser falsa se ejecuta el SINO asociado al
segundo SI en la cual se asigna Negativo a la variable mensa:
mensa
Negativo
Despus de esta asignacin la ejecucin pasa a la sentencia escribir y
finaliza el pseudocodigo:
Escribir (nro, mensa)
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:
Si el importe total de la compra es menor de 200 soles no hay
descuentos.
Si el importe total de la compra esta comprendido entre 200 y 800 se
hace un descuento del 10%
Si el importe total de la compra es mayor de 800 se hace un descuento
del 20%.
Se pide mostrar el nombre del cliente, el importe total, el descuento y el
importe a cobrar a un cliente cualquiera
Variables a utilizar en el pseudocdigo
nombre
nombre del cliente
importeTotal
importe total
descto
descuento
importeACobrar
importe a cobrar
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.
El siguiente cuadro muestra los resultados con datos de prueba:
nro
corrida
1
2
3
4

datos
precio nroChapa
0.50
5
1.00
4
3.00
9
5.00
7

Premio
(soles)
1.0
2.0
0.0
5.0

Variables a utilizar en el pseudocdigo


nroChapa
numero de chapa
precio
precio de la gaseosa
premio
premio a recibir
Inicio
// Definir variables
entero: nroChapa
real: premio, precio
// Lectura de datos
Escribir (Ingresar precio y nro de chapa: )
Leer (precio, nroChapa)
Si (nroChapa >=1 and nroChapa<=5 ) entonces
premio
2*precio
Sino
Si (nroChapa >=6 and nroChapa<= 8) entonces
premio
precio

Sino
Si (nroChapa >=9 and nroChapa<=10) entonces
premio
0
Fin_si

Fin

Fin_si
Fin_si
Escribir (Premio: , premio)

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.
Variables a utilizar en el pseudocdigo
cant
cantidad de dvd
pago
pago total
ganan
ganancia del 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:
11% del sueldo bruto si pertenece a la AFP A
10% del sueldo bruto si pertenece a la AFP B
7% del sueldo bruto por seguro si gana mas de 4000
6% del sueldo bruto por seguro si gana mas de 3000
5% del sueldo bruto por seguro si gana menos o igual a 3000

Variables a utilizar en el pseudocdigo


afp
afp al que pertenece el empleado
sueldoBruto
sueldo bruto
desc1
descuento por AFP
desc2
descuento por seguro
sueldoNeto
sueldo neto
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:
Compra (S/.)
0 250
251 500
501 1000
1001 ms

Descuento (%)
0
10
15
20

Elaborar un pseudocdigo que calcule el monto final que paga un cliente por
una compra.
Variables a utilizar en el pseudocdigo
montoCompra
monto de la compra
desc
descuento
montoFinal
monto final
Inicio
// Definir variables

Fin

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)

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.
Variables a utilizar en el pseudocdigo
precio
precio de venta
total
total a pagar
desc
descuento
cant
cantidad de computadoras
Inicio
// Definir variables
real: precio, total, desc
entero: cant
// Lectura de datos
Escribir (Ingresar precio: )
Leer (precio)
Escribir (Ingresar cantidad: )
Leer (cant)
total
precio * cant
Si (cant <= 5) entonces
desc
0.10 * total
Sino
Si (cant <= 10) entonces
desc
0.20 * total
Sino
desc
0.40 * total
Fin_si
Fin_si

total
total desc
Escribir (El total a pagar es: , total)
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.
Para hallar el rea de un tringulo conociendo sus lados se aplica la
siguiente frmula:

area

p( p a)( p b)( p c)

Donde, p es el semipermetro.
Variables a utilizar en el pseudocdigo
a, b, c
lados del tringulo
p
semipermetro
area
rea del tringulo
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
90 100
80 89
70 79

Calificacin
A
B
C

50 69
0 49

D
E

Variables a utilizar en el pseudocdigo


nt1
nota 1
nt2
nota 2
nt3
nota 3
caft
carcter de calificacin
prom
promedio
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:
Tipo
A
B
C

Mximo De consultas
8
6
4

Pago mensual (S/.)


80.00
60.00
40.00

Si el cliente realiza ms consultas de las indicadas en el cuadro anterior


tendr que pagar S/.8.50 por cada consulta adicional si el seguro es de tipo
A, S/.6.50 por cada consulta adicional si el seguro es de tipo B, y S/.5.00
mensuales por cada consulta adicional si el seguro es de tipo C. Calcular el
monto que paga un cliente durante un mes.

Variables a utilizar en el pseudocdigo


tipo
tipo de seguro
cant
cantidad de consultas realizadas en el mes
max
maximo nmero de consultas
padic
pago adicional
pago
pago mensual
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
Si la compra
S/.10.00 y 1
Si la compra
S/.10.00)

es de S/.7.00 el cliente recibe 1 punto


es de S/.23.00 el cliente recibe 5 puntos (2 puntos por cada
punto por los S/.3.00).
es de S/.40.00 el cliente recibe 8 puntos (2 puntos por cada

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:
Cantidad de
Precio x pasaje ($)
alumnos
Hasta el da 15 del mes
Despus del da 15 del mes
1 10
60
50
11 20
55
45
21 mas
50
40
Elaborar un pseudocdigo que muestre el costo total de los pasajes.
Variables a utilizar en el pseudocdigo
dia
dia del mes en el que se desea viajar
cant
cantidad de alumnos
total
monto total a pagar por los pasajes
Inicio
// Definir variables
entero: dia, cant
real: total
// Lectura de datos
Escribir (Ingresar da del mes: )
Leer (dia)

Fin

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)

3.3.2. Estructura selectiva mltiple: En caso sea Fin_caso


Ejecuta una accin dependiendo del resultado del selector. Se presenta
como una alternativa de la sentencia Si anidada, ya que en ocasiones resulta
ser ms comprensible y ordenado. Su sintaxis es la siguiente:
En caso sea (selector) hacer
c1: Accin 1
c2: Accin 2
.
.
.
cn: Accin N
Sino
Accion c
Fin_Caso
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.
Las sentencias si anidadas pueden aplicarse a cualquier tipo de dato simple,
en contraste con la sentencia En caso Fin_caso donde solo puede aplicarse
al selector variables: enteras y caracteres.

Funcionamiento de En caso sea Fin_caso


Cuando la sentencia En caso sea Fin_caso inicia su ejecucin, se suceden
los siguientes pasos:
a) Se evala el Selector, obtenindose un resultado de tipo entero o
carcter.
b) Se compara este resultado con las alternativas (constantes) c1, c2, etc.
c) Si algunas de estas constantes es igual al valor del selector, entonces se
ejecutan la accin correspondiente a esa alternativa y se va al paso e.
d) Si no existe coincidencia con las alternativas, se ejecutar la accin
correspondiente al Sino y se va al paso e.
e) La ejecucin del pseudocdigo proseguir con la siguiente sentencia que
sigue al Fin_Caso
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.
El siguiente cuadro muestra resultados con datos de prueba:
Da
1
4
6

Texto a mostrar
Lunes
Jueves
Sbado

Variables a utilizar en el pseudocdigo


dia
da de la semana
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
Para resolver el ejemplo planteado se define la variable entera dia:
entero: dia
Se ingresa la variable dia
Escribir (Ingresar dia:)
Leer (dia)

Y se evalua el contenido de la variable dia mediante la sentencia En caso sea


- hacer, si coincide con algunos de los valores de 1 a 7 se ejecuta la
sentencia correspondinte al valor que coincide y la ejecucin del
pseudocdigo proseguira con la siguiente sentencia a Fin_caso:
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)
Si no coincide con algunos de los valores de la sentencia En caso sea hacer
se ejecuta la sentencia Sino, ejecutndose:
Sino
Escribir (Fuera de rango)
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
A
B
C
D
Otra letra

Descripcin
Sobresaliente
Notable
Aprobado
Insuficiente
Nota no esta en el rango

Variables a utilizar en el pseudocdigo


nota
nota del alumno
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:
Categora
A
B
C

Incremento (%)
25
20
15

10

Adems recibe un aumento especial de 2.5% de su sueldo actual por cada


hijo que tuviese. As mismo si el nuevo sueldo excede a S/.2000 se
descuenta el 3% por impuesto de solidaridad. Construir un pesudocdigo
que permita calcular el sueldo neto que recibe un empleado de dicha
compaa.
Variables a utilizar en el pseudocdigo
cat
categora del empleado
sueldo
sueldo del empleado
cant
cantidad de hijos del empleado
aum
aumento
adic
pago adicional por cada hijo
desc
descuento de solidaridad
sueldoNeto
sueldo neto
sw
bandera que cambia de valor cuando se ingresa una
categora no existente
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
En ocasiones es necesario el uso de una variable que altere el
funcionamiento del algoritmo, cambiando su valor entre 0 y 1 entre
verdadero y falso, a esta variable tambin se le conoce como switch o

bandera. Para nuestro ejemplo se ha utilizado la variable sw inicializado en


cero; este valor cambia a 1 al entrar al sino del En caso sea, luego de
identificar que se ha ingresado una categora diferente a las existentes; esto
permite que una vez impreso el mensaje de error ya no se realice los
siguientes clculos.
Ejemplo 33
Pseudocdigo que acte como una calculadora, permitiendo realizar las
operaciones de suma, resta, multiplicacin y divisin entre dos nmeros
cualquiera.
Variables a utilizar en el pseudocdigo
n1
primer nmero
n2
segundo nmero
res
resultado de la operacin
oper
operador
sw
bandera que cambia de valor cuando en la divisin se ingresa
un divisor igual a 0
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:
Tipo de Tarjeta
A
B

Mximo de Letras
36
24

Inters (%)
7
6

12

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.
Variables a utilizar en el pseudocdigo
tipo
tipo de tarjeta
monto
monto de la compra
cant
cantidad de letras que se desea financiar
max
mximo de letras a financiar
inte
inters del la compra
letra
monto de cada letra
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
Gasolina 97
Gasolina 95
Gasolina 89
Diesel

Precio (S/.) x galn


16.98
15.60
13.50
10.20

Variables a utilizar en el pseudocdigo


kil1
kilometraje de incio de recorrido
kil2
kilometraje fin del recorrido
gal1
galones de inicio de recorrido
gal2
galones fin de recorrido
tipo
tipo de combustible
kilRec
kilmetros recorridos
totGal
total de galones
total
total que se invirtio en el recorrido
c100
cantidad de galones que consume el auto por cada 100 km
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
3.3.3. Estructura selectiva mltiple: En caso sea mltiple
La sentencia En caso sea mltiple se presenta de dos formas:
a) Cuando ms de una alternativa debe ejecutar la misma accin; para
estos casos se agrupan todas las alternativas con acciones comunes.

Ejemplo 36
Pseudocdigo que determine si un nmero que se encuentre en el rango de
1 a 9, es par o impar.
El siguiente cuadro muestra resultados con datos de prueba, para diferentes
valores de la variable nro.
Nro de
corrida
1
2
3
5

Nro

Resultado

5
2
9
10

impar
par
impar
Error fuera de rango

Variables a utilizar en el pseudocdigo


nro
nmero a determinar si es par o impar
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.
Puntaje original
0
Entre 1 y 5
Entre 6 y 8
Entre 9 y 10

Factor
0
6
9
10

Variables a utilizar en el pseudocdigo


puntaje
puntaje original
factor
factor multiplicativo
nuevoPuntaje
nuevo puntaje del participante
sw
bandera que condiciona el clculo del nuevo puntaje
Inicio
// Definir e inicializar variables
entero: factor, puntaje, nuevoPuntaje, sw
// 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.
En la siguiente tabla se muestra resultados para diferentes valores de las
variables:
Nro
corrida
1
2
3
4
5
6

datos
Mes
Ao
2
2004
4
2016
2
2001
2
2000
10
2006
4
2007

Resultado
Da
29
29
28
29
31
30

Variables a utilizar en el pseudocdigo


dia
da que tiene un mes
mes
mes del ao
year
ao a determinar si es bisiesto
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
(year Mod 400 = 0)) entonces
dias
29
Sino
dias
28
Fin_si
Fin_Caso
Escribir (mes, year, dias)

100 <> 0) or

Fin
b) Cuando se presentan selecciones basadas en dos o ms niveles; en estos
casos se utiliza la sentencia En caso sea anidado.
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
procedencia
Nacional
Particular

A
50
15

Categora
B
40
20

C
30
25

En la siguiente tabla se muestra resultados para diferentes valores de las


variables:
Pensin
1000
1500

Colegio
Nacional
Particular

Categora
A
B

Descuento
1000*0.05=500
1500*0.20=300

Pensin final
500.0
1200.0

Variables a utilizar en el pseudocdigo colegio


colegio de procedencia categoria
categora dentro del instituto dscto
descuento a realizar
cuota
pago mensual
importe
importe a pagar
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

Fin

Escribir (Opcin no contemplada)


sw
1
Fin_caso
Si (sw = 0) entonces
importe
cuota dscto
Escribir(El importe a pagar es: , importe)
Fin_si

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:
Categora
A
B
C

Tarifa (S/. x unidad)


Tejas
Losetas
2.50
2.00
2.00
1.50
1.50
1.00

As mismo, el obrero recibe una bonificacin especial de acuerdo a la


cantidad que produce:
Unidades Producidas
1 250
251 500
501 1000
1001 mas

Bonificacin (%)
0.00
50.00
100.00
150.00

Adems del total de ingresos se descuenta S/.25.00 por seguro.


Variables a utilizar en el pseudocdigo
cat
categora del obrero
prod
producto que se produce
cant
cantidad producida
pago
pago del obrero
bonf
bonificacin
desc
descuento
sw
bandera
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:)

Fin

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

3.4.Ejercicios propuestos
1. Evaluar la siguiente funcin:

fx

x 2

x / 6

x
x 3 5

si ( x Mod 4 )

si ( x Mod 4 )

si ( x Mod 4 )

si ( x Mod 4 )

2. Una compaa de gaseosas esta realizando una promocin por la compra de


sus productos. 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
Se pide mostrar los diferentes resultados que podra obtener un comprador
al comprar una gaseosa. Utilizar la sentencia En caso sea.
3. Escribir un programa para hallar el valor absoluto de un nmero:
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:
Producto
Terreno (%)
Papa
50
Zanahoria
30
Camote
20
Si la superficie del terreno es menor o igual 1000 hectreas, se deber
sembrar de la siguiente manera:
Producto
Terreno (%)
Papa
60
Zanahoria
25
Camote
15
Se desea saber la cantidad de toneladas de papa, zanahoria y camote que se
espera cosechar, si se sabe que se obtiene 2 toneladas de papa, zanahoria y
camote en 10, 8 y 9 hectreas respectivamente.
14. Una empresa elctrica dispone de la siguiente tabla de costos:
Cod. de tarifa
Descripcin Tarifa 1 kw/hora (S/.) Porcentaje (%)
1
Domestico
35.00
1.5
2
Industrial
80.00
2.5
3
Comercial
100.00
3
Adems se dispone del cobro de un impuesto especial que esta dado por los
porcentajes mencionados en el cuadro anterior, as como el cobro por
arbitrios municipales:
Alumbrado pblico 4.5%
Limpieza pblica
10%
Parques y jardines 2.5%
15. Calcular el costo del servicio de mudanza, de acuerdo a la distancia entre el
punto de partida y de llegada, el tipo de carga y al nmero de viajes ida y
vuelta. Para calcular el costo se debe tener en cuenta:
a) Si la distancia por cada viaje es mayor o igual a 5 Km., se cobrar
S/.5.00 por kilmetro, de lo contrario se cobrar el monto bsico que
ser igual a S/.25.00.
b) La carga puede ser frgil o no frgil. Solo si la carga es frgil al monto
calculado anteriormente se le aumentar 20%.
c) El monto resultante de acuerdo a la distancia y al tipo de carga se
multiplicar por el nmero de viajes.
16. Una empresa calcula las bonificaciones de sus empleados teniendo en
cuenta lo siguiente: si el sueldo del empleado es menor a S/.750, recibe una
bonificacin del 15% del sueldo, si el sueldo esta entre S/.750 y S/.1200,

recibe una bonificacin del 10% y si el sueldo es superior a los S/.1200,


recibe una bonificacin del 7%.

4. Estructura repetitiva
Las estructuras repetitivas se utilizan cuando es necesaria la repeticin de una o
mas sentencias, en un nmero determinado de veces, tantas veces como lo
permita el resultado de una expresin lgica. Los controles de esta estructura son:
mientras, repetir y para.
Dentro de las estructuras repetitivas intervienen los contadores y acumuladores,
que son variables que toman valores iniciales antes de que empiece el proceso
repetitivo, para que luego, dentro del proceso repetitivo, incrementar sus valores
segn la lgica de solucin del problema.
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
valor actual

valor anterior

cantidad a incrementar

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.
total
valor actual

= total

+ parcial

valor anterior

cantidad a incrementar

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.
Cuerpo del bucle
Son las sentencias que se ejecutarn repetidamente un cierto nmero de veces.
Iteracin
Representa cada repeticin del cuerpo de bucle.
4.2.Estructura repetitiva Mientras Fin_mientras
Repite una o mas acciones mientras el resultado de una expresin lgica es
verdadera (true). Si el resultado de la expresin lgica es falsa (false), este
proceso de repeticin termina, y la ejecucin del programa contina con la
siguiente sentencia que sigue al Fin_mientras. Su sintaxis es la siguiente:

Mientras (expresin_lgica) hacer


Accin
Fin_Mientras
Funcionamiento de Mientras Fin_mientras
Cuando la sentencia Mientras inicia su ejecucin, se suceden los siguientes
pasos:
a) Se evala expresin_lgica, obtenindose un resultado lgico.
b) Si este resultado es verdadero (true), se ejecuta la accin y se retorna al
paso a.
c) Si este resultado es falso (false), la ejecucin del pseudocdigo proseguir
con la sentencia siguiente al Fin_Mientras.
Ejemplo 01
Pseudocdigo que invierta un nmero entero positivo.
Variables a utilizar en el pseudocdigo
nro
nmero a invertir
nro1
variable auxiliar donde guardamos el nmero nro
nroinvertido
nmero invertido
digito
dgito
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:
nro

nro Div 10

As tenemos:
134 Div 10 = 13
13 Div 10 = 1

Se detiene cuando
es cero

1 Div 10 = 0
A la vez, para obtener cada dgito emplearemos la operacin:
digito

digito Mod 10

As tenemos:
134 Mod 10 = 4
13 Mod 10 = 3

1 Mod 10 = 1

Se puede ir formando el nmero invertido multiplicando el mismo nmero


invertido por 10 y agregndole cada digito empleando la operacin:
nroinvertido = 10 * nroinvertido + digito
Que en valores es:
10 * 0 + 4 = 4
10 * 4 + 3 = 43

10 * 43+ 1 = 431

Inicialmente nroinvertido = 0
La siguiente tabla muestra los resultados de la corrida del algoritmo.
Iteracin
nro

Valores
de nro

Expresin
Lgica
nro > 0

Resultado
de la
Expresin
Lgica

1
2
3
---

134
13
1
0

134>0
13 >0
1> 0
0>0

True
True
True
False

Resultados del cuerpo del bucle


digito =
nro Mod 10

4
3
1

nroinvertido =
10*nroinvertido
+ digito

nro =
nro Div 10

4
43
431
Fin del Mientras

Ejemplo 02
Pseudocdigo que multiplique dos nmeros enteros utilizando el siguiente
algoritmo:
Proceso de divisin: Se divide por 2 el primer nmero y se obtiene un
cociente. Se divide por 2 este cociente y se obtiene otro cociente. Se
contina este proceso de divisin por 2, hasta que el nmero cociente sea 1.

13
1
0

Proceso de Multiplicacin: Se multiplica por 2 el segundo nmero y se


obtiene un nmero. Se multiplica por 2 este nmero y se obtiene otro
nmero. Se contina este proceso de multiplicacin por 2 hasta que el
cociente obtenido en el paso 1 sea igual a 1.
Se suma el segundo nmero con todos los valores obtenidos al multiplicar el
segundo nmero por 2 siempre y cuando sus correspondientes valores al
dividir el primer nmero por 2 sea impar. El resultado de esta suma ser la
multiplicacin de ambos nmeros.
Por ejemplo si se tiene los nmeros 23 y 4, emplearemos para el proceso de
divisin la operacin:
nro1
nro1 Div 2
mediante el cual se obtiene los siguientes valores:
23 Div 2 = 11
11 Div 2 = 5

5 Div 2 = 2

2 Div 2 = 1

Se detiene cuando
es 1

Para el proceso de multiplicacin emplearemos la operacin:


nro2
nro2 * 2
que permite obtener los siguientes valores:
4*2=8
8 * 2 = 16
16 * 2 = 32

32 * 2 = 64

Para sumar los valores de la multiplicacin emplearemos la operacin:


suma

suma + nro2

que permite obtener los siguientes valores: 4 + 8 + 16 + 64 = 92, que es


igual al valor de multiplicar 23 * 4.
Variables a utilizar en el pseudocdigo
nro1, nro2
nmeros a multiplicar
suma
producto de dos nmeros
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 +
Variables a utilizar en el pseudocdigo
n
cantidad de trminos de la serie
ter
cada trmino de la serie
suma
suma de los elementos de la serie
con
contador
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:
7, 14, 21, 28, 35, 42, 49, 56, 63, 70, 77
Variables a utilizar en el pseudocdigo
n
cantidad de nmeros naturales
m
mltiplo a validar
suma
suma de los mltiplos de m
con
contador
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.
Variables a utilizar en el pseudocdigo
n
nmero ingresado
ter
nmeros impares
cuad
nmero al cuadrado
con
contador
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:
1/12

3/22

5/32

Variables a utilizar en el pseudocdigo


n
cantidad de trminos de la serie
num
numerador
den
denominador
prod
producto de los trminos de la serie
con
contador
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

7/42

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 +
Variables a utilizar en el pseudocdigo
n
cantidad de trminos de la serie
ter
trmino de la serie
inc
incremento
suma
suma de los trminos de la serie
con
contador
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
Por ejemplo si se tiene el nmero 3897, es necesario reducir el nmero
empleando la operacin nro
nro Div 10, que en valores es:
3897 Div 10 = 389
389 Div 10 = 38
38 Div 10 = 3
3 Div 10 = 0
Para obtener cada digito emplearemos la operacin digito
en valores es:

Se detiene
cuando es cero
digito Mod 10, que

3897 Mod 10 = 7
389 Mod 10 = 9
38 Mod10 = 8
3 Mod 10 = 3
Para calcular la suma de los dgitos de un nmero emplearemos la
operacin: suma
suma + digito
Para calcular la cantidad total de dgitos de un nmero emplearemos un
contador tal como: c
c+1
Para calcular la cantidad de dgitos pares e impares evaluamos cada dgito,
un dgito es par si el residuo de la divisin del dgito entre 2 es cero, en caso
contrario ser impar. De manera se irn acumulando en dos contadores
diferentes la cantidad total de dgitos pares y de dgitos impares.
Variables a utilizar en el pseudocdigo
nro
nmero ingresado
digito
cada dgito del nmero
suma
la suma total de dgitos
c
contador que guarda la cantidad de dgitos
cpar
contador que guarda la cantidad de dgitos pares
cimpar
contador que guarda la cantidad de dgitos impares
Inicio
// Definir e inicializar variables
entero: nro, digito, suma
0, c
0, cpar
0, cimpar
// 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.
Variables a utilizar en el pseudocdigo
n
cantidad de trabajadores
tar
tarifa por hora
hor
horas trabajadas
salario
salario
conS
contador de trabajadores con salario mayor o igual a S/.700

con

contador

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.
Variables a utilizar en el pseudocdigo
n
cantidad de personas
sexo
sexo de la persona
edad
edad de la persona
estCiv
estado civil
conM
cantidad de mujeres solteras entre 18 y 30 aos
con
contador
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
Nios
Jvenes
Adultos
Ancianos

Edad
0 12
13 29
30 59
60 ms

Variables a utilizar en el pseudocdigo


n
cantidad de personas del centro poblado
edad
edad de cada persona
peso
peso de cada persona
con
contador
sumaN
suma de los pesos de los nios
sumaJ
suma de los pesos de los jvenes
sumaA
suma de los pesos de los adultos
sumaC
suma de los pesos de los ancianos
conN
contador de nios
conJ
contador de jvenes
conA
contador de adultos
conC
contador de ancianos
promN
promedio de peso de los nios
promJ
promedio de peso de los jvenes
promA
promedio de peso de los adultos
promC
promedio de peso de los ancianos
Inicio
// Definir e inicializar variables
entero: n, edad, con
1, conN
0, conJ
0, conA
0, conC
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

conJ
Sino

sumaJ
sumaJ + peso
conJ + 1
Si (edad <= 59) entonces
sumaA
sumaA + peso
conA
conA + 1

Sino
sumaC
sumaC + peso
conC
conC + 1
Fin_si
Fin_si

Fin

Fin_si
Fin_mientras
promN
sumaN / conN
promJ
sumaJ/ conJ
promA
sumaA / conA
promC
sumaC / conC
Escribir (El promedio de
Escribir (El promedio de
Escribir (El promedio de
Escribir (El promedio de

peso
peso
peso
peso

de
de
de
de

los
los
los
los

nios es: , promN)


jvenes es: , promJ)
adultos es: , promA)
ancianos es: , promC)

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.
Por ejemplo se queremos hallar el M.C.D. de 1560 y 432, dividimos el mayor
entre el menor.
b

Cociente
1560
Residuo

432
264

264
168

168

r1<>0

r2<>0

r3<>0

r4<>0

r5<>0

r6 = 0

El M.C.D. es 24
Observamos que a toma el valor de b y b toma el valor del residuo para lo cual
escribimos a
byb
residuo.
Variables a utilizar en el pseudocdigo
n1
primer nmero ingresado
n2
segundo nmero ingresado

a
b
residuo

dividendo
divisor
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
La siguiente tabla muestra la descomposicin polinmica:
Numero a
convertir y su
correspondiente
base
344(7
1304(5

Resultado
de la
conversin

Proceso de Conversin
(descomposicion polinomica)
3*72 + 4*71 + 4*70 = 3*49 + 4*7 + 4
*1= 147 + 28 + 4

179

1*53 + 3*52 + 0*51 + 4*50 = 1*125 +


3*25 + 0*5 + 4*1 = 125 + 75 + 0 + 4

204

Por ejemplo, sea el nmero 344.


Para ir reduciendo cada nmero emplearemos la operacin nro
que en valores es:
344 Div 10 = 34
34 Div 10 = 3

3 Div 10 = 0

Para obtener cada dgito emplearemos la operacin digito


en valores es:

nro Div 10,

Se detiene cuando es cero


digito Mod 10, que

344 Mod 10 = 4
34 Mod 10 = 4
3 Mod 10 = 3
Se puede ir formando la descomposicin polinmica multiplicando el primer
residuo por la base elevado a la cero, el segundo residuo multiplicado por la
base elevado a la 1 y as sucesivamente, guardando el resultado de esta
operacin en un acumulador suma, expresado mediante la operacin: suma
suma + digito * baseexpo , as, inicializando suma en cero tenemos:
0 + 4 * 70 = 4
4 + 4 * 71 = 32
32 + 3 * 72 = 179
Variables a utilizar en el pseudocdigo
digito
cada dgito del nmero
base
base del nmero
nro
nmero a realizar la descomposicin polinmica
nro1
variable auxiliar donde guardamos el nro
expo
exponente
suma
resultado de la descomposicin polinmica
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.
Decimal
0
1
2
3
4

Binario
0000
0001
0010
0011
0100

Octal
0
1
2
3
4

Hexadecimal
0
1
2
3
4

5
6
7
8
9
10
11
12
13
14
15
16
17

0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
10000
10001

5
6
7
10
11
12
13
14
15
16
17
20
21

5
6
7
8
9
A
B
C
D
E
F
10
11

Para convertir un nmero de base decimal a cualquier base, se emplea el


mtodo de las divisiones sucesivas que consiste en dividir sucesivamente el
nmero decimal y los cocientes que se van obteniendo entre la base, hasta que
una de las divisiones se haga 0. La unin de todos los restos obtenidos escritos
en orden inverso, nos proporcionan el nmero inicial expresado en el sistema
deseado. Por ejemplo convertir el nmero 10 en base 2, obtenemos:
10
0
10(10) =1010(2)

a) Se plantea una primera solucin mediante el empleo de una frmula


aritmtica que permita calcular la conversin del nmero.
Variables a utilizar en el pseudocdigo
digito
cada digito del nmero
base
base que puede ser binario u octal
nro
nmero al cual vamos a convertir a otra base
nro1
variable auxiliar donde guardamos nro
coeficiente
forma los coeficientes del nro
mensa
guardamos el texto correspondiente, si el nmero es
binario u octal
nuevonro
nmero convertido a otra base
Inicio
// Definir e inicializar variables
entero: nro, nro1, base, residuo, nuevonro
0, coeficiente
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
b) Se plantea una segunda solucin usando cadenas, permitiendo concatenar
cada digito del nmero.
Concatenar significa unir, enlazar elementos de texto en uno solo.
digito = nro Mod base
12 Mod 2 = 0
6 Mod 2 = 0
3 Mod 2 = 1
1 Mod 2 = 1

Concatenar ( unir)
cadena = digito + cadena
0+=0
0 + 0 = 00
1 + 00 = 100
1 + 100 = 1100

nro = nro / base


12 Div 2 = 6
6 Div 2 = 3
3 Div 2 = 1
1 Div 2 = 0

El resultado es 1100.
Variables a utilizar en el pseudocdigo
residuo
residuo de nro y base
base
base que puede se binario u octal
nro
nmero al cual vamos a convertir a otra base
nro1
variable auxiliar donde guardamos nro
mensa
guardamos el texto correspondiente, si el nmero es
binario u octal
nuevonro
nmero convertido a otra base
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
c)

Se plantea una tercera solucin usando cadenas, pero en este caso se


procede a calcular conversiones a cualquier base incluyendo la base
hexadecinal.
Para hexadecimal tenemos que tener en cuenta las letras a, b, c, d, e, f para
ello preguntamos si dgito es 10, 11, 12, 13, 14, 15 para lo cual hacemos las
asignaciones correspondientes mediante la operacin binario
"letra" +
binario.
Si los dgitos son menores o igual que 9 para formar la conversin
correspondiente hacemos la operacin binario
digito + binario.
Variables a utilizar en el pseudocdigo
residuo
residuo de nro y base
base
base que puede se binario, octal o hexadecimal
nro
nmero al cual vamos a convertir a otra base
nro1
variable auxiliar donde guardamos el nro
mensa
variable donde guardamos si el numero es binario, octal
o Hexadecimal
nuevonro
nmero convertido a otra base
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

Fin

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)

4.3.Estructura repetitiva Repetir Hasta_que


Esta sentencia repite una sentencia o ms sentencias hasta que el resultado de
una expresin lgica sea verdadero (true), momento en que termina la
sentencia Repetir y se contina con el resto del algoritmo. Su sintaxis es la
siguiente:
Repetir
Accin
Hasta_que (expresin_lgica)
Funcionamiento de Repetir Hasta_que
Cuando la sentencia Repetir hasta_que inicia su ejecucin, se suceden los
siguientes pasos:
a)
b)
c)
d)

Se ejecuta la accin (o conjunto de sentencias).


Se evala Expresin_lgica, obtenindose un resultado lgico.
Si este resultado es falso (false), se retorna al paso a.
Si este resultado es verdadero (true), la ejecucin del pseudocdigo
proseguir con sentencia siguiente al hasta_que.

Ejemplo 15
Pseudocdigo que imprime los 10 primeros trminos de la serie:
1, 3, 5, 7, ...
Observamos que cada trmino de la serie se incrementa en 2, para lo cual
emplearemos la operacin termino
termino + 2.
Para imprimir los 10 primeros trminos se requiere de un contador que empieza
en 1 y acaba en 10, de esta manera cada vez que se obtiene un trmino el
contador se incrementa en 1 para lo cual usaremos con
con + 1.
Variables a utilizar en el pseudocdigo
con
controla la estructura repetitiva repetir - hasta_que
termino
cada uno de los trminos de la serie
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
La siguiente tabla muestra los resultados de la corrida del algoritmo.
Iteracin
numero

Resultados del
cuerpo del bucle

Expresin
lgica

con

Escribir termino

termino =
termino + 2

con =
con + 1

con = 10

Resultado
de la
Expresin
lgica

1
2
3
..
..
10

1
3
5

19

3
5
7
..
..
21

2
3
4
.
..
10

2 = 10
3 = 10
4 = 10

10 = 10

false
false
false

..
true

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.
Asumimos que el valor inicial del menor nmero es un nmero grande:
menor
99999, para poder iniciar la comparacin con todos los nmeros
ingresados.
Variables a utilizar en el pseudocdigo
nro
cada nmero ingresado
menor
menor nmero
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:
Que empiece con cualquier nmero entero positivo.
Si es par, lo dividimos por dos, si es impar lo multiplicamos por tres y le
sumamos 1.
Repetimos el paso anterior con el nmero resultante, la secuencia se puede
repetir indefinidamente.
Por ejemplo si ingresemos el nmero 7, la secuencia generada seria:

22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1 4

2 1

Que se obtuvo de la siguiente manera:


Nmero
7
22
11
34
17
52
26
12
40
10
5
16
8
4
2
1

Proceso
7 es impar, entonces 7 * 3 + 1 = 22
22 es par, entonces 22 / 2 = 11
11 es impar, entonces 11 * 3 + 1 =34
34 es par, entonces 34 / 2 = 17
17 es impar, entonces 17 * 3 + 1 = 52
52 es par, entonces 52 / 2 = 26
26 es par, entonces 26 / 2 = 13
13 es impar, entonces 13 * 3 + 1 = 40
40 es par, entonces 40 / 2 = 10
10 es par, entonces 10 / 2 = 5
5 es impar, entonces 5 * 3 + 1 = 16
16 es par, entonces 16 / 2 = 8
8 es par, entonces 8 / 2 = 4
4 es par, entonces 4 / 2 = 2
2 es par, entonces 2 / 2 = 1

Observar que la serie comienza a repetir la serie 4 2 1 indefinidamente, el


algoritmo debe de leer el nmero inicial, imprimir el nmero de valores
encontrados hasta la aparicin de un valor 1 en la secuencia.
Para los nmeros pares emplearemos la operacin:
Para los nmeros impares emplearemos la operacin:

nro
nro

nro Div 2
3 * nro + 1

Variables a utilizar en el pseudocdigo


residuo
residuo del numero
nro
numero inicial de la serie
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.
Variables a utilizar en el pseudocdigo
n
cantidad de consumos
consumo
monto consumido
desc
descuento
total
total que recauda el restaurante
con
contador
Inicio
// Definir e inicializar variables
entero: n, con
0
real: consumo, desc
0, total
0
Escribir (Ingresar cantidad de consumos)
Leer (n)
// Clculo
Repetir
Escribir (Ingresar consumo)
Leer (consumo)
Si (consumo > 70.00) entonces
desc
0.15 * consumo
Fin_si

Fin

consumo
consumo desc
Escribir (El monto final del consumo es , consumo)
total
total + consumo
con
con +1
Hasta_que (con = n)
Escribir (El total que recauda el restaurante es , total)

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.
Variables a utilizar en el pseudocdigo
cant
cantidad de productos
precio
precio del producto
subTot
monto del subtotal
total
monto total
resp
respuesta
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:
Tipo
Vip
Platea
Popular

Precio (S/.)
70.00
50.00
30.00

Adems el precio tiene un incremento del 12% por impuesto. Validar el ingreso
de datos.
Variables a utilizar en el pseudocdigo
tipo
tipo de entrada
precio
precio del producto
inc
incremento
Inicio

Fin

// 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)

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.
Variables a utilizar en el pseudocdigo
tpo
tiempo en minutos
ct
cantidad de dias que recorre en mas de 16 minutos
suma
suma de tiempos
con
contador
prom
promedio de tiempos
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.
Variables a utilizar en el pseudocdigo
asis
asistencia del alumno
calf
calificacin
suma
suma de calificaciones de los alumnos presentes
cap
cantidad de alumnos presentes
caa
cantidad de alumnos ausentes
cant
cantidad de alumnos registrados
porp
porcentaje de alumnos presentes
prom
promedio de calificaciones de los alumnos presentes
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.
Variables a utilizar en el pseudocdigo
nro
cada nmero ingresado
n1
primer nmero antes del nmero ingresado
n2
segundo nmero antes del nmero ingresado

con
suma
sw

contador de nmeros
suma del primer y segundo nmero antes del nmero ingresado
bandera

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.
Variables a utilizar en el pseudocdigo
nro
cada nmero ingresado
suma1
primera suma
suma2
segunda suma
con
contador de nmeros
sw
bandera
Inicio
// Definir e inicializar variables
entero: nro, sw
0, suma1
0, suma2
// Clculo
Repetir
Escribir (Ingresar nmero)
Leer (nro)
Si (nro <> 0) entonces
con
con + 1

0, con

Fin

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)

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.
Por ejemplo, si se pide prestado S/.1000.00 prestados a un banco a un interes
del 15% se tiene:

Nro

Amortizacin

Inters

1
2
3
4
5
6
7
8
9
10

50.00
57.50
66.125
76.0438
87.4503
100.568
115.653
133.001
152.951
160.708
1000.00

150.00
142.50
133.875
123.956
112.55
99.4321
84.347
66.999
47.0489
24.1062

Interes
Acumulado
150.00
292.50
426.375
550.331
662.881
762.3131
846.6601
913.6591
960.708
984.8142

Prstamo
Pendiente
950.00
892.50
826.375
750.3312
662.8809
562.3129
446.6599
313.6589
160.7079
0

Variables a utilizar en el Pseudocdigo


x
monto prestado
i
interes
y
monto que se devuelve
ma
monto aplicado al capital
inte
inters generado
suma
suma de intereses
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

Couta
(Y)
200
200
200
200
200
200
200
200
200
200

4.4.Estructura repetitiva Desde Fin_desde


La sentencia Desde, repite una o ms acciones un nmero determinado de
veces. Se utiliza cuando se conoce por anticipado el nmero de veces que se
van a repetir estas acciones. Su sintaxis es la siguiente:
Desde (i Valor_Inicial) hasta (expresin_Lgica) con incremento N hacer
Accin
Fin_desde
Valor_Inicial: especifica el primer valor asignado a la variable de control.
Esta inicializacin se realiza solo la primera vez que se repite el bucle.
Expresin_Lgica: esta expresin debe ser verdadera para que se ejecute el
bucle. La expresin_Lgica se compara con la variable de control cada vez
que se repite el bucle.
Incremento N: indica el valor que va ha aumentar o disminuir a la variable
de control.
Funcionamiento de Desde Fin_desde
Cuando la sentencia Desde inicia su ejecucin, se suceden los siguientes pasos:
Se asigna un Valor_Inicial a la variable de control, en nuestro caso i.
Si la variable de control cumple la expresin_Lgica, se ejecuta la accin
luego se incrementa (o disminuye) la variable de control.
Si la variable de control no cumple la Condicin se ejecuta la sentencia
siguiente a Fin_desde.
Ejemplo 27
Pseudocdigo que calcule la suma de los cuadrados y los cubos de los N
primeros nmeros naturales.
Variables a utilizar en el pseudocdigo
n
cantidad de nmeros naturales
nro
cada nmero natural
cuad
cuadrado del nmero
cubo
cubo del nmero
raiz
raz cuadrada del nmero
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
Se ingresa la cantidad de nmeros que se desea sumar mediante la variable n:
Escribir (Ingresar cantidad de nmeros naturales)
Leer (n)
Enseguida se ejecuta la sentencia Desde, en el que se asigna a la variable nro el
valor de 1 y se evala la expresin lgica (nro<=n), si es verdadera se ejecuta
las cuatro sentencias que tiene esta estructura, luego se incrementa en una
unidad el valor de la variable nro, en ese momento la sentencia Desde vuelve a
verificar la expresin logica (nro<=n) si es verdadero continua el bucle:
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
Cuando la expresin lgica (nro<=n) llega a ser falso el bucle termina y se
ejecuta la sentencia escribir y finaliza el pseudocdigo:
Escribir(La suma de los cuadrados es , sumaCuad)
Escribir(La suma de los cubos es , sumaCubo)
Ejemplo 28
Pseudocdigo que calcula el numero PI, de acuerdo a la siguiente frmula:
PI/4 = 1 - 1/3 + 1/5 - 1/7 + ...
El nmero de trminos debe ser ingresado.
Variables a utilizar en el pseudocdigo
n
cantidad de nmeros
num
numerador
den
denminador
con
contador
suma
suma
pi
valor de PI
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
Variables a utilizar en el pseudocdigo
nro
nmero al cual calculamos sus divisores
i
divisor del numero
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
1!
2!
3!
4!
4!

ejemplo:
= 1
= 1*2=2
= 1*2*3=6
= 1 * 2 * 3 * 4 = 24
= 3 ! * 4 = 24

Se observa que el factorial de 4 es el factorial de 3 multiplicado por 4, quiere


decir que el factorial de n es el factorial de (n -1) multiplicado por n.
n! = (n-1)! * n
Esto nos sirve para implementar la lgica del programa empleando:
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
La siguiente tabla muestra los resultados de la corrida del algoritmo para 5!
Iteracin
Nro
i
1
2
3
4
5
6

Expresin
lgica
i<=5
1<= 5
2<= 5
3 <=5
4 <=5
5<= 5
6<= 5

Valor de la
Expresin
lgica
true
true
true
true
true
false

Resultados
del cuerpo
Incremento
del bucle
i=i+1
fact = fact * i
1
2
2
3
6
4
24
5
120
6
Finaliza la sentencia desde

Ejemplo 31
Pseudocdigo que obtenga el cuadrado de un nmero entero utilizando
formula:
2
n = 1 + 3 + 5 + . . . + 2n-1.

la

Para obtener cada termino de la serie emplearemos la frmula 2 * n 1.


Si n = 1
Si n = 2
Si n = 3

2*11=1
2*2-1=3
2*31=5

Posteriormente es necesario sumar cada uno de los trminos empleando la


operacin suma
suma + termino.
1
4
9

0+1
1+3
4+5

Variables a utilizar en el pseudocdigo


i
controla el bucle desde
suma
cuadrado de un nmero
termino
cada termino de la serie
nro
nmero al cual se va a calcular su cuadrado
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
Variables a utilizar en el pseudocdigo
aoinicio
ao el cual vamos a empezar la bsqueda
aotermino
ao el cual vamos a terminar la bsqueda
a
cada uno de los aos comprendidos en un rango
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.
Variables a utilizar en el pseudocdigo
a, b
lmites
n1, n2
auxiliares
nro
nmero evaluado como par entre los lmites a y b
suma
suma de nmeros pares
con
contador de nmeros pares
prom
promedio

Inicio
// Definir e inicializar variables
entero: a, b, nro, suma 0, con
0
real: prom
// Leer Datos
Escribir (Ingresar lmites:)
Leer (a, b)
Si (a > b) entonces
n1
a
n2
b
Sino
n1
b
n2
a
Fin_si
Desde (nro
n1) hasta (nro <= n2) con incremento 1 hacer
Si (nro Mod 2 = 0) entonces
Escribir (nro)
suma
suma + nro
con
con +1
Fin_si
Fin-desde
prom
suma / con
Escribir (El promedio es , prom)
Fin
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.
Ejemplo: Primer nmero: 35241, Segundo nmero: 4
Girado a la derecha se tiene
Nmero de giros
1
2
3
4

Transformaciones
13524
41352
24135
52413

Variables a utilizar en el Pseudocdigo


n1
nmero a transformar
n2
nmero transformador
aux
auxiliar
dig
dgito
cd
cantidad de dgitos
con
contador
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

Fin

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)

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.
Variables a utilizar en el pseudocdigo
d
posibles divisores del nmero ingresado
con
contador de divisores del nmero
nro
numero ingresado
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
Variables a utilizar en el pseudocdigo
n
cantidad de empleados
sexo
sexo del empleado
sal
salario
mayor
mayor salario
menor
menor salario
suma
suma de salarios
conVar
contador de empleados varones
conMuj
contador de empleadas mujeres

prom
con

promedio de salarios
contador de empleados

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.
Por ejemplo 220 y 284 son amigos, porque:
La suma de los divisores de 220 es:
1 + 2 + 4 + 5 + 10 + 11 + 20 + 22 + 44 + 55 + 110 = 284
Y la suma de los divisores de 284 es:
1 + 2 + 4 + 71 + 142 = 220
Variables a utilizar en el pseudocdigo
nro1
primer nmero ingresado
nro2
segundo nmero ingresado
d
posibles divisores de los nmeros ingresados sin incluir el
mismo nmero
suma1
suma de los divisores del primer nmero ingresado
suma2
suma de los divisores del segundo nmero ingresado

Inicio
// Definir e inicializar variables
entero: nro1, nro2, d, suma1
0, suma2
0
// Leer Datos
Escribir (Ingresar primer nmero:)
Leer (nro1)
Escribir (Ingresar segundo nmero:)
Leer (nro2)
Desde (d
1) hasta (d <= (nro1 Div 2)) con incremento 1 hacer
Si (nro1 Mod d = 0) entonces
suma1
suma1 + d
Fin_si
Fin-desde
Desde (d
1) hasta (d <= (nro2 Div 2)) con incremento 1 hacer
Si (nro2 Mod d = 0) entonces
suma2
suma2 + d
Fin_si
Fin-desde
Si (suma1 = nro2 and suma2 = nro1)
Escribir (Los nmeros , nro1, y , nro2, son amigos)
Sino
Escribir (Los nmeros , nro1, y , nro2, no son amigos)
Fin_si
Fin
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).
Variables a utilizar en el pseudocdigo
n
cantidad de personas encuestadas
edad
edad de cada persona
grad
grado de instruccin de cada persona
suma
suma de edades
prom
promedio de edades
mayor
mayor edad
conp
cantidad de personas con instruccin primaria
cons
cantidad de personas con instruccin secundaria
conr
cantidad de personas con instruccin superior
p1
porcentaje de personas con instrcuccin primaria
p2
porcentaje de personas con instrcuccin secundaria
p3
porcentaje de personas con instrcuccin superior
con
contador
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)

Fin

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)

4.5.Variantes de las estructuras repetitivas


4.5.1. Bucles anidados
Los bucles anidados, son bucles incluidos dentro de otro bucle. Se pueden
tener los siguientes tipos de anidamiento:
a) Un bucle Mientras dentro de un bucle Mientras, Repetir Hasta_que o
Desde.
b) Un bucle Repetir Hasta_que dentro de un bucle Repetir Hasta_que,
Mientras o Desde.
c) Un bucle Desde dentro de un bucle Desde, Mientras o Repetir
Hasta_que.
Consideraciones a tener en cuenta al trabajar con bucles
Un bucle interno debe de estar completamente dentro del bucle externo
que lo contiene de lo contrario si los bucles se cruzan se obtendran
resultados no previstos.
Cuando se construyan los bucles anidados considere cada bucle como
una sentencia y siga la sintaxis ya definida para ellas.
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:
Tabla de multiplicar del 1
1*1 =1
1*2 =2
.
1 * 12 = 12
Tabla de multiplicar del 2
2*1 =2
2*2 =4


2 * 12 = 24
Observamos que en la tabla del 1, el primer nmero aparece fijo mientras
que el segundo nmero varia de 1 a 12, incrementndose cada nmero en
1, lo mismo sucede en la tabla del 2.
Para calcular el producto emplearemos la operacin:
m=i*j
Tenemos bucles anidados donde el bucle externo vara de 1 a 2, y el bucle
interno de 1 a 12
Variables a utilizar en el pseudocdigo
i
controla el bucle externo
j
controla el bucle interno
m
producto de los nmeros i, j
Inicio
//Definir variables
entero: i, j, m
Desde (i
1) hasta (i <= 2) con incremento 1 Hacer
Escribir (Tabla de multiplicar del , i)
Desde (j
1) hasta (j <= 12) con incremento 1 Hacer
m
i*j
Escribir (i , * , j, = , m )
Fin_desde
Fin-desde
Fin
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.
Variables a utilizar en el pseudocdigo
nota
nota de cada una de las 5 asignaturas
suma
suma de las 5 notas
prom
promedio de cada alumno
mayor
mayor promedio
con1
contador, que cuenta cada alumno
con2
contador, que cuenta cada nota
Inicio
// Definir e inicializar variables
entero: nota, suma
0, prom, mayor
0, con1
1, con2
// 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
36
18
9
3

den
48
24
12
4

2
2
3

En su mnima expresin es 3 / 4
Variables a utilizar en el pseudocdigo
num
numerador
den
denominador
d
divisor
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.
Variables a utilizar en el pseudocdigo
n
cantidad de notas
nota
nota
suma
suma de notas
menor
nota mas baja
prom
promedio
con
contador
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.
Por ejemplo, los siguientes nmeros son capicas.
44
44
373
373
18481
18481
As, para determinar si el nmero 44 es capica, emplearemos la variable
inver que guardar el resultado de invertir el nmero 44, de esta manera, si
inver es igual a 44 entonces es nmero capica.
Es necesario guardar el nmero 44 en otra variable por que al calcular el
nmero invertido perder su valor original, que es indispensable para
realizar la comparacin final.
Se pide que hallar los capicas de un rango determinado, para esto
utilizamos las variable vi y vf que representan los valores inicial y final
respectivamente, el contador i que indica cada uno de los nmeros que
existe dentro del rango dado, este contador empieza en vi y termina en vf
incrementndose en una unidad. Dentro del bucle guardamos i en nro, para
no perder el valor original del nmero que se esta evaluando.
El bucle interno se encarga de invertir nro, y guardarlo en la variable inver
cuando acaba este bucle incrementamos i para empezar nuevamente el ciclo
externo.
Variables a utilizar en el pseudocdigo
digito
cada digito del nmero
vi
nmero inicial
vf
nmero final
nro
variable auxiliar donde guardamos cada nmero a invertir
inver
nmero invertido
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)

Fin

// 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

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.
Por ejemplo, para una fecha: 17/10/1970, se realiza:
17 + 10+ 1970 = 1997

1 + 9 + 9 + 7 = 26

2+6=8

El nmero del tarot calculado es 8


Para realizar este calculo, el algoritmo pide una fecha en el formato
dd/mm/aa, donde dd es el dia, mm es el mes y aa es el ao.
La suma de cada una de estas variables que compone la fecha, se realiza
mediante la operacin: nro
dd + mm + aa, que en valores es:
nro

17 + 10 + 1970 = 1997

Luego, tenemos que descomponer nro, hallando cada dgito e ir sumndolo.


Para este caso emplearemos las operaciones:
digito
nro Mod 10, para hallar cada dgito.
tarot
tarot + digito, para sumar cada dgito
nro
nro Div 10, para acortar el nmero
Al acabar la primera iteracin del bucle, obtendremos el valor de 26 para la
variable tarot, pero como el enunciado nos pide que el nmero del tarot sea
de un solo digito, entonces es necesario repetir el mismo proceso, para lo
cual hacemos nro
tarot utilizando otro bucle que sea externo.
Variables a utilizar en el pseudocdigo
digito
cada digito del nmero
d
da de nacimiento
m
mes de nacimiento
a
ao de nacimiento
nro
nmero al cual vamos a calcular el tarot
tarot
nmero de tarot
Inicio
// Definir e inicializar variables

Fin

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)

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

11

13

Por ejemplo, si queremos determinar si el nmero 11 es primo, primero


hallamos todos los divisores del nmero y mediante un contador calculamos
la cantidad de divisores que tiene el nmero, luego comparamos si la
cantidad de divisores es menor o igual que 2, entonces el nmero evaluado
es nmero primo.
Como tenemos que hallar los nmeros primos en un rango determinado, es
necesario usar dos bucles repetitivos. Un primer bucle al que llamamos bucle
externo, que nos permite recorrer cada nmero (nro) definido en el rango vi
y vf. Un segundo bucle, llamado bucle interno que se encarga de calcular la
cantidad de divisores que tiene cada nmero del rango, mediante un
contador p. Finalmente, al acabar el bucle interno se pregunta si p <= 2 si
cumple es primo, luego se incrementa nro para ir nuevamente al bucle
externo.
Variables a utilizar en el pseudocdigo
digito
cada digito del nmero
vi
nmero inicial
vf
nmero final
nro
variable auxiliar donde guardamos el nro
p
contador de nmeros primos
k
contador que representa los posibles divisores
i
controla el bucle mientras
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

Fin

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

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.
Por ejemplo, si se ingreso n=6, se mostrar:
123456
12345
1234
123
12
1
Variables a utilizar en el pseudocdigo
nro
nmero ingresado
aux
guarda el valor original del nmero ingresado
con
contador de lneas de impresin
n
cada nmero impreso
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.
Variables a utilizar en el pseudocdigo
nro
nmero ingresado
fact
factorial

con

contador

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.
Variables a utilizar en el pseudocdigo
n
cantidad de obreros
hor
horas trabajadas
dia
cada dia de la semana
totHor
total de horas que trabaja un obrero durante una semana
con
contador de obreros
tur
turno en el que trabaja un obrero
pagoDia
pago del da
pagoSem
pago de la semana
pagoExtra
pago extra
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
4.5.2. Bucles infinitos
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).
Para este caso, reemplazamos en la expresin_lgica por verdadero (true)
Mientras (verdadero) Hacer
instrucciones
Si (condicin) entonces
Accin
Salir //termina el bucle infinito
Fin_si
Accin
Fin_Mientras

Repetir
instrucciones
Si (condicin) entonces
Accin
Salir //termina el bucle infinito
Fin_si
Accin
Hasta_que (verdadero)

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
Por ejemplo si ingresemos el nmero 20, la secuencia generada seria:
10 5 16 8 4 2 1 4 2 1.
Observar que la serie comienza a repetir la serie 4 2 1 indefinidamente, el
algoritmo debe de leer el nmero inicial, imprimir el nmero de valores
encontrados hasta la aparicin de un valor 1 en la secuencia.
Variables a utilizar en el pseudocdigo
nro
cada nmero de la serie
Inicio
// Definir variable
entero: nro

Fin

// 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

Ejemplo 50
Pseudocdigo que muestra el mensaje BUCLE INFINITO infinitas veces.
Variables a utilizar en el pseudocdigo
No es necesario el uso de ninguna variable
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.
Variables a utilizar en el pseudocdigo
nro
nmero que se evala como par o impar
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
1. Determinar el factorial de los N primero nmeros pares
Nmero Factorial
2
2
4
24
6
720
8
40320
2. Escribir un pseudocdigo muestre todos los nmeros de tres cifras tales que
la suma de los cuadrados de sus dgitos sea igual al cociente de la divisin
entera del nmero entre 3.
3. Los nmeros amigos son aquellos en los que la suma de los divisores de uno
es el otro.
220 = 1+2+4+5+10+11+20+22+44+55+110 = 284
284 = 1+2+4+71+142 = 220
Este par de nmeros amigos era conocido por los griegos (220, 284). El
siguiente par de nmeros amigos fue descubierto en el siglo XIII y
redescubierto por Fermat en 1636 (los nmeros 17296 y 18416). Descartes
descubri el siguiente par: 9363584 y 9437056. Todos estos grandes
matemticos se saltaron el par 1184-1210 que fue descubierto por un nio
italiano de 16 aos Niccol Paganini. Elaborar un pseudocdigo que
encuentre todos estos nmeros amigos.
4. El horscopo de la alquimia, basado en la numerologa y las
correspondencias planetarias, te permitir conocer qu poderosas energas,
llegadas del cielo en forma de metales, rigen tu vida. Las civilizaciones
antiguas consideraban los metales como la carne de los dioses, y eran
conscientes de sus poderes mgicos.
Crearon el horscopo de los metales, gracias al cul no slo conocers qu
metal te corresponde por tu fecha de nacimiento, sino tambin el que te rige
cada ao. Ponerte joyas con el metal que te pertenezca o llevarlo
simplemente en el bolsillo aumentar los dones que te concede ste y te
aportar proteccin y suerte.
Elaborar un pseudocdigo que averige a qu metal pertenece una persona,
para esto sume los nmeros de tu fecha de nacimiento y a continuacin
reducirlos a un slo dgito. Una vez que tengas el nmero busca en la tabla
siguiente el metal correspondiente.
Por ejemplo, alguien nacido el 12 de marzo de 1973 estara bajo la
influencia de:
Metal de nacimiento: 1+2+3+1+9+7+3= 26 (2+6) = 8= Nquel
Nmero
Metal
Virtudes
1
Plata
Seductores y volubles
2
Hierro
Dinmicos y combativos
3
Mercurio
Locuaces y simpticos
4
Zinc
Impulsivos y serviciales
5
Estao
Inconstantes y sociables
6
Plomo
Pesimistas y tmidos
7
Platino
Intelectuales y apasionados
8
Niquel
Vagabundos y poetas
9
Oro
Altruistas y encantadores
0
Cobre
Afectuosos y detallistas
Slo en el caso de que la suma resultante sea 10, 20, 30, 40, 50, 60, 70, 80
90, no se reducir y se tomar el 0 como nmero y el Cobre como metal
correspondiente.

5. Escribir un pseudocdigo que encuentre el siguiente primo dado un nmero


ingresado por el usuario. Por ejemplo: si el nmero ingresado es 20, el
siguiente primo seria 23.
6. Escribir un pseudocdigo que lea un nmero y lo despliegue como sumas
sucesivas de nmeros. Por ejemplo:
numero = 15245
10000 + 5000 + 200 + 40 + 5
7. Escribir un pseudocdigo para buscar un nmero cuyo cuadrado sea igual o
ms cercano a un nmero ingresado.
Por ejemplo:
Si se ingresa 14 el cuadrado ms cercano es 3.
Si se ingresa 16 el cuadrado ms cercano es 4.
8. Escribir un pseudocdigo que lea 100 nmeros positivos de forma aleatoria
y consecutiva, calcular y mostrar el mayor nmero por cada 10 nmeros
ingresados. Adems mostrar el mayor nmero ingresado y diga en que
decena se ingres.
9. Construir un algoritmo que permita ingresar nmeros enteros, calcular la
suma de los dgitos pares y la suma de sus dgitos impares de cada nmero
positivo ingresado. El algoritmo termina cuando se ingresa el cero.
10. Se registran las N aulas de la seccin secundaria de un centro educativo, y
por cada seccin se registran los promedios finales de sus M alumnos.
Elaborar un algoritmo que muestre el nombre del mejor alumno de cada
aula y el mejor alumno de toda la seccin secundaria, as mismo calcular el
promedio general del aula.
11. Un nmero perfecto es aquel cuya suma de sus divisores excluyendo el
mismo nmero da como resultado el nmero. Por ejemplo 6 es un nmero
perfecto, porque 1 + 2 + 3 = 6. Se pide elaborar un algoritmo que muestre
los 5 primeros nmeros perfectos.
12. Los nmeros Amstrong o cubos perfectos, son aquellos que sumados sus
dgitos al cubo nos da el mismo nmero. Por ejemplo 153 es un nmero
Amstrong pues 13 + 53 + 33 = 153. Elaborar un algoritmo que encuentre los
3 primeros nmeros Amstrong.
13. Un centro comercial ofrece tres tipos de productos, como se muestra en el
siguiente cuadro.
Producto
Precio
Descuento (%)
A
15.20
B
12.47
C
10.50
El centro comercial vende dichos productos a N nmero de clientes. Un
cliente cualquiera puede comprar M productos de cada tipo. Se pide elaborar
un algoritmo que calcule el total que paga cada cliente y el total que recauda
el centro comercial.
14. Escribir un pseudocdigo en el que se ingrese un nmero entre el 1 y el 9
(se pedir el ingreso de dicho nmero hasta que cumpla la condicin), una
vez ingresado el nmero correcto mostrar la tabla de multiplicar de ese
nmero, despus de mostrar la tabla, el pseudocdigo debe preguntar:
Desea ingresar otro nmero? S/N, si la respuesta es S, se volver a
ingresar otro nmero y si la respuesta es N finalizar el pesudocdigo. Las
tablas de multiplicar debe tener el siguiente formato:
5X1=5
5 X 2 = 10

5 X 9 = 45
15. Un almacn se encuentra de aniversario y ha programado una serie de
ofertas con la finalidad de brindar facilidades a sus clientes y al a vez de
incrementar sus ventas. Estas ofertas se basan especficamente en un

porcentaje de descuento sobre el total de compra el cual vara de acuerdo al


monto:
Por un monto mayor o igual a $500 se har un descuento del 30%
Por un monto menor de $500 pero mayor o igual a 200 se har un
descuento del 20%
Por un monto menor de $200 pero mayor o igual a 100 se har un
descuento del 10%
Se pide elaborar un algoritmo que calcule el monto total que recauda el
almacn, as como, el monto final que paga un cliente. El algoritmo termina
cuando se ingresa una compra negativa.
16. El un proceso repetitivo se ingresa nmeros enteros, se pide elaborar un
algoritmo que calcule el promedio de nmeros negativos. El pseudocdigo
termina cuando se ingresa el nmero cero.
17. Hacer un algoritmo que lea N consumos de un restaurante. Si el consumo
ingresado excede los 70 soles, el descuento ser de 5%. Se pide mostrar el
monto que paga cada cliente.
18. Construir un algoritmo que muestre el mayor y el menor dgito de un
nmero ingresado.
19. Determinar la suma de los trminos que ocupan las posiciones pares y la
suma de los trminos que ocupan las posiciones impares, de la siguiente
serie, considerando los n primeros trminos:
1/3
+
2/5
+
3/7
+
4/9
+
5/11 +
...
20. Un almacn se encuentra de aniversario y ha programado una serie de
ofertas. Estas ofertas se basan especficamente en un porcentaje de
descuento sobre el total de compra, de esta manera:
Por una compra mayor o igual a S/.350.00 se har un descuento del
30%.
Por una compra menor de S/.350.00 pero mayor o igual a S/.200.00 se
har un descuento del 20%.
Por un monto menor de S/.200.00 pero mayor o igual a S/.100.00 se
har un descuento del 10%.
Se pide elaborar un algoritmo que calcule el monto total que recauda el
almacn por las 25 primeras compras realizadas, as como, el monto final
que paga cada cliente.
21. Una compaa de seguros est preparando un estudio concerniente de todos
sus asegurados. Por cada asegurado se registra los siguientes datos: ao de
nacimiento y sexo (M o F), se pide calcular:
El porcentaje de asegurados menores de 30 aos
El porcentaje de asegurados de sexo femenino y masculino
La mayor y la menor edad de los asegurados
El registro de asegurados finaliza cuando se ingresa un ao negativo.
22. El Ministerio de transportes desea saber, de los N autos que entran a
nuestro pas, cuntos entran con calcomana de cada color. Conociendo el
ltimo dgito de la placa de cada automvil se puede determinar el color de
la calcomana, como se muestra en el siguiente cuadro:
Dgito
Color
1o2
amarilla
3o4
negro
rojo
5o6
7o8
verde
9o0
azul
23. Ingresar nmeros enteros y mostrar la cantidad de dgitos que tiene cada
nmero ingresado. El pseudocdigo termina cuando se ingresa el nmero
100.
24. Construir un pseudocdigo que calcule y muestre el sueldo de los N
empleados de un empresa que trabajan por horas, la tarifa por cada hora
trabajada es nica (igual) para todos los empleados, asimismo, calcular la

cantidad de empleados que reciben un sueldo menor a S/.500.00, la


cantidad de empleados que reciben un sueldo entre S/.500.00 y S/.1200.00
y la cantidad de empleados que reciben un sueldo mayor a S/.1200.00.
25. La oficina de bienestar social del ministerio de vivienda, realiza un muestreo
en 10 departamentos de nuestro pas, de esta manera por cada
departamento se registran los datos de N personas, como edades y pesos.
Se pide elaborar un algoritmo que determine la cantidad de los nios,
jvenes, adultos y adultos mayores registrados en cada departamento, el
mayor y el menor peso en cada departamento. Se sabe que:
De 0 a 12 aos, es nio
De 13 a 29 aos, es joven
De 30 a 59 aos, es adulto
De 60 a ms aos, es adulto mayor.

You might also like