UNIVERSIDAD DE EL SALVADOR
FACULTAD DE CIENCIAS ECONÓMICAS
DEPARTAMENTO DE CONTADURÍA PÚBLICA
Guía N° 4 “Diseño de algoritmos: Estructuras de selección e Iterativas”
Docente: Ing. Alam Balmore Aviles Muñoz
Materia: Computación
Grupo: Teórico 17
Unidad: 02
Estudiante: Josué Alexis Garcia Galdámez GG20005
Ciclo II
Ciudad universitaria, 03 de mayo de 2020
EJERCICIOS DE ESTRUCTURAS SELECTIVAS:
1. Dos estudiantes se postularon para competir en las elecciones universitarias. Diseñe una
solución que lea la cantidad de votos que cada candidato recibió, así como el número de
abstenciones. El programa deberá calcular el porcentaje de votos que obtuvo cada
candidato y el porcentaje de abstenciones y determinará quién fue el ganador.
PLANTEAMIENTO DEL PROBLEMA.
ENTRADA DE DATOS
SALIDA DE DATOS
P
Votos 1 Porcentaje 1
Votos 2 Porcentaje 2
Porcentaje abs
Análisis del Problema:
Variables Salida:
Nombre Tipo Descripción
Porcentaje 1 Real Cantidad de los primeros votos por el 100%
Porcentaje 2 Real Cantidad de los segundo Votos por el 100%
Porcentaje abs Real Y esto fueron los que se abstuvieron de dar su voto por el 100%
Variables Entrada:
Nombres Tipo Despcricion
Votos 1 Entero Cantidades de Votos1 que se digitan
Votos 2 Entero Cantidades de Votos 2 que se digitan
Proceso:
por1 = votos1 / (votos1 + votos2)
por2 = votos2 / (votos1 + votos2)
porabs = abste / (votos1 + votos2)
Pseudocódigo:
Algoritmo Estudiantes_que_se_postula
//1. Dos estudiantes se postularon para competir en las elecciones universitarias. Diseñe una
// solución que lea la cantidad de votos que cada candidato recibió, así como el número de
// abstenciones. El programa deberá calcular el porcentaje de votos que obtuvo cada
// candidato y el porcentaje de abstenciones y determinará quién fue el ganador.
Definir votos1, votos2 como entero
Definir abste como entero
Definir por1, por2, porabs como real
Imprimir "Digite la cantidad de votos candidato 1"
Leer votos1
Imprimir "Digite la cantidad de votos candidato 2"
Leer votos2
Imprimir "Digite la cantidad de votos abstenciones"
Leer abste
por1 = votos1 / (votos1 + votos2)
por2 = votos2 / (votos1 + votos2)
porabs = abste / (votos1 + votos2)
si votos1 > votos2 entonces
Imprimir "El ganador es el candidado 1 con un porcentaje de ", por1*100
SiNo
Imprimir "El ganador es el candidado 2 con un porcentaje de ", por2*100
FinSi
Imprimir "El porcentaje de abstenciones es ", porabs*100
FinAlgoritmo
Flujograma:
2. Una persona quiere saber el salario que gana mensualmente, el pago base por quincena es
de $3000.00 el cual cambiará dependiendo del departamento en que se trabaja, los
departamentos pueden ser: Ahuachapán, San Miguel, Morazán, Chalatenango y La Unión;
en caso de no ser ninguna de las localidades planteadas se pintará “salario indefinido”
mostrando solo el salario base. Si la localidad es Ahuachapán se aumentará un 20% en
cada quincena, para San Miguel un 5%, Morazán un 10%, Chalatenango un 15% y La Unión
se le aumentan $ 200.00.
PLANTEAMIENTO DEL PROBLEMA.
ENTRADA DE DATOS
SALIDA DE DATOS
Departamentos Salario 1
Salario 2
Salario 3
Salario 4
Salario 5
Análisis del Problema:
Variables Salida:
Nombre Tipo Descripción
Salario 1 Real Se multiplica el salario por el porcentaje y se suma a la vez
Salario 2 Real Se multiplica el salario por el porcentaje y se suma de igual manera
Salario 3 Real Luego de multiplicar el salario por el porcentaje se suma
Salario 4 Real Se sigue el mismo proceso para encontrar cuanto ganara
Salario 5 Real Ya teniendo los valores multiplica por porciento y se suma
Variables Entrada:
Nombres Tipo Despcricion
Departamento Entero Se escribe cada uno de los departamento
Proceso:
El salario seria: $(3000.00*0.20+3000.00)
El salario seria: $(3000.00*0.05+3000.00)
El salario seria: $(3000.00*0.10+3000.00)
El salario seria: $(3000.00*0.15+3000.00)
El salario seria: $(3000.00+200.00)
Pseudocódigo:
Algoritmo Departamento
Definir dep Como Entero;
Escribir "Ingrese el departamento en que se trabaja: "
Escribir "para Ahuachapan marque 1: "
Escribir "para San Miguel marque 2: "
Escribir "para Morazan marque 3: "
Escribir "para Chalatenango marque 4: "
Escribir "para La Union marque 5: "
Leer dep;
Segun dep Hacer
1: Escribir "El salario seria: $",(3000.00*0.20+3000.00);
2: Escribir "El salario seria: $",(3000.00*0.05+3000.00);
3: Escribir "El salario seria: $",(3000.00*0.10+3000.00);
4: Escribir "El salario seria: $",(3000.00*0.15+3000.00);
5: Escribir "El salario seria: $",(3000.00+200.00);
De Otro Modo:
Escribir "salario indefinido";
FinSegun
FinAlgoritmo
Flujograma:
Estructuras repetitivas.
1. Escribir un programa que permita realizar descuentos en un comercio, en función del
total de compras realizadas por cada cliente. Para realizar dichos descuentos, se deben
leer los importes de cada compra parcial de un cliente hasta que un importe sea igual a
cero; posteriormente se escribirá el importe total a pagar teniendo en cuenta que se
pueden efectuar los siguientes descuentos:
Si el importe total de la compra está entre $50 y $120, el descuento es del 15%.
Si el importe total de la compra es mayor de $120 el descuento es del 20%.
La lectura de clientes finaliza tras responder al mensaje "¿Más clientes (S/N) ?, mostrando
al final la suma total de todos los importes cobrados.
PLANTEAMIENTO DEL PROBLEMA.
ENTRADA DE DATOS
SALIDA DE DATOS
Repetir Cantidad Total
Descuento
Análisis del Problema:
Variables Salida:
Nombre Tipo Descripción
Cantidad Total Real Se debe hacer el proceso de la cantidad mas total de lo que vale
Descuento - Total apagar por el porcentaje que descontar
Variables Entrada:
Nombres Tipo Despcricion
Repetir Carácter Repetición de comprar cantidad y valor
Proceso:
TOTAL <- CAN+TOTAL
'SU TOTAL A PAGAR ES DE $',TOTAL
TOTAL>=50 Y TOTAL<=120 Entonces
DES <- TOTAL-(TOTAL*0.15)
SU TOTAL A PAGAR ES DE $',DES
DES <- TOTAL-(TOTAL*0.20)
'SU TOTAL A PAGAR ES DE $',DES
Pseudocódigo:
Algoritmo DESCUENTOS
Definir R Como Caracter // R=REPETIR
Definir CAN,TOTAL Como Real // CAN=CANTIDAD
Repetir
CAN <- 0 //INICIAMOS CAN EN EL VALOR CERO AL IGUAL QUE LA VARIABLE TOTAL
TOTAL <- 0
Repetir
Escribir 'INGRESE EL PRECIO DEL PRODUCTO'
Leer CAN
Si CAN<0 Entonces
Escribir 'PRECIO INGRESADO ERRONEO'
SiNo
// PROCESO//
TOTAL <- CAN+TOTAL
FinSi
Hasta Que CAN=0
Si TOTAL<50 Entonces
Escribir 'SU TOTAL A PAGAR ES DE $',TOTAL
SiNo
Si TOTAL>=50 Y TOTAL<=120 Entonces
DES <- TOTAL-(TOTAL*0.15)
Escribir 'SU TOTAL A PAGAR ES DE $',DES
SiNo
DES <- TOTAL-(TOTAL*0.20)
Escribir 'SU TOTAL A PAGAR ES DE $',DES
FinSi
FinSi
Escribir '¿MAS CLIENTES S/N?'
Leer R
Hasta Que R='N'
FinAlgoritmo
Flujograma:
2. La empresa “Innovaciones Contables”, posee dos tipos de empleados, siendo estos
administrativos y operativos, el salario que poseen es de $500 y $350 respectivamente. Se
desea crear una solución para obtener el monto en concepto de horas extras, si el
empleado es administrativo y el número de horas extras es menor a 25 el precio por hora
extra es de $2.50, caso contrario cada hora extra se pagará a $2.00 Si el empleado es
operativo y el número de horas extra es mayor a 25 el precio por hora extra es de $2.75
caso contrario el pago por cada hora extra será de $2.50.
A). La solución a diseñar debe mostrar la siguiente información.
a. Salario Inicial : $
b. Cantidad de horas extras reportada: $
c. Pago en concepto de horas extras : $
d. Salario total: $
B). La solución debe procesar una cantidad de empleados solicitada y calcular la siguiente
información:
a. Cantidad de empleados administrativos.
b. Cantidad de empleados operativos.
c. Total de horas extras reportadas sin importar el tipo de empleado.
PLANTEAMIENTO DEL PROBLEMA.
ENTRADA DE DATOS
SALIDA DE DATOS
- Salario administrativo - Salario inicial
- Salario operario - Cantidad de horas extras
- Pago de horas extra según horas - Pago de horas extra
- Salario Total
- Cantidad de empleados Adm.
- Cantidad de empleados Op.
ANALISIS DEL PROBLEMA
Variables de salida:
NOMBRE TIP DESCRIPCION
O
Salario inicial Real Cantidad que cada empleado la empresa le paga.
Cantidad de horas extras Real Cantidad de horas extras que cada empleado ha hecho.
Pago de horas extras Real Cantidad a pagar según el número de horas extras
realizadas
Salario Total Real Monto de horas extras más el salario inicial del
trabajador
Cantidad de empleados Real Cantidad de empleados Administrativos que ha sido
Administrativos procesados
Cantidad de empleados Real Cantidad de empleados operarios que ha sido procesados
Operarios
Datos de entrada:
NOMBRE TIPO DESCRIPCION
Salario Administrativo Real Cantidad de dinero depositado en el banco
Salario Operario Real Porcentaje de interés a aplicar al dinero a depositar
Pago de horas extras según horas
Administrativos Operarios
“x” <25= $2.50 “x” >25= $2.75
Real Pago según horas extras trabajadas
“x” >25= $2.00 “x” <25= $2.50
RESTRICCIONES:
Las horas extras deben ser > a 0
CONSTANTES
SALARIO ADMINISTRATIVO: $500
SALARIO OPERATIVO: $350
Pseudocódigo:
Algoritmo SalarioHoras
Definir
Salario,ValorHoraExtra,HorasExtras,TotaValorlHorasExtras,SalarioDia,TipoEmpleado Como Real
Definir
SalarioHora,NumeroEmpleados,TotalAdministrativos,TotalOperativos,TotalHorasExtras Como Real
// declarar Varibles
NumeroEmpleados<-1
Para i = 1 hasta NumeroEmpleados
Salario = 500
ValorHoraExtra = 2.50
HorasExtras = 7
TipoEmpleado = 1
TotaValorlHorasExtras = 17.5
SalarioDia = 10.00
SalarioHora = 1.25
TotalHorasExtras = TotalHorasExtras + HiorasExtras
Si TipoEmpleado = 1
Salario = 500
SI HorasExtras < 25
ValorHoraExtra = 2.5
SiNo
ValorHoraExtra = 2
FinSi
TotalAdministrativos = TotalAdministrativos + 1
SiNo
Salario = 350
Si HorasExtras > 25
ValorHoraExtra = 2.75
SiNo
ValorHoraExtra = 2.5
FinSi
TotalOperativos = TotalOperativos + 1
FinSi
SalarioDia = Salario / 30
SalarioHora = SalarioDia / 8
TotaValorlHorasExtras = SalarioHora * ValorHoraExtra
Imprimir "Empleado: ",i
Imprimir "Salario Inicial: ", Salario
Imprimir "Cantidad de horas extras reportada: ", HorasExtras
Imprimir "Pago en concepto de horas extras: ", TotaValorlHorasExtras
FinPara
Imprimir "Cantidad de empleados administrativos: ", TotalAdministrativos
Imprimir "Cantidad de empleados operativos: ", TotalOperativos
Imprimir "Total de horas extras reportadas sin importar el tipo de empleado: ",
TotalHorasExtras
FinAlgoritmo
Flujograma: