Práctica 1 de la Asignatura Programación y Estructuras de Datos Avanzadas Versión 1.1

Documentos relacionados
Práctica de la Asignatura Programación III Versión 1.0

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES TRABAJO DE PRÁCTICAS. Convocatoria de junio de 2013

PRACTICUM II CUARTO CURSO DE GRADO DE EDUCACIÓN INFANTIL Y DE EDUCACIÓN PRIMARIA CURSO

FUNDAMENTOS DE INFORMÁTICA (INGENIERÍA MECÁNICA / TECNOLOGÍA INDUSTRIAL)

Guía Docente Modalidad Presencial. Programación Estructurada I. Curso 2016/17. Grado en Ingeniería de. Sistemas de Información

Práctica 3. Paso de parámetros entre subrutinas. 3. Consideraciones sobre el paso de parámetros

Programa de Asignatura Programación Visual I

Escuela de Ingeniería en Informática Empresarial SYLLABUS

TUTORÍAS DE MODALIDAD SEMIPRESENCIAL (ESPAD)

Tema 2 Introducción a la Programación en C.

1. DATOS INFORMATIVOS:

ANX-PR/CL/ GUÍA DE APRENDIZAJE. ASIGNATURA Expresion grafica. CURSO ACADÉMICO - SEMESTRE Segundo semestre

GUÍA DOCENTE Fundamentos de Computadores

Algoritmos y solución de problemas. Fundamentos de Programación Otoño 2008 Mtro. Luis Eduardo Pérez Bernal

PROCEDIMIENTOS PARA EL REGISTRO DE NOTAS. Mg. Andrés Epifanía Huerta

SISTEMAS OPERATIVOS MONOPUESTO 1. CONTENIDOS MÍNIMOS PARA LA EVALUACIÓN POSITIVA

ANX-PR/CL/ GUÍA DE APRENDIZAJE. ASIGNATURA Concurrencia. CURSO ACADÉMICO - SEMESTRE Segundo semestre

Guía Docente Modalidad Presencial. Sistemas Operativos II. Curso 2015/16. Grado en Ingeniería de. Sistemas de Información

REGLAMENTO DE PRÁCTICA PROFESIONAL

1 CONTENIDOS TEMA 1. LOS TEXTOS PERIODÍSTICOS LENGUA Y LITERATURA 2º BACHILLERATO PROGRAMACIÓN CURSO I. CONTENIDOS LINGÜÍSTICOS

PLANIFICACIÓN DE LA MATRÍCULA EN LA UNED

PROCESOS PSICOLÓGICOS BÁSICOS

Manual de Publicación y Gestión de Ofertas

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

Matrices Invertibles y Elementos de Álgebra Matricial

TRABAJOS FIN DE GRADO MAGISTERIO GRADO DE INFANTIL Y PRIMARIA. Universidad de Alcalá

DESCRIPCIÓN ESPECÍFICA NÚCLEO: COMERCIO Y SERVICIOS SUBSECTOR: INFORMÁTICA

Recuperación Pedagógica Normas y procedimientos 2011

PROCESO DE DEFINICIÓN DEL PERFIL DE INGRESO Y CAPTACIÓN DE ESTUDIANTES

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo

UNIVERSIDAD CATÓLICA SANTA MARÍA LA ANTIGUA Reglamento de Práctica Profesional Supervisada

BASES DE LA CONVOCATORIA

GUÍA PARA PRESENTACIÓN DEL EXAMEN DE CANDIDATURA. Doctorado en Ciencias de la Electrónica

Diseño de experimentos

REGLAMENTO PRÁCTICAS EN EMPRESAS FACULTAD DE CIENCIAS

FACULTAD DE CIENCIAS JURÍDICAS Y ECONÓMICAS

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.

TUTORIAL PARA ALUMNOS

Grado en Diseño de Interiores Curso 2016/2017. IDI108 Fundamentos de informática

LA FORMACIÓN Y EL DESARROLLO PROFESIONAL DEL EDUCADOR SOCIAL

Guía del estudiante: Normativa académica

BACHILLERATO A DISTANCIA. Ciencias de la Tierra y Medio Ambiente 2º Bachillerato Z2B

PROCESO DE ADMISIÓN Y ESCOLARIZACIÓN EN LOS CENTROS QUE IMPARTEN PRIMER CICLO DE EDUCACIÓN INFANTIL SOSTENIDOS CON FONDOS PÚBLICOS

