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

I.

Determine las salidas de los siguientes segmentos del algoritmo utilizando el


control Mientras, tomando en cuenta que: a12, b4, c1, suma10,
suma20, cont10, cont20.

Segmentos de
Borrador de repeticiones Respuesta
pseudocdig
s
a. mientraso (a 4)
Si (a > b) entonces PAS a b suma1
suma1 O
1 1 4 0
suma1 + b 2 1
2 7 4 suma1: 11
fin
3 80 1 1
si
a 4 6 0
1 1
5 4 3
1 1
a- 6 1
b. mientras
2 (a > b and PASO a b cont1
b 0)
b 1 1 4 0
Si
(a > b) cont1: 4
2 1
2 3 1
b + entonces 3 3
1 2 2
3 cont1 4 4
1 1 3
cont1 + 1
fin mientras
fin 5 5
1 0 4
c. mientras
si (b >= 2) 6
Sia (a mod 2= 0)
entonces
a suma1 suma1: 26
+ suma1 + a
sino
1
bsuma2
suma2
b-1 + a fin si suma2: 13
aa
fin + 1
mient
b
d. mientras (a b or b PASO a b c cont2
ras
b -1
> c) 1 1 4 1 0
fin
Si (b = 4) cont2: 4
mient 2 2
1 4 2 1
entonces
ras 3 80 4 3 2
cont2
cont2 + 1 4 6 4 4 3
fin 5 4 4 5 4
si
a

a

2
cc
+1
fin
mient
ras
Disee algoritmos en pseudocdigo utilizando la estructura repetitiva Mientras, para
los siguientes problemas:

1. Disear un algoritmo que muestre el pago de cada consumo realizado en un


restaurante por un cliente, tomar en cuenta que el cliente puede cancelar ms de un
men. Cada men cuesta S/.7.50. Adems, mostrar el total recaudado de todos los
pagos hechos por todos los clientes. Incluya: Desea registrar otro consumo?, para
poder continuar o terminar con el programa.

Solucin 1:

Proceso restaurante
Definir cant, opc como Entero
Definir pago, suma como Real
menu<-7.5
opc<-1
suma<-0
Mientras opc=1 Hacer
Escribir Ingresar cantidad de mens a cancelar por el cliente:
Leer cant
pago<-cant*menu

Escribir El cliente debe pagar: , pago, soles

suma<-suma + pago

Escribir Desea registrar otro consumo?: Si=1 o No=2


Leer opc
FinMientras
Escribir El total recaudado por el restaurante es:, suma, soles
FinProceso
Solucin 2:

Proceso restaurante
Definir cant, opc como Entero
Definir pago, suma como Real
menu<-7.5
resp<-'S'
suma<-0
Mientras resp='S' O resp='s') Hacer
Escribir Ingresar cantidad de mens a cancelar por el cliente:
Leer cant
pago<-cant*menu

Escribir El cliente debe pagar: , pago, soles

suma<-suma + pago

Escribir Desea registrar otro consumo?: S/N


Leer resp
FinMientras
Escribir El total recaudado por el restaurante es:, suma, soles
FinProceso

Nota: La variable opc debe iniciar en uno y resp en S, porque es la nica forma
de ingresar al proceso repetitivo al menos una vez. Recuerde que la estructura
Mientras evala la condicin al inicio del proceso repetitivo.
2. Se ingresan los resultados de la evaluacin del curso de Qumica; por cada alumno
se informa: su condicin (1 = becado, 2 = no becado) y su calificacin obtenida que
va de 0 a 20. Para estar aprobado debe tener una nota mnima de 14. A partir de
esta informacin se debe mostrar:
La cantidad de alumnos becados y la cantidad de no becados.
El porcentaje de desaprobados y el porcentaje de aprobados.

El algoritmo termina cuando no se desea registrar ms alumnos.

Solucin:

Proceso prob_2
aprob<-0
desaprob<-0
becado<-0
nobecado<-0
resp<-'S'
Mientras resp='S' o resp='s' Hacer
Escribir "Ingrese la nota: "
Leer n
Escribir "Ingrese si es becado(1) o no(2): "
Leer b
Si n>=14 Entonces
aprob<-aprob+1
Sino
desaprob<-desaprob+1
FinSi

Kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk

kkk
Si b=1 Entonces
becado<-becado+1
FinSi
Si b=2 Entonces
nobecado<-nobecado+1
FinSi
total<-aprob+desaprob
p_aprob<-(aprob*1)/total
p_desaprob<-(desaprob*1)/total
Escribir "Desea Ingresar las notas de mas alumnos S/N: "
Leer resp
FinMientras
Escribir "Cantidad de becados es: ", becado
Escribir "Cantidad de No becados es: ", nobecado
Escribir "Porcentaje de aprobados es ", p_aprob
Escribir "Porcentaje de desaprobados es ", p_desaprob

FinProceso

3. Realizar un algoritmo que permita ingresar una gran cantidad de nmeros enteros
positivos y calcule cantidad de mltiplos de 3 y mltiplos de 7 encontrados en la
relacin de nmeros ingresados. El algoritmo termina cuando se ingresa un
nmero mayor a 100.

Proceso prob_3
Definir m3, m7, n Como Entero
Definir resp Como Caracter
m3<-0
m7<-0
Escribir "Ingrese un numero: "
Leer n
Mientras n>0 Y n<=100 Hacer
Si (n MOD 3)=0 Entonces
m3<-m3+1
FinSi
Si (n MOD 7)=0 Entonces
m7<-m7+1
FinSi
Escribir "Ingrese otro numero: "
Leer n
FinMientras
Escribir "Multiplos de 3: ", m3
Escribir "Multiplos de 7: ", m7
FinProceso
Otra solucin, si nos pidieran ingresar varios nmeros y el programa termine
con una pregunta S/N:

Proceso prob_3
Definir m3, m7, n Como Entero
Definir resp Como Caracter
m3<-0
m7<-0
resp<-'S'
Mientras resp='S' O resp='s' Hacer
Escribir "Ingrese un numero: "
Leer n
Si n>0 Y n<=100 Entonces
Si (n MOD 3)=0 Entonces
m3<-m3+1
FinSi
Si (n MOD 7)=0 Entonces
m7<-m7+1
FinSi
FinSi
Escribir "Desea Ingresar mas numeros S/N: "
Leer resp
FinMientras
Escribir "Multiplos de 3: ", m3
Escribir "Multiplos de 7: ", m7
FinProceso
4. Se realiza un muestreo con N personas, de las cuales se registran sus edades y
sus pesos. Se pide elaborar un algoritmo que calcule el promedio de pesos de las
personas menores de 18 aos y el promedio de pesos de los que tienen 18 aos a
ms.

Anlisis:

Supongamos que los pesos sean: 45.60 56.0 60.0 53.50


a) Matemticamente el promedio sera as:
Promedio = (45.60 + 56.0 + 60.0 + 53.50)/4

b) En Pseudocdigo el promedio sera as:


Promedio <- (suma de pesos)/(cantidad de pesos)

Cmo calculamos esto y que definicin aplicamos?:

** sumapeso <- sumapeso + peso ----- definicin: ACUMULADOR


** cantidadpeso <- cantidadpeso + 1 ----- definicin: CONTADOR

1ra Forma:

Proceso prob_4
peso_mayor<-0
peso_menor<-0
cant_mayor<-0
cant_menor<-0
i<-1 // el valor de i, empieza en 1, para la primera persona
Escribir "Ingrese la cantidad de personas: "
Leer n
Mientras i<=n Hacer // evala la condicin para la primera persona
Escribir "Ingrese el peso: "
Leer peso
Escribir "Ingrese la edad: "
Leer edad
Si edad>=18 Entonces
peso_mayor<-peso_mayor + peso
cant_mayor<-cant_mayor + 1
prom_mayor<-peso_mayor/cant_mayor
Sino
peso_menor<-peso_menor + peso
cant_menor<-cant_menor + 1
prom_menor<-peso_menor/cant_menor
FinSi
i<-i+1
FinMientras
Escribir "Promedio de peso de menores de edad: ", prom_menor
Escribir "Promedio de peso de mayores de edad: ", prom_mayor
FinProceso
Veamos la prueba de escritorio:

PASO i n peso edad peso_mayor cant_mayor prom_mayor peso_menor cant_menor prom_menor


1 1 5 50 20 50 1 50 0 0 --
2 2 5 40 18 90 2 45 0 0 --
3 3 5 50 17 90 2 45 50 1 50
4 4 5 60 21 150 3 50 50 1 50
5 5 5 40 16 150 3 50 90 2 45
6 6 5 -- -- -- -- -- --

