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

Documentos relacionados
Abstracción de Datos y

Ejercicios Tema 6. Funciones

FUNDAMENTOS DE PROGRAMACIÓN TALLER No. 1 Profesor: Alvaro Ospina Sanjuan

Opuesto de un número +3 + (-3) = (+5) = 0. N = 0,1, 2,3,4, Conjunto de los números naturales

1.- Para cada uno de los siguientes problemas escribir el diagrama de flujo y el pseudocódigo de un programa que lo resuelva:

Programación 1 - Práctica 0, recargada.

Árboles balanceados (AVL) Tablas de dispersión (Hash) Colas de prioridad (Heap)

Bases Matemáticas para la Educación Primaria. Guía de Estudio. Tema 3: Números racionales. Parte I: Fracciones y razones Números racionales

GUÍA BÁSICA DE SCHEME v.4

CENTRO UNIVERSITARIO MONTEJO A.C. SECUNDARIA Temario Matemáticas 1

Tipos algebraicos y abstractos. Algoritmos y Estructuras de Datos I. Tipos algebraicos

Tema 2: Introducción a Scheme. Sesión 4: Introducción a Scheme (2)

Algoritmos. Intro. Prof. Raquel Torres Peralta / Gerardo Sanchez S. Unison

Potencias y radicales. Introducción:

Enteros (Z):..., -3, -2, -1, 0, 1, 2, 3,... Números enteros (positivos o negativos), sin decimales. Incluye a los naturales.

A l g o r i t m o y E s t r u c t u r a d e D a t o s Ing. en Sistemas de Información - 1º año -

4.7 Operaciones sobre Objetos en Scheme

TEMA V SISTEMAS DE NUMERACIÓN

a) Si ch tiene el valor X y numero el valor 5, cuál sería el efecto de ejecutar cada una de las siguientes llamadas al procedimiento:

QUÉ ES UNA FUNCIÓN? ESTRUCTURA DE UNA FUNCIÓN. La sintaxis de cualquier función es:

ULADECH Escuela Profesional de Contabilidad

Cursada Segundo Cuatrimestre 2012 Guía de Trabajos Prácticos Nro. 1

Unidad didáctica 1. Operaciones básicas con números enteros

Utilización de Funciones en OpenOffice.org Calc

BOLETÍN 5: Algoritmos II

Curso de Estadística Básica

SISTEMAS NUMÉRICOS. Conocer los diferentes sistemas numéricos y su importancia en la informática y la computación

(1)Factores, Múltiplos y Divisores. (2) Números compuestos y primos

I.E.S Santo Domingo. Departamento Informática. Tema 1 Los Sistemas de Numeración. José Luis Mollinedo Jiménez

Programación I. Ingeniería Técnica Informática. Ejercicios de los Temas 4, 5, 6 y 7

Tecnólogo en Informática Paysandú - Uruguay

Llamamos potencia a todo producto de factores iguales. Por ejemplo: 3 4 =

Representación de datos y aritmética básica en sistemas digitales

Ingeniería en Computación

Se desea estudiar el comportamiento de una función a medida independiente x se aproxima a un valor específico.

Unidad II: Análisis semántico

2º. Representa en una recta numérica los números: (+4), (-3), (0), (+7), (-2), (+2) y luego escríbelos de forma ordenada.

MatemáticaDiscreta&Lógica 1

Representación de números enteros: el convenio exceso Z

Representación de datos y aritmética básica en sistemas digitales

Series numéricas y de potencias. 24 de Noviembre de 2014

Trabajo Práctico 5 Estructura Repetitiva

Especificación y uso de módulos en C++(II)

UNIDAD 12: ESTADISTICA. OBJETIVOS

APUNTES DOCENTES ASIGNATURA: ANALISIS NUMERICO ASIGNATURA: ANALISIS NUMERICO UNIDADES TECNOLÓGICAS DE SANTANDER

Tema 3.- Predicados y sentencias condicionales

Estructuras de Datos y de la Información Ingeniería Técnica en Informática de Gestión. Curso 2007/2008 Ejercicios del Tema 2

Estatutos de Control C# Estatutos de Decisión (Selección)

Programación-Tarea 14: Ocampo Venegas Josué

Programación Interactiva

TEMA 1 CONJUNTOS NUMÉRICOS

PRÁCTICA N 2 SISTEMAS DE NUMERACIÓN

Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera. Fundamentos de programación

Ecuaciones. Son igualdades algebraicas que se cumplen solo para algunos valores de la letra.

CAPÍTULO 3: PORCIONES Y NÚMEROS ENTEROS

Recursión. Capítulo 4

Tipos de Datos y Representaciones. Circuitos Digitales, 2º de Ingeniero de Telecomunicación. EITE ULPGC.

