Está en la página 1de 27

PRINCIPIOS DE ALGORITMOS TALLER N 02

ESTRUCTURAS SECUENCIALES
1. Dados los enunciados siguientes desarrollar el algoritmo y diagrama
de flujo correspondiente a cada ejercicio propuesto, utilizando
estructuras secuenciales.

a) Hallar la suma de los primeros n nmeros naturales.

Proceso sin_titulo
definir suma, n Como Entero
suma<-0
escribir "introducir un numero:"
leer n
suma =(n*(n+1))/2
mostrar "el resultaado de la suma es:", suma
FinProceso

b) Calcule la suma de los cuadrados de los


primeros nmeros naturales.

Proceso sin_titulo
definir suma, n Como Entero
suma<-0
escribir "introducir un numero:"
leer n
suma = n*(n+1)*(2*n+1)/6
mostrar "el resultaado de la suma es:", suma;
FinProceso

c) Calcule el rea de un rombo de diagonales conocidas.

Proceso sin_titulo
definir d1, d2, area_del_rombo Como
Entero
area_del_rombo<-0
escribir "escribir diagonal 1 :"
leer d1
escribir "escribir diagonal 2 :"
leer d2
area_del_rombo=d1*d2/2
mostrar "el area del rombo conocido es:",
area_del_rombo
FinProceso

d) Cul es el monto si nos prestan un capital c, a una tasa


de inters t% durante n periodos? Formula: m=c(1+t)^n

Proceso sin_titulo
definir c,t,n,m Como Real
m=0.0
mostrar "ingrese su capital inicial:"
leer c
mostrar "ingrese su tasa de interes:"
leer t
mostrar "durante cuanto tiempo:"
leer n
m=c*(1+t)^n
mostrar "el monto a pagar es:",m
FinProceso

e) Convierta una temperatura dada en grados Celsius a grados


Fahrenheit. Formula: (9/5)C + 32.

Proceso sin_titulo
definir nota1,nota2,nota3,nota4,
notamenor Como Entero
definir promedio Como Real
Mostrar "ingresar la nota 1:"
leer nota1
Mostrar "ingresar la nota 2:"
leer nota2
Mostrar "ingresar la nota 3:"
leer nota3
Mostrar "ingresar la nota 4:"
leer nota4
Si (nota1<nota2 && nota1<nota3 &&
nota1<nota4) Entonces
notamenor=nota1
Fin Si
Si (nota2<nota1 && nota2<nota3 &&
nota2<nota4) Entonces
notamenor=nota2
Fin Si
Si (nota3<nota1 && nota3<nota2 &&
nota3<nota4) Entonces
notamenor=nota3
Fin Si
Si (nota4<nota1 && nota4<nota2 &&
nota4<nota3) Entonces
notamenor=nota4
Fin Si
promedio=(nota1+nota2+nota3+nota4notamenor)/3
mostrar "el promedio es de:",promedio
FinProceso

f) Desarrolle un algoritmo que lea 02 valores y los intercambie.


Por ejemplo si a 2 y b5 el algoritmo debe hacer que a5 y
b2.

Proceso sin_titulo
definir a,b,c Como Entero
mostrar "ingrese valor de a:"
leer a
mostrar "ingrese valor de b:"
leer b
c=a
a=b
b=c
mostrar " los datos estan invertidos:"
mostrar "a=",a
mostrar "b=",b
FinProceso

g) Elabore un algoritmo que permita leer los 3 lados de un


tringulo cualquiera y calcule su rea, considerar: Si A, B y C
son los lados y S el semiperimetro. Sabemos que el
semiperimetro es igual a la suma de los lados sobre dos.

A= S( S A )( SB )( SC)

Proceso sin_titulo
definir a,b,c Como Entero
definir area,s como real
mostrar "ingresar lado a"
leer a
mostrar "ingresar lado b"
leer b
mostrar "ingresar lado c"
leer c
s=(a+b+c)/2
mostrar "el semiperimetro es:",s
area=rc(S*(S-A)*(S-B)*(S-C))
mostrar "el area del triangulo es :",area
FinProceso

