Está en la página 1de 9

PRINCIPIOS DE ALGORITMOS

ALGORITMOS

estructuras condicionales simples y dobles.

EJERCICIOS
Escriba Las fórmulas que usará para resolver las siguientes preguntas, identifique los datos
necesarios y escriba el algoritmo correspondiente.

1. Digite el nombre del cliente y su importe de compra, en caso que su importe sea 150 o
más, se le descontará el 12%. Mostrar el descuento otorgado y el importe de
compra final.

Proceso importe_final
Definir nombre como caracter
Definir compra,descuento,IF como real
Escribir "Ingrese nombre del cliente:"
Leer nombre
Escribir "Ingrese precio de compra:"
Leer compra
Si compra >= 150 entonces
descuento<-(compra*0.12)
IF<- compra -(descuento)
SiNo
descuento =0
IF<- compra
FinSi
Escribir " Su descuento es: ",descuento,"%"
Escribir " Su importe final es:",IF
Finproceso

2. Ingrese el nombre de un alumno y las notas de su examen parcial, examen final y el


promedio de prácticas; muestre el nombre del alumno y su promedio final solo
si el alumno está aprobado. Tenga en cuenta que para el cálculo del promedio la
nota del examen final tiene peso doble.

Proceso alumno_aprobado
Definir nombre Como Caracter
Definir EXPAR,EXFIN,PPRAC,PF Como Real
Escribir "Ingrese el nombre:"
Leer nombre
Escribir "Ingrese nota de examen parcial "
Leer EXPAR
Escribir "Ingrese nota de examen final"
Leer EXFIN
Escribir "Ingrese nota de promedio de practicas"
Leer PPRAC
PF<-(EXPAR*0.25)+(PPRAC*0.25)+(EXFIN*0.5)
Si PF>=11.5 entonces
Escribir nombre," ", " °Su promedio final es:° ",PF
Sino
Escribir nombre," ", "Esta desaprobado/a "
FinSi
FinProceso
3. Digite dos números enteros diferentes, muestre el mayor.

Proceso mayor_menor
Definir num1,num2 Como Entero
Escribir "Ingrese el primer numero:"
Leer num1
Escribir "Ingrese el segundo numero:"
Leer num2
Si num1<num2 entonces
Escribir "El mayor numero es:",NUM2
Sino
Escribir "El mayor numero es:",NUM1
FinSi

FinProceso

4. Ingrese el nombre del trabajador, su sueldo básico y el número de hijos, se deberá


mostrar su bonificación y el sueldo final. Tenga en cuenta que la empresa está dando
una bonificación del 7% del sueldo básico sólo en el caso el trabajador tuviese
hijos.

Proceso bonus_hijo
Definir nombre Como Caracter
Definir sb,bono Como Real
Definir nh como entero
Escribir "Ingrese su nombre:"
Leer nombre
Escribir "Ingrese su sueldo:"
Leer sb
Escribir "Ingrese numero de hijos:"
Leer nh
Si NH>0 entonces
sf<-sb+(sb*0.07)
bono<-(sb*0.07)
Escribir nombre," ", "Su sueldo final es: ",sf
Escribir nombre," ", "Su bono es: ",bono
Sino
bono=0
Escribir nombre," ","Su sueldo final es ",sb
Escribir nombre," ","Su bono es ",bono
FinSi
FinProceso

5. Digite un número natural, en caso sea superior 100 se mostrará su 30% de no ser así
visualice su 150%.

Proceso porcentaje
Definir numn como real
Definir porcen como real
Escribir "Ingrese el numero natural:"
Leer numn
Si numn>100 entonces
porcen<-(numn*0.3)
Escribir " El porcentaje es:",porcen
Sino
porcen<-(numn*1.5)
Escribir " El porcentaje es: ",porcen
FinSi

FinProceso

6. Digite un numero entero y muestre el mensaje “par positivo” o “par negativo”


según sea el caso.