2da Forma:

Proceso prob_4
peso_mayor<-0
peso_menor<-0
cant_mayor<-0
cant_menor<-0
resp<-'S'
Mientras resp='S' O resp='s' Hacer
Escribir "Ingrese el peso: "
Leer peso
Escribir "Ingrese la edad: "
Leer edad
Si edad>=18 Entonces
peso_mayor<-peso_mayor + peso
cant_mayor<-cant_mayor + 1
prom_mayor<-peso_mayor/cant_mayor
Sino
peso_menor<-peso_menor + peso
cant_menor<-cant_menor + 1
prom_menor<-peso_menor/cant_menor
FinSi
Escribir "Desea Ingresar ms personas S/N: "
Leer resp
FinMientras
Escribir "Promedio de peso de menores de edad: ", prom_menor
Escribir "Promedio de peso de mayores de edad: ", prom_mayor
FinProceso

5. Ingresar el nombre y la nota del alumno, preguntar si se desea continuar o no


registrando al siguiente alumno. Al terminar el curso de Principios de Algoritmos se
desea saber cul ha sido el alumno con la mejor nota del aula.

Proceso mejor_nota_MIENTRAS
Definir i, mayor, nota como Entero
Definir resp Como Caracter
Definir nombre, mejor como Cadena
i<-1
mayor<-0
resp<-'S'
Mientras resp='S' O resp='s' Hacer
Escribir "Ingrese nombre del Alumno ", i, ":"
Leer nombre
Escribir "Ingrese una nota: "
Leer nota
Si nota>mayor Entonces
mayor<-nota
mejor<-nombre
FinSi
i<-i+1
Escribir "Desea registrar mas Alumnos(S/N): "
Leer resp
FinMientras
Escribir "Mejor Alumno(a) es: ", mejor
Escribir "Con nota: ", mayor
FinProceso
6. En una prueba para obtener un puesto de trabajo como Rango de Puntaje
ingeniero de planta se establecen los siguientes rangos: 0 - 49
50 - 79
Mostrar en un informe los siguientes datos: 80 - 100
a) La cantidad de postulantes que se ubicaron en cada uno de los rangos.
b) El total de postulantes que rindieron la prueba.

El algoritmo termina cuando no desea registrar ms postulantes.

Proceso prob_6 c1<-0


c2<-0
c3<-0
c<-1
resp<-'S'
Mientras resp='S' O resp='s' Hacer
Escribir "Ingrese puntaje del postulante:"
Leer p
Si p>=0 Y p<=49 Entonces
c1<-c1+1
Sino
Si p>=50 Y p<=79 Entonces
c2<-c2+1
Sino
Si p>=80 Y p<=100 Entonces
c3<-c3+1
FinSi
FinSi
FinSi
c<-c+1
Escribir "Desea continuar
(S/N): " Leer resp
FinMientras
total<-
c1+c2+c3
Escribir "Cantidad de postulantes rango1: ",
c1 Escribir "Cantidad de postulantes rango2:
", c2 Escribir "Cantidad de postulantes
rango3: ", c3 Escribir "Total de Postulantes
es: ", total
FinProceso
7. La oficina de climatologa de nuestro pas desea saber las siguientes
caractersticas climatolgicas en un mes determinado. Tome en cuenta que el
mes tiene 30 das.

La temperatura mnima y mxima del mes.


Cuntos das la temperatura supero los 28 C.
El promedio de las temperaturas del mes.
Proceso
Prob_7
mayor<-0
menor<-
9999 i<-1
c<-0
suma<
-0 d<-
5
Mientras i<=d Hacer
Escribir "Ingrese
temperatura: " Leer t
Si t>mayor Entonces
mayor<-t
FinSi
Si t<menor Entonces
menor<-t
FinSi
Si t>28 Entonces
c<-c+1
FinSi
suma<-
suma+t
prom<-
suma/d i<-
i+1
FinMientras
Escribir "Temperatura minima es: ", menor
Escribir "Temperatura maxima es: ", mayor
Escribir "Temperatura supero los 28 grados: ",
c
Escribir "Promedio de temperatura del mes: ",
prom FinProceso
8. Una empresa almacena los datos de N empleados, para esto, en un proceso
repetitivo se ingresa el sexo, su apellido y el salario de cada empleado. Se pide
mostrar:

a) El mayor salario obtenido por una mujer.


b) El apellido de un hombre que obtuvo el menor salario.
c) El porcentaje de mujeres y el porcentaje de varones que trabajan en esa
empresa.
Proceso Prob_8
Escribir "Ingrese cantidad de empleados: "
Leer n
i<-1
mayor<-0
menor<-999999
cf<-0
cm<-0
Mientras i<=n Hacer
Escribir "Ingrese el sexo (M/F): "
Leer sexo
Escribir "Ingrese el apellido: "
Leer ape
Escribir "Ingrese el salario: "
Leer salario
Si sexo='F' Entonces
Si salario>mayor Entonces
mayor<-salario
FinSi
cf<-cf+1
FinSi
Si sexo='M' Entonces
Si salario<menor Entonces
menor<-salario
peor<-ape
FinSi
cm<-cm+1
FinSi
i<-i+1
FinMientras
total<-cf+cm
porc_f<-(cf*1)/total
porc_m<-(cm*1)/total
Escribir "El mayor salario obtenido por una mujer es: ", mayor
Escribir "El apellido del hombre que obtuvo el menor salario: ", peor
Escribir "Porcentaje de mujeres: ", porc_f
Escribir "Porcentaje de hombres: ", porc_m
FinProceso
Proceso HallarMayor_Mientras
Definir n, numero, mayor, i como Entero
Escribir "Ingrese la cantidad de numeros: "
Leer n
mayor<-0
i<-1
Mientras i<=n Hacer
Escribir "Ingrese un numero: "
Leer numero
Si numero>mayor Entonces
mayor<-numero
FinSi
i<-i+1
FinMientras
Escribir "El numero mayor de todos es: ", mayor
FinProceso
Proceso Hallar numero Mayor_Para
Definir n, numero, mayor, i como Entero
Escribir "Ingrese la cantidad de numeros: "
Leer n
mayor<- 0
Para i<-1 Hasta n Hacer
Escribir "Ingrese un numero: "
Leer numero
Si numero>mayor Entonces
mayor<- numero
FinSi
FinPara
Escribir "El numero mayor de todos es: ", mayor
FinProceso
Proceso Hallar numero Mayor_Repetir
Definir n, numero, mayor, i como Entero
Escribir "Ingrese la cantidad de numeros: "
Leer n
mayor<- 0
i<-1
Repetir
Escribir "Ingrese un numero: "
Leer numero
Si numero>mayor Entonces
mayor<- numero
FinSi
i<-i+1
Hasta Que i>n
Escribir "El numero mayor de todos es: ", mayor
FinProceso
n mayor i numero
5 10 1 10
5 10 2 8
5 15 3 15
5 15 4 12
5 20 5 20
-- -- 6 --
Proceso HallarMenor_Para
Definir n, numero, menor, i como Entero
Escribir "Ingrese la cantidad de numeros: "
Leer n
menor<- 99999
Para i<-1 Hasta n Hacer
Escribir "Ingrese un numero: "
Leer numero
Si numero<menor Entonces
menor<- numero
FinSi
FinPara
Escribir "El numero menor de todos es: ", menor
FinProceso
Proceso HallarMenor_Repetir
Definir n, numero, menor, i como Entero
Escribir "Ingrese la cantidad de numeros: "
Leer n
menor<-99999
i<-1
Repetir
Escribir "Ingrese un numero: "
Leer numero
Si numero<menor Entonces
menor<- numero
FinSi
i<-i+1
Hasta Que i>n
Escribir "El numero menor de todos es: ", menor
FinProceso

PROBLEMA 1. Mostrar al mayor de n enteros positivos.


Proceso HallarMayor
Definir n, numero, mayor, i como Entero
Leer n
mayor<- 0
Para i<- 1 hasta n hacer
Leer numero
Si numero>mayor Entonces
mayor<- numero
FinSi
FinPara
Escribir mayor
FinProceso

PROBLEMA 2. Ingresar un nmero entero n y mostrar todos los mltiplos de 3 hasta


