Funciones Scheme

Páginas: 6 (1326 palabras) Publicado: 28 de noviembre de 2012
Ejercicios Scheme

Para cada función escriba su contrato, descripción, ejemplos y los tests necesarios, antes de su implementación.

1.

Para soltar la mano

1. Represente la siguiente expresión en Scheme:

5+4+(2−(3−(6+ 4 )))
5
3(6−2)(2−7)

2. Defina una función que tome como argumento tres números y retorne la
suma de los cuadrados de los dos números mayores
3. El siguienteprograma pretende sumar el valor de a, con el valor absoluto
de b.¿Es correcto el programa? Argumente.
(define (a-suma-abs-b a b)
((if (> b 0) + -) a b))
4. Implemente la función factorial que calcula el factorial de un entero no
negativo n.
5. Implemente la función fibs que calcula el k-ésimo número de Fibonacci.
6. Implemente la función my-expt que recibe dos enteros como argumento,
el segundosiempre no negativo, y calcula el primero a la potencia del
segundo.1
7. Implemente el algoritmo de Euclides para obtener el máximo común divisor entre dos enteros positivos
8. Implemente una función que determina si un entero positivo dado es o no
primo. Retorne #t en el caso afirmativo, y #f en otro caso.2
9. Implemente la función suma-cuadrados que calcule la suma del cuadrado
de losprimeros k naturales
10. Implemente la función suma-cos que calcule la suma del coseno de los
primeros k naturales
1 Scheme

trae incorporada la función expt
función o expresión que retorna #t o #f es llamada predicado. Cualquier valor distinto
de #f es considerado como verdadero. Una convención sintáctica de Scheme es finalizar el
nombre de un predicado con el símbolo ?. Por ejemplo primo?,null?, empty?
2 Una

1

11. Implemente la función suma-abs que sea una abstracción del proceso de
sumar, y reimplemente suma-cuadrados y suma-cos
12. Refine la abstracción de suma-abs para que permita calcular una suma
sobre un intervalo arbitrario de enteros positivos, luego redefina sumaabs, suma-cuadrados y suma-cos utilizando esta nueva abstracción
13. Refine la abstracción del ejercicio12, de manera de que el incremento no
sea siempre unitario. Por ejemplo, para sumar sobre todos los números pares , hasta cierta cota superior, se iniciaría el intervalo en 2 y el incremento
sería 2
14. Implemente la función Celcius->Farenheit que convierte de grados Celsius
a Farenheit
15. Implemente la función Dolar->Peso que convierte de dólares a pesos.
16. Implemente la funciónEuro->Peso un conversor de euros a pesos.
17. Implemente una abstracción para la conversión de unidades y reimplemente las funciones de los ejercicios 14, 15 y 16 utilizando dicha abstracción.

2.

Listas

1. Implemente la función my-list-ref que retorne el k-ésimo elemento de una
lista. ¿Qué debería pasar si se pide un elemento mayor al largo de la lista?3
2. Implemente la función my-reverse quedada una lista, construya una con
los elementos en orden inverso4
3. Implemente la función my-take que dada una lista y un entero n, retorne
una lista con los primeros n elementos de la lista original5
4. Implemente la función my-drop que dada una lista y un entero n, retorne una lista con todos los elementos, excepto los primeros n de la lista
original6
5. Implemente la función rango quedados dos enteros, retorne la sublista
que contiene los elementos correspondientes al intervalo dado por estos
enteros (Hint: puede usar my-take y my-drop para esto)
6. Implemente la función my-append, que dadas dos listas, retorne una lista
con la concatenación de los elementos de estas listas7
3 Corresponde

a
a
5 Corresponde a
6 Corresponde a
7 Corresponde a
4 Corresponde

la
lala
la
la

función
función
función
función
función

list-ref de Scheme
reverse de Scheme
take de Scheme
drop de Scheme
append de Scheme

2

7. Implemente la función list-sub que, dada una lista de números, retorne la
resta sucesiva de sus elementos. Ej.: (list-sub ’(1 2 3 4) ) debe evaluarse
como -8
8. Implemente la función list-add que, dada una lista de números, retorne la...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Scheme
  • Xml-schema
  • comandos scheme
  • Arboles Scheme
  • BEACON SCHEME
  • Pyramid schemes
  • Dr Scheme
  • Scheme

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS