



Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Asignatura: Bioestadística, Profesor: Francisco Conejero Meca, Carrera: Biología, Universidad: UCM
Tipo: Ejercicios
1 / 6
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!




Facultad de Informática – Universidad Complutense
Curso 2013–
1. Disponemos de cuatro variaciones de un archivo de texto entrada.txt:
Caso 1 Caso 2 Caso 3 Caso 4 134
100
134 12.4 c 1 2
Si tenemos el siguiente fragmento de código: int entero1; float float1; double double1; char car1, car2; ifstream archivo; archivo.open("entrada.txt"); // Apertura archivo >> entero1 >> double1 >> car1; archivo >> float1 >> car2; ... Indica el valor de cada una de las variables después de ejecutar dicho fragmento de código con los cuatro ejemplos de archivo de entrada. ¡Sin ejecutar el código con un compilador!
2. ¿Cuál será el contenido del archivo salida.txt después de ejecutar el siguiente programa? (Indica el resultado sin ejecutar el código en un compilador.)
#include
int main() { ofstream archivo; bool llueve = false; int i = 35; double d1 = 123; double d2 = 123.45; char c = 'x'; float f = 3.14;
archivo.open("salida.txt"); // Creación del archivo archivo << "Hoy llueve = " << llueve << boolalpha << llueve << endl; archivo << i << right << setw(8) << i << endl; archivo << d1 << scientific << right << setw(8) << d1 << endl; archivo << d2 << right << fixed << setw(8) << setprecision(3) << d2 << endl; archivo << c << setw(8) << left << c << endl; archivo << f << right << setw(5) << setprecision(3) << f << endl; archivo << scientific << d2 << fixed << endl; archivo << setprecision(8) << d2 << endl; archivo.close(); // Cierre del archivo
return 0; }
3. Escribe un programa que lea los números de un archivo datos.txt (cada línea contiene un número real positivo) y muestre en la pantalla el mayor y el menor de todos ellos. El archivo termina con un 0 como centinela. 4. Escribe un programa que lea un número entero positivo del teclado y lo muestre invertido en la pantalla. Se entiende por invertir el dar la vuelta a los dígitos que componen el número ( su imagen especular ). Esto es, el inverso de 3952 es 2593. El programa utilizará una función que devuelva el nº invertido. 5. Escribe un programa que invierta cada número entero positivo que se introduzca por teclado. El programa actuará de forma cíclica, finalizando la ejecución cuando se introduzca un número negativo o el cero. 6. Escribe un programa que genere un archivo output.txt en el que aparezcan invertidos los números enteros estrictamente positivos (>0) que haya en otro archivo input.txt. Cada línea de input.txt contendrá un número entero y terminará en una línea con un 0 (centinela).
input.txt output.txt 1234 56 1000
54321 0
4321 65 0001 12345
14. El cuadrado de un número entero es igual a la suma de tantos números impares consecutivos (desde la unidad) como unidades tiene el número. Es decir, 3^2 es igual a 1+3+5 (3 impares) y 5 2 es igual a 1+3+5+7+9 (5 impares). Implementa un programa que solicite enteros al usuario y muestre en la pantalla su cuadrado calculado con el algoritmo indicado. El programa deberá finalizar cuando se introduzca el valor 0. Usará una función para calcular los cuadrados. 15. Implementa un programa que lea del teclado secuencias de caracteres terminadas en punto y que, para cada secuencia, cuente y muestre en la pantalla el número de blancos, letras y dígitos que hay entre la primera pareja de paréntesis. Si sólo hay un paréntesis de apertura, el recuento seguirá hasta el final de la secuencia. Puede no haber ninguna pareja de paréntesis. El programa solicitará secuencias hasta que se introduzca una línea con sólo el punto.
Un ejemplo de ejecución del programa sería el siguiente:
Entrada: Esto es (una prueba) de secuencia de entrada.↲ Salida: Blancos: 1 Letras: 9 Dígitos: 0 Entrada: Esto es la prueba de secuencia (de entrada 2.↲ Salida: Blancos: 2 Letras: 9 Dígitos: 1 Entrada: Esto es la prueba de secuencia de entrada 3.↲ Salida: Blancos: 0 Letras: 0 Dígitos: 0 Entrada: .↲ Fin del programa
Recuerda que con cin.ignore(INT_MAX, '\n'); o cin.sync(); puedes descartar el salto de línea (y lo que pueda haber después del punto), una vez leído el punto final de cada texto.
16. Implementa un programa que lea un número entero N y pida al usuario que averigüe su raíz cuadrada, preguntando tantas veces como sea necesario hasta que el usuario acierte. Se da por buena una respuesta cuando la distancia (error) entre N y el número introducido elevado al cuadrado sea menor que 10-4. Tras cada respuesta del usuario, el programa indicará si el número es mayor o menor que la raíz cuadrada buscada. 17. Desarrolla un programa que determine si una secuencia de enteros terminada en 0 (centinela) es creciente o no (cada elemento es mayor o igual que el anterior). 18. Escribe un programa que cuente el número de veces que aparece la secuencia xy en un archivo de texto input20.txt (terminado en *). 19. Escribe un programa que indique si es triangular cada número entero que haya en un archivo enteros.txt (terminado en 0 como centinela). Se dice que un número entero es triangular si es igual a la suma de varios enteros positivos consecutivos empezando desde 1. El programa usará una función que indique si un entero es triangular.
20. Implementa un programa que pida al usuario las calificaciones de los 10 estudiantes de una clase y los guarde en un array (declara el tipo adecuado; se admiten decimales). Después, mostrará esas calificaciones (cada una en una línea), seguida de la media del curso y del número de aprobados y suspensos. Se usará una función para calcular la nota media y otra para el número de suspensos. 21. Modifica el programa anterior para que se puedan guardar hasta 100 calificaciones. El programa pedirá calificaciones al usuario hasta que éste introduzca una nota negativa (o se llene el array). El programa, además, mostrará la nota máxima llamando a una función que se encargue de encontrarla. 22. Escribe un programa en C++ que lea de un archivo palabras.txt (con xxx como centinela) una lista de hasta 50 palabras (cadenas) y luego muestre al usuario un menú con estas opciones: mostrar la lista de palabras (una por línea precedida de su posición), localizar una palabra (indicará su posición), contar las apariciones de una palabra, localizar la primera palabra de más de una longitud dada, desplazar la lista de palabras (cada palabra pasa a la siguiente posición del array; la última a la primera posición) y salir. El programa repetirá el menú hasta que se elija la opción para salir y usará las funciones adecuadas. 23. Implementa un programa que calcule el primer número natural cuyo cubo supera estrictamente otro entero N dado (N ≥ 0). El programa mostrará la secuencia de números recorrida. 24. Resuelve el problema anterior sin usar multiplicaciones (ni pow()). Para ello, debes emplear la relación (X+1) 3 = X^3 + 3X^2 + 3X + 1. Observa que de esta forma el cubo de cada número natural se puede calcular con sumas a partir del cubo y del cuadrado del número natural anterior. Para calcular los cuadrados sin multiplicaciones debes usar la relación análoga, es decir (X+1) 2 = X^2 + 2X + 1.
x 1 = 1 x 12 = 1 x 13 = 1 x 2 = 2 x 22 = x 12 +2x 1 +1 = 1+2·1+1 = 4 x 23 = x 13 +3x 12 +3x 1 +1 = 1+3·1+3·1+1 = 8 x 3 = 3 x 32 = x 22 +2x 2 +1 = 4+2·2+1 = 9 x 33 = x 23 +3x 22 +3x 2 +1 = 8+3·4+3·2+1 = 27 x 4 = 4 x 42 = x 32 +2x 3 +1 = 9+2·3+1 = 16 x 43 = x 33 +3x 32 +3x 3 +1 = 27+3·9+3·3+1 = 64 ...
25. Conversiones de tipos: Prueba el siguiente programa en tu compilador (copia y pega). Comprueba los problemas que se generan en las conversiones inseguras.
#include