n.
Proceso MostrarMultiplos3
Definir n como Entero
Leer n
Para i <- 0 hasta n hacer
Si i mod 3=0 Entonces
Escribir i
FinSi
FinPara
FinProceso
PROBLEMA 3. Hallar la suma de n trminos
1+34+57+710+
SOLUCIN 1
Proceso Hallar Suma
Definir n, i como Entero
Definir suma como Real
Leer n
suma<-0
Para i <- 1 hasta n hacer
suma<- suma + (2*i-1)/(3*i-2)
FinPara
Escribir suma
FinProceso
SOLUCIN 2
Proceso HallarSuma
Definir n, i, numer, denom como Entero
Definir suma como Real
Leer n
numer<- 1
denom<-1
suma<-0
Para i <- 1 hasta n hacer
suma<- suma + numer/denom
numer<-numer+2
denom<-denom+3
FinPara
Escribir suma
FinProceso

PROBLEMA 4. El Dpto. de Trnsito y Seguridad Vial desea saber de los n autos que
entran a la ciudad de Lima, cuantos entran con calcomana de cada color.
Conociendo el ltimo dgito de la placa de cada automvil se puede determinar el
color de la calcomana utilizando la siguiente relacin:
Proceso ContarAutos
Definir n, i, ama, ros, roj, ver, azu, digito como Entero
Leer n
ama<- 0
ros<- 0
roj<- 0
ver<- 0
azu<- 0
Para i <- 1 hasta n hacer
Leer digito
Segun digito hacer
1,2: ama<- ama+1
3,4: ros<- ros+1
5,6: roj<- roj+1
7,8: ver<- ver+1
9,0: azu<- ver+1
FinSegun
FinPara
Escribir ama, ros, roj, ver, azu
FinProceso
Proceso media_numero
// Calcular la media de "n" numeros enteros
suma<-0
cont<-0
escribir "Ingresar un numero positivo y nmero negativo para terminar"
leer numero
mientras numero>= 0 hacer
suma <- suma + numero
cont <- cont + 1
escribir "Ingresar un numero positivo y nmero negativo para terminar"
leer numero
finmientras
media <- suma/cont
escribir "La media de los numeros ingresados es: ", media
FinProceso
Proceso Bisiesto
Escribir "Escribir anio: "
Leer anio
Escribir "Escribir mes: "
leer mes

si (mes =1 o mes=3 o mes=5 o mes=7 o mes=8 o mes=10 o mes=12) y (anio mod 4 = 0 y


((anio mod 400 = 0) o (anio mod 100 <> 0))) Entonces
escribir "El mes tiene 31 dias"
FinSi

si (mes =1 o mes=3 o mes=5 o mes=7 o mes=8 o mes=10 o mes=12) y no (anio mod 4 = 0


y ((anio mod 400 = 0) o (anio mod 100 <> 0))) Entonces
escribir "El mes tiene 31 dias"
FinSi

si mes=2 y (anio mod 4 = 0 y ((anio mod 400 = 0) o (anio mod 100 <> 0))) Entonces
escribir "El mes tiene 29 dias"
FinSi

si mes=2 y no (anio mod 4 = 0 y ((anio mod 400 = 0) o (anio mod 100 <> 0))) Entonces
Escribir "El mes tiene 28 dias"
FinSi

si (mes =4 o mes=6 o mes=9 o mes=11) y (anio mod 4 = 0 y ((anio mod 400 = 0) o (anio
mod 100 <> 0))) Entonces
escribir "El mes tiene 30 dias"
FinSi

si (mes =4 o mes=6 o mes=9 o mes=11) y no (anio mod 4 = 0 y ((anio mod 400 = 0) o (anio
mod 100 <> 0))) Entonces
escribir "El mes tiene 30 dias"
FinSi

FinProceso
// La suma de los 100 primeros mientras
Proceso Sumar
Definir i, total Como Entero
i<-1
total<-0

Mientras i<=100 Hacer


total<-total+i
i<-i+1
FinMientras
Escribir "La suma de los 100 numeros es: ", total
FinProceso

// La suma de los 100 primeros repetir


Proceso Sumar
Definir i, total Como Entero
i<-1
total<-0
Repetir
total<-total+i
i<-i+1
Hasta Que i>100
Escribir "La suma de los 100 numeros es: ", total
FinProceso
proceso factorial_numero
// Factorial de un numero
Escribir "Ingrese un numero entero: "
Leer N
FACTORIAL<-1
I<-1
Repetir
FACTORIAL<-FACTORIAL*I
I<-I+1
Hasta Que I=(N+1)

Escribir "EL FACTORIAL DEL NUMERO ", N, " ES: ", FACTORIAL
FinProceso
Proceso clave
Definir clave como Entero
Repetir
Leer clave
Si clave <> 1234 Entonces
Escribir "Clave incorrecta"
FinSi
Hasta que clave=1234
Escribir "Clave correcta"
FinProceso
proceso factorial_Repetir
f<-1
i<-1
Escribir "Ingrese un numero para calcular su factorial: "
Leer n
Repetir
f<-f*i
i<-i+1
Hasta Que i>n
Escribir "Factorial es: ", f
FinProceso

Proceso prob_2
aprob<-0
desaprob<-0
becado<-0
nobecado<-0
resp<-'S'
Mientras resp='S' o resp='s' Hacer
Escribir "Ingrese la nota "
Leer n
Escribir "Ingrese si es becado(1) o no(2)"
Leer b
Si n>=14 Entonces
aprob<-aprob+1
Sino
desaprob<-desaprob+1
FinSi
Si b=1 Entonces
becado<-becado+1
FinSi
Si b=2 Entonces
nobecado<-nobecado+1
FinSi
total<-aprob+desaprob
p_aprob<-(aprob*1)/total
p_desaprob<-(desaprob*1)/total
Escribir "Desea Ingresar las notas de mas alumnos S/N "
Leer resp
FinMientras
Escribir "Porcentaje de aprobados es ", p_aprob
Escribir "Porcentaje de desaprobados es ", p_desaprob

FinProceso

Proceso de_tres_numeros_el_mayor
Definir a,b,c como entero
escribir "ingrese un numero "
Leer a
leer b
leer c
si a<=0 y b<=0 y c<=0 Entonces
escribir "error ingrese otro numero "
Sino
si a<b y b<c Entonces
mayor<-c
sino
mayor<-b
FinSi
si a<c Entonces
mayor <-c
sino
mayor<-a
FinSi
finsi
Escribir "el numero mayor es ", mayor
FinProceso

Proceso mayor_2numeros
Leer a
Leer b

Si a>b Entonces
mayor<-a
Sino
mayor<-b
FinSi

Escribir "El mayor es: ", mayor


FinProceso

Se sabe que un alumno tiene 3 notas en un curso y


para calcular su promedio se elimina la nota mas baja.
Mostrar la categoria del alumno con mensaje, segun la siguiente tabla:

Promedio Categoria
20-17 A
>14 B
12-14 C
<12 D

Solucion:

Proceso promedio

Definir n1, n2, n3, prom, menor como Real


Escribir "Ingrese 1ra Nota: "
Leer n1
Escribir "Ingrese 2da Nota: "
Leer n2
Escribir "Ingrese 3ra Nota: "
Leer n3

Si n1<n2 Y n1<n3 Entonces


menor<-n1
Sino
Si n2<n1 Y n2<n3 Entonces
menor<-n2
Sino
menor<-n3
FinSi
FinSi

prom<-(n1+n2+n3-menor)/2

Si prom>=17 Y prom<=20 Entonces


Escribir "Alumno de Categoria A"
Sino
Si prom>14 Entonces
Escribir "Alumno de Categoria B"
Sino
Si prom>=12 Entonces
Escribir "Alumno de Categoria C"
Sino
Escribir "Alumno de Categoria D"
FinSi
FinSi
FinSi

FinProceso

Proceso pago_seguro
// 1.- Definir variables
Definir tipo como Caracter
Definir maxA, maxB, maxC, maxD, Adi_Per como Entero
Definir pA, pB, pC, pD, ad_AB, ad_CD, Pago_Anual, Pago_Adicional como Real
// 2.- Asignar Constantes
maxA<-8
maxB<-6
maxC<-4
maxD<-2
pA<-40
pB<-30
pC<-20
pD<-10
ad_AB<-8
ad_CD<-5
// 3.- Entrada: Leer datos
Escribir "Ingrese el Nro de Personas para asegurarlos: "
Leer n
Escribir "Ingrese el tipo A/B/C/D: "
Leer tipo
// 4.- Proceso: Realizar calculos
Si tipo='A' Entonces
Adi_Per <- n-maxA
Si Adi_Per<=0 Entonces
Pago_Anual <- pA
Sino
Pago_Adicional <- Adi_Per * ad_AB
Pago_Anual <- pA + Pago_Adicional
FinSi
FinSi

Si tipo='B' Entonces
Adi_Per <- n-maxB
Si Adi_Per<=0 Entonces
Pago_Anual <- pB
Sino
Pago_Adicional <- Adi_Per * ad_AB
Pago_Anual <- pB + Pago_Adicional
FinSi
FinSi

