Indique la veracidad o falsedad de cada una de las afirmaciones siguientes, explicando detalladamente en cada caso el motivo de su respuesta.

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

Programación (PRG) PRÁCTICA 10. Algoritmos de búsqueda

CAPÍTULO 3 ESTRUCTURAS DE DATOS ESTÁTICAS

Hoja de ejercicios del Tema 3

Ejercicios del Tema 3. Fundamentos de la programación en ensamblador

Laboratorio de Arquitectura de Redes. Entrada y salida estándar

Cátedra I Informática Autor I Carlos Bartó

ESCUELA POLITÉCNICA SUPERIOR PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF

Informática Ingeniería en Electrónica y Automática Industrial

IMPORTAR Y USAR CLASES DEL API DE JAVA. EJEMPLO CLASE MATH Y MÉTODO POW. CONSTRUCTORES PRIVADOS. (CU00647B)

Introducción rápida a la programación (estructurada ) con C++

FUNDAMENTOS DE PROGRAMACIÓN. 1º ING. INFORMÁTICA (Plan 2000) 2ª Convocatoria. 21 de junio de 2001

Escuela Politécnica Superior de Elche

UNIVERSIDAD NACIONAL DE SALTA Sede Regional Orán AÑO: 2013 Carreras: TIG - TUP

Cursosindustriales. Curso de C / C++ Por Deimos_hack

Elementos de un programa en C

HOJA DE EJERCICIOS 5 PROGRAMACIÓN CON EXCEPCIONES EN JAVA

Ejercicios Tema 6. Funciones

PROGRAMACIÓN ORIENTADA A OBJETOS

Cadenas de caracteres

Objetivos de la sesión. Aplicación de consola 7/30/11. Código con que se inicia un programa en Visual C# (aplicación de consola)

ESTRUCTURA DE ASIGNACIÓN

EQUIVALENCIAS EN C DE CONSTRUCCIONES SECUENICIALES EN PSEUDOCÓDIGO

Tipos de datos y Operadores Básicos

UTN FRBA Algoritmos y Estructura de Datos Examen Final 18/07/2014. Apellido y nombre: Legajo: Cursó con Prof:

PASO DE PARÁMETROS O ARGUMENTOS EN C. POR DEFECTO, POR VALOR O POR REFERENCIA. SIZEOF MEMORIA (CU00550F)

Estructuras de Datos Declaraciones Tipos de Datos

Análisis semántico. Análisis semántico. Índice (I)

Tipos de datos y operadores en C++

Lenguaje de Programación: C++ Arreglos

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

LENGUAJE DE PROGRAMACION I. Ing. JAVIER ECHEGARAY ROJO Ing. WILDER ROMAN MUNIVE. Ing. Javier Echegaray Rojo / Ing. Wilder Román Munive Pag 1

DEFINICIONES BÁSICAS DE LAS ESTRUCTURAS DE DATOS

FUNDAMENTOS DE INFORMÁTICA 1º Ingeniería Industrial

Ejercicios sobre recursividad

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1

Programación I Funciones

1. Cuántas sentencias hay en la secuencia principal del siguiente programa?

1. Escriba el siguiente código, compílelo y ejecútelo. Obtiene el resultado esperado? Modifíquelo para que se comporte como debe:

TEMA 02 TIPOS, OPERADORES Y EXPRESIONES

