Usuario:Rodrigo:ALGORITMICA

De Wikilibros, la colección de libros de texto de contenido libre.

EN ESTA PAGINA ENCONTRAN ALGO RELACIONADO CON EL TEMA DE "PROGRAMACION" EN DRPYTHON Y DRSCHEME. EN ESTA PAGINA ENCONTRARAN ALGO RELACIONADO CON LA PROGRAMACION EN DRPYTHON Y DRSCHEME.


RECETA DE DISEÑO[editar]

A) CONTRATO: NOMBRE DE LA FUNCION Y TIPOS DE VARIABLE.

B) PROPOSITO: QUÉ HACE LA FUNCION.

C) DEFINICION: CODIGO DE LA FUNCION.

D) PRUEBA: SE INVOCA LA FUNCION Y SE INDICA CUAL ES EL RESULTADO EMPLEADO. ÉSTE DEBE SER EQUIVALENTE AL RESULTADO DADO EN OTRO MEDIO.

EJEMPLO EN PYTHON:

RECETA DE DISEÑO: ÁREA LATERAL DE UN CILINDRO:

#CONTRATO: ÁREA_LATERAL. VARIABLES: RADIO R, ALTURA H.
#PROPÓSITO: HALLAR EL ÁREA LATERAL DE UN CILINDRO RECTO DE RADIO R Y ALTURA H.
#Definición:
import math
def area_lateral(r , h):
    return(2 * math.pi * r * h)
#EJEMPLO:
AREA_LATERAL(3 , 2) 
PRINT AREA_CIRCULAR
#PRUEBA: EL RESULTADO DEBE SER 37.699 PROBADO EN CALCULADORA.

EJERCICIOS DE LA LECTURA: HOW TO DESIGN PROGRAMS[editar]

EN DR SCHEME[editar]

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 (ángulo en radianes). Ejemplo:

(sin (/ pi 2))

; Determinar el máximo de dos números (max num1 num2). Ejemplo:

(max 1 6)

EJERCICIO 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)

EJERCICIO 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: 

(Fahrenheit->Celsius 41)

EJERCICIO 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 dolar)

(/ (* dolar 3313.42) 2682.34))

;Ejemplo: 

(dolar->euro 6)

EJERCICIO 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))

;Ejemplo: 

(area-triangulo 5 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))

;Ejemplo: 

(convert3 1 2 3)

EJERCICIO 2.7[editar]

;Evalúe las siguientes expresiones  , , ,  para n=2, n=5 y n=9

(define (f n)

(+ (/ n 3) 2))

;Ejemplo: 

(f 2)

(f 5)

(f 9)


(define (g n)

(+ (* n n) 10))

;Ejemplo: 

(g 2)

(g 5)

(g 9)


(define (h n)

(+ (* (/ 1 2) (* n n)) 20))

;Ejemplo: 

(h 2)

(h 5)

(h 9)


(define (b n)

(- 2 (/ 1 n)))

;Ejemplo: 

(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))

(define (pago-neto horas)

(* horas 12))

;Ejemplo: 

(impuesto 9)

(pago-neto 15)

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)))

;Ejemplo: 

(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))))

;Ejemplo: 

(ganancia-total 9)

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 siguiente 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)

EN PYTHON[editar]

EJERCICIO 2.1[editar]

#Descubra si DrPython tiene operaciones para sacar raiz de un numero y para computar el seno
 de un angulo.
#Raíz de un número (math.sqrt(número)). Ejemplo:
import math
math.sqrt(25)
#Seno de un ángulo (ángulo en radianes). Ejemplo:
import math
math.sin(math.pi / 2)

EJERCICIO 2.2[editar]

#Evaluar las raíces de 4, 2 y -1. Calcular la tangente de un ángulo.
# Raíces:
import math
math.sqrt(4)
math.sqrt(2)
math.sqrt(-1)
#Tangente de un ángulo:
import math
math.tan(ángulo en radianes)
import math
math.tan(math.pi)

EJERCICIO 2.3[editar]

#Programa Fahrenheit->Celsius que consume una temperatura medida en Fahrenheit y produce el 
equivalente Celsius:
def Fahrenheit_A_Celsius (F):
    return((F-32)*(5.0/9.0))
#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(dolar):
    return(dolar*(3313.42/2682.34))
#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)
#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))
#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)
f(2)
f(5)
f(9)
def f(n):
    return ((n*n)+10)
f(2)
f(5)
f(9)
def f(n):
    return (((1/2)*n*n)+20)
f(2)
f(5)
f(9)
def f(n):
    return (2-(1/n))
f(2)
f(5)
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))
def pago (horas):
    return (12*horas)
#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
# 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ón total-ganancia, que recibe el número de asistentes y retorna
cuántos ingresos se producen.
def ganancia_total (asistentes):
    return ((5*asistentes)-(20+(0.5*asistentes)))
#Ejemplo: 
ganancia_total (120)



==EJERCICIOS CORREGIDOS==[editar]

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)