Proceso positivo_negativo
Definir num Como entero
Escribir "Ingrese el numero:"
Leer num
Si num<0 Entonces
Escribir "El número es par negativo"
Sino
Escribir "El número es par positivo"
FinSi
FinProceso

7. Ingrese por teclado un número natural de hasta 2 cifras, si tiene una cifra muestre lo
mínimo que le falta para ser un número de 2 cifras; de lo contrario muestre lo mínimo
que le falta para ser un número de 3 cifras.

Proceso dos_tres_cifras
Definir numn, falta como real
Escribir "Ingrese numero natural:";
Leer numn
Si numn>9 entonces
falta<- 100-numn
Escribir "Lo que le falta para tener tres cifras es: ",falta
Sino falta<- 10-NUMN
Escribir "Lo que le falta para tener dos cifras es:",falta
FinSi
FinProceso

8. Digite el nombre del cliente, la cantidad en soles a cambiar y el tipo de moneda a la


que se desea cambiar, en este caso sólo será dólares o euros, se deberá visualizar la
cantidad en la moneda extranjera cambiada. Tenga en cuenta el siguiente tipo de
cambio $1 = S/ 2.35 y €1 = S/ 3.58.

Proceso cambio_dolar_euro
Definir nombre_cliente como caracter
Definir soles como real
Escribir "Ingrese el nombre del cliente:"
Leer nombre_cliente
Escribir"Ingrese el valor de soles:"
Leer soles
Escribir "Seleccione el valor de tipo de cambio:"
Escribir " 1.- Dolares "
Escribir " 2.- Euros "
Leer tipo_cambio;
Si tipo_cambio=1 O tipo_cambio=2 Entonces
cantidad <- soles/2.35
SiNo
cantidad <- soles/3.58
FinSi
Escribir "Nombre del cliente: ", nombre_cliente
Escribir "Valor de cantidad: ", cantidad

FinProceso
9. Ingrese el nombre del trabajador, la cantidad de horas trabajadas y el valor de la hora
normal. Muestre la cantidad de horas extras y el pago del trabajador. Tenga en cuenta
que el valor de la hora extra es 50% más que el valor de la hora normal y que el trabajo
es de lunes a sábado.

Proceso salario_trabajador
Definir e como caracter
Definir h,v como real
Escribir "Ingrese el nombre del empleado"
Leer e
Escribir "Ingrese el numero de horas trabajadas"
Leer h
Si h>40 Entonces
h<-h+(h*0.5)
Sino
FinSi
Escribir "Ingrese el valor de la hora trabajada"
Leer v
sal<-(h*v)
Escribir "El empleado:",e
Escribir "Su salario es:",sal
FinProceso

10. Ingrese un numero natural de dos cifras y muestre el mensaje “Es capicúa” o “No es
capicúa” según sea el caso.

Proceso capicua
Definir num, uni, dec como real
Escribir "Ingrese numero de 2 cifras"
Leer num
uni<-num mod 10
dec<-trunc(num/10)
Si uni=dec Entonces
Escribir "El numero es capicua"
Sino
Escribir "El numero no es capicua"
FinSi
FinProceso

11. Calcular el pago semanal de un trabajador. Los datos a ingresar son: total de horas
trabajadas y el pago por hora. Si el total de horas trabajadas es mayor a 40 la diferencia
se considera como horas extras y se paga un 50% más que una hora normal. Si el
sueldo bruto es mayor a s/. 500.00, se descuenta un 10% en caso contrario el
descuento es 0.

Proceso pago_sem
Definir htt, he Como Entero
Definir pagosem, phe,pht, suelbruto,desc Como Real
Escribir "Ingrese las horas que ha trabajado esta semana:"
Leer htt
pht<-500/40
phe<-(500/40)*1.5
suelbruto<-(pht*htt)+(phe*he)
Si htt>40 Entonces
he<-htt-40
Sino he<-0
Fin Si
Si suelbruto>500 Entonces
pagosem<-suelbruto-0.1*suelbruto
Sino pagosem<-suelbruto
FINSI
Escribir "su pago semanal es:" ,pagosem
FinProceso

