Вы находитесь на странице: 1из 99

“AÑO DE LA LUCHA CONTRA LA CORRUPCIÓN E IMPUNIDAD”

UNIVERSIDAD NACIONAL DE PIURA


FACULTAD DE INGENIERÍA INDUSTRIAL
ESCUELA PROFESIONAL DE INGIERIA INFORMATICA

CURSO: Algoritmos.

TEMA: Ejercicios Prácticos de Algoritmos.

PROFESOR: Cruz Vílchez Francisco Javier.

INTEGRANTE: Benites Cruz Marco Sebatián.


Chinguel Rojas Nélida.
Chamba Huertas Jhanpier.
Juarez Bereche Yan Poll.
Valdiviezo Pingo María Luisa.

26 / 07 / 2019
ALGORITMO

Un algoritmo es una secuencia de pasos lógicos que permiten solucionar un


problema, es cualquier cosa que funcione paso a paso, donde cada paso se
pueda describir sin ambigüedad y sin hacer referencia a una computadora en
particular, y además tiene un límite fijo en cuanto a la cantidad de datos que se
pueden leer/escribir en un solo paso.

INSTRUCCIONES CONDICIONALES:

 SI-ENTONCES

La instrucción Si-Entonces permite controlar qué procesos tienen lugar en


función del valor de una o varias variables o de las decisiones del usuario.
Si al evaluar la condición o condiciones el resultado es verdadero,
entonces se ejecutan ciertas operaciones.

 MIENTRAS-HACER
Es la estructura adecuada para utilizar en un ciclo cuando no sabemos el
número de veces que este se ha de repetir. Dicho nñumero depende de
las proposiciones dentro del ciclo.

 HACER-MIENTRAS
La estructura Hacer-Mientras es la estructura algorìtmica adecuada para
utilizar en un ciclo que se ejecutarán un número definido de veces, el
proceso, es cualquier operación o conjunto de operaciones que deban
ejecutarse mientras se repita el ciclo. El ciclo se repetirá siempre que la
condición verdadera, es decir se cumplirá hasta que la Condición sea
falsa.

 PARA
Cuando se sabe un número de iteraciones que tendrán que ejecutarse
cierta cantidad de acciones, además es recommendable usar esta
estructura por que no solo ejecuta un número de acciones si no que
además cuenta internamente el número de iteraciones.

 ARREGLOS
Permiten agrupar datos usando un mismo identificador. Todos los
elementos de un arreglo son del mismo tipo, y para acceder a cada
elemento se usan subíndices.

Acontinuación veremos ejercicios resueltos con estas esctructuras.


SI ENTONCES
Ejercicio 1
Dado como dato el sueldo de un trabajador, aplicar un aumento de 17% si su
sueldo es inferior a s/. 1000 y 12% en caso contrario. Imprima para este caso, el
nuevo saldo de este trabajador.
a) PSEUDOCÓDIGO:
Inicio
Definir n Como Real
Leer n
Si n<1000 Entonces
n<-n+17/100*n
Sino
n<-n+12/100*n
Fin Si
Escribir "Nuevo sueldo" "=" n
Fin Algoritmo
b) DIAGRAMA DE FLUJO

INICIO

Real n

Leer n

F V
n<1000

n=n+12/100*n n=n+17/100*n

Imprimir nuevo
sueldo + = +n

FIN
c) DIAGRAMA NS
Ejercicio 2
Escribir un algoritmo que lea una nota de un examen por teclado y devuelva la
calificación que tiene. La calificación podría ser: Suspenso (0-4.99), Aprobado
(5-6.99), Notable (7-8.99), Sobresaliente (9-9.99) o Matrícula de Honor (10).
a) PSEUDOCÓDIGO:
Definir n Como Real
Leer n
Si n>0 entonces
Si n<5 Entonces
Escribir "Suspenso”
Sino
Si n<7 Entonces
Escribir "aprobado"
Sino
Si n<9 Entonces
Escribir "notable"
Sino
Si n<10 Entonces
Escribir "sobresaliente"
Sino
Si n=10 Entonces
Escribir "matrícula de honor"
Sino
Si n>10
Escribir "Valor fuera de rango"
Fin Si
Fin Si
Fin Si
Fin Si
Fin Si
Fin Si
Fin si
Fin
b) diagrama de flujo:
INICIO

Real n

Leer n

n>0

V
f f f
f f
n<5 n<7 n<9 n<10 n=10 n>10

v v v v
v
Imprimr suspenso Imprimir Imprimir matricula Imprimir valor
Imprimir aprobado Imprimir notable
sobresaliente de honor fuera de rango

FIN

c) diagrama NS:
Ejercicio 3
Una llamada de un teléfono fijo a otro, también fijo en horario normal (todos los días
de 7:00 a 22:59 hrs), cuesta sin IGV S/. 0,078, mientras que en horario reducido
(todos los días de 23:00 a 6:59 hrs), cuesta S/. 0,039. Calcule el costo total de una
llamada telefónica, si considera un minuto adicional de cargo por establecimiento de
llamada y solo se considera la hora de inicio para determinar a qué tarifa se sujeta.
a) PSEUDOCÓDIGO:
Inicio
Definir hora, min, dura, inicio, costo Como Real
Leer hora, min, dura
Inicio<-hora*60+min
Si inicio>495&&inicio<1380 Entonces
Costo<-(dura+1)*78/100
Sino
Costo<-(dura+1)*39/100

Fin Si
Escribir 1.18*costo
Fin Algoritmo
b) DIAGRAMA DE FLUJO
INICIO

Real hora, min,


dura, inicio, costo

Leer hora,
min, dura

Inicio=hora*60+min

F
inicio>495&&ini Costo<-
cio<1380 (dura+1)*39/100

Costo=(dura+1)*78/
100

Imprimir 1.18*costo

FIN

c) DIAGRAMA NS
Ejercicio 4
Un año bisiesto es aquel que tiene 366 días. Mediante un decreto del papa
Gregorio XIII, dado en 1582, se reforma el calendario Juliano que nos regia, para
que pasen a considerarse bisiestos aquellos años múltiplos de 4, pero no los
múltiplos de 100, excepto los múltiplos de 400. Escriba un algoritmo que diga si
un año es o no bisiesto.
a) PSEUDOCÓDIGO:

Proceso x
Definir año como entero
Imprimir "ingrese el año"
Leer año
Si (año%4==0) && (año%1000<>0) || (año%400==0)
Imprimir "año bisiesto"
Sino
Imprimir "año no bisiesto"

Fin Si

Fin Proceso

b) DIAGRAMA DE FLUJO

INICIO

Entero año

Imprimir ingrese el
año

Leer año

(año%4==0)&&( f Imprimir año no


años%1000==0) bisiesto
||(año%400==0)

Imprimir año
bisiesto

fin
c) DIAGRAMA NS
Ejercicio 5
Si comparamos al por mayor 100 o más artículos nos descuentan el 40%, si
compramos entre 25 y 100 nos descuentan un 20%, y si compramos entre 10 y
25 un 10%. No hay descuento si adquirimos menos de 10 artículos. Diga cuanto
debemos pagar por nuestra compra.
a) PSEUDOCÓDIGO:

Inicio
Definir cantidad, venta Como Entero
Definir costo como real
Leer cantidad, venta
Si (cantidad>99.9) Entonces
Costo<-(60/100)*cantidad*venta
Escribir costo
Fin Si
Si ((cantidad)>24.99&& (cantidad<100)) Entonces
Costo<-(80/100)*cantidad*venta
Escribir costo
Fin Si
Si ((cantidad>10.99) && (cantidad<25)) Entonces
Costo<-(90/100)*cantidad*venta
escribir Costo
Fin Si
Si cantidad<=10 Entonces
Costo <- cantidad*venta
escribir Costo
Fin Si
Fin Algoritmo

b) DIAGRAMA DE FLUJO
inicio

Entero
cantidad,venta;
Real costo;

Leer venta

f f
f Cantidad>24.99
Cantidad>10.99
Cantidad>99.9 &&cantidad<10 Cantidad<=10
&&cantidad<25
0

v f
v v v
Costo=(60/ Costo=(80/ Costo=(90/
Costo=cantidad*ven
100)*cantidad*vent 100)*cantidad*vent 100)*cantidad*vent
ta
a a a

costo costo costo costo

FIN
c) DIAGRAMA NS
Ejercicio 6
Construya una calculadora que lea 2 números y un operador, y efectué la
operación indicada. La calculadora será capaz de realizar las siguientes
operaciones: + (suma),-(resta),*(multiplicación),/(división) y #(potencia).
a) PSEUDOCÓDIGO:

Algoritmo calculadora

Definir n1, n2 como entero


Definir r como real
Definir op como carácter
Imprimir "ingrese los valores"
Imprimir "valor 1:"
Leer n1
Imprimir "valor 2:"
Leer n2
Imprimir "ingrese operación"
Repetir
Leer op
Hasta Que (op="+") || (op="-") ||(op="*")||(op="/")||(op="#")
Si op="+"
r=n1+n2
Fin Si
Si op="-"
r=n1-n2
Fin Si
Si op="*"
r=n1*n2
Fin si
Si op="/"
r=n1/n2
Fin Si
Si op="#"
r=n1^n2
Fin Si
Imprimir r
Fin Algoritmo
b) DIAGRAMA DE FLUJO
INICIO

Entero n1,n2;
Real r;
Carácter op;

Imprimir "ingrese
los valores"

Imprimir "valor 1:"

Leer n1

Imprimir "valor 2:"

Leer n2

Imprimir "ingrese
operación"

Leer op
f f f f
f
op= + op= - op= * op= / op= #

(op!="+") && (op!="-") f v v v v v


&&(op!="*")&&(op!="/
")&&(op!="#")
r=n1+n2 r=n1-n2 r=n1*n2 r=n1/n2 r=n1^n2

Imprimir r

FIN

c) DIAGRAMA NS
ejercicio 7
Una persona enferma, que pesa 70 kg, se encuentra en reposo, y desea saber
cuántas calorías consume su cuerpo durante todo el tiempo que realice una
misma actividad. Las actividades que tiene permitido realizar son únicamente
dormir o estar sentado en reposo. Los datos que tiene son que estando dormido
consume 1.08 calorías por minuto y estando sentado en reposo consume 1.66
calorías por minuto.
a) PSEUDOCÓDIGO:
Inicio
Definir tiempo, Calorías Como Real
Definir Actividad Como Carácter
Escribir 'ingrese los minutos de Actividad'
Leer tiempo
Escribir 'Ingrese la Actividad realizada'
Repetir
Leer Actividad
Hasta Que Actividad='dormir' || Actividad='sentado'
Si (Actividad='dormir') Entonces
Calorías<-tiempo*1.08
Sino
Si Actividad="sentado"
Calorías<-tiempo*1.66
Fin si
Fin Si
Escribir Calorías
FinProceso
b) DIAGRAMA DE FLUJO

INICIO

Real tiempo,
Calorías;
Char Actividad;

Escribir 'ingrese los


minutos de
Actividad'

Leer tiempo

Escribir 'Ingrese la
Actividad realizada'

Leer
actividad

v Actividad!= dormir &&


actividad!= sentado

actividad= dorm actividad= senta


f
ir do

v v
calorias=tiempo*1.0 calorias=tiempo*1.6
8 6

Imprimir calorias f

FIN
c) DIAGRAMA NS
Ejercicio 8
Un estacionamiento público cobra una tarifa mínima de $1500 por estacionarse
por dos horas o menos. Luego cobra $350 pesos adicionales por cada ½ hora o
fracción a partir de dos horas. La tarifa máxima por periodo de 24 horas es de
$36000 pesos. Suponga que ningún automóvil se queda más de 24 horas
seguidas. Escriba un algoritmo que calcule el valor a pagar por estacionamiento
de tres clientes que dejaron sus vehículos y el total recaudado.
a)PSEUDOCÓDIGO:
Proceso a
Definir tiempo, Deuda, b, c como real
Imprimir "ingrese el tiempo"
Leer tiempo
Si (tiempo<=2)
Deuda=1500
Sino
b=tiempo-2
c=b/0.5
Deuda= 350*c+1500
Fin Si

Imprimir "el monto a pagar es: " deuda

Fin Proceso

b) DIAGRAMA DE FLUJO
INICIO

Real tiempo, Deuda,


b, c

Imprimir ingrese el
tiempo

Leer tiempo

f b=tiempo-2
tiempo<=2 c=b/0.5
Deuda= 350*c+1500

Deuda=1500

Imprimir "el monto


a pagar es: " deuda

FIN

c) DIAGRAMA NS
Ejercicio 9
Elabore un algoritmo que resuelva una ecuación de primer grado, con la forma:
ax+b=0. Considerar que sí “a” es diferente a 0 no es una ecuación de primer
grado.
a)PSEUDOCÓDIGO:

Inicio
Definir a, b, x Como Real
Leer a, b
Si a<>0 Entonces
x<- -b/a
Sino
x<-0
Fin Si
Escribir "x" "=" x
Fin Algoritmo

b) DIAGRAMA DE FLUJO

INICIO

Real a,b,x

Leer a,b

a!=0 X=0

X=-b/a

imprimir "x" "=" x

FIN
c) DIAGRAMA NS
Ejercicio 10
Dado la hora, minuto y segundo, encuentre la hora del siguiente segundo.
a) PSEUDOCÓDIGO:
Proceso reloj
Definir h,m,s Como Entero
Repetir
Escribir 'introduzca la hora'
Leer h
Hasta Que h<=24 Y h>=0
Repetir
Escribir 'introduzca los minutos'
Leer m
Hasta Que m<=60 Y h>=0
Repetir
Escribir 'introduzca los segundos'
Leer s
Hasta Que s<=60 Y h>=0
s<-s+1
Si s>=60 Entonces
s<-s-60
m<-m+1
FinSi
Si m>=60 Entonces
m<-m-60
h<-h+1
FinSi
Escribir 'hora','=',h
Escribir 'minuto','=',m
Escribir 'segundo','=',s
FinProceso
b) DIAGRAMA DE FLUJO

INICIO

Imprimir
Entero h,m,s introduzca la hora Leer h
v

Imprimir
Leer m introduzca los h>24||h<0
minutos f

v Imprimir
m>60||m<0 introduzca los Leer s
f segundos

s=s-60
s>=60 s=s+1 s>60||s<0
m=m+1 v f
f

m=m-60 'hora','=',h
m>=60
v h=h+1 'minuto','=',m
'segundo','=',s

f
FIN

c) DIAGRAMA NS
PARA
Ejercicio 1
Un vivero forestal actualiza cada seis meses los precios de la planta que vende
en función de los valores oficiales de inflación mensual. Desean desarrollar un
programa que proporcione el precio actualizado a partir del precio anterior y los
valores de inflación.
Solución:
a) PSEUDOCÓDIGO:

Inicio
Entero nuevo, actual, n, m
Imprimir “ingrese el tamaño del arreglo”
Leer n
Entero inf[n]
Imprimir “introduzca el precio actual”
Leer actual
Nuevo = actual
Para i=1 hasta i<6 incremento i=i+1
Imprimir“introduzca la inflación del mes”+i
Leer m
Inf[i]=m
nuevo = nuevo*(1+inf[i]/100)
Fin para
Escribir “el precio nuevo del producto debe ser:”+nuevo
Fin
b) diagrama de flujo:
INICIO

Entero
nuevo,actual,n,m

ingrese el tamaño
del arreglo

Leer n

Entero inf[n]

introduzca el
precio actual

Leer actual

nuevo=actual

f el precio nuevo del


producto debe
i=1;i<6;i=i+1 ser: +nuevo

v
introduzca la
inflación del mes + i
FIN

Leer m

Inf[i]=m
nuevo = nuevo*(1+inf[i]/
100)

c) diagrama NS:
Ejercicio 2
Simule un “reloj rápido” que muestre en la pantalla las horas, minutos y
segundos.
Solución:
a)PSEUDOCÓDIGO:

Proceso pro
Para hor<-0 Hasta 24 Con Paso 1 Hacer
Para min<-0 Hasta 60 Con Paso 1 Hacer
Para seg<-0 Hasta 60 Con Paso 1 Hacer
Imprimir "hora: " hor " minuto: " min " segundo: "
seg
Fin Para
Fin Para
Fin Para

FinProceso
b) diagrama de flujo

INICIO

F Para hor=0; hasta hor<=24;


hor=hor+1

Para min=0; hasta min<=60; F


min=min+1

F Para seg=0; hasta seg<=60;


seg=seg+1

v
"hora: "+ hor
"minuto: "+ min
" segundo: " +seg

FIN

c) diagrama NS
Ejercicio 3
Obtener la suma de pares e impares de los N primeros números enteros
positivos.
a) PSEUDOCÓDIGO:

Proceso pro
Definir i, n, SP,SMP Como Entero
Escribir "ingrese el intervalo mayor"
leer n
Para i<-1 Hasta n Con Paso 2 Hacer
SMP <- SMP+i
Fin Para
Para i<-2 Hasta n Con Paso 2 Hacer
SP <- SP+i
Fin Para
Escribir "la suma de los numeros pares es " SMP
Escribir "la suma de los numeros impares es " SP
FinProceso
b) diagrama de flujo

INICIO

Entero i, n, SP,SMP

"ingrese el intervalo
mayor"

Leer n

f "la suma de los numeros pares es " SMP


