CRISTIAN GARCIA INFORMATICA
http://www.scigwi.org/Members/offray/htdp.es/htdp.es/htdp.es.0.1.pdf
En Phyton
editarEjercicio 2.2
editar#Evaluar las raíces de 4, 2 y -1. Calcular la tangente de un ángulo. # Raíces: import math def raiz (x): return (math.sqrt x) print raiz (4) print raiz (2) print raiz (-1) math.sqrt(4) math.sqrt(2)# Tangente de un ángulo:
- import math
- math.tan(ángulo en radianes)
import math math.tan(math.pi)
math.sqrt(-1)
- Tangente de un ángulo:
- import math
- math.tan(ángulo en radianes)
import math math.tan(math.pi)
# Tangente de un ángulo: # import math # math.tan(ángulo en radianes) import math print math.tan(math.pi)
Ejercicio 2.3
editar#Programa Fahrenheit->Celsius que consume una temperatura medida en Fahrenheit y produce el equivalente Celsius:
def Fa_A_Cel (F): return ((F-32)*(5/9)) print Fa_A_Cel(41)
# Ejemplo: Fahrenheit_A_Celsius(41)
Ejercicio 2.4
editar#Programa dolar->euro que recibe una cantidad en dólares y retorna el equivalente en euros
def Dolar_A_Euro (do): return (do*(3313.42/2682.34)) print Dolar_A_Euro(50) # Ejemplo: Dolar_A_Euro (50)
Ejercicio 2.5
editar#Programa triángulo que consume la longitud del lado del triángulo y su altura, retorna el área del
triángulo.
def triangulo (base,altura): return ((base*altura)/2) print triangulo (5 , 6)
# Ejemplo: triangulo (5,6)
Ejercicio 2.6
editar#Programa convert3 que recibe 3 dígitos, empezando con el dígito menos significativo, seguido por el siguiente más significativo y asísucesivamente. El programa produce el número correspondiente. def convert3 (num1,num2,num3): return ((num3*100)+(num2*10)+(num1)) print comvert3 (1 , 2 , 3)
# Ejemplo: convert3(1,2,3)
Ejercicio 2.7
editar# Evaluar n/3 + 2, n^2 + 10, (1/2)n^2 + 20 y 2 - 1/n; para los # valores de n=2, n=5, n=9. def f(n): return ((n/3)+2) print f(n) print f(2) print f(5) print f(9)
def f(n): return ((n*n)+10) print f(2) print f(5) print f(9)
def f(n): return (((1/2)*n*n)+20) print f(2) print f(5) print f(9)
def f(n): return (2-(1/n))
print f(2) print f(5) print f(9)
Ejercicio 2.8
editar#Programa impuesto que determina el impuesto por el pago bruto. La tasa de impuesto es del 15%. También definir pago-neto, programa que determina el pago que un trabajador recibe por un número de horas trabajadas. Asumiendo una tasa horaria de $12. def impuesto (pago): return (pago*(15/100)) print impuesto (2000) def pago (horas): return (12*horas) print pago (48)
# Ejemplos: impuesto (2000) pago (48)
Ejercicio 2.9
editar#Programa suma-monedas, que recibe cuatro números: el número de monedas de $50, $100, $500 y $1000; retorna la cantidad de dinero total. def suma_monedas (m1,m2,m3,m4): return ((m1*50)+(m2*100)+(m3*500)+(m4*1000))
# m1 = número de monedas de $50 # m2 = número de monedas de $100 # m3 = número de monedas de $500 # m4 = número de monedas de $1000 print suma_monedas (1 , 2 , 3 , 4)
# Ejemplo: suma_monedas(1,2,3,4)
Ejercicio 2.10
editar#En un teatro cada asistente paga $5 por tiquete. Cada función cuesta al teatro $20, más $0.5 por asistente. Desarrolla la funcióntotal-gananciaa, que recibe el número de asistentes y retorna cuántos ingresosse producen. def ganancia_total (asistentes): return ((5*asistentes)-(20+(0.5*asistentes))) print ganacia_total (120) # Ejemplo: ganancia_total (120)
Algunos elementos de programacion
editarDiseño de una funcion
editarI.Contrato:Nombre de la funcion II.Tipos de variable III. Proposito:Que hace la funcion IV. Definicion:Codigo de la funcion V. Prueba:Se invoca la funcion y se indica cual es el resultado empleado
En Dr Scheme
editarEn esta seccion se colocan algunos ejercicio extraidos de la lectura H
Ejercicio 2.1.
editar;Descubra si Dr Scheme tiene operaciones para sacar raiz de un numero; para computar el seno de un angulo y para determinar el maximo de dos nuemeros.
; Raíz de un número (sqrt Número). Ejemplo:
(sqrt 25)
; Seno de un ángulo (sin ángulo en radianes). Ejemplo:
(sin (/ pi 2))
; Determinar el máximo de dos números (max num1 num2). Ejemplo:
(max 1 6)
Ejemplo 2.2
editar; Evaluar las raíces de 4, 2, -1:
(sqrt 4) (sqrt 2) (sqrt -1)
; Tangente de un ángulo (tan ángulo en radianes). Ejemplo:
(tan pi)
Ejemplo 2.3
editar;Defina el programa Fahrenheit->Celsius que consume una temperatura medida en Fahrenheit y produce el equivalente Celsius:
(define (Fahrenheit->Celsius F)
(* (/ 5 9) (- F 32)))
;Ejemplo: Hallar la temperatura en escala Celsius equivalente a 41ºF
(Fahrenheit->Celsius 41)
(convert-gui Fahrenheit->Celsius)
(convert-repl Fahrenheit->Celsius)
(convert-file "entrada.dat" Fahrenheit->Celsius "salida.dat")
Ejemplo 2.4
editar;Defina el programa dolar->euro que consume un número de dólares y produce un equivalente en euros.
(define (dolar->euro d)
(/ (* d 3313.42) 2682.34))
(dolar->euro 50)
Ejercicip 2.5
editar;Defina el programa triángulo que consume la longitud del lado del triángulo y su altura y produce el área del triángulo.
(define (area-triangulo lado altura)
(/ (* lado altura) 2))
(area-triangulo 5 6)
;Ejemplo: Calcular el área del triángulo con base 5 y altura 6
Ejercicio 2.6
editar;Programa convert3, consume 3 dígitos, empezando con el dígito menos significativo, seguido por el siguiente más significativo y así sucesivamente. El programa produce el número correspondiente.
(define (convert3 num1 num2 num3)
(+ (* num3 100) (* num2 10) num1))
(convert3 1 2 3)
Ejercicio 2.7
editar;Evalue las siguientes expresiones , , , para n=2, n-5 y n=9
(define (f n)
(+ (/ n 3) 2))
(f 2)
(f 5)
(f 9)
(define (g n)
(+ (* n n) 10))
(g 2)
(g 5)
(g 9)
(define (h n)
(+ (* (/ 1 2) (* n n)) 20))
(h 2)
(h 5)
(h 9)
(define (b n)
(- 2 (/ 1 n)))
(b 2)
(b 5)
(b 9)
Ejercicio 2.8.
editar;Definir el programa impuesto que determina el impuesto sobre el pago bruto. (Taza de impuestos 15%). Definir pago-neto, que determina el pago de un empleado del número de horas trabajadas. (Taza horaria de US$12)
(define (impuesto pago)
(/ (* 15 pago) 100))
(impuesto 2000)
(define (pago-neto horas)
(* horas 12))
(pago-neto 48)
Ejercicio 2.9.
editar;Definir el programa suma-monedas, que onsume cuatro números: el número de monedas de $50, $100, $500 y $1000 en una bolsa; produce la cantidad de dinero en la bolsa.
(define (suma-monedas m1 m2 m3 m4)
(+ (* m1 50)(* m2 100)(* m3 500)(* m4 1000)))
(suma-monedas 1 2 3 4)
Ejercicio 2.10.
editar;Un teatro tiene una sencilla función. Cada cliente paga US$5 por tiquete. Cada realización cuesta al teatro US$20, más US$8.50 por asistente. Desarrollar la función ganancia-total. Consume el número de asistentes y produce cuántos ingresos producen los asistentes.
(define (ganancia-total asistentes)
(- (* 5 asistentes) (+ 20 (* 8.50 asistentes))))
(ganancia-total 120)
Ejercicio 2.11
editar;Evaluar las siguientes expresiones, leer y comprender los mensajes de error:
;(+ (10) 20)
;(10 + 20)
;En las expresiones anteriores se esperaba un nombre u operación definida después del paréntesis, pero se encontró un número
;(+ +)
;El operador "+" debe estar aplicado a argumentos
Ejercicio 2.12
editar;Leer los mensajes de error al ejecutar las siguientes expresiones y fijar la definición apropiada.
;(define (f 1)(+ x 10)) ;La definición de la función debe estar entre paréntesis; se requiere el nombre del primer argumento de la función (x), pero en su lugar hay un número (1).
;(define (g x) + x 10) ; Falta un paréntesis antes del operador "+" y otro para cerrar la definición de la función
; (define h(x)(+ x 10)) ; x no está definido, no es un argumento
; La definición correcta sería:
(define (i x)
(+ x 10))
Ejercicio 2.13
editar; Evaluar las siguientes expresiones gramaticalmente legales:
;(+ 5 (/ 1 0)): Division por cero
;(sin 10 20): El seno solo espera un argumento y recibe 2 (10 20)
;(somef 10): Hace referencia a una "función" indefinida
Ejercicio 2.14
editar; Ejecutar el siguie(+ 5 (/ 1 0nte programa y evaluar (somef 10 20) y (somef 10) en la ventana de Interacciones:
(define (somef x)
(sin x x))
; En la definición de la función somef recibe un solo parámetro y en la expresión (somef 10 20) la función recibe 2 argumentos
; En la función, el seno recibe 2 argumentos y según su definición solo recibe un argumento (en radianes)
====Ejercicio 3.1.1====.
- Ejercicio 3.1.1. Determina cuántos asistentes pueden acceder si el valor del
;tiquete es de $3.00, $4.00 y $5.00. Usa los ejemplos para formular una regla ;general que calcule el ; número de asistentes con el valor del tiquete. ; asistentes : número -> número ; determina el número de asistentes a partir del precio del tiquete ;(define (asistentes precio-tiquete) ...) (define (asistentes precio-tiquete) (+ 120 (* (/ 15 .10) (- 5.00 precio-tiquete)))) (asistentes 3.00) (asistentes 4.00) (asistentes 5.00)
- Ejercicio 3.1.1. Determina cuántos asistentes pueden acceder si el valor del
- tiquete es $3.00, $4.00 y $5.00.
- Contrato:
- asistentes: número -> número
- determina el número de asistentes a partir del precio del tiquete
def asistentes(precio):
return (120+(150*(5-precio)))
print asistentes(3) print asistentes(4) print asistentes(5)
Ejercicio 3.1.2.
editar; Ejercicio 3.1.2. Usa los resultados del ejercicio 3.1.1. para determinar el ;costo de un show de $3.00, $4.00 y $5.00. También determina los ingresos que ;cada show produce con esos precios. Finalmente, calcula cuál es la ganancia en ;cada show. ¿Cuál es el ; mejor precio para maximizar la ganancia? ; ganancia : número -> número ; determina la ganancia como la diferencia entre ingresos y costos, recibiendo ;el precio del tiquete ; (define (ganancia precio-tiquete) ...) ; ingresos: número -> número ; calcula los ingresos a partir del precio del tiquete ; (define (ingresos precio-tiquete) ...) ; costo : número -> número ; obtiene el costo mediante el precio del tiquete ; (define (costo precio-tiquete) ...) ; asistentes : número -> número ; determina el número de asistentes y recibe el precio del tiquete ; (define (asistentes precio-tiquete) ...) (define (ganancia precio-tiquete) (- (ingresos precio-tiquete) (costo precio-tiquete))) (define (ingresos precio-tiquete) (* (asistentes precio-tiquete) precio-tiquete)) (define (costo precio-tiquete) (+ 180 (* .04 (asistentes precio-tiquete)))) (define (asistentes precio-tiquete) (+ 120 (* (/ 15 .10) (- 5.00 precio-tiquete)))) (costo 3.00) (costo 4.00) (costo 5.00) (ingresos 3.00) (ingresos 4.00)
- Ejercicio 3.1.2. Usa los resultados del ejercicio 3.1.1. para determinar el
- costo de una función de $3.00, $4.00 y $5.00. También determina los ingresos
- que cada función produce con esos precios. Finalmente, calcula cuál es la
- ganancia en cada función. ¿Cuál es el mejor precio para maximizar la ganancia?
- Contrato:
- ganancia: número -> número
- determina la ganancia, la diferencia entre ingresos y costos, recibiendo el
- valor del tiquete
- Contrato:
- ingresos: número -> número
- calcula los ingresos a partir del valor del tiquete
- Contrato:
- costo: número -> número
- obtiene el costo del show mediante el valor del tiquete
- Contrato:
- asistentes: número -> número
- determina el número de asistentes y recibe el valor del tiquete
def ganancia(precio):
return (ingresos(precio)-costo(precio))
def ingresos(precio):
return (asistentes(precio)*precio)
def costo(precio):
return (180+(0.4*asistentes(precio)))
def asistentes(precio):
return (120+(150*(5-precio)))
print costo(3.00) print costo(4.00) print costo(5.00) print ingresos(3.00) print ingresos(4.00) print ingresos(5.00) print ganancia(3.00) print ganancia(4.00) print ganancia(5.00)
- Para maximizar la ganancia del teatro, el mejor precio del tiquete es $3.00 y
- la ganancia de $1063.2
Ejercicio 3.1.3.
editar- Ejercicio 3.1.3. Determinar la ganancia que el propietario del cine hace con
; $3.00, $4.00 y $5.00 usando las definiciones del programa en dos columnas. ; Con "How to design programs": ; ganancia : número -> número ; determina la ganancia como la diferencia entre ingresos y costos, recibiendo ;el precio del tiquete ; (define (ganancia precio-tiquete) ...) ; ingresos: número -> número ; calcula los ingresos a partir del precio del tiquete ; (define (ingresos precio-tiquete) ...) ; costo : número -> número ; obtiene el costo mediante el precio del tiquete ; (define (costo precio-tiquete) ...) ; asistentes : número -> número ; determina el número de asistentes y recibe el precio del tiquete ; (define (asistentes precio-tiquete) ...) (define (ganancia precio-tiquete) (- (ingresos precio-tiquete) (costo precio-tiquete))) (define (ingresos precio-tiquete) (* (asistentes precio-tiquete) precio-tiquete)) (define (costo precio-tiquete) (+ 180 (* .04 (asistentes precio-tiquete)))) (define (asistentes precio-tiquete) (+ 120 (* (/ 15 .10) (- 5.00 precio-tiquete)))) (ganancia 3.00) (ganancia 4.00) (ganancia 5.00) ; Con "How not to design programs": ; GANANCIA : número -> número ; determina la ganancia y recibe el precio del tiquete ; (define (GANANCIA precio) ...) (define (GANANCIA precio) (- (* (+ 120 (* (/ 15 .10) (- 5.00 precio))) precio) (+ 180 (* .04 (+ 120 (* (/ 15 .10) (- 5.00 precio))))))) (GANANCIA 3.00) (GANANCIA 4.00) (GANANCIA 5.00)
(ingresos 5.00) (ganancia 3.00) (ganancia 4.00) (ganancia 5.00) ; Para maximizar la ganancia del teatro el mejor precio del tiquete es $3.00, y ;la ganancia $1063.2
- Ejercicio 3.1.3. Determinar la ganancia que el propietario del teatro hace con
- $3.00, $4.00 y $5.00 usando las definiciones del programa de las dos columnas.
- Con "How to design programs":
- Contrato:
- ganancia: número -> número
- determina la ganancia, la diferencia entre ingresos y costos, recibiendo el
- valor del tiquete
- ingresos: número -> número
- calcula los ingresos a partir del valor del tiquete
- costo: número -> número
- obtiene el costo del show mediante el valor del tiquete
- asistentes: número -> número
- determina el número de asistentes y recibe el valor del tiquete
def ganancia(precio):
return (ingresos(precio)-costo(precio))
def ingresos(precio):
return (asistentes(precio)*precio)
def costo(precio):
return (180+(0.4*asistentes(precio)))
def asistentes(precio):
return (120+(150*(5-precio)))
print ganancia(3.00) print ganancia(4.00) print ganancia(5.00)
- Con "How not to design programs":
- Contrato:
- GANANCIA: número -> número
- determina la ganancia y recibe el valor del tiquete
def GANANCIA (valor):
return (((120+(150*(5-valor)))*valor)-(180+(0.4*(120+(150*(5-valor))))))
print GANANCIA (3.00) print GANANCIA (4.00) print GANANCIA (5.00)
; Ejercicio 3.1.3. Determinar la ganancia que el propietario del cine hace con ; $3.00, $4.00 y $5.00 usando las definiciones del programa en dos columnas. ; Con "How to design programs": ; ganancia : número -> número ; determina la ganancia como la diferencia entre ingresos y costos, recibiendo ;el precio del tiquete ; (define (ganancia precio-tiquete) ...) ; ingresos: número -> número ; calcula los ingresos a partir del precio del tiquete ; (define (ingresos precio-tiquete) ...) ; costo : número -> número ; obtiene el costo mediante el precio del tiquete ; (define (costo precio-tiquete) ...) ; asistentes : número -> número ; determina el número de asistentes y recibe el precio del tiquete ; (define (asistentes precio-tiquete) ...) (define (ganancia precio-tiquete) (- (ingresos precio-tiquete) (costo precio-tiquete))) (define (ingresos precio-tiquete) (* (asistentes precio-tiquete) precio-tiquete)) (define (costo precio-tiquete) (+ 180 (* .04 (asistentes precio-tiquete)))) (define (asistentes precio-tiquete) (+ 120 (* (/ 15 .10) (- 5.00 precio-tiquete)))) (ganancia 3.00) (ganancia 4.00) (ganancia 5.00) ; Con "How not to design programs": ; GANANCIA : número -> número ; determina la ganancia y recibe el precio del tiquete ; (define (GANANCIA precio) ...) (define (GANANCIA precio) (- (* (+ 120 (* (/ 15 .10) (- 5.00 precio))) precio) (+ 180 (* .04 (+ 120 (* (/ 15 .10) (- 5.00 precio))))))) (GANANCIA 3.00) (GANANCIA 4.00) (GANANCIA 5.00)
Ejercicio 3.1.4.
editar; Ejercicio 3.1.4. Después de estudiar el costo del show, el propietario ;descubre algunas formas de bajar el costo. Como resultado de sus reformas, el ;propietario ya no paga un costo fijo. Ahora simplemente paga $1.50 por ;asistente. Modifica ambos programas y prueba de nuevo con los precios del ;tiquete de $3.00, $4.00 y $5.00, y compara los resultados. ; Con "How to design a program": ; ganancia : número -> número ; determina la ganancia como la diferencia entre ingresos y costos con el ;precio del tiquete ; (define (ganancia precio-tiquete) ...) ; ingresos: número -> número ; calcula los ingresos a partir del precio del tiquete ; (define (ingresos precio-tiquete) ...) ; costo : número -> número ; obtiene el costo mediante el precio del tiquete ; (define (costo precio-tiquete) ...) ; asistentes : número -> número ; determina el número de asistentes y recibe el precio del tiquete ; (define (asistentes precio-tiquete) ...) (define (ganancia precio-tiquete) (- (ingresos precio-tiquete) (costo precio-tiquete))) (define (ingresos precio-tiquete) (* (asistentes precio-tiquete) precio-tiquete)) (define (costo precio-tiquete) (* 1.50 (asistentes precio-tiquete))) (define (asistentes precio-tiquete) (+ 120 (* (/ 15 .10) (- 5.00 precio-tiquete)))) (ganancia 3.00) (ganancia 4.00) (ganancia 5.00) ;Con "How not to design a program": ; GANANCIA : número -> número ; determina la ganancia y recibe el precio del tiquete ; (define (GANANCIA precio) ...) (define (GANANCIA precio) (- (* (+ 120 (* (/ 15 .10) (- 5.00 precio))) precio) (* 1.50 (+ 120 (* (/ 15 .10) (- 5.00 precio)))))) (GANANCIA 3.00) (GANANCIA 4.00) (GANANCIA 5.00) ; Para maximizar la ganancia del teatro el mejor precio del tiquete es $4.00 y ;la ganancia es $675
- Ejercicio 3.1.4. Después de estudiar el costo de la función, el propietario
- descubre algunas formas de bajar el costo. Como resultado de sus reformas, el
- propietario ya no paga un costo fijo. Ahora simplemente paga $1.50 por asistente.
- Modifica ambos programas y prueba de nuevo con los precios del tiquete de $3.00,
- $4.00 y $5.00, y compara los resultados.
- Con "How to design programs":
- Contrato:
- ganancia: número -> número
- determina la ganancia, la diferencia entre ingresos y costos, recibiendo el
- valor del tiquete
- ingresos: número -> número
- calcula los ingresos a partir del valor del tiquete
- costo: número -> número
- obtiene el costo del show mediante el valor del tiquete
- asistentes: número -> número
- determina el número de asistentes y recibe el valor del tiquete
def ganancia(precio):
return (ingresos(precio)-costo(precio))
def ingresos(precio):
return (asistentes(precio)*precio)
def costo(precio):
return (1.50*asistentes(precio))
def asistentes(precio):
return (120+(150*(5-precio)))
print ganancia(3.00) print ganancia(4.00) print ganancia(5.00)
- Con "How not todesign programs":
- Contrato:
- GANANCIA: número -> número
- determina la ganancia y recibe el valor del tiquete
def GANANCIA (valor):
return (((120+(150*(5-valor)))*valor)-(1.50*(120+(150*(5-valor)))))
print GANANCIA (3.00) print GANANCIA (4.00) print GANANCIA (5.00)
- Para maximizar la ganancia del teatro, el mejor valor del tiquete es $4.00 y la
- ganancia es $675.
Ejercicio 3.2.1.
editar; Ejercicio 3.2.1. Proporciona definiciones de variables para todas las ;constantes que aparecen en el programa de ganancias de la figura 5 y reemplaza ;las constantes con sus nombres. (define COSTOSHOW 180) ; Costo de cada presentación (define AUMENTOCOSTO 0.04) ; Con más de 120 asistentes el costo de la presentación aumenta en 0.04 (define ASISTENCIA 120) ; Asistentes = 120, Precio del tiquete = $5.00 (define AUMENTOASISTENCIA 15) ; Si el precio del tiquete disminuye 0.10 asisten 15 personas más (define PRECIO 0.10) ; Decremento del precio del tiquete (define TIQUETE 5.00) ; Precio del tiquete = $5.00, Asistentes = 120 ;Con "How to design programs": (define (ganancia precio-tiquete) (- (ingresos precio-tiquete) (costo precio-tiquete))) (define (ingresos precio-tiquete) (* (asistentes precio-tiquete) precio-tiquete)) (define (costo precio-tiquete) (+ COSTOSHOW (* AUMENTOCOSTO (asistentes precio-tiquete)))) (define (asistentes precio-tiquete) (+ ASISTENCIA (* (/ AUMENTOASISTENCIA PRECIO) (- TIQUETE precio-tiquete)))) ;Con "How not to design programs": (define (GANANCIA precio) (- (* (+ ASISTENCIA (* (/ AUMENTOASISTENCIA PRECIO) (- TIQUETE precio))) precio) (+ COSTOSHOW (* AUMENTOCOSTO (+ ASISTENCIA (* (/ AUMENTOASISTENCIA PRECIO) (- TIQUETE precio))))))) ; PRUEBAS: (asistentes 3.00) (costo 3.00) (ingresos 3.00) (ganancia 3.00) (GANANCIA 3.00)
- ejercicio 3.2.1
- proporcionar variables definidas para todas las constantes que aparecen
- en el programa ganancia de la figura 5 y reemplace las constantes con sus
- nombres.
- contrato:
- ganancia : numero->numero
- profit : numero->numero
- proposito: propocionar variables definidas a las constantes de dos programas
- ejemplo: ganancia(5) debe producir 415.2 ; profit(5) debe producir 415.2
m = 150 teatro = 180 pb = 120 vtb = 5 cp = .04
- programa ganancia de la figura 5
def ganancia (precio_tiquete):
return ingresos(precio_tiquete) - costos(precio_tiquete)
def ingresos (precio_tiquete):
return asistentes(precio_tiquete)*precio_tiquete
def costos (precio_tiquete):
return teatro+cp*asistentes(precio_tiquete)
def asistentes (precio_tiquete):
return pb+m*(vtb- precio_tiquete)
- programa porfit de la figura 5
def profit (precio_tiquete):
return (((pb+(m*(vtb -
precio_tiquete)))*precio_tiquete)-(teatro+(cp*(pb+(m*(vtb-precio_tiquete)))))) print ganancia(3 )
- el resultado e sperado es 1063.2
profit(3 )
- el resultado esperado es 1063.2
print ganancia(4)
- el resultado esperado es 889.20000000000005
profit(4)
- el resultado esperado es 889.20000000000005
print ganancia(5)
- el resultado esperado es 415.19999999999999
profit(5)
- el resultado esperado es 415.1999999999999
Ejercicio 3.3.1.
editar- Ejercicio 3.3.1. Los Estados Unidos usan el Sistema Inglés de medidas. El resto del
; mundo usa el sistema métrico. Por lo tanto, personas que viajan al extranjero y ; compañías que comercian con socios extrajeros usualmente necesitan convertir de medidas ; inglesas a las métricas y viceversa. La siguiente tabla muestra las 6 unidades ; principales medidas de longitud del Sistema Inglés: ; Inglés Métrico ; 1 inch = 2.54 cm ; 1 foot = 12 in. ; 1 yard = 3 ft. ; 1 rod = 5(1/2) yd. ; 1 furlong = 40 rd. ; 1 mile = 8 fl. ; Crear las funciones inches->cm, feet->inches, yards->feet, rods->yards, furlongs->rods, ; and miles->furlongs. ; Luego desarrolla las funciones feet->cm, yards->cm, rods->inches, and miles->feet. (define INCH 2.54) (define FOOT 12) (define YARD 3) (define ROD 5.05) (define FURLONG 40) (define MILE 8) ; inches->cm : número -> número ; recibe pulgadas y retorna el equivalente en centímetros ; (define (inches->cm inches) ...) (define (inches->cm inches) (* inches INCH) ) ; feet->inches : número -> número ; recibe pies y retorna el equivalente en pulgadas ; (define (feet->inches feet) ...) (define (feet->inches feet) (* feet FOOT) ) ; yards->feet : número -> número ; recibe yardas y retorna el equivalente en pies ; (define (yards->feet yards) ...) (define (yards->feet yards) (* yards YARD) ) ; rods->yards : número -> número ; recibe "rods" y retorna el equivalente en yardas ; (define (rods->yards rods) ...) (define (rods->yards rods) (* rods ROD) ) ; furlongs->rods : número -> número ; recibe "furlongs" y retorna su equivalente en "rods" ; (define (furlongs->rods furlongs) ...) (define (furlongs->rods furlongs) (* furlongs FURLONG) ) ; miles->furlongs : número -> número ; recibe millas y retorna el equivalente en "furlongs" ; (define (miles->furlongs miles) ...) (define (miles->furlongs miles) (* miles MILE) ) (define (feet->cm feet) (inches->cm (feet->inches feet))) (define (yards->cm yards) (inches->cm (feet->inches (yards->feet yards)))) (define (rods->inches rods) (feet->inches (yards->feet (rods->yards rods)))) (define (miles->feet miles) (yards->feet (rods->yards (furlongs->rods (miles->furlongs miles))))) ; Ejemplos: (inches->cm 1) (feet->inches 1) (yards->feet 1) (rods->yards 1) (furlongs->rods 1) (miles->furlongs 1)
- Ejercicio 3.3.1. Los Estados Unidos usan el Sistema Inglés de medidas. El resto
- del mundo usa el sistema métrico. La siguiente tabla muetsra las 6 unidades
- principales de medidas de longitud del Sistema Inglés:
- Inglés Métrico
- 1 inch = 2.54 cm.
- 1foot = 12 in.
- 1 yard = 3 ft.
- 1 rod = 5(1/2) yd.
- 1 furlong = 40 rd.
- 1 mile = 8 fl.
- Crear las funciones inches->cm, feet->inches, yards->feet, rods->yards,
- furlongs->rods, y miles->furlongs.
- Luego desarrolla las funciones feet->cm, yards->cm, rods->inches, y miles->feet.
- Definición de constantes:
INCH = 2.54 FOOT = 12 YARD = 3 ROD = 5.05 FURLONG = 40 MILE = 8
- Contrato:
- inches_cm: número -> número
- recibe pulgadas y retorna el equivalente en centímetros
def inches_cm (inches):
return (inches * INCH)
- Contrato:
- feet_inches: número -> número
- recibe pies y retorna el equivalente en pulgadas
def feet_inches (feet):
return (feet * FOOT)
- Contrato:
- yards_feet: número -> número
- recibe yardas y retorna el equivalente en pies
def yards_feet (yards):
return (yards * YARD)
- Contrato:
- rods_yards: número -> número
- recibe rods y retorna el equivalente en yardas
def rods_yards (rods):
return (rods * ROD)
- Contrato:
- furlongs_rods: número -> número
- recibe furlongs y retorna el equivalente en rods
def furlongs_rods (furlongs):
return (furlongs * FURLONG)
- Contrato:
- miles_furlongs: número -> número
- recibe millas y retorna el equivalente en furlongs
def miles_furlongs (miles):
return (miles * MILE)
def feet_cm (feet):
return (inches_cm (feet_inches (feet)))
def yards_cm (yards):
return (inches_cm (feet_inches (yards_feet (yards))))
def rods_inches (rods):
return (feet_inches (yards_feet (rods_yards (rods))))
def miles_feet (miles):
return (yards_feet (rods_yards (furlongs_rods (miles_furlongs (miles)))))
- Ejemplos:
print inches_cm (1) print feet_inches (1) print yards_feet (1) print rods_yards (1) print furlongs_rods (1) print miles_furlongs (1) print feet_cm (1) print yards_cm (1) print rods_inches (1) print miles_feet (1)
Inglés Métrico 1 inch = 2.54 cm 1 foot = 12 in. 1 yard = 3 ft. 1 rod = 5(1/2) yd. 1 furlong = 40 rd. 1 mile = 8 fl.
Ejercicio 3.3.2.
editar; Ejercicio 3.3.2. Desarrolla el programa volumen-cilindro. Este consume el radio de la ; base de un cilindro y su altura; y retorna el volumen del cilindro. ; volumen-cilindro : número número -> número ; recibe el radio de la base de un cilindro y su altura y retorna el volumen del cilindro ; (define (volumen-cilindro radio altura) ...) (define (volumen-cilindro radio altura) (* pi radio radio altura)) ; Ejemplo: Un recipiente con forma de cilindro circular recto mide 35 cm de altura y 16 cm ; de diámetro. Encuentre el volumen del cilindro. (volumen-cilindro 8 35)
- Ejercicio 3.3.2. Desarrolla el programa volumen_cilindro. Este consume el radio
- de la base de un cilindro y su altura; retorna el volumen del cilindro.
- Contrato:
- volumen_cilindro: número número -> número
- recibe el radio de la base de un cilindro y su altura, retorna su volumen
import math def volumen_cilindro (radio, altura):
return (math.pi * radio * radio * altura)
- Ejemplo:
- Un recipiente con forma de cilindro circular recto mide 35 cm. de altura y 16 cm.
- de diámetro. Encuentre el volumen del cilindro.
print volumen_cilindro (8,35)
- Respuesta: 7037.16
Ejercicio 3.3.3.
editar; Ejercicio 3.3.3. Desarrolla area-cilindro. El programa recibe el radio de la base del ; cilindro y su altura. El resultado es el área de la superficie del cilindro. ; area-cilindro : número número -> número ; recibe el radio de la base de un cilindro y su altura y determina el área del cilindro ; (define (area-cilindro radio altura) ...) (define (area-cilindro radio altura) (+ (* 2 pi radio altura) (* 2 pi radio radio))) ; Ejemplo: Un recipiente con forma de cilindro circular recto mide 35 cm de altura y 16 cm ; de diámetro. Encuentre el área del cilindro. (area-cilindro 8 35)
- Ejercicio 3.3.3. Desarrolla area_cilindro. El programa recibe el radio de la
- base del cilindro y su altura. EL resultado es el área de la superficie del
- cilindro.
- Contrato:
- area_cilindro: número número -> número
- recibe el radio de la base de un cilindro y su altura, retorna su volumen
import math def area_cilindro (radio,altura):
return ((2 * math.pi * radio * altura)+(2 * math.pi * radio * radio))
- Ejemplo: Un recipiente con forma de cilindro circular recto mide 35 cm. de
- altura y 16 cm. de diámetro. Encuentra el área del cilindro.
print area_cilindro (8,35)
- Respuesta: 2161.41
====Ejercicio 3.3.4.====
;Ejercicio 3.3.4. ;desarrollar la funcion area-tubo. computa la superficie del area de un tubo, el cual es un cilindro abierto. el programa ;consume tres valores; el radio interno del tubo, la longitud y el grosor. ;CONTRATO: area-tubo : numero numero numero-> numero ;PROPOSITO:hallar el area de un tubo ;EJEMPLO:(area-tubo 3 5 8) debe producir 401.92 (define (area-tubo radin grosor long) ( * 2 3.14 ( + radin grosor) long)) (area-tubo 3 5 8)
- ejercicio 3.3.4
- desarrollar la funcion area_tubo, computa la superficie del area de un tubo,
- el cual es un cilindro abierto. el programa consume tres valores; el radio
- interno del tubo, la longitud y el grosor.
- contrato: area_tubo: numero numero numero -> numero
- proposito: hallar el area de un tubo.
- ejemplo: area_tubo ( 3,5,8 ): debe producir 401.92
import math def area_tubo(radin,grosor,long):
return 2*math.pi*(radin+grosor)*long
print area_tubo(3,5,8)
- el resultado esperado es 402.12385965949352
Ejercicio 3.3.5.
editar- Ejercicio 3.3.5. Desarrolla el programa altura, que determina la altura que alcanza
; un cohete en cierto tiempo. Si el cohete acelera a una constante g, este alcanza una ; velocidad de g · t en unidades de tiempo t y una altura de 1/2 * v * t donde v es la ; velocidad en el tiempo t. ; altura : número número -> número ; recibe la aceleración g y un tiempo t y retorna la altura ; (define (altura g tiempo) ...) ; velocidad : número número -> número ; recibe la aceleración g y un tiempo t y retorna la velocidad ; (define (velocidad g tiempo) ...) (define (altura g tiempo) (* 0.5 (velocidad g tiempo))) (define (velocidad g tiempo ) (* g tiempo)) ; Ejemplo: Determinar la altura y la velocidad que alcanza un cohete cuya aceleración es ; 10 m/s^2 en 300 segundos. (altura 10 300) (velocidad 10 300)
- Ejercicio 3.3.5. Dessarrolla el programa altura, que determina la altura que
- alcanza un cohete en cierto tiempo. Si el cohete acelera a una constante g,
- este alcanza una velocidad g·t en unidades de tiempo t y una altura de 1/2·v·t
- donde v es la velocidad en el tiempo t.
- Contrato:
- altura: número número -> número
- recibe la aceleración g y un tiempo t, retorna la altura
- velocidad: número número -> número
- recibe la aceleración g y un tiempo t, retorna la velocidad
def altura (g,tiempo):
return (0.5*velocidad(g,tiempo))
def velocidad (g,tiempo):
return (g*tiempo)
- Ejemplo: Determinar la altura y la velocidad que alcanza un cohete cuya aceleración
- es de 10 m/s^2 en 300 segundos.
print altura (10,300) print velocidad (10,300)
- Respuesta esperada: altura = 1500 , velocidad = 3000
ejercicio 3.3.6
editar;Ejercicio 3.3.6. ;Renombre el programa fahrenheit->celsius del ejercicio 2.2.1. el programa consume una temperatura medida en fahrenheit y ;produce el equivalente en celsius. Desarrollar el programa celsius -> fahrenheit, el cual consume una temperatura medida en ;celsius y produce el equivalente en fahrenheit. ;CONTRATO: celsius-fahrenheit : numero->numero ;PROPOSITO: convierte una temperatura medida en celsius y produce su equivalente en fahrenheit. ;EJEMPLO: ( celsius-fahrenheit -2 ) debe producir 28.4 (define ( celsius-fahrenheit t) (+ (*( / 9 5 ) t ) 32 )) ( celsius-fahrenheit -2 )
- ejercicio 3.3.6
- renombre el programa fahrenheit->celsius del ejercicio 2.2.1 . el programa
- consume una temperatura medida en fahrenheit y produce el equivalente en
- celsius. desarrollar el programa celsius->fahrenheit, el cual consume una
- temperatura medida en celsius y produce el equivalente en fahrenheit.
- contrato: celsius_fahrenheit : numero->numero
- proposito: convierte una temperatura medida el celsius y produce su
- equivalente en fahrenheit.
- ejemplo: celsius-fahrenheit ( -2 ): debe producir 28.4
def celsius_fahrenheit(t):
return ((9/5.0)* t ) + 32
print celsius_fahrenheit(-2)
- el resultado esperado es 28.4