h) En un curso se han establecido tres notas: nota de trabajos T,


nota de medio ciclo M y nota de fin de ciclo F, cada una con un

peso de 40%, 30% y 30% respectivamente. Calcular el


promedio de notas de un alumno.
Proceso sin_titulo
definir t,m,f Como real
definir promedio Como Real
mostrar "ingresar nota del trabajo:"
leer t
mostrar "ingresar nota de medio ciclo:"
leer m
mostrar "ingresar nota final:"
leer f
t=t*0.4
m=m*0.3
f=f*0.3
promedio=t+m+f
mostrar "el promedio general es :",promedio
FinProceso

i)

Juan hace unos das visito una tienda para averiguar sobre el
precio de un producto, hoy da Juan se acerc a la tienda para
comprar el producto, pero se da con la sorpresa que precio se
ha incrementado. Desarrollar un algoritmo y diagrama de
flujo que permita ingresar el precio anterior y el precio actual
de un producto; calcular y mostrar el alza en soles y el alza en
porcentaje de dicho producto.

Proceso sin_titulo
//i.
Juan hace unos das visito una tienda para
//averiguar sobre el precio de un producto, hoy da
Juan
//se acerc a la tienda para comprar el producto,
pero se da
//con la sorpresa que precio se ha incrementado.
Desarrollar un
//algoritmo y diagrama de flujo que permita
ingresar el precio
//anterior y el precio actual de un producto; calcular
y mostrar
//el alza en soles y el alza en porcentaje de dicho
producto.
definir p_antes,p_despues,alza Como real
definir porcentaje como real
mostrar "ingresar el precio anterior del producto:"
leer p_antes
mostrar "ingresar el precio despues del producto:"
leer p_despues
alza=p_despues-p_antes
mostrar "el alza es de :",alza

porcentaje=alza*100/p_antes
mostrar "el porcentaje es de :",porcentaje
FinProceso
j) Calcular el salario que recibir un trabajador, si se conoce el
nmero de horas trabajadas y el pago que recibe por hora.
Considere adems que por concepto de AFP se le descuenta
el 12.3%

Proceso sin_titulo
definir hora,pago_horas Como Entero
definir subtotal, total,descuento como real
mostrar "horas trabajadas:"
leer hora
mostrar "pago por horas:"
leer pago_horas
subtotal=hora*pago_horas
descuento=subtotal*0.123
total=subtotal-descuento
mostrar "el total a pagar por empleado es:",total
FinProceso

ESTRUCTURAS
CONDICIONALES

2. Dados los enunciados siguientes desarrollar el algoritmo y diagrama de flujo


correspondiente a cada ejercicio propuesto, utilizando estructuras condicionales
simples.
a) Una llamada telefnica en cualquier telfono pblico cuesta
S/. 0.5 por los primeros 03 minutos o menos. Cada minuto
adicional cuesta S/. 0.1. calcule el monto de una llamada para
este caso se debe ingresar la cantidad de minutos.Ejemplo:
Una llamada cuya duracin es 4 min entonces tendr 1 minuto
adicional, lo cual pagara un monto de S/. 0.6.
Proceso sin_titulo
definir cant Como Entero
definir cuesta como real
mostrar "ingrese los minutos que realizo al llamar"
leer cant
Si (cant<=3) Entonces
cuesta=0.5
Fin Si
cuesta=0.5+0.1*(cant-3)
mostrar "pagara:",cuesta
FinProces

b) Calcular e imprimir el precio de un terreno del cual se tienen


los siguientes datos: largo, ancho y precio por metro
cuadrado. Si el terreno tiene ms de 400 metros cuadrados se
hace un descuento del 10%.

Proceso sin_titulo
definir largo,ancho,pago, terreno, subtotal Como Entero
definir descuento, total_pago Como Real
mostrar "ingrese el largo del terreno:"
leer largo
mostrar "ingrese el ancho del terreno:"
leer ancho
terreno=ancho*largo
mostrar "pago por metro cuadrado:"
leer pago
subtotal=terreno*pago
Si (terreno>400) Entonces
descuento=subtotal*0.1
total=subtotal-descuento
Fin Si
total=subtotal
mostrar "el precio por el terreno sera:",total
FinProceso

c) Si dos nmeros son positivos calcule su producto, en caso


contrario calcule su suma.

Proceso sin_titulo
definir nota Como Entero
Definir descuento como real
mostrar "ingresar nota:"
leer nota
si(nota<5)
nota=nota +3
mostrar "nota modificada:",nota
FinSi
si(nota>=5 y nota<10)
nota=nota +2
mostrar "nota modificada:",nota
FinSi
si(nota>=10 y nota<15)
nota=nota +1
mostrar "nota modificada:",nota
FinSi
si(nota>=15 y nota<=20)
descuento=notaMOD5
nota=nota-descuento
mostrar "nota
modificada:",nota
FinSi
FinProceso

d) Dado 3 nmeros calcular el


porcentaje que representa cada uno con respecto a la suma
total.
Proceso sin_titulo
definir a,b,c, sumaTotal Como Entero
definir p_a,p_b,p_c como real

mostrar "ingresar el primer numero:"


leer a
mostrar "ingresar el segundo numero:"
leer b
mostrar "ingresar el tercer numero:"
leer c
sumaTotal=a+b+c
p_a=100*a/sumaTotal
p_b=100*b/sumaTotal
p_c=100*c/sumaTotal
mostrar "el porcentaje que representa el primer numero es:",p_a,"
","%"
mostrar "el porcentaje que representa el primer numero es:",p_b,"
","%"
mostrar "el porcentaje que representa el primer numero es:",p_c,"
","%"
FinProceso

Ingresar

e)
cuatro

notas
obtener
promedio

las tres mejores notas.


Proceso sin_titulo
definir nota1,nota2,nota3,nota4, notamenor Como Entero
definir promedio Como Real

y
el
de

Mostrar "ingresar la nota 1:"


leer nota1
Mostrar "ingresar la nota 2:"
leer nota2
Mostrar "ingresar la nota 3:"
leer nota3
Mostrar "ingresar la nota 4:"
leer nota4
Si (nota1<nota2 && nota1<nota3
&& nota1<nota4) Entonces
notamenor=nota1
Fin Si
Si (nota2<nota1 && nota2<nota3
&& nota2<nota4) Entonces
notamenor=nota2
Fin Si
Si (nota3<nota1 && nota3<nota2
&& nota3<nota4) Entonces
notamenor=nota3
Fin Si
Si (nota4<nota1 && nota4<nota2
&& nota4<nota3) Entonces
notamenor=nota4
Fin Si
promedio=(nota1+nota2+nota3+nota4notamenor)/3
mostrar "el promedio es
de:",promedio
FinProceso

f) Dadas 3 longitudes, compruebe si pueden formar un tringulo


y luego clasifique el tringulo (equiltero, issceles, escaleno)
segn sus ngulos.
Proceso sin_titulo
Definir a Como Entero
Definir b Como Entero
Definir c Como Entero
Escribir "ingresar 1"
leer a

Escribir " ingresar 2 "


leer b
Escribir "ingresar 3 "
leer c
Si (a< (b+c )y a>(b-c)) Entonces
Escribir "es un triangulo"
Fin Si
Si (a>(b+c )y a<(b-c)) Entonces
Escribir "no es un triangulo"
Fin Si
Si (a=b && a=c && b=c )
Entonces
mostrar "equilatero"
Fin Si
Si (a!=b && a!=c && b!=c )
Entonces
mostrar "escaleno"
Fin Si
Si (a=b y b=a o b=c y c=b o a=c
y c=a ) Entonces
mostrar "isscele"
Fin Si
FinProceso

g) En una tienda se ha establecido la siguiente oferta: por


compras menores a S/.50 se hace un descuento de 8%, pero
para compras a partir de S/.50 el descuento es de 10%. Se
pide ingresar la cantidad y el precio del producto que se
compra y determinar cunto se descontar y cuanto se
cobrar.

Proceso sin_titulo

definir precio,cantidad Como Real


definir descontara,subtotal,total Como Real
mostrar "ingrese cantidad:"
leer cantidad
mostrar "ingrese precio:"
leer precio
subtotal=precio*cantidad
si(subtotal<50)
descuento=subtotal*0.08
total=subtotal-descuento
FinSi
si(subtotal>=50)
descuento=subtotal*0.1
total=subtotal-descuento
FinSi
mostrar "el descuento sera
de:",descuento
mostrar "se cobra lo
siguiente:",total
FinProceso

h) Si compramos al por mayor 100


o ms artculos 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
artculos. Diga cuanto debemos pagar por nuestra compra.
Proceso sin_titulo
definir articulos,precio como entero
definir descuento,subtotal Como Real
mostrar "ingresasr cuantos articulos compro:"
leer articulos
mostrar "precio:"

leer precio
subtotal=articulos*precio
si(articulos>=100)
descuento= subtotal*0.4
total=subtotal-descuento
FinSi
si(articulos>=25 y articulos<100)
descuento= subtotal*0.2
total=subtotal-descuento
FinSi
si(articulos>=10 y articulos<25)
descuento= subtotal*0.1
total=subtotal-descuento
FinSi
si(articulo<10)
total=subtotal
FinSi
mostrar "debemos pagar :",total,
" ", "$"
FinProceso

i)

Si las vocales se representan


por nmeros del 1 al 5, lea un
nmero y diga que vocal es.
Ejemplo: si ingreso el numero 3 la vocal que representa es
I.

Proceso sin_titulo
definir num Como Entero

mostrar "ingresar
numeros del [1-5]:"
leer num
si(num==1)
mostrar "la
es:","","A"
FinSi
si(num==2)
mostrar "la
es:","","E"
FinSi
si(num==3)
mostrar "la
es:","","I"
FinSi
si(num==4)
mostrar "la
es:","","O"
FinSi
si(num==5)
mostrar "la
es:","","U"
FinSi

vocal

vocal

vocal

vocal

vocal

FinProceso

j) Sabiendo que los


meses son
representados por
nmeros (1=enero, 12=diciembre), ingresar un nmero y
mostrar el mes determinado.

Proceso sin_titulo
definir num Como Entero
mostrar "ingresar
leer num
si(num==1)
mostrar "la
FinSi
si(num==2)
mostrar "la
FinSi
si(num==3)
mostrar "la
FinSi
si(num==4)
mostrar "la
FinSi
si(num==5)
mostrar "la
FinSi
si(num==6)
mostrar
FinSi
si(num==7)
mostrar
FinSi
si(num==8)
mostrar
FinSi
si(num==9)
mostrar
FinSi
si(num==10)
mostrar
FinSi
si(num==11)
mostrar
FinSi
si(num==12)
mostrar
FinSi
FinProceso

numeros del [1-12]:"


vocal es:","","ENERO"
vocal es:","","FEBRERO"
vocal es:","","MARZO"
vocal es:","","ABRIL"
vocal es:","","MAYO"

"la vocal es:","","JUNIO"


"la vocal es:","","JULIO"
"la vocal es:","","AGOSTO"
"la vocal es:","","SEPTIEMBRE"
"la vocal es:","","OCTUBRE"
"la vocal es:","","NOVIEMBRE"
"la vocal es:","","DICIEMBRE"

k) En una universidad el examen tiene un puntaje mximo de


120 puntos y se han fijado los puntajes mnimos para el
ingreso a una carrera profesional, de la siguiente manera:

Carrera

Puntaje

Profesional

Mnimo

Sistemas

100

Electrnica

90

Industrial

80

Administracin

70

De acuerdo al puntaje obtenido por un alumno, determine la(s)


carrera(s) a la(s) que ingreso o de un mensaje indicando que no le
alcanz puntaje para ingresar.

