Ejercicio 1
Cierta universidad para liquidar el pago de matrícula de un estudiante le exige los siguientes
datos:
• Número de inscripción
• Nombres
• Patrimonio.
• Estrato social.
La universidad cobra un valor constante para cada estudiante de $50.000. Si el patrimonio es
mayor que $2´000.000 y el estrato superior a 3, se le incrementa un porcentaje del 3% sobre el
patrimonio. Hacer un algoritmo que muestre:
• Número de inscripción.
• Nombres.
• Pago de matrícula.
Análisis
Datos de entrada
• Número de inscripción.
• Nombres.
• Patrimonio.
• Estrato social.
Datos de salida
• Número de inscripción.
• Nombres.
• Pago por matrícula.
Proceso
Inicialmente se asume que el valor a pagar es el valor constante $50.000; se hace la
comparación del patrimonio con 2´000.000 y del estrato con tres; en caso de ser cierta la
condición al valor constante se le incrementa el 3% sobre el patrimonio. Este valor adicional se
obtiene multiplicando el patrimonio por 3 y dividiéndolo sobre 100 ó, lo que sería lo mismo,
multiplicar 0,03 por el patrimonio.
Definición de variables
NI: Número de inscripción.
NOM: Nombres.
PAT: Patrimonio.
EST: Estrato social.
PAGMAT: Pago por matrícula.
Algoritmo
INICIO
LEA: NI, NOM, PAT, ES
PAGMAT = 50000
SI (PAT > 2000000) ∧ (ES > 3) ENTONCES
PAGMAT = PAGMAT + 0.03 * PAT
FIN_SI
ESCRIBA: “EL ESTUDIANTE CON NUMERO DE INSCRIPCION”, NI,
“Y NOMBRE”, NOM, “DEBE PAGAR: $”, PAGMAT
FIN_INICIO
Ejercicio 2
Escribir un algoritmo que acepte tres números enteros diferentes y muestre el mayor de ellos.
Análisis
El enunciado aclara que no existen números iguales, por lo tanto existe un valor menor, uno
medio y uno mayor.
Datos de entrada
• Los tres números. Estos deben almacenarse en variables distintas.
Datos de salida
• El valor del número mayor.
Proceso: Existen varias formas de encontrar el valor mayor entre un grupo de datos. Usted
puede pensar y desarrollar una diferente a la aquí expuesta. El proceso a utilizar sería:
NUMERO1 será el mayor si:
(NUMERO1 > NUMERO2) ∧ (NUMERO1 > NUMERO3).
NUMERO2 será el mayor si:
(NUMERO2 > NUMERO1) ∧ (NUMERO2 > NUMERO3).
NUMERO3 será el mayor si:
(NUMERO3 > NUMERO1) ∧ (NUMERO3 > NUMERO2).
Definición de variables
N1: Valor del primer número a entrar.
N2: Valor del segundo número.
N3: Valor del tercer número.
MAYOR: Variable que almacenará el valor mayor entre N1, N2 y N3.
Algoritmo
INICIO
LEA: Nl, N2, N3
SI (N1 > N2) ∧ (N1 > N3) ENTONCES
MAYOR = N1
SINO
SI N2 > N3 ENTONCES
MAYOR = N2
SINO
MAYOR = N3
FIN_SI
FIN_SI
ESCRIBA: “EL VALOR MAYOR ENTRE: “, N1, “,”, N2, “Y”, N3, “ES:”, MAYOR
FIN_INICIO
Ejercicio 3
Un almacén efectúa una promoción en la cual se hace un descuento sobre 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
blanca no se le hará descuento alguno, si es verde se le hará un 10% de descuento, si es
amarilla un 25%, si es azul un 50% y si es roja un 100%. Hacer un algoritmo para determinar la
cantidad final que un cliente deberá pagar por su compra. Se sabe que sólo hay bolitas de los
colores mencionados.
Análisis
Datos de entrada
• Valor de la compra.
• Color de la bolita; ésta almacenará un valor alfabético.
Datos de salida
• Valor a pagar teniendo en cuenta los posibles descuentos.
Proceso
Conocido el color de la bolita que le ha tocado al cliente se puede establecer si tiene o no
descuento por el valor de la compra y el porcentaje que le corresponde.
Si la bolita que saca es:
Blanca, el descuento es del 0%; si es verde, el descuento es del 10%; si es amarilla, el
descuento es del 25%; si es azul, el descuento es del 50%; si no es de ninguno de los colores
anteriores, por defecto será roja al no haber más colores, por lo que no es necesario hacer la
pregunta si el color de la bolita es roja, en cuyo caso el descuento es del 100%.
Definición de variables
VALCOMP: Valor de la compra.
COLOR: Color de la bolita.
VALPAG: Valor a pagar.
PDES: Porcentaje de descuento.
Algoritmo
INICIO
LEA: VALCOMP, COLOR
SI COLOR = “BLANCO” ENTONCES
PDES=0
SINO
SI COLOR = “VERDE” ENTONCES
PDES = 10
SINO
SI COLOR=”AMARILLO” ENTONCES
PDES = 25
SINO
SI COLOR = “AZUL” ENTONCES
PDES = 50
SINO
PDES = 100
FIN_SI
FIN_SI
FIN_SI
FIN_SI
VALPAG = VALCOMP - PDES * VALCOMP / 100
ESCRIBA: “EL CLIENTE DEBE PAGAR:$”, VALPAG
FIN_INICIO
Ejercicio 4
Una empresa con tres departamentos tiene establecido un plan de incentivos para sus
vendedores. Al final del período, a cada departamento se le pide el importe global de las
ventas. A los departamentos que excedan el 33% de las ventas totales se les adiciona al
salario de los vendedores un porcentaje equivalente al 20% del salario mensual. Las nóminas
de los tres departamentos son iguales. Si se tienen los siguientes datos:
• Ventas del departamento 1
• Ventas del departamento 2
• Ventas del departamento 3
• Salario de los vendedores de cada departamento
Hacer un algoritmo que determine cuánto recibirán los vendedores de cada departamento al
finalizar el período.
Análisis
Datos de entrada
• Los tres importes de ventas de los departamentos.
• Salario de los vendedores.
Datos de salida
• Valor recibido por salario en cada uno de los departamentos.
Proceso
Para poder obtener el 33% de las ventas totales, primero es necesario conocer el total de
ventas de la empresa. Total de ventas = ventas depto 1 + ventas depto 2 + ventas depto 3. El
33% de las ventas totales o porcentaje sobre las ventas será: ventas totales * 0.33 o ventas
totales * 33/100. Este porcentaje sirve para determinar si las ventas de un departamento
superan este valor e indicará si los vendedores reciben o no un 20% más sobre su salario.
SI ventas de un departamento > porcentaje de ventas ENTONCES
Salario recibido = salario + salario * 0.2;
SINO
Salario recibido = salario
FIN_SI
Continuación
Definición de variables
vd1: ventas del departamento 1
vd2: ventas del departamento 2
vd3: ventas del departamento 3
salar: salario que reciben vendedores en cada departamento.
totven: total ventas en la empresa.
porven: porcentaje equivalente al 33% de ventas totales.
salven1: salario de los vendedores en el depto. 1
salven2: salario de los vendedores en el depto. 2
salven3: salario de los vendedores en el depto. 3
Algoritmo
inicio
lea: vd1, vd2, vd3, salar
totven = vd1 + vd2 + vd3
porven = 0.33 * totven
si vd1 > porven entonces
salre1 = salar + 0.2 * salar
sino
salre1 = salar
fin_si
si vd2 > porven entonces
salre2 = salar + 0.2 * salre
sino
salar2 = salar
fin_si
si vd3 > porven entonces
salre3 = salar + 0.2 * salre
sino
salre3 = salre
fin_si
escriba: “salario vendedores depto. 1”, salre1,
“salario vendedores depto. 2”, salre2, “salario
vendedores depto. 3”, salre3
fin_inicio
ejercicio 5
por cada uno de los n estudiantes de una universidad, donde cada uno cursa 4 materias se
tienen los siguientes datos:
• código del estudiante.
• nota materia 1.
• número de créditos de la materia 1.
• nota materia 2.
• número de créditos de la materia 2.
• nota materia 3.
• número de créditos de la materia 3.
• nota materia 4.
• el número de créditos de la materia 4.
hacer un algoritmo que encuentre para cada estudiante el número de créditos cursados y el
promedio crédito.
análisis
datos de entrada
• número de estudiantes.
• código estudiante.
• nota materia 1.
• número de créditos materia 1.
• nota materia 2.
• número de créditos materia 2.
• nota materia 3.
• número de créditos materia 3.
• nota materia 4.
• número de créditos materia 4.
datos de salida
• código del estudiante.
• número de créditos cursados.
• promedio crédito.
proceso
primero se entrará al algoritmo el número de estudiantes y luego con este valor se construirá un
ciclo donde, en cada ejecución, encuentre el promedio crédito para cada estudiante. el
promedio se obtiene mediante la siguiente fórmula:
número de créditos cursados = falta fórmula pag. 98 libro
definición de variables
numes: número de estudiantes.
cod: código.
not1: nota materia 1.
numcre1: número de créditos materia 1.
not2: nota materia 2.
numcre2: número de créditos materia 2.
not3: nota materia 3.
numcre3: número de créditos materia 3.
not4: nota materia 4.
numcre4: número de créditos materia 4.
nume: contador de estudiantes y controlador de ciclo.
ncc: número de créditos cursados.
pc: promedio crédito.
algoritmo
inicio
nume = 1
lea: numes
mientras nume < = numes haga
lea: cod, not1, numcre1, not2, numcre2, not3, numcre3, not4, numcre4
ncc = numcre1 + numcre2 + numcre3 + numcre4
pc = (nl * numcre1 + not2 * numcre2 + not3 * numcre3 + not4 * numcre4) / ncc
escriba: "el estudiante con codigo", cod, "
nume = nume + 1
fin_mientras
fin_inicio
ejercicio 9
hacer un algoritmo que encuentre la suma de los valores de un conjunto de números enteros, la
cantidad de valores negativos, positivos, iguales a cero y el total de números en el conjunto.
análisis
datos de entrada
• el valor entero a sumar.
datos de salida
• la suma de todos los números enteros leidos.
• la cantidad de valores negativos.
• la cantidad de valores positivos.
• la cantidad de valores iguales a cero.
• el total de números en el conjunto.
proceso
como no se conoce la cantidad de valores a tener en cuenta en la suma, es necesario utilizar
un modelo cualitativo. al tener el registro de entrada un sólo campo y el rango de valores de
éste son los números enteros (negativos, cero y positivos), no existe un valor del mismo tipo,
con quién compararlo para terminar el ciclo. una forma de implementar el modelo cualitativo en
casos como éste es mediante el uso de una bandera. si se escogen los valores "si" y "no" para
la bandera, ésta empezará en "si", y cuando ya no existan más valores a sumar se le dará el
valor de "no". esto implica entrar un valor, sumarlo, y de acuerdo a si hay más valores o no,
darle el valor de "si' o "no" a la bandera. para realizar las sumas basta comparar el valor con
cero y determinar si éste es cero, negativo o positivo.
definición de variables
num: número o valor a sumar.
suma: sumatoria de los números.
valn: cantidad de valores negativos.
val0: cantidad de valores iguales a cero.
valp: cantidad de valores positivos.
totaln: total de números sumados. este valor se calculará después del ciclo como valp + valn +
val0.
siga: variable tipo bandera que se inicializará en "si"; cuando no existan más valores tomará el
valor de "no".
algoritmo
inicio
valn, val0, valp, suma = 0
siga = "si"
mientras siga = "si" haga
lea: num
suma = suma + num
si num > 0 entonces
valp= valp + 1
sino
si num = 0 entonces
val0 = val0 + 1
sino
valn = valn + 1
fin_si
fin_si
lea: siga
fin_mientras
totaln = valp + valn + val0
escriba: "suma de los números:", suma, "num
totaln
fin_inicio
ejercicio 10
en una elección realizada en piedra dura se presentaron tres candidatos: pedro, pablo y vilma.
por cada votante se tiene la siguiente información:
piedracédula: número de la cédula del votante.
opción: campo que indica el candidato escogido, si el valor del campo es:
1: votó por pedro
2: votó por pablo
3: votó por vilma
4: votó en blanco
elaborar un algoritmo que muestre el número de votos depositados por cada candidato y el total
de votantes.
análisis
datos de entrada
• piedracédula de cada votante
• opción que indica el candidato elegido
datos de salida
• número de votos por pedro
• número de votos por pablo
• número de votos por vilma
• número de votos en blanco
• número total de votos
proceso
como no se conoce el total de votantes se debe implementar un esquema cualitativo; el campo
escogido dentro del registro será piedracédula, el cual dentro de sus posibles valores no tiene
uno que sea cero o negativo. el ciclo de entrada de datos terminará cuando encuentre un valor
de cero para el campo piedracédula. el campo opción puede tomar uno cualquiera de los
valores entre 1 y 4, pero sólo uno de estos valores en cualquier momento. si fred votó por vilma
y su cédula es 588 su registro sería: 588 3
esta clase de campos es muy utilizada dentro de la programación, fundamentalmente cuando
se trata de problemas de tipo estadístico.
definición de variables
pc: número de piedracédula.
op: opción elegida.
nvpe: contador del número de votos por pedro.
nvpa: contador del número de votos por pablo.
nvvi: contador del número de votos por vilma.
nvbl: contador del número de votos en blanco.
ntv: número total de votos.
algoritmo
inicio
nvpe, nvpa, nvvi, nvbl = 0
lea: pc
mientras pc > 0 haga
lea: op
si op = 1 entonces
nvpe = nvpe + 1
sino
si op = 2 entonces
nvpa = nvpa + 1
sino
si op = 3 entonces
nvvi = nvvi + 1
sino
nvbl = nvbl + 1
fin_si
fin_si
fin_si
lea:pc
fin_mientras
ntv = nvpe + nvpa + nvvi + nvbl
escriba: "votos totales", ntv, "repartidos asl: p
fin_inicio