Para i<-1 ;Hasta i<=n;
f Para i<-2 ;Hasta i<=n;
i=i+ 2 i=i+ 2 "la suma de los numeros impares es " SP

v v

SMP=SMP+i SP=SP+i
FIN

c) diagrama NS
Ejercicio 4
Hallar el cuadrado de un numero usando la siguiente relación:
N2=1+3+5+…2N-1.

Solución:

a) PSEUDOCÓDIGO:

Inicio
Definir i, n, c Como Entero
leer n
Para i<-1 Hasta n Con Paso 1 Hacer
c<-c+ (2*i-1)
Fin Para
Escribir c
Fin Algoritmo

b) DIAGRAMA DE FLUJO
INICIO

Entero i,n,c

Leer n

Para i=1 hasta i<=n Imprimir c


F
incremento i=i+1

V
FIN
c=c+(2*i-1)

c) DIAGRAMA NS
Ejercicio 5
Crear el algoritmo que indique si un número es perfecto o no, se dice que un
número es perfecto si la suma de sus divisores es igual al número.
Solución:

a) PSEUDOCÓDIGO:

Definir i, n, s Como Entero


Definir r Como Carácter
Leer n
Para i<-1 Hasta n/2 Con Paso 1 Hacer
Si (n%i==0) Entonces
s<-s+i
Fin Si
Fin Para
Si (n=s) Entonces
r<-"perfecto"
Sino
r<-"no es perfecto"
Fin Si
Escribir r
Fin Algoritmo

b) DIAGRAMA DE FLUJO

INICIO

Entero i,n,s;
Carácter r;

Leer n

Para i=1 hasta i<=n/2 f


n=s f r= no es perfecto
incremento i=i+1

v v
f Imprimir r
n%i==0 r= perfecto

v
FIN
s=s+i
c) DIAGRAMA NS

Ejercicio 6
Dados dos números, diga si son amigos o no, recuerde que dos números son
amigos si la suma de los divisores de uno de ellos es igual al otro y viceversa.
Solución:
a) PSEUDOCÓDIGO:

Inicio
Definir i, n1, n2, s1, s2 Como Entero
Definir r Como Carácter
Leer n1, n2
Para i<-1 Hasta n1/2 Con Paso 1 Hacer
Si (n1%i=0) Entonces
s1<-s1+i

Fin Si
Fin Para
Para i<-1 Hasta n2/2 Con Paso 1 Hacer
Si (n2%i=0) Entonces
s2<-s2+i

Fin Si
Fin Para
Si (n1=s2&&n2=s1) Entonces
r<-"son amigos"
Sino
r<-"no son amigos"
Fin Si
Escribir r
Fin Algoritmo

b) DIAGRAMA DE FLUJO
INICIO

Entero i,n1,n2,s1,s2;
Carácter r;

Leer n1,n2

f f f
Para i=1 hasta i<=n1/2 Para i=1 hasta i<=n2/2
n1=s2&&n2=s1 r= no son amigos
incremento i=i+1 incremento i=i+1

v v v
f r= son amigos
n1%i=0
n2%i=0 f
Imprimir r
v
v
s1=s1+i
s2=s2+i

FIN

c) DIAGRAMA NS
Ejercicio 7
Escriba un algoritmo que calcule, la suma de la siguiente serie, hasta el número
entero positivo N ingresado.
1 1 1 1
+ + +
2 3 4 𝑁

Solución:

a) PSEUDOCÓDIGO:

Inicio
Definir i, n Como Entero
Definir s Como Real
Leer n
Para i<-1 Hasta n-1 Con Paso 1 Hacer
s<- s+ (i/(i+1))
Fin Para
Escribir s
Fin Algoritmo

b) diagrama de flujo

INICIO

Entero i,n;
Real s;

Leer n

Para i=1 hasta i<=n-1


f
Imprimir s
incremento i=i´1

s=s+(i/(i+1)) FIN

b) DIAGRAMA NS
Ejercicio 8
Dado un rango numérico entero núm. Inicial y núm. Final, obtener la cantidad de
números positivos y negativos que existen en el rango.
Solución:

a) PSEUDOCÓDIGO:

Inicio
Definir ni, nf, i Como Entero
Definir cp, cn Como Real
Leer ni, nf
Para i<-ni Hasta nf Con Paso 1 Hacer
Si (i<>0) Entonces
Si (i<0) Entonces
cn<-cn+1
Sino
cp<-cp+1
Fin Si

Fin Si
Fin Para
Escribir "cantidad de números positivos" "=" cp
Escribir "cantidad de números negativos" "=" cn
Fin Algoritmo

b) DIAGRAMA DE FLUJO
INICIO

Entero ni,nf,i;
Real cp,cn;

Leer ni,nf

cantidad de numeros
Para i=ni hasta i<=nf
f positivos + = +cp
cantidad de numeros
incremento i=i+1 negativos + = +cn
v
f
i!=0
FIN
v
f
i<0 cp=cp+1

cn=cn+1

c) DIAGRAMA NS
Ejercicio 9
Haga un pseudocódigo para obtener la suma de los 20 primeros números
naturales positivos.
Solución:
a) PSEUDOCÓDIGO:

Inicio
Definir i Como Entero
Definir suma Como Real
Suma<-0
Para i<-1 Hasta 20 Con Paso 1 Hacer
Suma<- suma + i
Fin Para
Escribir "la suma es" "=" suma
Fin Algoritmo
b) DIAGRAMA DE FLUJO

INICIO

Entero i;
Real suma=0;

Para i=1 hasta i<=20 F "la suma


es"+"="+suma
incremento i=i+1
v

Suma=suma+1 FIN

c) DIAGRAMA NS
Ejercicio 10
Leer el sueldo de 10 trabajadores, calcular el promedio de los sueldos, además
reportar a cuánto asciende el sueldo de más alto.
Solución:
a)PSEUDOCÓDIGO:

inicio
Definir suma, m , sueldo Como Real
Suma<-0
m<-0
Para i<-1 Hasta 10 Con Paso 1 Hacer
imprimir "ingrese el sueldo del trabajador " i
Leer sueldo
Suma<-suma+sueldo
Si (sueldo > m ) Entonces
m =sueldo
Fin Si
Fin Para
Escribir "el promedio es " suma/10
Escribir "el mayor de los sueldos es " m
Fin

b) DIAGRAMA DE FLUJO
INICIO

Real suma=0, m=0,


sueldo;

el promedio es
Para i=1 hasta i<=10
f suma/10;
el mayor de los
incremento i=i+1 sueldos es m;

Leer sueldo FIN

Suma=suma+sueldo

f
Sueldo>m

m=sueldo

c) diagrama NS
MIENTRAS
Ejercicio 1
Una ONG tiene puntos de reparto de vacunas que se pretende funcionen de la
siguiente manera:
Cada día, empezar con 1000 vacunas disponibles y a través de un programa
que controla las entregas avisar si el inventario baja de 200 unidades.

Solución:

Pseudocódigo:
Inicio
Entero entregadas, existencias=1000;
Mientras (existencias>=200)
Imprimir "introduzca el número de unidades entregadas"
Existencias=existencias-entregadas
Imprimir "quedan "+existencias+" existencias"
Fin mientras
Imprimir "el inventario ha bajado de 200 unidades, debe comunicarlo"
Fin
DIAGRAMA DE FLUJO

Inicio

Existencias=1000;
Entero Entregadas;

F El inventario ha bajado de 200


Existencias>=200 unidades. Debe comunicarlo

Introduzca el número de
unidades entregadas Fin

Entregadas

Existencias = Existencias
- Entregadas

c) diagrama NS
Ejercicio 2
Un profesor desea registrar las notas obtenidas por 20 de sus estudiantes,
discriminando si son hombres o mujeres. Se requiere un programa que capture
la nota y el sexo (1 para hombres y 2 para mujeres) y realice un promedio para
cada uno de los tipos. Al final debe indicar cuál de los dos (hombres o mujeres)
tuvo un mejor desempeño.
Solución:
a) PSEUDOCÓDIGO:

Inicio
Entero sexo, n=1, conth=0,contm=0;
Real nota, promedioh, promediom, acumh=0, acumm=0;
Mientras(n<=20)
Imprimir "ingrese el sexo"
Hacer
Leer sexo
Mientras (sexo!=1)||(sexo!=2)
Imprimir "ingrese la nota"
Hacer
Leer nota
Mientras (nota<0)||(nota>20)
Si (sexo==1)
acumh=acumh+nota
conth=conth+1
Casi contrario si(sexo==2)
acumm=acumm+nota
contm=contm+1
Fin_si
n=n+1
Fin mientras
promedioh=acumh/conth
promediom=acumm/contm
Si(promedioh>promediom)
Imprimir"los hombres tienen mayor promedio"
Caso contrario
Imprimir "las mujeres tienen mayor promedio"
Fin si
Fin

DIAGRAMA DE FLUJO
Inicio

Entero sexo, n=1,contH=0,contM=0;


Real nota, promedioH, promedioM,
acumH=0, acumM=0;

F F las mujeres tienen


promedioH=acumH/contH;
n<20 promedioM=acumM/contM; promedioH>promedioM mayor promedio

v
V
Ingrese nota
los hombres tienen
mayor promedio

nota
Fin

Ingrese sexo

sexo

F acumM =acumM+nota;
Sexo==1 contM =contM+1;

v
acumH =acumH+nota; n=n+1;
contH =contH+1;

C) diagrama NS
Ejercicio 3
Los números Armstrong o cubos perfectos, son aquellos que al sumar los cubos de
sus dígitos nos dan el mismo número. Lea un número y determine si es o no un cubo
perfecto.
Solución:
a) PSEUDOCÓDIGO:

inicio
suma <- 0;
Escribir 'Ingrese un numero: ';
Leer num;
numero <- num;
Mientras num > 0 Hacer

Fin Mientras
Si suma = numero Entonces
Escribir 'Es un cubo perfecto';
Sino
Escribir 'No es un cubo perfecto';
Fin Si
Fin
b) Diagrama de flujo
INICIO

Entero
Suma=0,num,numero,cifra;

ingrese un
numero

Leer num

Numero=num

f f no es un cubo
Num>0 Suma=numero perfecto

v v
es un cubo
cifra <- num MOD 10; perfecto
suma <- suma + cifra^3;
num <- (num - cifra) / 10;

FIN

c) diagrama NS
Ejercicio 4
Lea un número y forme otro número con cifras inversas.
Solución:
a) PSEUDOCÓDIGO:
Proceso InversionCifras
Definir n, retorno=0, digito como entero;
Escribir "Ingrese un numero";
Leer n;
Mientras n > 0 Hacer
digito <- n%10;
n <- n - digito;
n <- n / 10;
retorno <- retorno*10 + digito;
FinMientras
Escribir "El numero invertido es: " retorno;
FinProceso

DIAGRAMA DE FLUJO
INICIO

entero n, retorno=0,
digito;

ingrese un
numero

Leer n

el numero
f invertido es:
n>0
+retorno;
v
digito <- n%10;
n <- n - digito;
FIN
n <- n / 10;
retorno <- retorno*10 + digito;
DIAGRAMA NS
Ejercicio 5
Dado un número, devolver el digito mayor.
Solución:
a) PSEUDOCÓDIGO:
Inicio
Definir digito como entero;
definir n Como Real
imprimir "ingrese el numero de cifras de su numero"
leer m
dimension a[m]
Hacer
Escribir "Ingrese un numero";
Leer n;
Mientras que (n>=(10^m))||(n<=0)||(n<=((10^(m-1))-1))
i=1
digito=11
Mientras n > 0 Hacer
mientras(n%10<>0)
digito <- n%10;
n <- n - digito;
a[i]=digito
FinMientras
n <- n / 10;
i=i+1
FinMientras
E=a[m]
para q=1 hasta m-1 con paso 1
si(E>a[q])
may=E
Sino
E=a[q]
FinSi
FinPara
imprimir " la cifra mayor es: " E
FinAlgoritmo
b) diagrama de flujo
INICIO

