Está en la página 1de 5

Elementos de Computación y Lógica

Ing. en Informática – Lic. en Informática – Programador Universitario


Facultad de Ciencias Exactas y Tecnología
Universidad Nacional de Tucumán

Trabajo Práctico N◦10


Tema: Algoritmos - Funciones y Procedimientos

2022
Ejercicios
Resuelva los siguientes problemas usando un algoritmo adecuado, con dos refi-
namientos, al menos.

1. Escriba una función que reciba como argumento un carácter y retorne si es o no consonate.
De igual forma, diseñe una función para analizar si un carácter es un espacio en blanco.

2. Dada una cadena de longitud indefinida calcule la cantidad de espacios en blancos y consonates
que tiene la misma. Para el análisis de la cadena use las funciones definidas en el punto 1.

3. Retomando el punto 2 del TP9


Modifique su algoritmo de modo que el mismo tenga una función es_capicua que reciba
como argumento un número y retorne 0 o 1. Además, su algoritmo debe contar la cantidad
de números capicúa leídos.

ALGORITMO CAPICUA
ENTRADA: num1, num2, num3: enteros
SALIDA: numCapicúa
A1. LEER (num1, num2, num3)
A2. es_capicua
A3. ESCRIBIR (numCapicua)
A4. PARAR

A2. es_capicua
Si (num1=num3) & (num2 >= 0 y num2 <=9) ENTONCES
numCapicua <- num1, num2, num3
ESCRIBIR (numCapicua)
LEER (num1, num2, num3)

4. Retomando el punto 3 del TP8


Un programador que trabaja para un proyecto en el exterior cobra 6 USD por hr. (8 hs
diaras de lunes a viernes) y 10USD por cada hr. extra. A partir de la cantidad de hrs
trabajadas en el último mes, calcule cuanto cobra mensualmente en pesos. Además, tenga
en cuenta que si el sueldo bruto supera los $170.000 se le retiene el 8% en concepto de
Ganancias Personales y si supera los $250.000 se le retiene el 11%. (DATO: cambio $205
por USD).

1
El departamento de recursos humanos de la empresa Norte Software desea saber el monto que
cobrarán sus 45 desarrolladores.

Para la resolución de este punto modifique el diseño del algoritmo tal que use las siguientes
funciones:
- calcular_bruto: que reciba como parámetro las horas trabajadas.
- calcular_retencion: que reciba el monto bruto como parámetro y retorne el monto neto
que cobrará un programador.

ALGORITMO SUELDO
ENTRADA: hs_trabajadas, hs_extras: entero
SALIDA: sueldo, sueldoNeto: real
VAR. AUX:
CONSTANTE:
A0. INICIALIZACION
A1. LEER (hs_trabajadas, hs_extras)
A2. calcular_bruto

A3. calcular_retencion
A4. PARAR

A0. INICIALIZACION
Hs_trabajadas <- 0, hs_extras <- 0

A2. calcular_bruto
HACER 45 VECES (i=1, …, 45)
SI (hs_trabajadas>0) & (hs_extras=0) ENTONCES
Sueldo <- hs_trabajadas*6*205
ESCRIBIR (sueldo)
SINO
SI (hs_trabajadas>0) & (hs_extras>0) ENTONCES
Sueldo <- (hs_trabajadas*6+hs_extras*10)*205
ESCRIBIR (sueldo)
FIN SI
FIN SI
FIN HACER

2
A3. calcular_retencion
SI (sueldo>170000) & (sueldo<=250000) ENTONCES
SueldoNeto <- sueldo*0.92
ESCRIBIR (sueldoNeto)
SINO
SI (sueldo>250000) ENTONCES
SueldoNeto <- sueldo*0.89
ESCRIBIR (sueldoNeto)
FIN SI
FIN SI

5. En el mes de los descuentos, un comercio se propuso realizar la siguiente propuesta:


En la primera semana va a realizar un 10% de descuento por cada compra, en la segunda
semana del mes realizará un 20% de descuento, en la tercera semana un 30%, en la cuarta
semana un 40% y en la quinta semana un 50%.
Realice un algoritmo tal que permita ingresar una lista de datos: montos originales de cada
venta y el día del en mes que se realizaron dichas ventas.
Luego:

- Muestre en pantalla el monto final con el descuento incluido por cada venta.
Realice una función que calcule el monto final de la venta, muestre en pantalla y retorne el
valor.
- Muestre en pantalla el nombre del día de la semana según el día ingresado. Es decir, si
es: lunes, martes, miércoles, . . .
Realice un procedimiento que tenga como parámetro el día de la semana y proceda a mostrar
el nombre.
- Para terminar, el algoritmo debe mostrar el monto total vendido correspondiente a todo el
listado y el monto original que correspondería si no se aplicaban los descuentos.

NOTA:
El mes de los descuentos tiene 31 días, y se sabe que el día 3 del mes es
miércoles. Elija según su criterio la marca final para terminar de ingresar el
listado

ALGORITMO DESCUENTOS
ENTRADA: venta: real (+), diadelmes: carácter {lunes, martes, mierc, jueves,
viernes, sab, dom}
SALIDA: montoFinal: real (+), diadelmes: carácter
VAR AUX:
CONSTANTE:
A0. inicialización
A0. Inicialización
Venta <-0

A1.

3
4
6. Se desea conocer el promedio de edad de los habitantes de un nuevo barrio. Para ello se
ingresará la edad de cada integrante, permitiendo ingresar 0 para los recién nacidos que no
llegan al año.
Realice un algoritmo que permita ingresar las edades de los habitantes del barrio con una
marca final, y luego muestre el promedio de edad.
Realice un procedimiento que muestre en pantalla según la edad ingresada si es mayor o menor
de edad.
Realice otro procedimiento que muestre en pantalla el rango correspondiente a la edad ingre-
sada de acuerdo a:
- Lactancia: hasta completar el año.
- Infancia: edades: 1-5 años.
- Niñez: 6 - 9 años.
- Preadolescencia: 10 - 14 años.
- Adolescencia: 15 - 17.
- Adultez: 18 - 40 años.
- Adulto mayor: 40 - 65 años.
- Vejez: Desde los 65 años.

7. Realice un algoritmo que permita ingresar dos números enteros (dividendo y divisor), luego
debe resolver la división entera utilizando solo restas sucesivas. El algoritmo debe mostrar
en pantalla el cociente de la división entera y el resto. Además, muestre en pantalla si el
dividendo es divisible en el divisor ingresado. Para ello tenga en cuenta:
- El algoritmo debe verificar que el dividendo sea mayor o igual al divisor, y el divisor es
distinto de cero.
- Realice una función que devuelva el cociente de la división.
- Realice una función que devuelva el resto de la división. Puede considerar utilizar el cociente
previamente calculado en la función anterior.
- Realice un procedimiento que muestre en pantalla si el dividendo es divisible en el divisor.
Puede utilizar el resto previamente calculado en la función anterior.

NOTA:
Puede utilizar todos los operadores matemáticos menos los operadores DIV, MOD y /

También podría gustarte