Examen de prácticas de Programación 1
|
|
|
- Gregorio Martínez Córdoba
- hace 7 años
- Vistas:
Transcripción
1 Examen de prácticas de Programación 1 Escuela de Ingeniería y Arquitectura Departamento de Informática e Ingeniería de Sistemas 2 de septiembre de 2015 Tiempo para realizar el trabajo de programación propuesto: 90 minutos. Entrega del trabajo a través de la plataforma Moodle, a la que deberá subirse el fichero correspondiente al código fuente C++ con la función main que se solicita y todos aquellos ficheros que sean necesarios para poder compilar el mismo. Especificación del trabajo que debe realizarse Se pide un programa solicite al operador el nombre de un fichero de texto que contenga fechas a razón de una por línea en formato aaaammdd, donde aaaa es el año, mm es el número del mes y dd el día del mes. El programa deberá escribir las mismas fechas en la pantalla, pero en formato dd.mm.aaaa, utilizando números romanos y ordenadas cronológicamente. El programa también informará de cuántas fechas ha escrito en la pantalla. Por ejemplo, supongamos que el contenido de un fichero denominado fechas.txt fuese el siguiente:
2 En ese caso, la ejecución del programa solicitado cuando se introdujese el nombre del fichero anterior presentaría una interacción con el operador como la que sigue: Escriba el nombre del fichero con las fechas: fechas.txt XII.X.MCDXCII II.V.MDCCCVIII VI.XII.MCMLXXVIII XI.III.MMIV XIV.VI.MMVIII XIV.IX.MMVIII XIX.VI.MMXIV XXI.IX.MMXIV II.IX.MMXV 9 fechas en total, comprendidas en el intervalo [ ]. En esta prueba se valorarán los siguientes aspectos y con este orden de importancia: 1. Comportamiento del programa según las especificaciones de este enunciado. 2. Legibilidad del código. 3. Diseño algorítmico del código. 4. Reutilización al máximo del módulo romanos de la práctica 6, cuyos ficheros de interfaz y de implementación deben entregarse junto con el fichero que contenga el programa solicitado. Un programa que tenga errores de compilación o que, al ser ejecutado, no proporcione ningún resultado, será calificado con un cero. Se sugiere resolver el problema incrementalmente, añadiendo código que vaya cumpliendo con los requisitos gradualmente. 2
3 Solución #include <iostream> #include <fstream> #include <iomanip> #include "../../practica6/romanos/romanos.h" using namespace std; // Estimación del número máximo de fechas que habrá en el fichero const int MAX_FECHAS = 200; // Símbolo para separar elementos en una fecha const char SEPARADOR_FECHA =. ; * Pre: n >= 0 * Post: fechas[0..n-1] es una permutación de los datos iniciales de * fechas[0..n-1] y todos ellos están ordenados de forma que cada uno * de ellos indexado por un índice i en el intervalo [0, n - 2] es * anterior o igual cronológicamente al indexado por i + 1. void ordenar(int fechas[], int n) { // Ordenación de una tabla por el método de selección: // El orden cronológico de fechas coincide con el orden natural de enteros // con la codificación de fechas seleccionada for (int i = 0; i < n - 1; i++) { // Selección de la menor fecha de fechas[i..n-1] int imenor = i; for (int j = i + 1 ; j < n; j++) { // fechas[imenor] es la menor de fechas[i..j-1] if (fechas[j] < fechas[imenor]) { imenor = j; // fechas[imenor] la menor de fechas[i..j] // fechas[imenor] es la menor de fechas[i..n-1]: // permutación fechas[i] y fechas[imenor]. int aux = fechas[i]; fechas[i] = fechas[imenor]; fechas[imenor] = aux; // Las fechas de fechas[0..i-1] son las menores de la tabla 3
4 // y ya están ordenadas. * Pre: «fecha» representa una fecha válida en formato «aaaammdd», donde * «aaaa» es el año, «mm» es el número del mes y «dd» el día del mes. * Post: «dia» es el día del mes de la fecha representada por «fecha», * «mes» es el número del mes de la fecha representada por «fecha» y * «agno» es el año de la fecha representada por «fecha». void descomponerfecha(int fecha, int& dia, int& mes, int& agno) { dia = fecha % 100; mes = fecha / 100 % 100; agno = fecha / 10000; * Pre: «fecha» representa una fecha válida en formato «aaaammdd», donde * «aaaa» es el año, «mm» es el número del mes y «dd» el día del mes. * El año correspondiente a «fecha» está comprendido entre 1 y 3999, * ambos inclusive. * Post: Ha escrito en pantalla la fecha representada por el valor de «fecha» * en formato dd.mm.aaaa y utilizando números romanos. void escribirfecharomana(int fecha) { int dd, mm, aaaa; descomponerfecha(fecha, dd, mm, aaaa); En esta función de hace uso de otra función denominada * «convertiraromano», definida en el módulo «romanos» y que asigna a su * segundo argumento la secuencia de caracteres que definen un número * romano equivalente al valor del primer argumento. char dia[max_long_romano]; convertiraromano(dd, dia); char mes[max_long_romano]; convertiraromano(mm, mes); char agno[max_long_romano]; convertiraromano(aaaa, agno); cout << dia << SEPARADOR_FECHA << mes << SEPARADOR_FECHA << agno << endl; 4
5 * Pre: «fecha» representa una fecha válida en formato «aaaammdd», donde * «aaaa» es el año, «mm» es el número del mes y «dd» el día del mes. * Post: Ha escrito en pantalla la fecha representada por el valor de «fecha» * en formato dd.mm.aaaa, utilizando números arábigos y completando con * ceros a la izquierda cuando es necesario. void escribirfechadecimal(int fecha) { int dia, mes, agno; descomponerfecha(fecha, dia, mes, agno); cout << setfill( 0 ) << setw(2) << dia << SEPARADOR_FECHA << setw(2) << mes << SEPARADOR_FECHA << setw(4) << agno; * Pre: --- * Post: Ha solicitado al operador el nombre de un fichero de texto que * contuviera fechas a razón de una por línea en formato «aaaammdd», * donde «aaaa» es el año, «mm» es el número del mes y «dd» el día del * mes. A continuación, ha escrito las mismas fechas en la pantalla, * pero en formato \emph{dd.mm.aaaa, utilizando números romanos y * ordenadas cronológicamente. El programa también informará de cuántas * fechas ha escrito en la pantalla y del intervalo al que pertenecían. int main() { // Petición y lectura del nombre del fichero de texto de fechas. cout << "Escriba el nombre del fichero con las fechas: " << flush; char nombrefichero[256]; cin >> nombrefichero; cout << endl; // Apertura del fichero para su lectura y comprobación. ifstream f(nombrefichero); if (f.is_open()) { // Declaración de una tabla para almacenar las fechas leídas. int fechas[max_fechas]; // Intento de lectura de una primera fecha del fichero a la tabla. int cuenta = 0; 5
6 f >> fechas[cuenta]; while (!f.eof()) { // Intento de lectura de una siguiente fecha. cuenta++; f >> fechas[cuenta]; // Fin de la lectura de datos. Cierre del fichero. f.close(); // Ordenación cronológica de las fechas leídas. ordenar(fechas, cuenta); // Escritura en orden cronológico de las fechas leídas. for (int i = 0; i < cuenta; i++) { escribirfecharomana(fechas[i]); // Escritura del número total de fechas leídas y el intervalo al que // pertenecen. cout << endl; cout << cuenta << " fechas en total, comprendidas en el intervalo [ "; escribirfechadecimal(fechas[0]); cout << " - "; escribirfechadecimal(fechas[cuenta-1]); cout << " ]." << endl; // Finalización correcta del programa. return 0; else { // Finalización errónea del programa (no se pudo leer del fichero cuyo // nombre introdujo el operador). return -1; 6
Examen escrito de Programación 1
Examen escrito de Programación 1 Escuela de Ingeniería y Arquitectura Departamento de Informática e Ingeniería de Sistemas 7 de septiembre de 2017 Se debe disponer sobre la mesa en lugar visible un documento
Examen escrito de Programación 1
Examen escrito de Programación 1 Escuela de Ingeniería y Arquitectura Departamento de Informática e Ingeniería de Sistemas 6 de septiembre de 2016 Se debe disponer sobre la mesa en lugar visible un documento
Programación 1 Tema 5. Instrucciones simples y estructuradas
Programación 1 Tema 5 Instrucciones simples y estructuradas Índice Instrucciones simples Instrucciones estructuradas Instrucción ::= Instrucciones.
Programación 1 Tema 15. Trabajo con ficheros binarios
Programación 1 Tema 15 Trabajo con ficheros binarios Índice Ficheros binarios Diferencia con ficheros de texto Herramientas de C++ para trabajar con ficheros binarios Problemas básicos con ficheros binarios
Programación 1 Tema 7. Desarrollo modular y descendente de programas
Programación 1 Tema 7 Desarrollo modular y descendente de programas Índice Programas dirigidos por menú Diseño modular Módulos de biblioteca en C++ Programa dirigido por menú MENÚ DE OPERACIONES ===================
Examen escrito de Programación 1
Examen escrito de Programación 1 Escuela de Ingeniería y Arquitectura Departamento de Informática e Ingeniería de Sistemas 2 de septiembre de 2015 Se debe disponer sobre la mesa en lugar visible un documento
Programación 1 Tema 13. Entrada y salida de datos
Programación 1 Tema 13 Entrada y salida de datos Objetivos Interacción de un programa con su entorno (consola, sistema de ficheros) leyendo o escribiendo datos Fichero como secuencia persistente de datos
Programación 1. Tema I. Conceptos y elementos básicos de Programación. Lección 1. Problemas de tratamiento de información, algoritmos y programas
Programación 1 Tema I. Conceptos y elementos básicos de Programación Lección 1. Problemas de tratamiento de información, algoritmos y programas 1 Problemas, algoritmos y programas Problemas de tratamiento
Programación 1. Tema II. Diseño de programas elementales. Lección 7. Diseño modular y descendente de programas
Programación 1 Tema II. Diseño de programas elementales Lección 7. Diseño modular y descendente de programas 1 Objetivos de la lección : En esta lección se aprende: a dotar a un programa C++ de una estructura
Programación 1. Tema I. Conceptos y elementos básicos de Programación. Lección 2. Lenguaje de programación y ejecución de un programa
Programación 1 Tema I. Conceptos y elementos básicos de Programación Lección 2. Lenguaje de programación y ejecución de un programa 1 Léxico, sintaxis y semántica de un lenguaje #include #include
Examen de prácticas de Programación 1
Examen de prácticas de Programación 1 Escuela de Ingeniería y Arquitectura Departamento de Informática e Ingeniería de Sistemas 3 de septiembre de 2014 Tiempo para realizar el trabajo de programación propuesto:
Programación 1 Problemas del Composición condicional
Programación 1 Problemas del 6-10-2016 Composición condicional Un problema Programa que indique si un año es o no bisiesto Escriba un año: 2016 El año 2016 es bisiesto Escriba un año: 2017 El año 2017
PROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS GRADO EN INGENIERÍA INFORMÁTICA SEGUNDO CURSO DEPARTAMENTO DE INFORMÁTICA Y ANÁLISIS NUMÉRICO ESCUELA POLITÉCNICA SUPERIOR UNIVERSIDAD DE CÓRDOBA CURSO ACADÉMICO: 2011
Examen escrito de Programación 1. Jueves 5 de febrero de Problema 1 o (3.5 puntos)
Examen escrito de Programación 1. Jueves 5 de febrero de 2015 Se debe disponer de un documento de identificación con fotografía sobre la mesa. Se debe comenzar a resolver cada uno de los dos problemas
Programación 1 Problemas 3. Composición condicional
Programación 1 Problemas 3 Composición condicional Un problema Programa que indique si un año es o no bisiesto Escriba un año: 2016 El año 2016 es bisiesto Escriba un año: 2017 El año 2017 no es bisiesto
Programación 1 Tema 3. Información, datos, operaciones y expresiones
Programación 1 Tema 3 Información, datos, operaciones y expresiones Índice Datos y tipos de datos Datos primitivos en C++ Expresiones e instrucción de asignación Datos y tipos de datos Problema información
Programación 1. Tema II. Diseño de programas elementales. Lección 7. Diseño modular y descendente de programas
Programación 1 Tema II. Diseño de programas elementales Lección 7. Diseño modular y descendente de programas 1 Objetivos de la lección : Aprender qué es un diseño modular de un programa Aprender a diseñar
ALMACENAMIENTO PERSISTENTE DE DATOS
UNIVERSIDAD DE MÁLAGA Dpto. Lenguajes y CC. Computación E.T.S.I. Telecomunicación ALMACENAMIENTO PERSISTENTE DE DATOS Tema 1 Programación II Programación II 0 Tema 1: ALMACENAMIENTO PERSISTENTE DE DATOS
Fundamentos de la programación
Fundamentos de la programación 3E Grado en Ingeniería Informática Grado en Ingeniería del Software Grado en Ingeniería de Computadores Facultad de Informática Universidad Complutense Recorridos 404 Un
Cátedra I Informática Autor I Carlos Bartó
FCEFyN Departamento de Computación Informática Examen - 07-07-2008 Apellido y Nombres: Matrícula: Carrera: PROBLEMAS: 1) Especifique en el lenguaje C++ una función denominada calc_fecha() que tenga como
Fundamentos de la programación
Fundamentos de la programación 4A Grado en Ingeniería Informática Grado en Ingeniería del Software Grado en Ingeniería de Computadores Facultad de Informática Universidad Complutense Archivos como parámetros
Programación 1 Tema 3. Información, datos, operaciones y expresiones
Programación 1 Tema 3 Información, datos, operaciones y expresiones Índice Datos y tipos de datos Datos primitivos en C++ Expresiones e instrucción de asignación Datos y tipos de datos Problema información
Hoja de ejercicios del Tema 3
Facultad de Informática Universidad Complutense Fundamentos de la programación Curso 2013 2014 Hoja de ejercicios del Tema 3 1. Conversiones de tipos: Prueba el siguiente programa en tu compilador (copia
Hoja de ejercicios del Tema 3
Facultad de Informática Universidad Complutense Fundamentos de la programación Curso 2013 2014 Hoja de ejercicios del Tema 3 1. Escribe un programa que lea un número entero positivo del teclado y muestre
Entrada y salida de datos en C y C++
Universidad Nacional de Rosario Facultad de Ciencias Exactas, Ingeniería y Agrimensura Escuela de Ingeniería Electrónica Cátedra de Informática II Entrada y salida de datos en C y C++ Informática II Entrada/Salida
Funciones: Pasos por Referencia Recursividad
Funciones: Pasos por Referencia Recursividad Fundamentos de Programación Fundamentos de Programación I Parámetros por referencia Con la instrucción return sólo se puede devolver un valor calculado. A veces
Introducción a C++. Asignatura Estructuras de Datos Curso 2017/2018 ETSISI UPM
Introducción a C++. Asignatura Estructuras de Datos Curso 2017/2018 ETSISI UPM C vs. C++ C es un lenguaje procedural el elemento central del son las funciones. Cualquier función se puede comunicar con
Programación 1 Tema 1. Problemas de tratamiento de información, algoritmos y programas
Programación 1 Tema 1 Problemas de tratamiento de información, algoritmos y programas Problemas, algoritmos y programas Problemas de tratamiento de información Objetivo: resolución automática del problema
Examen de Programación 1. Viernes 31/enero/2014. Problema 1 o (2.5 puntos) Disponer un documento de identificación con fotografía sobre la mesa.
Examen de Programación 1. Viernes 31/enero/2014 Disponer un documento de identificación con fotografía sobre la mesa. Comenzar a resolver cada problema del examen en una hoja de papel diferente. Escribir
Programación 2. Lección 4. Metodología de diseño de algoritmos recursivos
Programación 2 Lección 4. Metodología de diseño de algoritmos recursivos 1 1. Diseño iterativo vs diseño recursivo 2. Cómo diseñar algoritmos recursivos 3. Diseño recursivo de funciones: a) Función que
En el siguiente ejemplo se declara un registro y luego variables de ese tipo de registro:
LABORATORIO #6 (Parte I y II) REGISTROS Y ARCHIVOS Parte I: Registros Un registro es una estructura de datos formado por un conjunto de elementos llamados campos, no necesariamente del mismo tipo y que
SESIÓN DE EJERCICIOS E1
SESIÓN DE EJERCICIOS E1 Primera parte: ejercicios test (soluciones al final) A resolver antes de comenzar la sesión en el aula Ejercicio 1 Qué definición de constantes es la correcta en lenguaje C? a)
Ficheros. Archivo, o fichero: Características:
Ficheros Archivo, o fichero: Es una estructura de datos en memoria externa, cuyo tiempo de vida no está ligado a la ejecución del programa que lo crea o lo maneja. Un fichero existe desde que un programa
Guía de estilo y buenas prácticas de programación en C/C++
Guía de estilo y buenas prácticas de programación en C/C++ Introducción A la hora de escribir código fuente en un determinado lenguaje de programación es aconsejable seguir unas guías de estilo. Esto te
Unidad 2. La lógica de programación. Tema 4. Arreglos y estructuras de repetición
Unidad 2. La lógica de programación Tema 4. Arreglos y estructuras de repetición Arreglos y estructuras de repetición Contenido: Introducción Arreglos Vectores Matrices De más de 2 dimensiones Estructura
Prof. Dr.Paul Bustamante
Prácticas de C++ Practica Nº 14 Informática II Fundamentos de Programación Prof. Dr.Paul Bustamante Practica Nº 14 Programación en C++ Pág. 2 ÍNDICE ÍNDICE... 2 1. Introducción... 2 1.1 Ejercicio 1: Grabando
Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 2
Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 2 Contenidos: 1. Definición de clases 2. Implementación de los métodos 3. Constructores y destructores 4. Objetos
Unidad 2. La lógica de programación. Tema 4. Estructuras de decisión
Unidad 2. La lógica de programación Tema 4. Estructuras de decisión Contenido: Estructuras de decisión simple y doble Conceptos básicos Tipos: Simple Doble Múltiple varias condiciones una única condición
Programación 1 Tema 2. Lenguaje de programación y ejecución de un programa
Programación 1 Tema 2 Lenguaje de programación y ejecución de un programa Índice Lenguaje de programación Símbolos Sintaxis Semántica Computador Ejecución de un programa Sistema operativo, entorno de programación
Tema 5 Archivos o Ficheros
Tema 5 Archivos o Ficheros Informática Grado en Física Universitat de València [email protected] [email protected] 1 Introducción: Concepto de Fichero Tipos de acceso a ficheros Tipos de ficheros:
Examen de Fundamentos de la Programación (Modelo 1)
Examen de Fundamentos de la Programación (Modelo 1) 27 de noviembre de 2007 1. Qué escribe el siguiente programa si se teclea 5? int num, resultado; for (resultado=0; num; resultado++) num -= 2; printf
#include <fstream.h> ifstream descriptor ( nombre.extensión ); ofstream descriptor ( nombre.extensión );
ARCHIVOS EN C++ = FLUJOS DE ENTRADA/SALIDA. Ejemplo: cin y cout Tipos de ficheros: DE TEXTO y BINARIOS Biblioteca de gestión de ficheros (a incluir en los programas) #include Apertura de ficheros
UTN FRBA Algoritmos y Estructura de Datos Examen Final 13/02/2015. Apellido y nombre: Legajo: Cursó con Prof:
Sistema para el Seguimiento de Jugadores de Fútbol Temas evaluados: Resolución de problemas, estructuras de datos, archivos, listas, y lenguaje de programación. Contexto Usted es parte de un equipo que
Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero.
Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero. Uso de Ficheros Todas las estructuras de datos vistas hasta ahora utilizan la
Introducción a c++ Introducción a la programación EIS Informática III
Introducción a c++ Un lenguaje de programación es un lenguaje formal diseñado para realizar procesos que pueden ser llevados a cabo por máquinas como las computadoras. Pueden usarse para crear programas
Unidad 2 Recursividad. 2.1 Definición 2.2 Procedimientos Recursivos 2.3 Ejemplos de Casos Recursivos
Unidad 2 Recursividad 2.1 Definición 2.2 Procedimientos Recursivos 2.3 Ejemplos de Casos Recursivos 2.1 Definición de Recursividad La Recursividad es una técnica de programación muy poderosa usada ampliamente
Introducción a C++ Algoritmos y Estructuras de datos II Dra. Carmen Mezura Godoy. Febrero 2009
Introducción a C++ Algoritmos y Estructuras de datos II Dra. Carmen Mezura Godoy Febrero 2009 Índice Elementos básicos Ejecución de un programa Estructuras de control Ciclos Ejercicios 2 Elementos Básicos
Macros LENGUAJE DE PROGRAMACIÓN ESTRUCTURADO
Macros LENGUAJE DE PROGRAMACIÓN ESTRUCTURADO Macros tipo objeto #define IDENTIFICADOR VALOR Permiten definir identificadores que son automáticamente reemplazados por un fragmento de código. Son especialmente
Estructuras Enlazadas AyED UTN-BA
Funciones para estructuras enlazadas Sin Plantilla El Nodo Con plantilla para un dato genérico en info El Nodo struct Nodo1 int info; Nodo* sig; ; Nodo1* p1 = new Nodo1(); struct Nodo2 string info; Nodo*
Arboles Binarios de Búsqueda en C++
Arboles Binarios de Búsqueda en C++ por CCG/Mayo-2014 Tema de Arboles Binarios de Búsqueda, como un poco de teoría para su mejor entendimiento seguidamente mostrare la implementación en lenguaje de programación
Ejercicios De Programación De C++ Algoritmos. Lenguaje De Programación C++:
Ejercicios De Programación De C++ 1. Muestre en pantalla el mensaje Bienvenido. Algoritmos 1. Inicio 2. muestrer en pantalla el mensaje Bienvenido 3. Fin Lenguaje De Programación C++: #include
Una clasificación de los tipos de datos existentes en los diferentes lenguajes de programación se presenta a continuación:
Clase teórica 2 Algoritmos en C Página 1 de 6 TIPOS DE DATOS Una clasificación de los tipos de datos existentes en los diferentes lenguajes de programación se presenta a continuación: Por el momento nuestro
Programación 2. Guía de estilo y buenas prácticas de programación en C/C++
Programación 2 Guía de estilo y buenas prácticas de programación en C/C++ Introducción A la hora de escribir código fuente en un determinado lenguaje de programación es aconsejable seguir unas guías de
UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO.
UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO. TRUJILLO 1.- Resumen de Prog1 Comentarios es C++ Declaraciones de variables.
Unidad 2 Recursividad. 2.1 Definición 2.2 Procedimientos Recursivos 2.3 Ejemplos de Casos Recursivos
Unidad 2 Recursividad 2.1 Definición 2.2 Procedimientos Recursivos 2.3 Ejemplos de Casos Recursivos 2.1 Definición de Recursividad La Recursividad es una técnica de programación muy poderosa usada ampliamente
Vectores y Matrices. Dept. Ciencias de la Computación e I.A. Universidad de Granada
TEMA Vectores y Matrices Dept. Ciencias de la Computación e I.A. Universidad de Granada 1 VECTORES Y MATRICES Motivación. Operaciones Básicas. Ejemplos Paso de vectores como parámetros. Matrices Ejemplos
TEMA 5: Subprogramas. Programación modular EJERCICIOS DE TRAZAS
TEMA 5: Subprogramas. Programación modular EJERCICIOS DE TRAZAS 1.- Escribir la traza y decir que imprime por pantalla cada uno de los siguientes programas: a.- /* Ejercicio de traza 1 */ int a, b, c;
Programación Orientada o Objetos
Programación Orientada o Objetos Programación digital II Escuela de Sistemas Facultad de Ingeniería Profesor: Gilberto Diaz Programación Orientada a Objetos En 1970 Dennis Ritchie y Brian Kernigan crearon