Si tipo='C' Entonces
Adi_Per <- n-maxC
Si Adi_Per<=0 Entonces
Pago_Anual <- pC
Sino
Pago_Adicional <- Adi_Per * ad_CD
Pago_Anual <- pC + Pago_Adicional
FinSi
FinSi

Si tipo='D' Entonces
Adi_Per <- n-maxD
Si Adi_Per<=0 Entonces
Pago_Anual <- pD
Sino
Pago_Adicional <- Adi_Per * ad_CD
Pago_Anual <- pD + Pago_Adicional
FinSi
FinSi

// 5.- Salida: Mostrar resultados


Escribir "El pago anual es: ", Pago_Anual

FinProceso

Proceso Codigo_empresa_2
Escribir "Ingrese un numero entero de 4 cifras: "
Leer n

d1<-trunc(n/1000)
n<-n MOD 1000
d23<-trunc(n/10)
n<-n MOD 10
d4<-trunc(n/1)

Si d1=1 Entonces
ec<-"Soltero"
Sino
Si d1=2 Entonces
ec<-"Casado"
Sino
Si d1=3 Entonces
ec<-"Viudo"
Sino
ec<-"Divorciado"
FinSi
FinSi
FinSi
Si d4=1 Entonces
s<-"Femenino"
Sino
s<-"Masculino"
FinSi

Escribir "El estado civil es: ", ec


Escribir "La edad es: ", d23
Escribir "El sexo es: ", s
FinProceso

Proceso mayor_3numeros
Leer a, b, c
Si a>b Y a>c Entonces
ma<-a
Sino
Si b>a Y b>c Entonces
ma<-b
Sino
ma<-c
FinSi
FinSi
Escribir "El mayor es: ", ma
FinProceso

Proceso Cuatro_Operaciones_1
Definir s, r, m, d, n1, n2, opc como Real
Escribir "Ingrese 1er Numero: "
Leer n1
Escribir "Ingrese 2do Numero: "
Leer n2
// Menu Principal
Escribir "M E N U P R I N C I P A L"
Escribir "=========================="
Escribir "(1) Sumar"
Escribir "(2) Restar"
Escribir "(3) Multiplicar"
Escribir "(4) Dividir"
Escribir " "
Escribir "Seleccione una opcin (1-4): "
Leer opc

Segun opc Hacer


1:
s<-n1+n2
Escribir "La Suma es: ", s
2:
r<-n1-n2
Escribir "La Resta es: ", r
3:
m<-n1*n2
Escribir "La Multiplicacion es: ", m
4:
Si n2<>0 Entonces
d<-n1/n2
Escribir "La Division es: ", d
Sino
Escribir "Ingrese otro valor para el 2do numero"
Fin Si
De Otro Modo:
Escribir "Opcion No Valida"
Fin Segun

FinProceso

Algoritmo contar_ceros
Definir n, total como Entero
Definir masDatos como Caracter
Escribir "Cuenta de ceros leidos del teclado: "
masDatos <- 'S'
total <- 0
Mientras (masDatos = 'S') O (masDatos = 's') Hacer
Leer n
Si (n=0) Entonces
total<-total+1
FinSi
Escribir "Desea ingresar mas numeros S/N: "
Leer masDatos
Fin Mientras
Escribir "Total de ceros = " , total
FinAlgoritmo

Algoritmo intercambio_valores
Escribir "Ingrese el valor de A: "
Leer A
Escribir "Ingrese el valor de B: "
Leer B
Escribir "Ingrese el valor de C: "
Leer C

AUX<-A
A<-C
C<-B
B<-AUX

Escribir "El nuevo valor de A, es: ", A


Escribir "El nuevo valor de B, es: ", B
Escribir "El nuevo valor de C, es: ", C

Algoritmo bisiesto

Definir a como Entero


Escribir "Ingrese el ao: "
Leer a

Si (a MOD 4 = 0) y (a MOD 100 <> 0) O (a MOD 400 = 0) Entonces


Escribir "El ao ", a, " es bisiesto"
Sino
Escribir "El ao ", a, " no bisiesto"
FinSi

FinAlgoritmo
Proceso la serie de n terminos
Escribir "Ingrese el nro de trminos de la serie; "
Leer n
i<- 1 // indica que es el 1er trmino de la serie
suma1<-0
suma2<-0
a<-3
b<-1
Mientras i<=n Hacer
Si (i MOD 2)=0 Entonces
suma1<-suma1-1/(a*a)
a<-a+4
FinSi
Si (i MOD 2)<>0
Entonces
suma2<- suma2 + 1/(b*b)
b<-b+4
FinSi
i<-i+1
FinMientras
suma<-suma1 + suma2
Escribir "La suma es; ", suma
FinProceso

1. Supongamos que se lee por teclado una secuencia de nmeros, tales como:
5 3 0 2 4 4 0 0 2 3 6 0 2
Contar e imprimir el nmero de ceros de la secuencia.
Solucin.-
Algoritmo contar_ceros
Definir n, total como Entero
Definir masDatos como Caracter
Escribir "Cuenta de ceros leidos del teclado: "
masDatos <- 'S'
total <- 0
Mientras (masDatos = 'S') O (masDatos = 's') Hacer
Leer n
Si (n=0) Entonces
total<-total+1
FinSi
Escribir "Desea ingresar mas numeros S/N: "
Leer masDatos
Fin Mientras
Escribir "Total de ceros =" , total
FinAlgoritmo

2. Se tienen tres variables A, B y C. Escribir las instrucciones necesarias para


intercambiar entre s sus valores del modo siguiente:

B toma el valor de A
C toma el valor de B
A toma el valor de C

Nota: Slo se debe utilizar una variable auxiliar y comprobar la solucin en el


siguiente cuadro.

INSTRUCCIN A B C AUX
(1)
(2)
(3)

Solucin.-
Utilizaremos una variable auxiliar AUX.
Las instrucciones que resuelven el problema de intercambio son:

AUX A
AC
CB
B AUX

Comprobmoslo con los valores de A, B y C: 5, 10 y 15.

INSTRUCCIN A B C AUX
(1) A <- 5 5 -- -- --
(2) B <- 10 -- 10 -- --
(3) C <- 15 -- -- 15 --
AUX <- A 5 10 15 5
A <- C 15 10 15 5
C <- B 15 10 10 5
B <- AUX 15 5 10 5

Algoritmo intercambio_valores
Escribir "Ingrese el valor de A: "
Leer A
Escribir "Ingrese el valor de B: "
Leer B
Escribir "Ingrese el valor de C: "
Leer C

AUX<-A
A<-C
C<-B
B<-AUX

Escribir "El nuevo valor de A, es: ", A


Escribir "El nuevo valor de B, es: ", B
Escribir "El nuevo valor de C, es: ", C

FinAlgoritmo
3. Utilizar la estructura condicional para averiguar si un ao ledo por teclado, es o
no bisiesto.
Solucin.-
Algoritmo bisiesto

Definir a como Entero


Escribir "Ingrese el ao: "
Leer a

Si (a MOD 4 = 0) y ((a MOD 100 <> 0) O (a MOD 400 = 0)) Entonces


Escribir "El ao ", a, " es bisiesto"
Sino
Escribir "El ao ", a, " no bisiesto"
FinSi

FinAlgoritmo

4. Una compaa de Seguros ofrece planes anuales para una familia segn la
siguiente tabla:

PLAN MAX PER PAGO


A 8 40
B 6 30
C 4 20
D 2 10

Adems, por cada persona adicional en la categora A y B, se cobra 8 soles. Y por


cada persona adicional en la categora C y D, cobra 5 soles ms. Calcular el
pago anual del seguro por una familia de n personas.

Solucin.-
Anlisis:
TIPO MAX PER PAGO ADICIONAL
A 8 40 8
B 6 30 8
C 4 20 5
D 2 10 5

El algoritmo sera el siguiente:

Algoritmo pago_seguro
// 1.- Definir variables
Definir tipo como Caracter
Definir maxA, maxB, maxC, maxD, Adi_Per como Entero
Definir pA, pB, pC, pD, ad_AB, ad_CD, Pago_Anual, Pago_Adicional como Real
// 2.- Asignar Constantes
maxA<-8
maxB<-6
maxC<-4
maxD<-2
pA<-40
pB<-30
pC<-20
pD<-10
ad_AB<-8
ad_CD<-5
// 3.- Entrada: Leer datos
Escribir "Ingrese el Nro de Personas para asegurarlos: "
Leer n
Escribir "Ingrese el tipo A/B/C/D: "
Leer tipo
// 4.- Proceso: Realizar calculos
Si tipo='A' Entonces
Adi_Per <- n-maxA
Si Adi_Per<=0 Entonces
Pago_Anual <- pA
Sino
Pago_Adicional <- Adi_Per * ad_AB
Pago_Anual <- pA + Pago_Adicional
FinSi
FinSi
Si tipo='B' Entonces
Adi_Per <- n-maxB
Si Adi_Per<=0 Entonces
Pago_Anual <- pB
Sino
Pago_Adicional <- Adi_Per * ad_AB
Pago_Anual <- pB + Pago_Adicional
FinSi
FinSi