12. Se pide leer tres notas del alumno, calcular la nota definitiva en un rango de 0 a 20 y
enviar un mensaje donde diga si el alumno aprobó o reprobó el curso.

Proceso notafinal
Definir not1,not2,not3 como real
Definir ndef Como Real
Escribir "Ingrese nota 1"
Leer not1
Escribir "Ingrese nota 2"
Leer not2
Escribir "Ingrese nota 3"
Leer not3
ndef<-(not1+not2+not3)/3
Si ndef < 11.5 entonces
Escribir "El alumno reprobó curso"
Sino
Escribir "El alumno aprobó el curso"
FinSi

FinProceso

13. Un vendedor recibe una comisión de 10% de la venta hechas si ésta fue al menos
S/10000 y 8.5% en caso contrario. Haga un algoritmo que muestre lo que obtiene
un vendedor por comisión.

Proceso comision_venta
Definir venta,com Como Real
Escribir "Ingrese el monto de la venta:"
Leer venta
Si venta>=10000 entonces
com<-venta*0.1
Sino
com<-venta*0.085
FinSi
Escribir "El monto de la comision es:",com

FinProceso

14. Hacer un programa que muestre, de 3 notas de un alumno, cuántas tiene aprobadas y
cuántas desaprobadas.

Proceso aprobados_desaprobados
Definir not1,not2,not3,CA,CD como real
Escribir "Ingrese nota 1"
Leer not1
Escribir "Ingrese nota 2"
Leer not2
Escribir "Ingrese nota 3"
Leer not3
si not1>=11.5 entonces
CA=CA+1
Sino
CD=CD+1
FinSi
si not2>=11.5 entonces
CA=CA+1
Sino
CD=CD+1
FinSi
si not3>=11.5 Entonces
CA=CA+1
Sino
CD=CD+1
FinSi
Escribir "Notas aprobadas ",CA
Escribir "Notas desaprobadas ",CD
FinProceso

15. Una empresa de seguros asegura una casa ante desastres cobrando una prima anual de
acuerdo al valor de la casa. Para los primeros $25000 cobra el 3% del valor y para el
valor restante 5%. Por ejemplo, si una casa está valorizada en $ 30000, cobrará 3%
sobre los $ 25000 y 5% al resto, es decir 5% a $ 5000. Haga un programa que
muestre el monto que un cliente debe pagar por asegurar su casa. Descarte
casas con valores superiores a los $ 100000.

Proceso asegurar_casa
Definir VC,R,II,IR,CA Como Real
Escribir "Ingrese el valor de la casa no mas de $100 000";
Leer VC
I=25000
R<-VC-I
II<-I*0.03
Escribir "El interes inicial es: ",II
IR<-R*0.05
Escribir "El interes restante es: ",IR
CA<-II+IR
Escribir "El cobro para asegurar la casa es: ",CA

FinProceso

16. Haga un algoritmo que calcule la velocidad de un móvil, pudiendo el espacio estar en
metros o kilómetros y el tiempo en horas o segundos. El resultado debe mostrarlos
en Km/h o m/s.

Proceso velocidad_movil
Definir v,unid_dist,unid_tiemp,dist,tiemp Como Real
Escribir "Seleccione la unidad de distancia."
Escribir " 1.- Km"
Escribir " 2.- m"
Leer unid_dist
Escribir"Ingrese el valor de la distancia:"
Leer dist
Escribir "Seleccione la unidad del tiempo"
Escribir " 1.- Horas"
Escribir " 2.- Segundos"
Leer unid_tiemp
Escribir "Ingrese el valor del tiempo:"
Leer tiemp

Si unid_dist=1 O unid_dist=2 Entonces


si unid_tiemp=1 o unid_tiemp=2 entonces
v <- dist/tiemp