LEGALIZACIÓN LIBROS CONTABLES

(Aprobado en Junta de centro el día 2 de Mayo de 2012).

TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL

Nombre de la asignatura: Programación Básica. Créditos: Objetivo de aprendizaje

GUÍA DOCENTE 2016/2017. Introducción a los Sistemas Operativos Grado en INGENIERÍA INFORMÁTICA 1º curso. Modalidad Presencial

IO - Introducción a los Ordenadores

EL SISTEMA DE EVALUACIÓN CONTINUA DE LA CEU-UCH

Pontificia Universidad Católica del Ecuador

REGLAMENTO DIPLOMADO EN SEGURIDAD PRIVADA INTEGRAL

Observaciones. Lugar y fecha de elaboración o revisión. Participantes 1.- DATOS DE LA ASIGNATURA. Nombre de la asignatura:

DIRECCIÓN FINANCIERA

Guía Docente Modalidad Presencial. Estructuras de Datos. Curso 2015/16. Grado en Ingeniería de. Sistemas de Información

PROGRAMA DE CURSO. Horas Docencia Horas de Trabajo Horas de Cátedra Docentes. Personal Resultados de Aprendizaje

PROGRAMACIÓN DE ARMONÍA ENSEÑANZAS PROFESIONALES DEPARTAMENTO DE COMPOSICIÓN

ANÁLISIS Y DISEÑO DE SISTEMAS

UNIDAD 7: MATRICES Y DETERMINANTES

Norma Técnica de Administración por Procesos y Prestación de Servicios. Registro Oficial Nro. 739

Elaboración de documentos Web mediante Lenguaje de Marcas

Universitat de les Illes Balears Guía docente

3DAJ JUEGOS Y ACTIVIDADES FÍSICAS RECREATIVAS PARA ANIMACIÓN

UNIVERSIDAD CENTROAMERICANA VICERRECTORIA ACADEMICA SYLLABUS

CONVOCATORIA DE SEMINARIOS

2007/ PROGRAMACIÓN. Tipo: TRO Curso: 1 Semestre: AB CREDITOS Totales TA TS AT AP PA OBJETIVOS. 1.-Introducción.

Estructuras Administrativas

Universidad de Guadalajara Centro universitario de los Altos Licenciatura en

TEMA 1 CONJUNTOS NUMÉRICOS

Programación I. Carrera: ECM Participantes Participantes de las academias de ingeniería electrónica de los Institutos Tecnológicos.

"#$%& Normativa General

PROCESO DE MATRICULACIÓN EN LA ESCUELA SUPERIOR DE ARTE DRAMÁTICO DE CASTILLA Y LEÓN.-

Servicio de Informática Vicerrectorado de Tecnologías de la Información y la Comunicación

Grado en Ingeniería del Automóvil Curso 2016/2017. IME111 Cálculo de estructuras

Problemática con la actualización de Java 7 update 45

Facultad de Ciencias Experimentales Universidad de Almería PRÁCTICA 1

CONTENIDO 1 Diagrama de flujo 2 Pseudocodigo 3 Diagrama estructurado (nassi-schneiderman)

Universidad Católica de Santiago del Estero Facultad de Matemática Aplicada Carrera de Ingeniería en Electrónica

GEOGRAFÍA E HISTORIA 3º ESO LOMCE PRUEBA DE SEPTIEMBRE

Guía docente 2012/2013

PROGRAMA DE LABORATORIO SECCIÓN: ÁREA A LA QUE PERTENECE: POS-REQUISITO: AUXILIAR:

PROGRAMACIÓN CON PHP Y MYSQL. 40 horas 60 días

: Algorítmica y Estructura de Datos I

ANEXO 3. GUÍA DE ACTIVIDADES DE UNA ASIGNATURA DE EXPERIMENTACIÓN EN INGENIERÍA QUÍMICA

CONCURSO DE TRABAJOS ACADÉMICOS

COOPERACIÓN AL DESARROLLO (GRADO EN TRABAJO SOCIAL)

TEMA II: SISTEMAS DE NUMERACIÓN

Créditos: 6 Horas Presenciales del estudiante: 45 Horas No Presenciales del estudiante: 105 Total Horas: 150 UTILIZACIÓN DE LA PLATAFORMA VIRTUAL:

LAS AMÉRICAS. Programación del Departamento de Ciencias aturales /5 PROGRAMACIÓN DE BIOLOGÍA Y GEOLOGÍA 1º DE BACHILLERATO

DES: Programa(s) Educativo(s): Tipo de materia: Clave de la materia: Semestre: Área en plan de estudios:

FACULTAD DE HUMANIDADES

GUÍA DOCENTE DE ESTADÍSTICA EMPRESARIAL I

Marco normativo del sistema de reconocimiento y transferencia de créditos

C O N V O C A T O R I A

CURSO DE MONITOR DE RUGBY NIVEL 1

GUÍA DIDÁCTICA DE APRENDIZAJE ACCESS 2010 NIVEL I

La nueva selectividad

GUÍA DOCENTE DE TRANSPORTES TURISTICOS

FUNDAMENTOS DE ROBÓTICA

Transcripción:

Práctica 1 de la Asignatura Programación y Estructuras de Datos Avanzadas Versión 1.1 Escuela Técnica Superior de Ingeniería Informática UNED Curso 2016-2017

2

1.- ENUNCIADO DE LA PRÁCTICA: Multiplicación de grandes números La multiplicación de grandes números está limitada por el tamaño de representación de los valores en los diversos lenguajes de programación, por lo que en el caso de exceder el tamaño máximo hay que buscar otras técnicas. La práctica plantea la realización de un algoritmo que multiplique enteros más allá del tamaño de los tipos enteros de java, y que lo haga mediante un algoritmo eficiente. 2.- REALIZACIÓN DE LA PRÁCTICA La práctica consiste en la realización de un programa que implemente la multiplicación indicada para dos valores enteros. Constará de una memoria y de un programa Java original que resuelva el problema aplicando el esquema de programación Divide y Vencerás. 2.1.- Diseño del algoritmo Vamos a dar algunas ideas para llevar a cabo el análisis del problema. Dos valores a y b de tamaño n, pueden multiplicarse dividiendo en dos mitades de tamaño n/2. Por ejemplo, 3221 * 7842 = (32 10 2 + 21) * (78 10 2 + 42). Y en general: ab = (a L 10 n/2 + a R ) (b L 10 n/2 + b R ) Lo que resulta en la expresión siguiente: a L b L 10 n + a L b R 10 n/2 + a R b L 10 n/2 + a R b R = a L b L 10 n + (a L b R + a R b L ) 10 n/2 + a R b R [1] Lo que resulta en que dos números de tamaño n pueden multiplicarse mediante 4 multiplicaciones de tamaño n/2. Los números tienen el mismo tamaño, y si no se añadirán tantos ceros a la izquierda como sean necesarios. Sin embargo, esta solución puede mejorarse. Teniendo en cuenta que si desarrollamos (a L + a R )(b L + b R ) podemos despejar: a L b R + a R b L = (a L + a R )(b L + b R ) - a L b L - a R b R lo que implica que podemos calcular la parte izquierda de la igualdad anterior únicamente con una multiplicación en lugar de dos, y la expresión [1] pasa a poder calcularse con 3 en lugar de 4. 2.2.- Argumentos y parámetros La práctica se invoca usando la siguiente sintaxis: 3

java multiplica [-t][-h] [fichero_entrada] [fichero_salida] o bien: java jar multiplica.jar [-t] [-h] [fichero_entrada] [fichero_salida] Los argumentos son los siguientes: -t: traza cada paso de manera que se describa la descomposición en sub-numeros -h: muestra una ayuda y la sintaxis del comando. Por ejemplo: $ Java multiplica -h <ENTER> SINTAXIS: multiplica [-t][-h] [fichero_entrada] [fichero_salida] -t Traza -h Muestra esta ayuda fichero_salida Nombre del fichero de salida Si no se proporciona el argumento correspondiente al fichero de salida el programa usará la salida estándar. 2.3- Datos de entrada Serán dos valores separados por uno o varios espacios o saltos de línea: Por ejemplo: 47284745776746161618393034957564535242627373737362728273673 82726364784585746383647437 13142635242626253673748586970695656453524123131425364758696 968574634535423535475869457362618191726363727252424253738 2.3- Datos de salida La salida será resultado de multiplicar los números anteriores. 62144616628408701352907532294392454200678186409076582569248 09191742803405565723970015482224464694493220608738365047219 99088084296086714532806232945045969203330300876358543436360 11349681635531221369506 4

