• Jueves 18 de Abril de 2024, 12:45

Autor Tema:  como hacer este programa  (Leído 1580 veces)

gasberrini

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
como hacer este programa
« en: Viernes 29 de Octubre de 2010, 23:52 »
0
a) El programa debe subirse como un ÚNICO archivo (.cpp) como se muestra en el ejemplo y debe incluir la siguiente cabecera con los datos completos correspondientes.

b) Tanto la función main (principal) como los prototipos de las funciones que deberá implementar el alumno son los provistos en el ejemplo y se deberá respetar los mismos.


#include<iostream>
#include<fstream>
using namespace std;

void leer_matriz(int& total, int datos[10][10]);
void procesar_matriz(int total, int datos[10][10]);
void guardar_matriz(int total, int datos[10][10]);

void espejar_horizontal(int total, int datos[10][10]);
void espejar_vertical(int total, int datos[10][10]);
void rotar_orario(int total, int datos[10][10]);
void rotar_antiorario(int total, int datos[10][10]);
void transponer(int total, int datos[10][10]);

int main()
{
int matriz[10][10];
int cantidad;

leer_matriz(cantidad, matriz);
procesar_matriz(cantidad, matriz);
guardar_matriz(cantidad, matriz);

return 0;
}

// De acá en adelante. comienzan las definiciones de las funciones
.
.
.


Problema

Se debe implementar un programa que:

a) lea una matriz de un archivo,

b) modifique la matriz

c) guarde la matriz en otro archivo.

Cada uno de los puntos ‘a’, ‘b’ y ‘c’ deben ser implementados con funciones de usuario que serán llamadas dentro de la función main como muestra el ejemplo provisto. Los únicos datos de entrada y salida de las funciones definidas por el usuario serán los que figuran como parámetros en el prototipo de la misma. No se podrán usar variables globales. Se deberán respetar los siguiente prototipos para las funciones de los puntos ‘a’, ‘b’, ‘c’:

a) void leer_matriz(int& total, int datos[10][10])
b) void procesar_matriz(int total, int datos[10][10])
c) void guardar_matriz(int total, int datos[10][10])

donde 'total' indica la cantidad de números que efectivamente contiene la matriz y '10' es el número máximo de filas o columnas de la matriz.

La función ‘leer_matriz’ deberá leer de un archivo una matriz cuadrada de números enteros. El nombre del archivo que contiene la matriz de entrada debe ser exactamente "matriz_de_entrada.txt". El archivo contiene únicamente los números de la matriz leídos fila por fila de izquierda a derecha. Los números dentro del archivo se encuentran separados por un espacio o por una nueva línea.

La función ‘guardar_matriz’ deberá guardar en un archivo todos los números de la matriz. El nombre de archivo deberá ser exactamente "matriz_de_salida.txt". Los números deberán estar separados por un espacio o una nueva línea en el mismo orden en que fueron leídos (fila por fila de izquierda a derecha).

La función ‘procesar_matriz’ deberá modificar la matriz que se pasa como argumento. Los únicos datos de entrada de esta función serán los que figuran como parámetros en el prototipo de la misma (i.e. total y datos) no se podrán usar variables globales. De acuerdo al valor del primer elemento de la matriz (datos[0][0]) se deberá realizar diferentes tipos de modificaciones sobre la misma según se describe a continuación.

Si datos[0][0]==0 se debe espejar la matriz horizontalmente:

Matriz original
0 1
2 3

Nueva matriz
2 3
0 1


Cada una de esta operaciones de modificación de la matriz debe ser realizada por funciones de usuario programadas para cada caso particular. Los prototipos de la funciones para cada caso deben ser

void espejar_horizontal(int total, int datos[10][10])
void espejar_vertical(int total, int datos[10][10])
void rotar_orario(int total, int datos[10][10])
void rotar_antiorario(int total, int datos[10][10])
void transponer(int total, int datos[10][10])

Dentro de la función ‘procesar_matriz’ solo se debe elegir y llamar a la función correspondiente para modificar la matriz.

IMPORTANTE: El programa no debe imprimir nada en pantalla ni requerir ningún tipo de información de entrada por el teclado u otro archivo no especificado en la consigna. El programa debe cerrarse cuando finalice su tarea.

softevolutions

  • Miembro activo
  • **
  • Mensajes: 84
  • Nacionalidad: es
    • Ver Perfil
    • http://www.softevolutions.es
Re: como hacer este programa
« Respuesta #1 en: Sábado 30 de Octubre de 2010, 19:25 »
0
Y concretamente .... ¿cual es tu duda?. Para que podamos orientarte un poco.
:: Lo que puedes hacer sólo lo limita tu propia imaginación ::
Soft Evolutions Technology - http://www.softevolutions.es

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: como hacer este programa
« Respuesta #2 en: Domingo 31 de Octubre de 2010, 11:31 »
0
Su duda es que le hagas el ejercicio :brickwall:

gasberrini

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: como hacer este programa
« Respuesta #3 en: Lunes 1 de Noviembre de 2010, 00:42 »
0
noo que hacer tarea, me olvide de poner la duda miren,
void leer_matriz(int& total, int datos[10][10])
{
ifstream archivo_entr;
archivo_entr.open("matriz_de_entrada.txt");
asi abro la matriz no? , pero dsp cuando la proceso como hago para que a medida que la lee vaya guardandola en por ejemplo matriz[a][k]
     Editar/Borrar Mensaje