Si tipo='C' Entonces
Adi_Per <- n-maxC
Si Adi_Per<=0 Entonces
Pago_Anual <- pC
Sino
Pago_Adicional <- Adi_Per * ad_CD
Pago_Anual <- pC + Pago_Adicional
FinSi
FinSi

Si tipo='D' Entonces
Adi_Per <- n-maxD
Si Adi_Per<=0 Entonces
Pago_Anual <- pD
Sino
Pago_Adicional <- Adi_Per * ad_CD
Pago_Anual <- pD + Pago_Adicional
FinSi
FinSi

// 5.- Salida: Mostrar resultados


Escribir "El pago anual es: ", Pago_Anual

FinAlgoritmo

5. Un matemtico descubri como multiplicar cualquier nmero entero por 11,


mediante la suma de sus dgitos. Sea un numero entero N que se expresa con M
dgitos, el producto de dicho numero por 11 est dado por la siguiente regla: el
digito de las unidades es igual al digito de las unidades de N, el digito de las
decenas es igual a la suma de los dgitos de las unidades y decenas de N, el digito
de las centenas es igual a la suma de los dgitos de las decenas y centenas de N,
y as sucesivamente. Ejemplo 3247 x 11 = 35717

Solucin.-

Anlisis:

Del ejemplo se tiene que:


Sea N = 3247
Multiplicado por: 11
Producto 35717

Se tiene que descomponer el nmero y el producto en cifras. Para lo cual ser en:
Decena de millar, millar, centena, decena y unidad. Vea los siguientes cuadros:

N= 3247
dm1 0
m1 3
c1 2
d1 4
u1 7

PRODUCTO = 35717
dm2 3
m2 5
c2 7
d2 1
u2 7

Adems, tenemos que la regla del producto es la siguiente:

REGLA RESULTADO
u2 = u1 7=7
d2 = u1 + d1 1=4+7
c2 = d1 + c1 7=4+2
m2 = c1 + m1 5=2+3
dm2 = m1 + dm1 3=3+0

El algoritmo sera el siguiente:

Algoritmo numero_por_11

Escribir "Ingrese un Numero: "

Leer n

// Descomponiendo el numero

dm1 <- trunc(n/10000)

n <- n MOD 10000

m1 <- trunc(n/1000)

n <- n MOD 1000

c1 <- trunc(n/100)

n <- n MOD 100

d1 <- trunc(n/10)

n <- n MOD 10

u1 <- trunc(n/1)

// Multiplicando el numero por 11 y le asignamos a "p"

p<-n*11
// Descomponiendo el producto

dm2 <- trunc(p/10000)

p <- p MOD 10000

m2 <- trunc(p/1000)

p <- p MOD 1000

c2 <- trunc(p/100)

p <- p MOD 100

d2 <- trunc(p/10)

p <- p MOD 10

u2 <- trunc(p/1)

// Regla

u2 <- u1

d2 <- u1 + d1

c2 <- d1 + c1

m2 <- c1 + m1

dm2 <- m1 + dm1

// Generamos el producto

pro <- dm2*10000 + m2*1000 + c2*100 + d2*10 + u2*1

Escribir "El producto del numero por 11 es: ", pro

FinAlgoritmo
6. En un estadio se tienen 5 tipos diferentes de localidades, las cuales se identifican
por un valor comprendido entre 1 y 5. Los precios de cada localidad, y los datos
referentes a las ventas de boletos para el prximo juego se proporcionan como
sigue:

Precios: p1, p2, p3, p4, p5


Localidad1 Cant1
Localidad2 Cant2
. .
Localidad 5 Cant5
Disee un algoritmo para calcular:
a) La Cantidad total de personas que ingresaron.
b) El total de ventas.
c) Cantidad total de personas en cada Localidad.
d) El total de ventas en cada Localidad.
Solucin:
Anlisis:
Tenemos un Estadio con 5 localidades, tal como se ve en la siguiente figura:

1 2 3 4 5

Cada Localidad, tiene un precio y cantidad:


PRECIO CANTIDAD
Localidad 1 p1 Cant1
Localidad 2 p2 Cant2
Localidad 3 p3 Cant3
Localidad 4 p4 Cant4
Localidad 5 p5 Cant5

El algoritmo deber pedir repetidas veces, que seleccionemos una localidad, para
ingresar los valores del precio y cantidad para dicha localidad.
El algoritmo sera el siguiente:
Algoritmo localidad_entradas
tCant1<-0
tCant2<-0
tCant3<-0
tCant4<-0
tCant5<-0
tv1<-0
tv2<-0
tv3<-0
tv4<-0
tv5<-0
Repetir
Escribir "Ingrese Localidad (1-5): "
Leer Lo
Segun Lo Hacer
1:
Escribir "Ingrese el precio de Localidad 1: "
Leer p1
Escribir "Ingrese Cantidad a comprar en Localidad 1: "
Leer Cant1
v1<-p1*Cant1
tCant1<-tCant1+Cant1
tv1<-tv1 + v1

2:
Escribir "Ingrese el precio de Localidad 2: "
Leer p2
Escribir "Ingrese Cantidad a comprar en Localidad 2: "
Leer Cant2
v2<-p2*Cant2
tCant2<-tCant2+Cant2
tv2<-tv2 + v2
3:
Escribir "Ingrese el precio de Localidad 3: "
Leer p3
Escribir "Ingrese Cantidad a comprar en Localidad 3: "
Leer Cant3
v3<-p3*Cant3
tCant3<-tCant3+Cant3
tv3<-tv3 + v3
4:
Escribir "Ingrese el precio de Localidad 4: "
Leer p4
Escribir "Ingrese Cantidad a comprar en Localidad 4: "
Leer Cant4
v4<-p4*Cant4
tCant4<-tCant4+Cant4
tv4<-tv4 + v4
5:
Escribir "Ingrese el precio de Localidad 5: "
Leer p5
Escribir "Ingrese Cantidad a comprar en Localidad 5: "
Leer Cant5
v5<-p5*Cant5
tCant5<-tCant5+Cant5
tv5<-tv5 + v5
De otro Modo:
Escribir "Opcion no valida"
FinSegun
Hasta que Lo=0
v<-tv1+tv2+tv3+tv4+tv5
c<-tCant1+tCant2+tCant3+tCant4+tCant5

Escribir "La Cantidad total de personas que ingresaron es: ", c


Escribir "El total de ventas es: ", v
Escribir "Cantidad total de personas en Localidad 1: ", tCant1
Escribir "Cantidad total de personas en Localidad 2: ", tCant2
Escribir "Cantidad total de personas en Localidad 3: ", tCant3
Escribir "Cantidad total de personas en Localidad 4: ", tCant4
Escribir "Cantidad total de personas en Localidad 5: ", tCant5
Escribir "El total de ventas en la Localidad 1 es: ", tv1
Escribir "El total de ventas en la Localidad 2 es: ", tv2
Escribir "El total de ventas en la Localidad 3 es: ", tv3
Escribir "El total de ventas en la Localidad 4 es: ", tv4
Escribir "El total de ventas en la Localidad 5 es: ", tv5

FinAlgoritmo
7. Calcular el Factorial de un nmero con las estructuras:
Mientras, Repetir y Para.

Solucin:

a) Estructura Mientras:
Algoritmo factorial_mientras
f<-1
i<-1

Escribir "Ingrese un numero para calcular su factorial: "


Leer n

Mientras i<=n Hacer


f<-f*i
i<-i+1
FinMientras

Escribir "Factorial es: ", f


FinAlgoritmo
b) Estructura Repetir:
Algoritmo factorial_Repetir
f<-1
i<-1
Escribir "Ingrese un numero para calcular su factorial: "
Leer n

Repetir
f<-f*i
i<-i+1
Hasta Que i>n

Escribir "Factorial es: ", f


FinAlgoritmo

c) Estructura Para:

Algoritmo Factorial_Para
f<-1
Escribir "Ingrese un numero para calcular su Factorial: "
Leer n

Para i<-1 Hasta n Hacer


f<-f*i
FinPara