Tipos de Arreglos. Notación Algoritmica de los Arreglos multidimensionales tipo_dato nombre[dim 1. , dim 2. ,..., dim n

Inicio del programa. Entrada de datos. Proceso de datos. Salida de datos. Fin del programa

En este artículo vamos a conocer los tipos de datos que podemos manejar programando en C.

LABORATORIO DE PROCESADORES DE LENGUAJE Curso: Práctica 2: Analizador léxico/sintáctico/semántico con Flex y Bison

Laboratorio de Arquitectura de Redes. Asignación dinámica de memoria en lenguaje C

Unidad II. Fundamentos de programación en Java. Ing. José Luis Llamas Cárdenas

Distinguir las diferentes estructuras de repetición utilizadas en problemas con bucles: mientras, repetir mientras, para.

UNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros.

LA ESTRUCTURA DE DATOS PILA EN JAVA. CLASE STACK DEL API JAVA. EJEMPLO Y EJERCICIOS RESUELTOS. (CU00923C)

GUÍA DE TRABAJO N 1 C# Ing. Néstor Raúl Suarez Perpiñan Página 1 de 13

PROBLEMAS DEL TEMA 8: Estructuras de Datos Complejas

Dpto. de ATC, Universidad de Sevilla - Página 1 de 16

Objetivos. El alumno conocerá y aplicará el concepto de archivo para el almacenamiento y recuperación de datos persistentes.

Tema 2 Conceptos básicos de programación. Fundamentos de Informática

Estructuras. //identificador del cliente

Principal material bibliográfico utilizado

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

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 -

Introducción al lenguaje C

Práctica Guiada: Vectores y Matrices

Programación MODULAR: Subalgoritmos - funciones y procedimientos

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

Trabajo Práctico N 5: ESPACIOS VECTORIALES. Ejercicio 1:

En el siguiente ejemplo se declara un registro y luego variables de ese tipo de registro:

SUBPROGRAMAS FUNCIONES

Escuela Politécnica Superior de Elche

Se guardan en archivos con extencion c y los cabezales con extension h

funciones printf scanf

Fundamentos de Programación 2017-I

Programación 1. Diseño modular de nuevos tipos de datos en un programa. Diseño modular de un tipo de dato con estructura de conjunto

FUNCIONES PHP: DECLARACIÓN Y LLAMADAS. PARÁMETROS, RETURN. EJERCICIOS EJEMPLOS RESUELTOS. (CU00827B)

Tema 3. Tipos de datos simples

F. Javier Gil Chica 2010

Curso de Java Introducción a la Programación I

2.2 Nombres, Ligado y Ámbito

RECORDAR TIPOS DE DATOS

k. Son métodos de la clases y respectivamente, que analiza un para devolver un entero con

Guia#9: Punteros en C#.

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

D L M M J V S

Trabajo Práctico 5 Estructura Repetitiva

Funciones y paso de parámetros

ALGORÍTMICA. Dpto. Ingeniería de Sistemas y Automática Facultad de Ciencias Universidad de Valladolid.

8.1.- FUNCIONES Y PROCEDIMIENTOS DEFINIDOS POR EL USUARIO EN TURBO PASCAL.

Estructuras de Selección, armado de Equipos, y Trabajo #1.

Introducción al lenguaje C

Cruz García Karen Ilzette González Mendoza María del Rosario Hernández Castañeda Alan Eliseo Sánchez Quiroz Sheila Mariana Varela García Tania

Estructura de datos y de la información Boletín de problemas - Tema 10

AMBITO DE VARIABLES EN C. GLOBALES Y LOCALES. UNDECLARED (FIRST USE IN THIS FUNCTION). EJEMPLOS (CU00548F)

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

Programación. Test Autoevaluación Tema 3

LENGUAJE. Tema 3 Elementos de un programa II

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

6.1.- Introducción a las estructuras de datos Tipos de datos Arrays unidimensionales: los vectores Operaciones con vectores.

Docente: Juan Carlos Pérez P. Alumno : Fecha : Nota:

Funciones: Pasos por Referencia Recursividad

Especificación IEEE-754, para representar valores decimales en punto flotante de simple precisión.

Examen Fundamentos de Programación 15 de enero de 2016 Curso 2015/16

TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL

Transcripción:

LENGUAJES DE PROGRAMACIÓN INSTRUCCIONES Por favor, entregue esta primera hoja de enunciado junto con el examen. Dispone de 2 horas para realizar el examen. MATERIAL PERMITIDO: Ninguno. Pregunta 1 (3 puntos) Indique la veracidad o falsedad de cada una de las afirmaciones siguientes, explicando detalladamente en cada caso el motivo de su respuesta. A. (0.5 puntos) En la máquina de von Neumann, cuando la palabra binaria se representa como dato, ésta representa un número entero sin signo codificado en base 2. B. (0.5 puntos) La principal desventaja de la interpretación pura es el tiempo de ejecución del código fuente. C. (0.5 puntos) La variable del bucle de Pascal es visible dentro del cuerpo del bucle y se permite modificar su valor mediante asignaciones dentro del cuerpo del bucle. D. (0.5 puntos) La sentencia: x = ++i; es equivalente a las dos sentencias siguientes: x = i; i = i+1; E. (0.5 puntos) Las funciones no pueden formar parte de expresiones. F. (0.5 puntos) El algoritmo de la STL count(p1, p2, val) devuelve el número de elementos de la secuencia delimitada por los iteradores p1 y p2 cuyo valor es menor o igual que val.

Pregunta 2 (1 punto) Escriba la salida por consola producida al ejecutar el programa en C++ escrito a continuación. #include <iostream> #include <iomanip> double x = 9.3421; int main () { double x = 1.123813; double *p1; double *p2; double a[3] = {4.2322, 3.32213, 6.99983; std::cout << std::scientific << std::setprecision(2) << a[1] << std::endl; std::cout << std::scientific << std::setprecision(2) << ::x << std::endl; p1 = &a[1]; p2 = &x; *p1 = *p2; std::cout << a[1] << std::endl; std::cout << *p1 << std::endl; std::cout << *p2 << std::endl; p2 = p1++; std::cout << a[1] << std::endl; std::cout << *p1 << std::endl; std::cout << *p2 << std::endl; return 0;

Pregunta 3 (1 punto) Escriba la salida por consola producida al ejecutar el programa en C++ escrito a continuación. #include <iostream> #include <vector> #include <string> #include <stack> int main() { std::vector<std::string> SS; std::stack<std::string> pila; SS.push_back("A"); SS.push_back("B"); SS.push_back("D"); for (unsigned int ii = 0; ii < SS.size(); ii++) { std::cout << SS[ii] << std::endl; pila.push(ss[ii]); std::vector<std::string>::iterator cii; for (cii = SS.begin(); cii!= SS.end(); cii++) std::cout << *cii << std::endl; while(!pila.empty() ) { std::cout << pila.top() << std::endl; pila.pop(); return 0;

Pregunta 4 (5 puntos) En un proyecto cuyo objetivo es la detección de asteroides peligrosos para la tierra, se encarga la realización de un programa en C++ que lea de un fichero la velocidad y posición de los asteroides, ordene los asteroides en función de su peligrosidad y muestre un mensaje en la consola indicando cuáles de ellos tienen una peligrosidad superior a un cierto valor especificado por el usuario. Escriba el código C++ indicado a continuación. 4.1 (0.2 puntos) Escriba la declaración de un tipo estructura (struct) llamado Asteroide que tenga los miembros siguientes: Un string llamado nombre. Un array de 3 componentes double llamado posicion. Un array de 3 componentes double llamado velocidad. Un double llamado c. 4.2 (0.3 puntos) Escriba la definición de una función llamada modulovec que acepte como argumento un array x de N componentes de tipo double y devuelva el módulo del vector, x, calculado como la raíz cuadrada de la suma de los cuadrados de los componentes: donde x={x 0,...,x N 1. x = La función debe tener el prototipo siguiente: N 1 x 2 i i=0 double modulovec(const double x[], int N); 4.3 (0.5 puntos) Escriba la definición de una función llamada coefc que acepte como parámetros dos arrays r y v de tres componentes de tipo double, y devuelva el valor real c calculado de la forma siguiente: c= ( v0 v + r ) 2 ( 0 v1 + r v + r ) 2 ( 1 v2 + r v + r ) 2 2 r donde r = {r 0,r 1,r 2 y v = {v 0,v 1,v 2. El módulo de los arrays r y v debe calcularse invocando la función programada en el Apartado 4.2.

Simplemente a modo de aclaración, indicar que si el vector r es la posición del asteroide y v es su velocidad, medidas suponiendo que la tierra se encuentra en reposo en la posición {0, 0, 0, entonces el valor de c es una medida del riesgo que supone el asteroide para la tierra. 4.4 (2 puntos) Escriba la definición de una función que acepte como argumento un string y devuelva una lista de elementos del tipo estructura llamado Asteroide, que fue declarado en el Apartado 4.1. El prototipo de la función es el siguiente: std::list<asteroide> LeeDatos(std::string nombrefich) throw (std::invalid_argument); La función debe abrir para lectura el fichero de texto cuyo nombre viene dado por el valor del parámetro de la función. Si se produce error al abrir el fichero, la función debe lanzar una excepción. Si no se produce error al abrir el fichero, la función debe leer el fichero palabra a palabra. En el fichero, los datos están escritos en una o más filas. En cada fila están escritos los datos de un asteroide. Cada fila está compuesta por las 7 columnas siguientes: La primera columna es un string: el nombre del asteroide. Las siguientes tres columnas son números reales: las coordenadas (r 0, r 1, r 2 ) de la posición del asteroide. Las últimas tres columnas son números reales: las componentes (v 0, v 1, v 2 ) de la velocidad del asteroide. La función debe calcular el valor de c de cada asteroide, invocando para ello la función definida en el Apartado 4.3. La lista devuelta por la función debe tener un elemento por cada asteroide leído del fichero. El elemento debe almacenar los correspondientes datos de nombre, posición, velocidad y valor de c del asteroide. Los elementos deben insertarse en la lista de manera que queden ordenados crecientemente de acuerdo a su valor de c. El valor de c de un elemento debe ser menor o igual que el valor de c del elemento siguiente en la lista. La ordenación relativa de los elementos con el mismo valor de c puede ser cualquiera.

4.5 (2 puntos) Escriba el programa principal, el cual debe realizar las acciones siguientes: 1. Solicitar al usuario que introduzca por consola el nombre del fichero donde se encuentran los datos. 2. Leer dicho valor, almacenándolo en una variable de tipo string llamada fichin. 3. Invocar la función LeeDatos definida en el Apartado 4.4, pasándole como argumento la variable fichin. La lista devuelta por la función debe llamarse last. Si la función lanza una excepción, mostrar en la consola un mensaje indicando que el nombre del fichero no es válido y terminar. 4. Solicitar al usuario que éste introduzca por consola un número denominado factor de alarma. Almacenar el valor introducido en una variable double llamada a. 5. Mostrar en la consola los componentes de la lista last cuyo valor de c satisface c < a. Los datos deben mostrarse en dos columnas separadas por un tabulador. En la primera columna debe mostrarse el nombre del asteroide. En la segunda columna debe mostrarse el valor de c en formato científico, con 3 dígitos de precisión. 6. Mostrar un mensaje en la consola indicando el número de asteroides peligrosos (los mostrados anteriormente en la consola) y el número total de asteroides analizados (número total de elementos de la lista). 7. Terminar.