Práctica
Haga un programa que lea una serie de números enteros desde un archivo de texto. El primer número en el archivo indica cuántos datos más hay en el archivo. El programa debe almacenar todos los datos (excepto el primero) en un arreglo X de tamaño adecuado.
Luego, el programa debe generar otro arreglo Y que contenga los mismos datos que X, pero sin repetirse; es decir, si un número aparece múltiples veces en X, aparecerá solo una vez en Y.
Guarde el contenido de Y en un archivo de texto con el mismo formato que el archivo de entrada; es decir, escribiendo primero el número de datos, y posteriormente los datos.
Práctica
Ejemplo de ejecución:
12
5
8
7
8
9
2
3
4
5
4
5
8
7
5
8
7
9
2
3
4
Archivo de entrada
Archivo de salida
Ejercicios
Escriba una función escmat(float *x, int m, int n, char *s)que escriba una matriz x de tamaño m x n en el archivo con nombre s. Cada renglón de la matriz debe escribirse en un solo renglón del archivo, y los valores de cada renglón deben separarse por tabuladores ‘t’.
Escriba una función leemat(float &*x, int &m, int &n, char *s)que lea una matriz x desde un archivo s en el formato utilizado por escmat(). Note que el tamaño de la matriz es desconocido y debe obtenerse a partir del mismo archivo (por ejemplo, contando el número total de elementos y el número de renglones). Por lo mismo, el espacio para la matriz debe reservarse (pero no liberarse) de manera dinámica dentro de la función.
Para probar ambas funciones, genere una matriz de números aleatorios. Guárdela en un archivo y luego recupere la matriz a partir del archivo y verifique que es idéntica a la original. Así mismo, intente leer y exportar matrices en este formato desde Excel.
Ejercicios
Una imagen digital puede verse como una matriz donde cada elemento representa el nivel de intensidad o brillo del pixel correspondiente.
El archivo mri.txt contiene una imagen de resonancia magnética cerebral en el formato utilizado por la función leemat(). Importe este archivo en Excel y grafique los datos utilizando el tipo de gráfico Superficie-Contorno. Observe cómo los distintos tejidos se muestran con un color distinto.
Elabore un programa en C++ en el que se cargue la imagen mri.txt (como una matriz) y calcule el histograma h de los niveles de intensidad (los cuales son enteros entre 0 y 255). Guarde el histograma en otro archivo y grafíquelo en Excel eliminando el primer dato.
Observe que existen cuatro “picos” en el histograma. Estime a simple vista los valores de intensidad que separan estos picos. Suponga que uno de los picos está entre los valores a y b. Elabore un programa que modifique la imagen mri.txt haciendo cero cualquier valor de intensidad que quede fuera del rango [a,b). Guarde la nueva imagen en otro archivo (e.g., mri2.txt) y muéstrela en Excel. Haga lo mismo para los cuatro picos.
Página anterior | Volver al principio del trabajo | Página siguiente |