Proceso sin_titulo
definir puntaje Como Entero
mostrar "ingresar puntaje obtenido:"
leer puntaje
si(puntaje<=120 y puntaje>=100)
mostrar "ingreso a la carrera de:", " ", "sistemas"
FinSi
si(puntaje<100 y puntaje>=90)
mostrar "ingreso a la carrera de:", " ", "Sistemas y Electrnica"
FinSi
si(puntaje<90 y puntaje>=80)
mostrar "ingreso a la carrera de:", " ", "Sistemas , Electrnica y
Industrial"
FinSi
si(puntaje<80 y puntaje>=70)
mostrar "ingreso a la carrera de:", " ", "Sistemas
,Electrnica,Industrial y Administracin"
FinSi
si(puntaje<=120 y puntaje<70)
mostrar "NO ALCANZO EL PUNTAJE REQUERIDO"
FinSi
FinProceso

l)

Dada la
edad de
una
persona
determine
qu etapa
del
desarrollo

en
se

encuentra.
Etapa

Edad

Infancia

Desde 0 hasta 2 aos

Niez

Desde 3 hasta 12 aos

Adolescencia

Desde 13 hasta 17 aos

Juventud

Desde 18 hasta 25 aos

Adultez

Desde 26 hasta 60 aos

Senectud

De 61 aos a ms

Proceso sin_titulo
definir edad Como Entero

mostrar "ingrese edad que tiene:"


leer edad
si(edad>=0 y edad<=2)
mostrar "la etapa de su vida
FinSi
si(edad>=3 y edad<=12)
mostrar "la etapa de su vida
FinSi
si(edad>=13 y edad<=17)
mostrar "la etapa de su vida
FinSi
si(edad>=18 y edad<=25)
mostrar "la etapa de su vida
FinSi
si(edad>=26 y edad<=60)
mostrar "la etapa de su vida
es :","ADULTEZ"
FinSi
si(edad>=61)
mostrar "la etapa de su vida
es :","SENECTUD"
FinSi
Finproceso

es :","INFANCIA"
es :","NIEZ"
es :","ADOLESCENCIA"
es :","JUVENTUD"

FinSi
si(puntaje<80 y puntaje>=70)
mostrar "ingreso a la carrera
,Electrnica,Industrial y Administracin"

de:",

"

FinSi
si(puntaje<=120 y puntaje<70)
mostrar "NO ALCANZO EL PUNTAJE REQUERIDO"

",

"Sistemas

m) Un profesor desea implementar un algoritmo que le permita


bonificar equitativamente a todos sus alumnos de acuerdo a
la nota conseguida en un examen, de la siguiente forma: Si la
nota fuera menor que 5 se bonifica con 3 puntos; si la nota
fuera mayor o igual que 5 pero menor de que 10 se bonifica
con 2 puntos y si la nota fuera mayor o igual que 10 pero
menor que 15 se bonifica con 1 punto; y si la nota fuera
mayor o igual que 15 pero menor o igual que 20 se le
descuenta el residuo de la nota entre 5. Determinar la nota
bonificada para cualquier alumno.

Proceso sin_titulo
definir nota Como Entero
Definir descuento como real
mostrar "ingresar nota:"
leer nota
si(nota<5)
nota=nota +3
mostrar "nota
modificada:",nota
FinSi
si(nota>=5 y nota<10)
nota=nota +2
mostrar "nota
modificada:",nota
FinSi
si(nota>=10 y nota<15)
nota=nota +1
mostrar "nota
modificada:",nota
FinSi
si(nota>=15 y nota<=20)
descuento=notaMOD5
nota=nota-descuento
mostrar "nota
modificada:",nota
FinSi
FinProceso

Estructura Repetitivas

3. Dados los enunciados siguientes desarrollar el algoritmo y diagrama de flujo


correspondiente a cada ejercicio propuesto, utilizando estructuras repetitivas.
a) Escribir un algoritmo que me permita ingresar un nmero
entero positivo y que imprima la suma de sus cifras.

