I.
Determine las salidas de los siguientes segmentos del algoritmo utilizando el control Mientras, tomando en cuenta que: a 12, b 4, c 1, suma1 0, suma2 0, cont1 0, cont2 0. Segmentos de
pseudocódig a. mientras (a ≠ 4) Si (a > b) entonces suma1 suma1 + b fin si a
b. mientras (a > b and
Borrador de repeticiones PAS 1 2 3 4 5
b 4 7 1 1 1
PASO
b ≠ 0) Si (a > b) entonces cont1 cont1 + 1 fin c. mientras (b >= 2) Si (a mod 2= 0) entonces suma1 suma1 + a sino suma2 suma2 + a fin si
1 2 3 4 5
d. mientras (a ≠ b or b
PASO
> c) Si (b = 4) entonces cont2 cont2 + 1 fin
a 1 1 8 6 4 a 1 1 1 1 1
suma1 0 4 1 1 1 b 4 3 2 1 0
cont1 0 1 2 3 4
Respuesta
suma1: 11
cont1: 4
suma1: 26
suma2: 13
1 2 3 4 5
a 1 1 8 6 4
b 4 4 4 4 4
c 1 2 3 4 5
cont2 0 1 2 3 4
cont2: 4
Diseñe algoritmos en pseudocódigo utilizando utili zando la estructura repetitiva Mientras, para los siguientes problemas: problemas: 1. Diseñar un algoritmo que muestre el pago de cada consumo realizado en un restaurante por un cliente, tomar en cuenta que el cliente puede cancelar más de un menú. Cada menú cuesta S/.7.50. Además, 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.
Solución 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 menús 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
Solución 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 menús 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 evalúa la condición al inicio del proceso repetitivo.
Diseñe algoritmos en pseudocódigo utilizando utili zando la estructura repetitiva Mientras, para los siguientes problemas: problemas: 1. Diseñar un algoritmo que muestre el pago de cada consumo realizado en un restaurante por un cliente, tomar en cuenta que el cliente puede cancelar más de un menú. Cada menú cuesta S/.7.50. Además, 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.
Solución 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 menús 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
Solución 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 menús 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 evalúa la condición al inicio del proceso repetitivo.
2. Se ingresan los resultados de la evaluación del curso de Química; por cada alumno se informa: su condición (1 = becado, 2 = no becado) y su calificación obtenida que va de 0 a 20. Para estar aprobado debe tener una nota mínima de 14. A partir de esta información 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 más alumnos.
Solución: 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 números enteros positivos y calcule cantidad de múltiplos de 3 y múltiplos de 7 encontrados en la relación de números ingresados. El algoritmo termina cuando se ingresa un número 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 "Multiplos de 3: ", m3 Escribir "Multiplos de 7: ", m7 FinProceso
Otra solución, si nos pidieran ingresar varios números 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 "Multiplos de 3: ", m3 Escribir "Multiplos "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 años y el promedio de pesos de los que tienen 18 años a más.
Análisis: Supongamos que los pesos sean: 45.60 56.0 a) Matemáticamente el promedio sería así: Promedio = (45.60 + 56.0 + 60.0 + 53.50)/4
60.0
53.50
b) En Pseudocódigo el promedio sería así: Promedio <- (suma de pesos)/(cantidad de pesos) ¿Cómo calculamos esto y que definición aplicamos?: ** sumapeso <- sumapeso + peso ----- definición: ACUMULADOR ** cantidadpeso <- cantidadpeso + 1 ----- definición: 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 // evalúa la condición 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 más 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 cuál 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 ingeniero de planta se establecen los siguientes rangos: Mostrar en un informe los siguientes datos:
Rango de Puntaje 0 - 49 50 - 79 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 más 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
7. La oficina de climatología de nuestro país desea saber las siguientes características climatológicas en un mes determinado. Tome en cuenta que el mes tiene 30 días. La temperatura mínima y máxima del mes. Cuántos días 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 t28 Entonces c<-c+1 FinSi suma
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
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 5 5 5 5 5 --
mayor 10 10 15 15 20 --
i 1 2 3 4 5 6
numero 10 8 15 12 20 --
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
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 numeron 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 número entero n y mostrar todos los múltiplos 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 términos 1+34+57+710+
⋯
SOLUCIÓN 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
SOLUCIÓN 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 Tránsito y Seguridad Vial desea saber de los “n” autos que entran a la ciudad de Lima, cuantos entran con calcomanía de cada color. Conociendo el último dígito de la placa de cada automóvil se puede determinar el color de la calcomanía utilizando la siguiente relación: 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 número negativo para terminar" leer numero mientras numero>= 0 hacer suma <- suma + numero cont <- cont + 1 escribir "Ingresar un numero positivo y número 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
mayor<-b
FinSi si a
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 20-17 >14 12-14 <12
Categoria A B C 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
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 opción (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 año: " Leer a Si (a MOD 4 = 0) y (a MOD 100 <> 0) O (a MOD 400 = 0) Entonces Escribir "El año ", a, " es bisiesto" Sino Escribir "El año ", a, " no bisiesto" FinSi FinAlgoritmo
Proceso la serie de n terminos Escribir "Ingrese el nro de términos de la serie; " Leer n i<1 // indica que es el 1er término 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
1. Supongamos que se lee por teclado una secuencia de números, tales como: 5 3 0 2 4 4 0 0 2 3 6 0 2 Contar e imprimir el número de ceros de la secuencia.
Solución.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:
Sólo se debe utilizar una variable auxiliar y comprobar la solución en el siguiente cuadro. INSTRUCCIÓN
A
B
C
AUX
(1) (2) (3)
Solución.Utilizaremos una variable auxiliar AUX. Las instrucciones que resuelven el problema de intercambio son: AUX A
←
C
←
B
←
A
←
C B
AUX
Comprobémoslo con los valores de A, B y C: 5, 10 y 15. INSTRUCCIÓN
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 año leído por teclado, es o no bisiesto.
Solución.Algoritmo bisiesto Definir a como Entero Escribir "Ingrese el año: " Leer a Si (a MOD 4 = 0) y ((a MOD 100 <> 0) O (a MOD 400 = 0)) Entonces Escribir "El año ", a, " es bisiesto" Sino Escribir "El año ", a, " no bisiesto" FinSi
FinAlgoritmo
4. Una compañía de Seguros ofrece planes anuales para una familia según la siguiente tabla: PLAN
MAX PER
PAGO
A B
8 6
40 30
C D
4 2
20 10
Además, por cada persona adicional en la categoría A y B, se cobra 8 soles. Y por cada persona adicional en la categoría C y D, cobra 5 soles más. Calcular el pago anual del seguro por una familia de n personas.
Solución. Análisis: TIPO A B C D
MAX PER 8 6 4 2
PAGO 40 30 20 10
ADICIONAL 8 8 5 5
El algoritmo sería 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 matemático descubrió como multiplicar cualquier número entero por 11, mediante la suma de sus dígitos. Sea un numero entero N que se expresa con M dígitos, 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 dígitos de las unidades y decenas de N, el digito de las centenas es igual a la suma de los dígitos de las decenas y centenas de N, y así sucesivamente. Ejemplo 3247 x 11 = 35717 Solución. Análisis: Del ejemplo se tiene que: Sea N = Multiplicado por: Producto
3247 11 35717
Se tiene que descomponer el número 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
Además, 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 sería 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 próximo juego se proporcionan como sigue: Precios: p1, p2, p3, p4, p5 Localidad1
Cant1
Localidad2
Cant2
….
….
Localidad 5
Cant5
Diseñe 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.
Solución: Análisis: 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:
Localidad 1 Localidad 2 Localidad 3 Localidad 4 Localidad 5
PRECIO
CANTIDAD
p1
Cant1
p2
Cant2
p3
Cant3
p4
Cant4
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 sería 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 número con las estructuras: Mientras, Repetir y Para.
Solución: 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 población de cada una de las veinticinco ciudades más grandes de las ocho provincias de Andalucía y se desea identificar y visualizar la población de la ciudad más grande de cada provincia.
Solución: Análisis: El problema consistirá, en primer lugar, en la obtención de la población mayor de cada provincia y realizar esta operación 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 más 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, según el resultado de comparación, se intercambian valores de la ciudad por el de la variable CMAYOR. El algoritmo correspondiente sería:
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 población 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 compañía de Seguros ofrece planes anuales para sus asegurados según la siguiente tabla: TIPO
MAX PER
PAGO
A B C D
8 6 4 2
40 30 20 10
Además, por cada persona adicional en la categoría A y B, se cobra 8 soles. Y por cada persona adicional en la categoría C y D, cobra 5 soles más. 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 AÑO, SE OBTENGA LA FECHA DEL DIA SIGUIENTE. Proceso DIA_SIGUIENTE Definir dia, mes, año como entero Dia <- d mes <- m año <- a Escribir "Ingrese Fecha en el formato DD/MM/AAAA" Escribir "Ingrese Dia" Leer Dia Escribir "Ingrese Mes" Leer Mes Escribir "Ingrese Año"
Leer Año 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 SEGÚN 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
FinSi finsi finsi FinSegun escribir "el promedio es:" promedio fin proceso
GUÍA PRÁCTICA - Sesión 7
Área: Ingeniería Ciclo: I Turno: Mañana - Tarde Docente: Ing. CIP Roberto Carlos Román Anaya
Asignatura: Principios de Algoritmos Semestre Académico: 2017 - I Fecha: 13 de Febrero al 18 de Febrero del 2017
Sesión 7: Estructura Condicional Simple, Doble, Múltiple y Anidada
Objetivo:
Permitir desarrollar la lógica del alumno, mediante la resolución de problemas aplicando estructuras repetitivas con el uso del control Si y Según Hacer . I.
Diseñe algoritmos en pseudocódigo para los siguientes problemas utilizando la estructura selectiva con el control Si y Según Hacer como sea conveniente. 1. Crear un algoritmo que permita realizar las operaciones matemáticas básicas, como suma, resta, multiplicación y división, tal como lo haría una calculadora. Se debe tomar en cuenta que en el caso de la división el segundo número ingresado no puede ser cero ya que nos daría una división irreal.
Solución: 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. Diseñar un algoritmo que al ingresar un número entero que equivalga a un mes del año, indique cuantos días tiene dicho mes. Por ejemplo: al ingresar 1 que representa a Enero debe mostrar 31 días, si ingresa 4 que representa Abril debe mostrar 30 días. Si el mes de febrero pertenece a un año bisiesto tendrá 29 días de lo contrario solo 28. Un año bisiesto es múltiplo 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 30 25
Aéreo Marítimo
Sur 25 20
Centro 20 15
Mostrar cuanto debe pagarse por el envío de una carga determinada. 4. Una agencia de viajes cobra un interés a sus clientes sobre el costo del paquete turístico de acuerdo a la siguiente información: destino y número de ciudades a visitar. Los intereses serán aplicados según el siguiente cuadro:
Número de ciudades
Destino Nacional (%) Internacional (%)
1 – 3 4 – 8 9 –más
3 4 8
5 6 10
Mostrar el monto de interés y el monto total a pagar por un paquete turístico. 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 251 – 500 501 - más
3 5 10
Dependiendo del rubro de la compra, se le aplica el siguiente impuesto sobre la compra ya descontada.
Rubro Comestibles Artefactos
Impuesto (%) 15 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 características: Tipo de algodón (Simple, Pima), Tipo de prenda (Formal, Deportiva):
Tipo de prenda Tipo de algodón Simple Pima
Formal 15% 10%
Deportiva 10% 5%
Calcular el importe a pagar por una prenda. 7. Un centro comercial permite comprar productos financiados por 3 tipos de tarjetas de crédito que aplican un interés sobre cada cuota fraccionada del monto original de la deuda, tal como se indica a continuación:
Tipo de Tarjeta
Interés (%)
Visa Premium
5 3
Electrón
1
El cliente solo puede financiar una compra hasta el máximo 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/.)
Básico
1000
Familiar
1600
Premium
2500
Si el socio desea adquirir adicionalmente un seguro contra accidentes, tiene que pagar 4% más 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, sólo 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 más pasajes (%)
Arequipa Moquegua Tacna
84.00 96.00 125.00
10 15 20
15 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 básico 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
Jaén
S/. 20.00
Chachapoyas
S/. 10.00
El pago básico 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 Año: " 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