Está en la página 1de 3

Primer examen parcial.

Fundamentos de Programación
Duración 2.5 horas
*
Carlos Andres Delgado S, Msc
02 de Diciembre de 2019

Reglas
Debe seguir la metodologı́a vista en clase a través de los comentarios que realice en las
funciones que desarrolle, no realizar este paso se aplicará una fuerte penalización

No comentar usando cajas ni agregar imágenes

Debe entregar la solución del parcial en el campus virtual

Importante: Las pruebas de las funciones deben estar en el código y se deben tener al
menos 4 ejemplos creados por usted, si estos faltan se le aplicará una penalización

Problemas
1. [40 puntos] Una empresa requiere una función calcular-pago-trabajador que permita
calcular el sueldo a pagar en un mes de trabajo, para este ejercicio vamos a suponer que un
mes tiene 30 dı́as. Los trabajadores son modelados a través de las siguientes estructuras:
( define-struct t r a b a j a d o r − e j e c u t i v o ( nombre num−personas−acargo s a l a r i o − b a s e ) )
( define-struct t r a b a j a d o r − a d m i n i s t r a t i v o ( nombre s a l a r i o − b a s e ) )
( define-struct t r a b a j a d o r − o p e r a t i v o ( nombre s a l a r i o − p o r − h o r a h o r a s − t r a b a j a d a s ) )

Los trabajadores inician y finalizan en determinados dı́as del mes, de acuerdo a esto la
empresa paga una bonificación de acuerdo a la siguiente regla:

Del dı́a 1 al dı́a 10 paga 10000 por dı́a


Del dı́a 10 al dı́a 15 paga 15000 por dı́a
Del dı́a 15 al dı́a 25 paga 12000 por dı́a
Del dı́a 25 al dı́a 30 paga 11000 por dı́a
*
carlos.andres.delgado@correounivalle.edu.co

1
Y ası́ mismo los salarios por cada tipo de trabajador se calculan ası́:

Para trabajador ejecutivo: Se da una bonificación de 20000 si tiene más de 20 per-


sonas a cargo, la cual se suma a su salario base
Para trabajador administrativo, se paga su salario base
Para trabajador operador se paga la multiplicación de salario-por-hora y horas-
trabajadas

Para este problema use la siguiente plantilla:


; ; Comentarios de metodolog ı́ a
( d efi ne ( calcular−pago−trabajador trabajador d i a i n i c i o dia final )
; ; Programa
)

Agregue 3 ejemplos adicionales a los sumunistrados a continuación:

( c a l c u l a r − p a g o − t r a b a j a d o r ( m a k e − t r a b a j a d o r − e j e c u t i v o ’ j u a n 25 1 0 0 0 0 0 ) 10 2 8 )
; ; En total recibe 100000 + 20000 ( m á s de 20 trabajadores ) + 15000*5 ( d ı́ as 10 al 15) +
12000*10 ( d ı́ as 15 al 25) + 11000*3 (25 al 28) Total 348000

( c a l c u l a r − p a g o ( m a k e − t r a b a j a d o r − a d m i n i s t r a t i v o ’ pedro 5 0 0 0 0 ) 5 1 5 )
; ; En total 50000 + 5*10000 ( d ı́ as 5 al 10) + 5*15000 ( d ı́ as 10 al 15) = 175000

( c a l c u l a r − p a g o ( m a k e − t r a b a j a d o r − o p e r a t i v o ’ c a r l o s 100 7 5 ) 12 2 4 )
; ; En total 100*75 + 3*15000 ( d ı́ as del 12 al 15) + 12000*9 ( d ı́ as 15 al 24) = 160500

2. [30 puntos] Una panaderia lleva un inventario de sus tres tipos de productos, en la
siguiente estructura
( define-struct i n v e n t a r i o ( t i p o 1 t i p o 2 t i p o 3 ) )

La panaderı́a lleva sus productos en la siguiente estructura


( define-struct p r o d u c t o ( nombre c a n t i d a d v a l o r u n i d a d ) )

Un ejemplo de un inventario serı́a


( d e f i n e i n v e n t a r i o A ( m a ke−i nv en tari o ( make−producto ’ pandebono 100 3 0 0 ) ( make−producto ’
pan−abuela 20 1 0 0 0 ) ( make−producto ’ empanada 30 5 0 0 ) ) )

Se solicita haga la función compra-producto, la cual recibe un inventario, un sı́mbolo


que representa el producto y una cantidad a comprar, esta retorna el valor de la compra
y 0 si el producto no está en el inventario, ejemplo:
; ; Usamos la variable inventarioA
( comprar−producto i n v e n t a r i o A ’ pandebono 2 0 ) )
; ; Retorna 6000
( comprar−producto i n v e n t a r i o A ’ a r e p a 2 0 ) )
; ; Retorna 0

También haga la función actualizar-inventario, la cual sustrae la cantidad de elementos


vendidos del inventario, si el elemento a buscar no está en el inventario se retorna el
inventario inicial

2
; ; Usamos la variable inventarioA
( a c t u a l i z a r − i n v e n t a r i o i n v e n t a r i o A ’ pandebono 2 0 ) )
; ; Retorna ( make-producto ’ pandebono 80 300) ( make-producto ’ pan-abuela 20 1000) (
make-producto ’ empanada 30 500) )
( a c t u a l i z a r − i n v e n t a r i o o inventarioA ’ arepa 20) )
; ; Retorna ( make-producto ’ pandebono 80 300) ( make-producto ’ pan-abuela 20 1000) (
make-producto ’ empanada 30 500) )

La función comprar-producto vale 40 % del punto y actualizar-inventario 60 %.

3. [30 puntos] En su hogar se tiene el problema que está llegando el recibo de la energı́a por
un valor muy elevado. Para analizar este problema, usted debe construir un programa que
permita calcular el costo total del recibo de energı́a. Para esto se manejan dos estructuras
; ; Para el total de electrodom é sticos de la casa ( en total tenemos 3)
( define-struct i n v e n t a r i o − e l e c t r o d o m e s t i c o s ( e l e c t r o d o m e s t i c o 1 e l e c t r o d o m e s t i c o 2
electrodomestico3 ) )

( define-struct e l e c t r o d o m e s t i c o ( nombre consumo−kwh h o r a s F u n c i o n a n d o ) )

Ası́ mismo, el gobierno maneja las siguientes tarifas para el cobro del servicio de energı́a

Los primeros 300kw se cobran a 50 cada kw


Los siguientes 200kw se cobran a 100 cada kw
Los siguientes 500kw se cobran a 150 cada kw
De allı́ en adelante se cobra 200 cada kw

Diseñe la función calcular-costo-energia la cual recibe un inventario-electrodomesticos


y emite el costo total del gasto, ejemplo
( d e f i n e inventario−electroA ( make−inventario−electrodomesticos ( make−electrodomestico ’
n e v e r a 10 2 0 )
( m a k e − e l e c t r o d o m e s t i c o ’ t v 15 1 0 ) ( m a k e − e l e c t r o d o m e s t i c o ’ computador 20 3 0 ) )

( calcular−costo−energia inventario−electroA )
; ; El total de gasto es 10*20 + 15*10 +20*30 = 950 kw
; ; El pago ser á 300*50 + 200*100 + 450*150 = 102500

Incluya ejemplos variados, en el cual el consumo cubra varios casos de pago.

¡Exitos!

También podría gustarte