Proceso sin_titulo
definir suma,n Como Entero
suma=0
mostrar "ingresar un numero:"
leer n
Para i<-0 Hasta n Con Paso 1 Hacer
suma<-suma+i
Fin Para
mostrar "el resultado de la suma
es:",suma
FinProceso

b) Escriba un algoritmo que permita ingresar un nmero entero


positivo e imprima sus cifras al revs.

Proceso sin_titulo
definir n Como Entero
mostrar "ingresar numero:"
leer n
Si (n>=0) Entonces
Para i<-0 Hasta n Con Paso 1
Hacer
mostrar "numero al
reves:",n-i
Fin Para
Fin Si
FinProceso

c) Elaborar un algoritmo que muestre los nmeros pares


comprendidos entre 10 y 20

Proceso sin_titulo
definir num como entero
Para i<-10 Hasta 20 Con Paso 1 Hacer
Si (i%2==0) Entonces
mostrar "los numero pares son:",i
Fin Si
Fin Para
FinProceso

d) Leer 10 nmeros e imprimir solamente los nmeros positivos

Proceso sin_titulo
definir n , neutral, positivos, negativos
como entero
neutral=0;positivos=0;negativos=0
Para i<-0 Hasta 9 Con Paso 1 Hacer
mostrar "ingrese numero:",(i+1)
leer n
Si (n>=1) Entonces
positivos=positivos+1
Fin Si
Fin Para
mostrar "la cantidad de positivos es
de:",positivos
FinProceso

e) Leer 20 nmeros e imprimir cuantos son positivos, cuantos


negativos y cuantos neutros.

Proceso sin_titulo
definir n , neutral, positivos, negativos como entero
neutral=0;positivos=0;negativos=0
Para i<-0 Hasta 19 Con Paso 1 Hacer
mostrar "ingrese numero:",(i+1)
leer n
Si (n==0) Entonces
neutral=neutral+1
Fin Si
Si (n>=1) Entonces
positivos=positivos+1
Sino
Si (n<0) Entonces
negativos=negativos+1
Fin Si
Fin Si
Fin Para
mostrar "la cantidad neutral existente es de:",neutral
mostrar "la cantidad de positivos es de:",positivos
mostrar "la cantidad de negativos es de:",negativos

FinProceso

f) Encontrar el mayor y menor valor de un conjunto de n


nmeros dados.

Proceso sin_titulo
definir may, men,n ,m Como Entero
may=0; men=9999
mostrar "ingresar cuantas veces quiere que se repita:"
leer m
Para i<-0 Hasta m Con Paso 1 Hacer
mostrar "ingresar numeros:",(i+1)
leer n
Si (n<men) Entonces
men=n
Sino
Si (n>may) Entonces
may=n
Fin Si
Fin Si
Fin Para
mostrar "el numero menor es:",men

mostrar "el mayor numero


es:",may
FinProceso

g) Escribir un algoritmo que solicite ingresar 10 notas de


alumnos y nos informe cuntos tienen notas mayores o
iguales a 7 y cuntos menores.

Proceso sin_titulo
definir n, notasmay , notasmen Como Entero
notasmay=0;notasmen=0
Para i<-0 Hasta 9 Con Paso 1 Hacer
mostrar "ingresar nota",(i+1)
leer n
Si (n>=7) Entonces
notasmay=notasmay+1
Sino
Si (n<7) Entonces
notasmen=notasmen+1
Fin Si
Fin Si
Fin Para
mostrar " hay"," ",notasmay," ","notas mayores"

mostrar " hay"," ",notasmen," ","notas menores"


FinProceso

h) Mostrar los mltiplos de 8 hasta el valor 500. Debe aparecer


en pantalla 8 - 16 - 24, etc.

Proceso sin_titulo
definir i, multiploN Como Entero
multiploM=0
mostrar sin saltar " multiplo de 8 hasta 500:"
Para i<-1 Hasta 500 Con Paso 1 Hacer
Si (i mod 8==0) Entonces
mostrar sin saltar " ",i,","
Fin Si
Fin Para
FinProceso