Escribir "El Factorial es: ", f


FinAlgoritmo

8. Se conoce la poblacin de cada una de las veinticinco ciudades ms grandes de las


ocho provincias de Andaluca y se desea identificar y visualizar la poblacin de la ciudad
ms grande de cada provincia.

Solucin:

Anlisis:

El problema consistir, en primer lugar, en la obtencin de la poblacin mayor de cada


provincia y realizar esta operacin ocho veces, una para cada provincia.

a) Encontrar y visualizar la ciudad mayor de una provincia.


b) Repetir el paso 1 para cada una de las ocho provincias andaluzas.

El procedimiento para deducir la ciudad ms grande de entre las veinticinco de una


provincia se consigue creando
una variable auxiliar CMAYOR inicialmente de valor 0 que se va comparando
sucesivamente con los veinticinco valores de cada ciudad, de modo tal que, segn el
resultado de comparacin, se intercambian valores de la ciudad por el de la variable
CMAYOR.

El algoritmo correspondiente sera:

Algoritmo ciudad_mayor
Definir i, j, CMAYOR, CIUDAD Como Entero
// i es contador de provincias
// j es contador de ciudades
// CMAYOR es la ciudad de mayor poblacion
// CIUDAD es poblacin de la ciudad
i<-1
Mientras i <= 8 hacer
CMAYOR<-0
j<-1
Mientras j<=25 hacer
Leer CIUDAD
Si CIUDAD>CMAYOR Entonces
CMAYOR<-CIUDAD
FinSi
j <- j + 1
FinMientras
Escribir "La ciudad mayor es: ", CMAYOR
i <- i + 1
FinMientras
FinAlgoritmo

1.- Una compaa de Seguros ofrece planes anuales para sus asegurados segn la
siguiente tabla:
TIPO MAX PER PAGO
A 8 40
B 6 30
C 4 20
D 2 10

Adems, por cada persona adicional en la categora A y B, se cobra 8 soles. Y por cada
persona adicional en la categora C y D, cobra 5 soles ms. Calcular el pago anual del
seguro por una familia de n personas.
Proceso pago_seguro
// 1.- Definir variables
Definir tipo como Caracter
Definir maxA, maxB, maxC, maxD, Adi_Per como Entero
Definir pA, pB, pC, pD, ad_AB, ad_CD, Pago_Anual, Pago_Adicional como Real
// 2.- Asignar Constantes
maxA<-8
maxB<-6
maxC<-4
maxD<-2
pA<-40
pB<-30
pC<-20
pD<-10
ad_AB<-8
ad_CD<-5
// 3.- Entrada: Leer datos
Escribir "Ingrese el Nro de Personas para asegurarlos: "
Leer n
Escribir "Ingrese el tipo A/B/C/D: "
Leer tipo
// 4.- Proceso: Realizar calculos
Si tipo='A' Entonces
Adi_Per <- n-maxA
Si Adi_Per<=0 Entonces
Pago_Anual <- pA
Sino
Pago_Adicional <- Adi_Per * ad_AB
Pago_Anual <- pA + Pago_Adicional
FinSi
FinSi

Si tipo='B' Entonces
Adi_Per <- n-maxB
Si Adi_Per<=0 Entonces
Pago_Anual <- pB
Sino
Pago_Adicional <- Adi_Per * ad_AB
Pago_Anual <- pB + Pago_Adicional
FinSi
FinSi

Si tipo='C' Entonces
Adi_Per <- n-maxC
Si Adi_Per<=0 Entonces
Pago_Anual <- pC
Sino
Pago_Adicional <- Adi_Per * ad_CD
Pago_Anual <- pC + Pago_Adicional
FinSi
FinSi

Si tipo='D' Entonces
Adi_Per <- n-maxD
Si Adi_Per<=0 Entonces
Pago_Anual <- pD
Sino
Pago_Adicional <- Adi_Per * ad_CD
Pago_Anual <- pD + Pago_Adicional
FinSi
FinSi

// 5.- Salida: Mostrar resultados


Escribir "El pago anual es: ", Pago_Anual

FinProceso

ELABORAR UN ALGORITMO EN EL QUE A PARTIR DE UNA FECHA INTRODUCIDA


POR TECLADO CON EL FORMATO DIA, MES Y AO, SE OBTENGA LA FECHA DEL
DIA SIGUIENTE.

Proceso DIA_SIGUIENTE
Definir dia, mes, ao como entero
Dia <- d
mes <- m
ao <- a
Escribir "Ingrese Fecha en el formato DD/MM/AAAA"
Escribir "Ingrese Dia"
Leer Dia
Escribir "Ingrese Mes"
Leer Mes
Escribir "Ingrese Ao"
Leer Ao
Segun Mes Hacer
Caso 1,3,5,7,8,10:
Si d=31 Entonces
Escribir "Si la Fecha ingresada es:",d,"/",m,"/",a
Escribir "El dia siguiente a la fecha ingresada
sera:1/",m+1,"/",a
Sino
Escribir "Si la Fecha ingresada es:",d,"/",m,"/",a
Escribir "El dia siguiente a la fecha ingresada sera:"
,d+1,"/",m,"/",a
FinSi
Caso 4,6,9,11:
Si d=30 Entonces
Escribir "Si la Fecha ingresada es:",d,"/",m,"/",a
Escribir "El dia siguiente a la fecha ingresada
sera:1/",m+1,"/",a
Sino
Escribir "Si la Fecha ingresada es:",d,"/",m,"/",a
Escribir "El dia siguiente a la fecha ingresada sera:"
,d+1,"/",m,"/",a
Finsi
Caso 2:
Si a/4=0 Entonces
Si d=28 Entonces
Escribir "Si la Fecha ingresada es: ",d, "/", m ,"/",a
Escribir "El dia siguiente a la fecha ingresada
sera:1/",m+1,"/",a
Sino
Escribir "Si la Fecha ingresada es:",d,"/",m,"/",a
Escribir "El dia siguiente a la fecha ingresada
sera:",d+1,"/",m,"/",a
Finsi
Sino
Si d=29 Entonces
Escribir "Si la Fecha ingresada es:",d,"/",m,"/",a
Escribir "El dia siguiente a la fecha ingresada
sera:1/",m+1,"/",a
Sino
Escribir "Si la Fecha ingresada es:",d,"/",m,"/",a
Escribir "El dia siguiente a la fecha ingresada sera:"
,d+1,"/",m,"/",a
FinSi
FinSi
Caso 12:
Si d=31 Entonces
Escribir "Si la Fecha ingresada es:",d,"/",m,"/",a
Escribir "El dia siguiente a la fecha ingresada sera:1/",1,"/",a+1
Sino
Escribir "Si la Fecha ingresada es:",d,"/",m,"/",a
Escribir "El dia siguiente a la fecha ingresada sera:"
,d+1,"/",m,"/",a
FinSi
FinSegun
Finproceso
DETERMINAR LA CANTIDAD DE DINERO QUE RECIBA UN TRABAJADOR POR
CONCEPTO DE LAS HORAS EXTRAS TRABAJADAS EN UNA EMPRESA, SABIENDO
QUE CUANDO LAS HORAS DE TRABAJO EXCEDAN DE 40, EL RESTO SE
CONSIDERAN HORAS EXTRAS Y QUE ESTAS SE PAGAN AL DOBLE DE UNA HORA
NORMAL CUANDO NO EXCEDEN DE 8; SI LAS HORAS EXTRAS EXCEDEN DE 8 SE
PAGAN LAS PRIMERAS 8 AL DOBLE DE LO QUE SE PAGAN LAS HORAS NORMALES
Y EL RESTO AL TRIPLE

Proceso horas_extras
definir ht,tp,pph,he como entero
horasextras <- he
horastrabajadas <-ht
precioporhora <- pph
precioextra <- pe
Escribir 'introducir horas trabajadas: ';
Leer ht;
Escribir 'escribir precios por horas: ';
Leer pph;
Si ht<- 40 Entonces
tp<-ht*pph;
sino
he<- ht-40;
si he<=8 Entonces
pe<- he*pph*2
Sino
pd<- 8*pph*2;
pt<-(he-8)*pph*3;
pe<- pd+pe;
FinSi

tp<-40*(pph+pe)
FinSi
Escribir "su pago es:" tp

FinProceso

EN UNA TIENDA DE DESCUENTO SE EFECTUA UNA PROMOCION EN LA CUELA SE