FinSi
Finsi
Si unid_dist=1 y unid_tiemp=1 entonces
escribir "La velocidad es:",v " km/h"
finsi
Si unid_dist=1 y unid_tiemp=2 Entonces
v<-dist/(tiemp/3600)
escribir "La velocidad es:",v " km/h"
FinSi
Ssi unid_dist=2 y unid_tiemp=1 Entonces
v<- dist/(tiemp*3600)
escribir "La velocidad es:",v " m/s"
FinSi
Si unid_dist=2 y unid_tiemp=2 Entonces
v<- dist/tiemp
escribir "La velocidad es:",v " m/s"
FinSi
FinProceso

17. Hacer un algoritmo que muestre la suma, la resta, la división y la multiplicación


de dos números. En el caso de la resta, se debe restar siempre el número menor del
mayor. En el caso de la división, no se podrá efectuar si el segundo número es 0.

Proceso operaciones_2numeros
Definir A,B como entero
Definir S,R,M,D Como Real
Escribir "Ingrese el primer numero"
Leer A
Escribir "Ingrese el segundo numero"
Leer B
S<-A+B
M<-A*B
R<-A-B
Si A<B entonces
R<-B-A
FinSi
D<-A/B
Escribir "La suma de los numeros es: ",S
Escribir "El producto de los numeros es: ",M
Escribir "La resta de los numeros es:",R
Escribir "La division de los numeros es:",D
FinProceso

18. Hacer un algoritmo que imprima el nombre de un artículo, clave, precio original y su
precio con descuento. El descuento lo hace en base a la clave, si la clave es 01 el
descuento es del 10% y si la clave es 02 el descuento en del 20% (solo existen dos
claves).

Proceso articulo_nombre
Definir arti como caracter
Definir clav,prec,desc como real
Escribir "Nombre articulo"
Leer arti
Escribir "La clave del articulo es 01 o 02 es:"
Leer clav
Escribir "El precio original del articulo es:"
Leer prec
si clav=01 entonces
desc<-prec-(prec*0.1)
Sino
desc<-prec-(prec*0.20)
FinSi

Escribir "El nombre del articulo es:", arti


Escribir "La clave del articulo es:",clav
Escribir "El precio original del articulo es: ",prec
Escribir "El precio con descuento es:",desc
FinProceso

19. Leer 2 números; si son iguales que los multiplique, si el primero es mayor que el
segundo que los reste y si no que los sume.

Proceso leer_2_numeros
Definir num1,num2,resul como entero
Escribir "Ingrese numero 1"
Leer num1
Escribir "Ingrese numero 2"
Leer num2
Si num1=num2 Entonces
resul<-num1*num2
Sino
si num1>num2 Entonces
resul<-num1-num2;
Sino
resul<-num1+num2;
FinSi
FinSi
Escribir " El resultado es:",resul
FinProceso

20. Desarrolle un algoritmo que solicite 3 números correspondientes a los lados de un


triángulo rectángulo (considere que los valores ingresados si forman un triángulo
rectángulo) e indique cuál de los valores ingresados corresponde a la hipotenusa.

Proceso Triangulo_Rectangulo
Definir l1,l2,l3 como real
Escribir "Ingrese el lado 1:"
Leer l1
Escribir "Ingrese el lado 2:"
Leer l2
Escribir "Ingrese el lado 3:"
Leer l3

Si l1>l2 Entonces
cat1<-l2
Si l1>l3 Entonces
hip<-l1
cat2<-l3
Sino
hip<-l3
cat2<-l1
FinSi
Sino
cat1<-l1
Si l2>l3 Entonces
hip<-l2
cat2<-l3
Sino
hip<-l3
cat2<-l2
FinSi
FinSi

Si hip^2 = cat1^2 + cat2^2 Entonces

area<-(cat1*cat2)/2
Escribir "La hipotenusa es:", hip^2
Sino
Escribir "No es un triangulo rectangulo."
FinSi

FinProceso

También podría gustarte