2.4.- Implementación del algoritmo El programa se desarrollará en Java siguiendo un diseño orientado a objetos. Los detalles del entorno de desarrollo recomendado se encuentran en la guía de la asignatura. Todos estos requisitos que se mencionan a continuación son obligatorios para aprobar la práctica. 3.- ENTREGA DE LA PRÁCTICA La práctica se entrega al Tutor. La entrega de la práctica consta de los siguientes elementos: Código fuente adecuadamente documentado y libre de errores de compilación. Breve memoria con la siguiente información: o Datos de la asignatura y del alumno: Nombre y código de la asignatura Título de la práctica Nombre y Apellidos NIF Centro Asociado o Respuestas a los siguientes apartados: 1. Describa el esquema algorítmico utilizado y como se aplica al problema. 2. Analice el coste computacional y espacial del algoritmo teniendo en cuenta el coste de realizar la optimización indicada en el enunciado (pasar de 4 a 3 multiplicaciones) 3. Exponga alternativas al esquema utilizado si las hay, y compare su coste con el de la solución realizada. Los detalles sobre evaluación pueden encontrarse en la guía de la asignatura. 1. La asistencia a las sesiones de prácticas es obligatoria sin excepciones. 2. El calendario y procedimiento para asistir a las sesiones de prácticas está publicado en su Centro Asociado. 3. El plazo de entrega de la documentación y de la práctica lo establece el Tutor de prácticas de cada Centro Asociado. 4. El Tutor califica la práctica, informa al alumno y en su caso la revisa de acuerdo con los horarios y procedimiento que establezca el Centro Asociado. 5. La Sede Central no informa de las calificaciones de las prácticas, lo hace el Tutor o el Centro Asociado. 6. Todos los alumnos deberán registrarse a través del Curso Virtual (acceso desde Alf) con el Tutor/a con el que hayan asistido a las sesiones presenciales obligatorias a fin de que su práctica pueda ser calificada. 7. No se recogerá documentación alguna de alumnos que no hayan asistido a las sesiones obligatorias siguiendo las instrucciones del Tutor. 5

8. La práctica se debe aprobar en la misma o anterior convocatoria para que se pueda calificar la asignatura. En caso contrario la calificación será de suspenso. 9. La práctica se entregará en forma de un fichero ZIP conteniendo la memoria y el código tanto en el entorno Alf como al Tutor. La falta de cualquiera de ellas será motivo suficiente para quedar excluida de la convocatoria. El alumno debe asegurarse de que no se da ninguna de las siguientes circunstancias, ya que implican una calificación de suspenso: Código: El código no compila, no está desarrollado en Java, no se corresponde con el pseudocódigo recogido en la documentación, no es original, está copiado de la red, academia, compañero, etc., o no sigue un diseño orientado a objetos. Ejecutable: El ejecutable no termina, se queda sin memoria con ejemplares pequeños o aborta sin justificación. El ejecutable no lee los ficheros previstos en el formato adecuado. No trata los argumentos o no se ajusta a las especificaciones. TUTORES 1. La práctica se califica mediante un entorno web accesible desde los Cursos Virtuales. 2. Los tutores se podrán dar de alta en la aplicación de entrega de notas de la práctica, sin necesidad de ponerse en contacto con el equipo docente. En el Foro de tutores recibirán las instrucciones pertinentes. 3. Los alumnos se dan de alta en la aplicación de corrección y calificación de prácticas accesible desde Alf de acuerdo con las indicaciones del Tutor. Aquel alumno que no se dé de alta no aparecerá en la lista de presentados a la misma y no constará su nota en el entorno de calificación y revisiones. **** La práctica debe realizarse de forma individual y se entregará al TUTOR en las fechas que fije cada Centro Asociado. **** El Centro Asociado publicará las notas de las prácticas. El equipo docente NO INFORMARÁ DE LAS NOTAS DE PRÁCTICAS, debiendo el Alumno dirigirse al Centro Asociado para conocerlas. 6

ANEXO I Alumnos sin TUTOR No hay sesiones de prácticas para alumnos sin Tutor, ya que no es posible según la normativa de la UNED matricularse en aquellos Centros que no disponen de Tutor de esta asignatura, salvo los alumnos estudiando en el EXTRANJERO, que se deberán poner en contacto con el profesor tutor que se indicará en los foros. ANEXO II (Versiones) 1.0 Enunciado Original 1.1 Corrección de la última fórmula de la sesión 2.1 7