HACE UN DESCUENTO SIBRE EL VALOR DE LA COMPRA TOTAL SEGN EL COLOR
DE LA BOLITA QUE EL CLIENTE SAQUE AL PAGAR EN CAJA. SI LA BOLITA ES DE
COLORE BLANCO NO SE LE HARA DESCUENTO ALGUN, SI ES VERDE SE LE HARA
UN 10% DE DESCUENTO, SI ES AMARILLA UN 25% SI ES AZUL UN 50% Y SI ES
ROJA UN 100%. DETERMINAR LA CANTIDAD FINAL QUE EL CLIENTE DEBERA
PAGAR POR SU COMPRA. SE SABE QUE SOLO HAY BOLITAS DE LOS COLORES
MENCIONADOS.

Proceso descuentos
definir tc como entero
definir dc como real
definir cb como caracter
totalcompra <- tc
colordebolita <- cb
descuento<- d
blanca <- b
verde <-v
amarilla <-a
azul<- az
bd<- 0
vd<-0.10
ad<-0.25
azd<-0.50
Escribir "total de compra: "
Leer tc
Escribir "escribir color del bolita:"
leer cb
si cb= ' b ' entonces
d<- tc-bd;
Sino
si cb= ' v' Entonces
d<- tc-(tc*vd);
sino
si cb= 'a' Entonces
d<- tc-(tc*ad);
sino
si cb= 'az' Entonces
d<-tc-(tc*azd);
sino
d<- tc-tc;
FinSi
finsi
finsi
FinSi
Escribir "total a pagar:" d
FinProceso

INGRESE SEIS NOTAS Y CALCULE EL PROMEDIO, CONSIDERANDO LAS 5


MEJORES

Proceso notas
definir n1,n2,n3,n4,n5,n6 como entero
definir promedio como real
nota1<- n1
nota2<- n2
nota3<- n3
nota4<- n4
nota5<- n5
nota6<- n6
promedio<- prom
escribir "ingresar nota 1:"
leer nota1
escribir "ingresar nota 2:"
leer nota2
escribir "ingresar nota 3:"
leer nota3
escribir "ingresar nota 4:"
leer nota4
escribir "ingresar nota 5:"
leer nota5
escribir "ingresar nota 6:"
leer nota6
segun nota hacer
si (n1<n2 y n1<n3 y n1< n4 y n1<n5 y n1<n6) entonces
promedio<-(n2+n3+n4+n5+n6)/5 ;
escribir "el promedio es: ",prom;
Sino
si(n2<n1 y n2<n3 y n2< n4 y n2<n5 y n2<n6) entonces
promedio<-(n1+n3+n4+n5+n6)/5 ;
escribir "el promedio es: ",prom;
sino
si(n3<n1 y n3<n3 y n3<n4 y n3<n5 y n3<n6) entonces
promedio<-(n1+n2+n4+n5+n6)/5 ;
escribir "el promedio es: ",prom;
Sino
si(n4<n1 y n4<n2 y n4<n3 y n4<n5 y
n4<n6) entonces
promedio<-(n1+n2+n3+n5+n6)/5
;
escribir "el promedio es: ",prom;
Sino
si(n5<n1 y n5<n2 y n5<n3 y
n5<n4 y n5<n6) entonces
promedio<-
(n1+n2+n3+n4+n6)/5 ;
escribir "el promedio es:
",prom;
Sino
si(n6<n1 y n6<n2 y n6<n3 y
n6<n4 y n6<n5) entonces
promedio<-
(n1+n2+n3+n4+n5)/5 ;
escribir "el promedio es:
",prom;

Finsi

finsi

FinSi

finsi

FinSi
finsi
finsi
FinSegun
escribir "el promedio es:" promedio
fin proceso
FACULTAD DE INGENIERIA DE SISTEMAS Y
ELECTRONICA

GUA PRCTICA - Sesin 7


rea: Ingeniera Asignatura: Principios de Algoritmos
Ciclo: I Turno: Maana - Tarde Semestre Acadmico: 2017 - I
Docente: Ing. CIP Roberto Carlos Romn Anaya Fecha: 13 de Febrero al 18 de Febrero del 2017

Sesin 7: Estructura Condicional Simple, Doble, Mltiple y Anidada

Objetivo: Permitir desarrollar la lgica del alumno, mediante la resolucin de problemas


aplicando estructuras repetitivas con el uso del control Si y Segn Hacer.

I. Disee algoritmos en pseudocdigo para los siguientes problemas utilizando la


estructura selectiva con el control Si y Segn Hacer como sea conveniente.

1. Crear un algoritmo que permita realizar las operaciones matemticas bsicas, como
suma, resta, multiplicacin y divisin, tal como lo hara una calculadora. Se debe tomar
en cuenta que en el caso de la divisin el segundo nmero ingresado no puede ser
cero ya que nos dara una divisin irreal.
Solucin:
Proceso Prob_1
Definir bd Como Entero
Definir n1, n2, r Como Real
bd<-0
Escribir "Ingrese nro 1: "
Leer n1
Escribir "Ingrese nro 2: "
Leer n2
Escribir "Seleccione opcion + - * /: "
Leer op
Segun op Hacer
'+':
r<-n1+n2
'-':
r<-n1-n2
'*':
r<-n1*n2
'/':
Si n2<>0 Entonces
r<-n1/n2
Sino
Escribir "Division Irreal"
bd<-1
FinSi
De Otro Modo:
Escribir "Operador NO Valido"
FinSegun
Si bd=0 Entonces
Escribir "El Resultado es: ", r
FinSi
FinProceso
2. Disear un algoritmo que al ingresar un nmero entero que equivalga a un mes del ao,
indique cuantos das tiene dicho mes. Por ejemplo: al ingresar 1 que representa a Enero
debe mostrar 31 das, si ingresa 4 que representa Abril debe mostrar 30 das. Si el mes
de febrero pertenece a un ao bisiesto tendr 29 das de lo contrario solo 28. Un ao
bisiesto es mltiplo de 4.
3. Una empresa de carga brinda servicio a todo el continente americano, la tarifa que
cobra por cada tonelada se muestra en el siguiente cuadro:

Destinos ($/tonelada)
Medio de transporte Norte Sur Centro
Areo 30 25 20
Martimo 25 20 15

Mostrar cuanto debe pagarse por el envo de una carga determinada.

4. Una agencia de viajes cobra un inters a sus clientes sobre el costo del paquete
turstico de acuerdo a la siguiente informacin: destino y nmero de ciudades a visitar.
Los intereses sern aplicados segn el siguiente cuadro:

Destino
Nmero de ciudades
Nacional (%) Internacional (%)
13 3 5
48 4 6
9 ms 8 10

Mostrar el monto de inters y el monto total a pagar por un paquete turstico.

5. Un supermercado ofrece a sus clientes descuentos de acuerdo al monto de compra,


como se muestra en el siguiente cuadro:

Compra (S/.) Descuento (%)


100 250 3
251 500 5
501 - ms 10

Dependiendo del rubro de la compra, se le aplica el siguiente impuesto sobre la compra


ya descontada.
Rubro Impuesto (%)
Comestibles 15
Artefactos 30

El algoritmo debe mostrar el monto de descuento, el monto del impuesto y el pago total
que har un determinado cliente.

6. Una tienda de venta de polos ha establecido porcentajes de descuento sobre el precio,


de acuerdo a las siguientes caractersticas: Tipo de algodn (Simple, Pima), Tipo de
prenda (Formal, Deportiva):
Tipo de prenda
Tipo de algodn Formal Deportiva
Simple 15% 10%
Pima 10% 5%

Calcular el importe a pagar por una prenda.


7. Un centro comercial permite comprar productos financiados por 3 tipos de tarjetas de
crdito que aplican un inters sobre cada cuota fraccionada del monto original de la
deuda, tal como se indica a continuacin:

Tipo de Tarjeta Inters (%)


Visa 5
Premium 3
Electrn 1

El cliente solo puede financiar una compra hasta el mximo de 8 cuotas, en caso
contrario la venta no debe proceder. Calcular el monto que debe pagar en una cuota.

8. Un club social ofrece a sus socios tres planes de pagos:

Planes Pago anual (S/.)

Bsico 1000

Familiar 1600

Premium 2500

Si el socio desea adquirir adicionalmente un seguro contra accidentes, tiene que pagar

4% ms sobre el pago anual. Calcular el pago adicional y el monto final que tiene que

pagar un socio.

9. La empresa Cruz del Sur realiza ofertas de pasajes a 3 destinos diferentes, slo de
acuerdo a la cantidad de pasajes que se compra, como se muestra en el siguiente
cuadro:

Destino Precio (S/.) De 4 a 10 pasajes (%) De 11 a ms pasajes (%)


Arequipa 84.00 10 15
Moquegua 96.00 15 20
Tacna 125.00 20 25