Cuestiones: Ejercicios 2: 1) Qué imprimen los siguientes bucles?

RADICACIÓN EN LOS REALES

5.2. Sistemas de codificación en binario

CONVERSIONES CONVERSIÓN DE BINARIO A: Binario a Octal: se agrupan de a 3 bits y luego se lee el número , B 635,15 O 6 3 5, 1 5 O

Tema I Testing Estructurado

8vo Grado Matemática. Raíces Numéricas y Radicales. Slide 1 / 178. Slide 2 / 178. Slide 3 / 178. Raíz Numérica y Radicales

Tema 1.- Los números reales

RECORDAR TIPOS DE DATOS

1.- Sistemas Numéricos 2.- Diferencia entre señal analógica y Digital 3.- Postulados básicos del Algebra de Boole

Cuando se enumeran todos los elementos que componen el conjunto. A = { 1, 2, 3, 4, 5 }

Organización de Computadoras. Clase 2

SISTEMAS DIGITALES. Margarita Pérez Castellanos

Instituto de Matemática. Agosto de ) Encuentre experimentalmente los siguientes valores de su calculadora:

PASAPALABRA BLOQUE NÚMEROS

Funciones de Búsqueda y Referencia con Microsoft Excel 2010

Traducir frases lingüísticas a expresiones

FICHAS REPASO 3º ESO. Para restar números enteros, se suma al minuendo el opuesto del sustraendo y después se aplican las reglas de la suma.

ESCUELA PREPARATORIA OFICIAL NO.16 GUIA DE ESTUDIO PARA EL EXAMEN ORAL DE PENSAMIENTO NUMÉRICO Y ALGEBRAICO I EJERCICIOS DE NUMEROS NATURALES

Programa de Acceso Inclusivo, Equidad y Permanencia PAIEP U. de Santiago. Corriente directa

NÚMEROS ENTEROS. Números naturales: sirven para contar, ordenar y comunicar información.

GUIA 2: Repaso sobre uso de C#. Funciones, métodos y arreglos.

TEMA 1. Números Reales. Teoría. Matemáticas

Unidad II. 2.1 Concepto de variable, función, dominio, condominio y recorrido de una función.

CAPÍTULO II SISTEMAS NUMÉRICOS. Este método de representar los números se llama sistema de numeración decimal, donde 10 es la base del sistema.

UNIDAD DIDÁCTICA #1 CONTENIDO

CURSO UNICO DE INGRESO 2010

GRAMATICAS LIBRES DEL CONTEXTO

EJERCICIOS RESUELTOS DE NÚMEROS REALES

UNIDAD DE APRENDIZAJE II

El número áureo,, utilizado por artistas de todas las épocas (Fidias, Leonardo da Vinci, Alberto Durero, Dalí,..) en las proporciones de sus obras.

TEMA 2. Números racionales. Teoría. Matemáticas

CRITERIOS EVALUACIÓN MATEMÁTICAS

CONTENIDOS MÍNIMOS del ÁREA DE MATEMÁTICAS

Inecuaciones Intervalo Intervalo Abierto Intervalo Cerrado

FUNCIONES INVERSAS

1. (F, +) es un grupo abeliano, denominado el grupo aditivo del campo.

Universidad Autónoma del Estado de México Facultad de Medicina

Tablas de una variable.

Retículos y Álgebras de Boole

Sistemas Numéricos Transversal de Programación Básica Proyecto Curricular de Ingeniería de Sistemas

COMPARACIÓN Y REPRESENTACIÓN DE DATOS

Capítulo 5. Los números reales y sus representaciones Pearson Education, Inc. Diapositiva 5-5-1

Lenguajes de Inteligencia Artificial Segundo curso. Primer cuatrimestre

Transcripción:

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 siguiente programa 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 segundo siempre 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 los primeros k naturales 1 Scheme trae incorporada la función expt 2 Una 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? 1

10. Implemente la función suma-cos que calcule la suma del coseno de los primeros k naturales 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 ejercicio 12, 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ón Euro->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 lista-fibs que retorne la lista de los primeros k números de Fibonacci. 3. Implemente la función my-reverse que dada una lista, construya una con los elementos en orden inverso 4 4. 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 original 5 5. 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 original 6 3 Corresponde a la función list-ref de Scheme 4 Corresponde a la función reverse de Scheme 5 Corresponde a la función take de Scheme 6 Corresponde a la función drop de Scheme 2