Entero digito,retorno; may=E


Real n;

V
ingrese el numero
de cifras de su E>a[q]
numero E=a[q] FIN
F
Leer m V
Para q=1 hasta q<=m-1
incremento q=q+1 la cifra mayor es:
Entero a[m] F
+E

digito <- n%10;


n <- n - digito;
ingrese un E=a[m] a[i]=digito
V
numero
V
F
Leer n
n>0 (n&10)!==0
V

F
(n>=(10^m))||(n<=0)||
(n<=((10^(m-1))-1)) i=1 n=n/10;
F Digito=11 i=i+1;

c) diagrama NS
Ejercicio 6
Escriba un pseudocódigo que dados como datos 170 números enteros, obtenga la
suma de los números pares y el promedio de los números impares. Además indique
cuantos 0 se ingresaron.
pseudocodigo
Proceso sin_titulo

definir in,fn,spar,simpar Como Entero

spar=0

simpar=0

in=1

fn=170

contador=0

mientras(in<fn)

si in%2=0

spar=spar+in

sino

simpar = simpar+in

contador=contador+1

FinSi

in=in+1

FinMientras

promi=simpar/contador

escribir "la suma de los pares es :" spar

escribir "el promedio de los impares es: " promi

escribir " existen 28 ceros en este intervalo"

FinProceso
DIAGRAMA DE FLUJO

INICIO

Entero
in=1,fn=170,spar=0,simpar=0,
contador=0;

la suma de los
pares es: +promi;
f el promedio de los
Promi=simpar/ impares es:
In<fn +promi; FIN
contador
existen 28 ceros en
este intervalo
v

f Simpar=simpar+in
In%2=0
Contador=contador+1

Spar=spar+in

In=in+1

C) diagrama NS
Ejercicio 7
Supongamos que debemos obtener la suma de los gastos que hicimos en nuestro
ultimo viaje, pero no sabemos exactamente cuantos fueron.
Solución:
a) PSEUDOCÓDIGO:

proceso gas
Definir sumagas, gasto Como real
Definir ch como caracter
Sumagas<-0
ch="si"
mientras(ch="si")
imprimir "introduzca el gasto realizado"
Leer gasto
sumagas=sumagas+gasto
Hacer
imprimir "¿realizara otro gasto?"
leer ch
Mientras que ch!="si"&&ch!="no"
FinMientras
imprimir "el gasto total es: " sumagas
Finproceso
b) diagrama de flujo
INICIO

Real
sumagas=0,gasto;
Carácter ch= si ;

f el gasto total es:


Ch= si +sumagas FIN

v
introduzca el gasto
realizado

Leer gasto

Sumagas=sumagas+
gasto

¿realizara otro
gasto?

Leer ch

ch!= si &&ch!=
v no

c) diagrama NS
Ejercicio 8
Realizar un algoritmo que pida al usuario digitar un color y lo muestre, pero cuando
el usuario digita el color rojo se termina y lo indica.
Solución:
a) PSEUDOCÓDIGO:

proceso col
Definir color Como Carácter
Definir booleam Como Lógico
imprimir "ingrese un color"
Leer color
Mientras color<>"rojo" Hacer
Escribir color
Leer color
Fin Mientras
imprimir "rojo"
FinProceso
b) diagrama de flujo

INICIO

Carácter color;
Boolean rojo;

Ingrese un color

Leer color

F
Color!= rojo rojo FIN

color

V Leer color

c) diagrama NS
Ejercicio 9
Hacer un algoritmo que pregunte x números y que se sumen hasta que de un numero
primo.
a) PSEUDOCÓDIGO:
Inicio
Definir n, suma, div, cont como entero
Definir bandera como lógico
div<-2
Mientras bandera=falso Hacer
Leer n
Suma<-suma+n
Res<-suma
cont<-0
div<-2
Mientras res>=div Hacer

Si res%div=0 Entonces
cont<-cont+1
div<-div+1
Sino
div<-div+1
Fin si
Fin Mientras
Si cont=1 Entonces
Bandera=Verdadero
Fin Sí
Fin Mientras
Imprimir "el numero primo es" "=" suma
FinAlgoritmo

DIAMGRAMA DE FLUJO
INICIO

entero n, suma, div=2,


cont;
Boolean bandera;

el numero primo
Bandera=falso f es + = +suma FIN

v
Leer n

Suma=suma+n;
Res=suma;
Cont=0;
Div=2; Bandera=verdadero

v
f
Res>=div Cont=1
f
v

f
Res%div=0 div=div+1

v
cont<-cont+1;
div<-div+1;
C) DIAGRAMA NS
HACER MIENTRAS
Ejercicio 1
Se tiene una lámina rectangular de largo y ancho conocidos a la que se recorta
un cuadrado de lado x en cada esquina con el objeto de formar una caja. ¿Cuáles
son las dimensiones de esta caja, si se desea que el volumen sea el máximo
posible?.
Ejercicio 2
Cal es la máxima área de terreno que se puede obtener si las longitudes de un
rreno son X y 20-X
Solución:
Inicio
Definir inc,x,Areamax Como entero
inc=1
Repetir
x<-x+inc
Area<-x*(20-x)
Si Area>Areamax Entonces
Areamax<-Area
xmax<-x
Fin Si
Ejercicio 3
Escriba un pseudocódigo, que dados como datos N números enteros, obtenga
el numero de ceros que hay entre estos números.

Inicio
Definir i,conceros,n,num como entero
conceros<-0
i<-0
Leer n
Repetir
Leer num
Si (num==0) Entonces
conceros<-conceros +1
Fin Si
i<-i+1
Hasta Que (i<n)
Escribir "la cantidad de ceros es" "=" conceros
Ejercicio 4
Una vendedora de pan tiene N unidades de pan al comenzar el dia. Si cada
cliente le pide m unidades de pan cuantos clientes son atendidos
completamente. Cuantos panes quedan para el último cliente.

Solución:
Inicio
Definir n,m,i Como Entero
Leer n,m
Repetir
n<-n-m
i<-i+1
Hasta Que (n<m)
Escribir "clientes atendidos completamente" "=" i
Escribir "cantidad de panes para el ultimo cliente" "=" n
Fin Algoritmo
Ejercicio 5
Un cliente de banco realiza sucesivos retiros desde un cajero, si posee 1000 al
inicio de las operaciones, escriba un programa que le permita retirsr dinero
mientras tenga fondos.
pseudocodigo
proceso banco
k=1000
repetir
imprimir "ingrese la cantidad que va a retirar"
leer n
resto<-k-n
si resto>0
k<-resto
Escribir "dinero restante" "=" resto
FinSi
si resto<0
imprimir "saldo insuficiente"
FinSi
si resto=0
imprimir "cuenta vacia"
FinSi

hasta que resto=0


FinProceso

Ejercicio 6
A una fiesta ingresan personas de diferentes edades, no se permite el ingreso
de menores de edad, se pide la edad mayor la menor y el promedio de edades.
El algoritmo termina cuando se ingresa el 0.
Inicio
Algoritmo sin título
Definir n, cont, suma, promedio como real
Definir bandera como lógico
cont<-0;
suma<-0;
may<-0;
men<-0;
Bandera<-verdadero
Mientras bandera==verdadero hacer
Leer b
Si b>=18 entonces

Si b > may entonces


may<-b;
fin SI
Si cont==0 Entonces
men<-b;
Fin Si

Si men>b Entonces
men<-b;
FinSi
cont<-cont+1;
suma<-suma+b;
bandera<-verdadero;
sino
si b!=0 entonces
Imprimir “ingrese una edad que sea mayor a 18"
Bandera<-Verdadero
fin sI
Fin Si
Si b==0 Entonces
Bandera<-Falso
Finís
Fin Mientras
Promedio<-(suma/cont);
Imprimir "el valor mayor es = ", may
Imprimir "el valor menor es= ", men
Imprimir "el promedio de las edades es= ", promedio

Fin Algoritmo

Ejercicio 7
Escribir un algoritmo para pasar un numero de base decimal a base 2.
Solución:
Inicio
Definir n, i, m, k Como Entero
Leer n
k<-1
Repetir
i<-n%2
m<-m+i*k;
k<-10*k
Si n%2=0 Entonces
n=n/2
Sino
n=(n-1)/2
Fin Si
Hasta Que n<=0
Escribir "numero en base 2 es" "=" m
FinProceso

Ejercicio 8
Diseñar un algoritmo que me permita calcular las 5 primeras parejas de números
primos gemelos

Proceso intitulo
Dimensión Q [11]
Definir a, k, i,x Como entero
b=1
Para k=1 hasta 3
a=0
Para i=1 hasta (k+1)
Si k%1==0
a=a+1
Fin Sí
Fin Para
si a==2
Q[b]=k
b=b+1
Fin Si
Fin Para
Para x=b hasta 1 con paso x-1
Para k=1 hasta 11 con paso k+1
Si (Q[x]-Q[k] ==2)
Imprimir Q [x+1] " y " Q[x] " son primos gemelos\"
Fin Si
Fin Para

Fin Para
FinProceso

Ejercicio 9
Diseñar un algoritmo que simule un cajero que cuente con las operaciones de retiro y
deposito siendo el saldo inicial 1000 soles.

Pseudocodigo
Proceso cajero

Definir n, resto Como Entero


definir ch, op como caracter
k<-1000
Repetir
Repetir
imprimir "ingrese la operación(deposito/retiro)"
leer op
hasta que op="deposito"||op="retiro"
si op = "retiro"
imprimir "ingrese la cantidad que va a retirar"
leer n
resto<-k-n
si resto>0
k<-resto
Escribir "dinero restante" "=" resto
FinSi
si resto>0
Repetir
escribir "¿desea continuar?"
leer ch
Hasta Que ch="si"||ch="no"
Sino
si resto<0
imprimir "saldo insuficiente"
Repetir
escribir "¿desea continuar?"
leer ch
Hasta Que ch="si"||ch="no"
FinSi
si resto=0
k=0
imprimir "cuenta vacia"
Repetir
escribir "¿desea continuar?"
leer ch
Hasta Que ch="si"||ch="no"

FinSi
FinSi
FinSi
si op="deposito"
imprimir "ingrese la cantidad de deposito"
leer n
resto<-k+n
k<-resto
imprimir "saldo actual " k
Repetir
escribir "¿desea continuar?"
leer ch
Hasta Que ch="si"||ch="no"
FinSi
Mientras que ch="si"
imprimir "gracias por su preferencia"
Fin proceso
ARREGLOS
Ejercicio 1
Calcular la varianza y la desviación estándar de un conjunto de datos
almacenados en un arreglo.
PSEUDOCÓDIGO

Inicio
Imprimir "ingrese el tamaño del arreglo"
Leer n
Entero m, C=0, Suma=0, Dimensión A[n]
Para i<-1 Hasta n Con Paso 1 Hacer
Imprimir "ingrese el dato numero " i
Leer m
A[i]=m
Suma = suma+A[i]
Fin Para
prom = suma/n
Para i<-1 Hasta n Con Paso 1 Hacer
C=C+(A[i]-prom)^2
Fin Para
Varianza = (1/n) *C
Imprimir "la varianza es " varianza
desviación= (varianza) ^0.5
Imprimir "la desviación es " desviación
Fin Proceso
DIAGRAMA DE FLUJO

INICIO

"ingrese el tamaño
del arreglo"

Leer n

Entero
Suma=0,A[n], C=0;

Para i=1 hasta i<=n f


Prom=suma/n
incremento i=i+1
v
"ingrese el dato
Para i=1 hasta i<=n
f Varianza=(1/n)*C
numero "+i desviación=
incremento i=i+1
(varianza) ^0.5
v
"la varianza es
Leer m C=C+(A[i]-prom)^2
"+varianza;
"la desviación es
"+desviación;
A[i]=m
Suma = suma+A[i]

FIN
C) DIAGRAMA NS
Ejercicio 2
Cree un algoritmo que busque un número en 7 números ingresados y determine
la posición y si existe o no el número buscado empleando el método de búsqueda
secuencial.

pseudocodigo
Proceso
i=0
Dimension vec[7]
Encontró=Falso
Para i<-1 Hasta 7 Hacer
Imprimir "ingrese el valor " i
Leer n
vec[i]=n
Fin Para
Escribir "favor ingresar un numero: "
Leer num
i=1
Mientras encontró=falso && i<7 Hacer

Si num==vec[i] Entonces
Encontró = Verdadero
Pos=i
Fin Si
i=i+1
Fin Mientras
Si encontró=Verdadero Entonces
Escribir " el dato se existe y está en la posición: " , pos
Fin Si
Fin Proceso

DIAGRAMA DE FLUJO
INICIO

Entero i=0, vec[7];


Boolean encontro=falso;

FIN
Para i=1 hasta i<=7 f favor ingresar un
incremento i=i+1 numero:

v Leer num el dato existe y


esta en la posicion:
ingrese el valor +i i=1 +pos

v
Leer n f f
Encontro=falso& Encontro=verda
&i<7 dero
Vec[i]=n
v

f
Num==vec[i] i=i+1;

v
Encontro= verdadero;
Pos=i;

DIAGRAMA NS
Ejercicio 3
Crear un algoritmo para dados 5 números en un arreglo imprimir el mayor.

pseudocodigo
Inicio
Definir n como entero
Dimension datos[5]
Definir aux como real
Para i<-1 Hasta 5 Hacer
Escribir "Ingrese el dato ",i,":"
Leer n
datos[i]=n
Fin Para
Para k<-1 Hasta 5 Con Paso 1 Hacer
Para i<-1 Hasta 5-k Con Paso 1 Hacer
Si (datos[i]>datos[i+1])
Aux= datos[i]
datos[i] = datos[i+1]
datos[i+1]= aux
Fin Si
Fin Para
Fin Para
Imprimir "el mayor valor es: " datos[5]
Fin
b) diagrama de flujo

INICIO

Entero n, datos[5];
Real aux;

f el mayor valor es:


Para i=1 hasta i<=5 Para k=1 hasta k<=5
F datos[5]
incremento i=i+1 incremento k=k+1

v v f

ingrese el dato +i FIN


Para i=1 hasta i<=5-k
incremento i=i+1

v
Leer n

f
Datos[i]>datos[i+1]
Datos[i]=n

v
Aux=datos[i]
Datos[i]=datos[i+1]
Datos[i+1]=aux
c) diagrama NS
Ejercicio 4
Desarrollar un algoritmo que calcule la superficie de un terreno que le
corresponde a un heredero después de “n” generaciones, partiendo de una
superficie inicial en la generación 0. Se supone que hay división a partes iguales
entre herederos.

pseudocodigo

proceso as
imprimir "¿Cuál es el número de generaciones?"
leer n
entero Hgen(n)
imprimir "¿Cuál es la superficie inicial?"
leer Supin
Toca = Supin
para i=1 hasta i<=n incremento i=i+1
imprimir "¿Cuál es el número de herederos de la generación "+i+" ?"
leer Hgen(i)
Toca= Toca / Hgen(i)
finpara
imprimir "Al heredero actual le corresponde una superficie de "+Toca
FinProceso
b) diagrama de flujo
INICIO

¿cual es el numero
de generaciones?

Leer n

Entero Hgen[n]

¿Cuál es la
superficie inicial?

Leer supin

Toca=supin

f al heredero actual
Para i=1 hasta i<=n le corresponde una
FIN
incremento i=i+1 superficie de +toca

v
¿Cuál es el numero
de herederos de la
generacion +i+ ?

Leer Hgen[i]

Toca=toca/Hgen[i]

c) diagrama NS
Ejercicio 5
Realice un pseudocódigo que calcule la media aritmética de N valores, además
reporte los números registrados en orden inverso.

pseudocodigo
Proceso as
Definir N, I, V, num como entero;
Definir suma como entero;
imprimir "introduzca el tamaño del arreglo"
Leer N;
Dimension V[N];
Suma<-0;
Para I<-1 Hasta N Con Paso 1 Hacer
Escribir "ingrese el primer dato:",I,":"
Leer num
V[I] <-num
Suma <- suma + V [I]
Fin Para
Escribir "la media aritmética es" "=" (suma/N)
Para I<-1 Hasta N Con Paso 1 Hacer
digito=0
retorno=0
Mientras V[I] > 0 Hacer
digito <- V[I]%10;
V[I] <- V[I] - digito;
V[I] <- V[I] / 10;
retorno <- retorno*10 + digito;
FinMientras
Escribir "El numero " I " invertido es: " retorno;
Fin Para
FinProceso
b) diagrama de flujo
INICIO

Entero N,I,V,suma;

introduzca el
tamaño del arreglo

Leer N

Entero V[N]
Suma=0

F la media aritmetica
Para i=1 hasta i<=N
es= +(suma/N)
incremento i=i+1

V
ingrese el dato F
+I+ : Para i=1 hasta i<=N
FIN
incremento i=i+1

Leer num
V
V[I]=num Digito=0
Suma=suma+V[I] Retorno=0

el numero +I+
F invertido
V[I]>0
es: +retorno;

V
digito <- V[I]%10;
V[I] <- V[I] - digito;
V[I] <- V[I] / 10;
retorno <-
retorno*10 + digito;

c) diagrama NS

Вам также может понравиться