Un cliente solo puede comprar pasajes para una ciudad. Mostrar el monto de descuento
y el total que tiene que pagar un determinado cliente.

10. Calcular el pago bsico que se hace por un servicio de transporte de carga
interprovincial. La empresa que brinda este servicio solo tiene tres destinos cuya tarifa
es por kilo transportado:

Destino Tarifa por kilo

Tarapoto S/. 15.00

Jan S/. 20.00

Chachapoyas S/. 10.00

El pago bsico puede incrementarse de acuerdo a la modalidad de servicio, tal como


figura en el siguiente cuadro:

Modalidad de servicio Incremento (%)

A (agencia agencia) 0

B (agencia domicilio) 25

C (domicilio domicilio) 45

Finalmente se debe mostrar el pago final por el servicio de transporte.

Proceso Prob_2_primeraforma
Definir a, m Como Entero
Escribir "Ingrese el Ao: "
Leer a
Escribir "Ingrese el Nro de Mes: "
Leer m
Segun m Hacer
1:
Escribir "31 dias"
2:
Si (a MOD 4 = 0) y ((a MOD 100 <> 0) O (a MOD 400 = 0)) Entonces
Escribir "29 dias"
Sino
Escribir "28 dias"
FinSi
3:
Escribir "31 dias"
4:
Escribir "30 dias"
5:
Escribir "31 dias"
6:
Escribir "30 dias"
7:
Escribir "31 dias"
8:
Escribir "30 dias"
9:
Escribir "30 dias"
10:
Escribir "31 dias"
11:
Escribir "30 dias"
12:
Escribir "31 dias"
De Otro Modo:
Escribir "Nro de Mes NO Valido"
FinSegun

FinProceso

Proceso Prob_3
p<-0
an<-30
as<-25
ac<-20
mn<-25
ms<-20
mc<-15
Escribir "Ingrese Nro de Toneladas: "
Leer t
Escribir "Seleccione Medio de Transporte (1-2): "
Leer op
Escribir "Ingrese el Destino (N/S/C)"
Leer d
Segun op Hacer
1:
Si d='N' Entonces
p<-an*t
Sino
Si d='S' Entonces
p<-as*t
Sino
p<-ac*t
FinSi
FinSi
2:
Si d='N' Entonces
p<-mn*t
Sino
Si d='S' Entonces
p<-ms*t
Sino
p<-mc*t
FinSi
FinSi
De Otro Modo:
Escribir "Opcion NO Valida"
FinSegun
Escribir "El pago total es: ", p
FinProceso

Proceso Prob_5_Corregido
cf<-0
i<-0
d<-0
td1<-0.03
td2<-0.05
td3<-0.10
ti1<-0.15
ti2<-0.30
Escribir "Ingrese el rubro (1-2): "
Leer r
Escribir "Ingrese el monto de la compra: "
Leer c
Segun r Hacer
1:
Si c<100 Entonces
d<-0
Sino
Si c>=100 Y c<=250 Entonces
d<-td1*c
Sino
Si c>250 Y c<=500 Entonces
d<-td2*c
Sino
d<-td3*c
FinSi
FinSi
FinSi
cf<-c-d
i<-cf*ti1
2:
Si c<100 Entonces
d<-0
Sino
Si c>=100 Y c<=250 Entonces
d<-td1*c
Sino
Si c>250 Y c<=500 Entonces
d<-td2*c
Sino
d<-td3*c
FinSi
FinSi
FinSi
cf<-c-d
i<-cf*ti2
De Otro Modo:
Escribir "Opcion NO Valida"
FinSegun
total<-cf+i
Escribir "Descuento es: ", d
Escribir "Impuesto es: ", i
Escribir "Total a pagar es: ", total
FinProceso

Proceso Prob_6
desc<-0
sf<-0.15
sd<-0.10
pf<-0.10
pd<-0.05
Escribir "Ingrese el Precio: "
Leer precio
Escribir ""
Escribir "TIPO DE ALGODON"
Escribir "---------------"
Escribir "(1) Simple"
Escribir "(2) Pima"
Escribir "Seleccione tipo de algodon (1-2): "
Leer op
Escribir ""
Escribir "TIPO DE PRENDA"
Escribir "---------------"
Escribir "(F) Formal"
Escribir "(D) Deportiva"
Escribir "Seleccione tipo de prenda (F/D): "
Leer tp
Segun op Hacer
1:
Si tp="F" Entonces
desc<-sf*precio
FinSi
Si tp="D" Entonces
desc<-sd*precio
FinSi
2:
Si tp="F" Entonces
desc<-pf*precio
FinSi
Si tp="D" Entonces
desc<-pd*precio
FinSi
De Otro Modo:
Escribir "Opcion NO Valida"
FinSegun
total<-precio-desc
Escribir "El total a pagar es: ", total
FinProceso

Proceso Prob_7
Escribir "Ingrese el valor de la Compra: "
Leer compra
Escribir "Ingresar Nro de Cuotas: "
Leer n
Escribir ""
Escribir "TIPO DE TARJETA"
Escribir "---------------"
Escribir "(1) Visa"
Escribir "(2) Premiun"
Escribir "(3) Electron"
Leer op
cm<-compra/n
Segun op Hacer
1:
Si n<=8 Entonces
i<-0.05*cm
Sino
Escribir "Compra no procede"
FinSi
2:
Si n<=8 Entonces
i<-0.03*cm
Sino
Escribir "Compra no procede"
FinSi
3:
Si n<=8 Entonces
i<-0.01*cm
Sino
Escribir "Compra no procede"
FinSi
De Otro Modo:
Escribir "Opcion No Valida"
FinSegun
pagar<-cm+i
Escribir "La cuota mensual a pagar es: ", pagar
FinProceso

Proceso Prob_8_sinconstantes
pa<-0
Escribir "Seleccione el Plan (1-3): "
Leer p
Escribir "Desea Un Seguro contra accidentes (S/N): "
Leer resp
Segun p Hacer
1:
Si resp='S' Entonces
pa<-1000*0.04
final<-1000+pa
Sino
final<-1000
FinSi
2:
Si resp='S' Entonces
pa<-1600*0.04
final<-1600+pa
Sino
final<-1600
FinSi
3:
Si resp='S' Entonces
pa<-2500*0.04
final<-2500+pa
Sino
final<-2500
FinSi
De Otro Modo:
Escribir "Opcion NO Valida"
FinSegun
Escribir "Pago adicional es: ", pa
Escribir "Monto final a pagar es: ", final
FinProceso

Proceso Prob_8_CONconstantes
Definir resp Como Caracter
Definir p Como Entero
Definir pa, bp, fp, pp, porc, final Como Real
pa<-0
bp<-1000
fp<-1600
pp<-2500
porc<-0.04
Escribir "Seleccione el Plan (1-3): "
Leer p
Escribir "Desea Un Seguro contra accidentes (S/N): "
Leer resp
Segun p Hacer
1:
Si resp='S' Entonces
pa<-bp*porc
final<-bp+pa
Sino
final<-bp
FinSi
2:
Si resp='S' Entonces
pa<-fp*porc
final<-fp+pa
Sino
final<-fp
FinSi
3:
Si resp='S' Entonces
pa<-pp*porc
final<-pp+pa
Sino
final<-pp
FinSi
De Otro Modo:
Escribir "Opcion NO Valida"
FinSegun
Escribir "Pago adicional es: ", pa
Escribir "Monto final a pagar es: ", final
FinProceso

Proceso Prob_10_CONconstantes
Definir peso, pb, i, final Como Real
Definir d Como Entero
Definir m Como Caracter
t<-15
j<-20
ch<-10
ai<-0
bi<-0.25
ci<-0.45
Escribir "Ingrese el Peso en Kg.: "
Leer peso
Escribir "Seleccione el destino (1-3): "
Leer d
Escribir "Elija la modalidad (A/B/C): "
Leer m
Segun d Hacer
1:
pb<-t*peso
Si m='A' Entonces
i<-ai
FinSi
Si m='B' Entonces
i<-bi*pb
FinSi
Si m='C' Entonces
i<-ci*pb
FinSi
2:
pb<-j*peso
Si m='A' Entonces
i<-ai
FinSi
Si m='B' Entonces
i<-bi*pb
FinSi
Si m='C' Entonces
i<-ci*pb
FinSi
3:
pb<-ch*peso
Si m='A' Entonces
i<-ai
FinSi
Si m='B' Entonces
i<-bi*pb
FinSi
Si m='C' Entonces
i<-ci*pb
FinSi
De Otro Modo:
Escribir "Opcion No Valida"
FinSegun
final<-pb+i
Escribir "Pago final es: ", final
FinProceso

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