6. Implemente la función rango que dados 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) 7. Implemente la función my-append, que dadas dos listas, retorne una lista con la concatenación de los elementos de estas listas 7 8. 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 9. Implemente la función list-add que, dada una lista de números, retorne la suma sucesiva de sus elementos. Ej.: (list-add (1 2 3 4)) debe evaluarse como 10 10. Implemente la función list-mult que, dada una lista de números, retorne el producto de sus elementos. 11. Implemente la función my-fold que sea una abstracción de list-sub, list-add y list-mult, y reimplemente estas funciones utilizando my-fold 12. Implemente la función list-square que, dada una lista de números, retorne una lista con los cuadrados de cada elemento. Ej.: (list-square (1 2 3 4) debe evaluarse en (1 4 9 16) 13. Implemente la función list-halve que, dada una lista de números, retorne una lista con la mitad de cada element. Ej.: (list-halve (1.0 2.0 3.0 4.0)) debe evaluarse en (0.5 1.0 1.5 2.0) Qué resultado obtiene si el parámetro es (1 2 3 4) en vez de (1.0 2.0 3.0 4.0)? Puede explicar esto? 14. Implemente la función my-map, que sea una abstracción de list-square y list-halve. Luego reimplemente estas funciones utilizando my-map. 8 3 Funciones de Orden Superior 1. Implemente la función (define (detect list predicate) que retorna el primer elemento de la lista que cumple el predicado, o falso en otro caso. No debe recorrer toda la lista. 2. Implemente la función (define (filter list predicate) que retorna la sublista de elementos que cumple con el predicado, o la lista vacía en otro caso. 3. Implemente la función (define (reject list predicate) que retorna la lista de elementos que no cumplen el predicado. Es el opuesto de filter. 7 Corresponde a la función append de Scheme 8 Corresponde a la función map de Scheme 3

4. Implemente la función (define (all list predicate)) que retorna verdadero si todos los elementos de la lista cumplen el predicado, y falso en otro caso. 5. Implemente la función (define (memoize f)) que retorna una nueva función con el mismo comportamiento que f pero con un caché para los resultados. 6. Implemente la función (define (once f)) que retorna una nueva función que sólo puede ser llamada una vez. Invocaciones repetidas a la función modificada no tendrán efecto y simplemente retornarán el valor de la llamada original. 4 BNF 1. Una lista de elementos arbitrarios se define con la siguiente gramática BNF: list-of-any ::= () (<any>, list-of-any>. Implemente usando representación de listas y representación define-type la siguiente interfaz para manipulación de listas: (a) Crear una lista vacía. (b) Crear una lista indicando el primer elemento y el resto de la lista. (c) Obtener el primer elemento de la lista. (d) Obtener la lista resultante de remover el primer elemento de la lista. (e) Retornar #t si la lista sólo contiene números, y #f en otro caso. (f) Retornar #t si la lista sólo contiene símbolos, y #f en otro caso. (g) Retornar #t si cada elemento de la lista cumple con un predicado dado, y #f en otro caso. Reescriba las funciones de los dos puntos anteriores usando esta función. 2. Un árbol binario con valores numéricos puede representarse usando la siguiente gramática BNF: BinTree ::= <number> <number>, BinTree, BinTree. Implemente usando representación de listas y representación define-type las siguientes funciones para manipular árboles binarios. (a) (root-value t): retorna el valor de la raíz del árbol t. (b) (rightmost-value t): derecha en el árbol. retorna el valor del nodo que está más a la (c) (leftmost-value t): retorna el valor del nodo que está más a la izquierda en el árbol. (d) (contains? t v) : retorna #t si algún nodo del árbol t contiene el valor v, y #f en otro caso. 4

3. Se le ha encargado un software para el monitoreo del sistema de trenes 9. Un tren consiste en una locomotora en un extremo, seguida por al menos un coche (que no sea locomotora) y finalmente una locomotora en el otro extremo del tren. Existen diversos tipos de coches: comedor, equipaje y dormitorio (también se considera la locomotora como un tipo de coche). Para cada coche se debe conocer su capacidad total de pasajeros y su capacidad utilizada. Los coches comedor poseen además la cantidad de menus disponibles. Los coches dormitorio poseen la cantidad de camas disponibles. Los coches de equipaje poseen el peso total utilizado por el equipaje, y la locomotora el peso total del carbón utilizado. Defina una sintáxis BNF e implemente utilizando define-type un tipo de dato abstracto para la representación de trenes. Estas definiciones deben permitir sólo configuraciones válidas de trenes. Luego implemente las siguientes funciones: (a) Capacidad total de pasajeros. (b) Peso total del carbón. (c) Una función para saber cuántas personas quedarán sin cama para dormir la noche siguiente, asumiendo que en cada cama cabe sólo una persona. (d) Una función que determine la carga total promedio del tren, considerando como parámetro el peso promedio de un pasajero. 9 Ej. 3 de Tarea 1 Primavera 2010 5