burrotacubohisterico
Bovino maduro
- Desde
- 21 Feb 2008
- Mensajes
- 241
- Tema Autor
- #1
Hola Bakunos, solo para pedirles un poco de ayuda por favor, ya que no soy muy bueno programando...
Necesito un programa en el que a una matriz, se le puedan agregar dos columnas y dos filas... si me explico?
asi miren:
(original)
123
456
789
(a la salida del programa)
00000
01230
04560
07890
00000
osea que todo quede rodeado de 0's.
por favor bakunos!!!!
ayuda!
MIREN, TENGO ESTE CODIGO YA HECHO EN TURBO C JEJE.
#include <iostream.h>
#include <fstream.h>
#include <iomanip.h>
//using namespace std;
void main()
{
ifstream entrada("matriz.txt");
ifstream input;
char c;
input.open("matriz.txt");
if (entrada.good())
cout << "El archivo matriz.txt fue abierto correctamente";
else
cout << "El archivo matriz.txt no pudo ser abierto correctamente";
cout << endl;
entrada >> c;
entrada.close();
input.close();
cout << c << endl;
}
y ya me abre el archivo,ya solo me falta agregar lo de los ceros a la salida, pero no se como hacer eso...
GRACIAS BAKUNOS!
Hola bakunos, gracias a todos los que me han ayudado, llevo este avance en el programa, ya me genera n archivo nuevo y yame rodea la matriz de 0's.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
int main()
{
FILE *nombre;
FILE *nombre2;
char palabra[100];
char palabra2[100];
int cols=0;
int rows=0;
int c;
int ch;
nombre = fopen("matriz.txt", "r");
if (nombre == NULL)
{
printf("El archivo no existe \n");
exit (EXIT_FAILURE);
}
else
{
do
{
rows++;
c = fscanf(nombre, "%s", palabra);
}
while (c != EOF);
}
cols = strlen(palabra);
cols += 2;
nombre2 = fopen("newmatriz.txt", "w");
nombre = fopen("matriz.txt", "r");
if (nombre2 == NULL)
{
printf("Falla al abrir el archivo \n");
exit (EXIT_FAILURE);
}
int wh=0;
while(wh<cols)
{
putc('0', nombre2);
wh++;
}
putc('\n', nombre2);
do
{
c = fscanf(nombre, "%s", palabra2);
fprintf(nombre2, "0%s0\n",palabra2);
}
while (c != EOF);
wh=0;
while(wh<cols)
{
putc('0', nombre2);
wh++;
}
fclose(nombre);
fclose(nombre2);
return EXIT_SUCCESS;
}
Ahora solo me falta que me separe todo en capas, algo asi:
Matriz original:
123
456
789
012
345
678
Matriz a la salida
00000
01230
04560
07890
00000
00120
03450
06780
00000
si notan la diferencia de una capa y otra comoqueda rodeada de ceros. Ayuda Bakunos!!
Gracias a todos los que me han posteado, me han servido de mucho... Saludos!

Necesito un programa en el que a una matriz, se le puedan agregar dos columnas y dos filas... si me explico?
asi miren:
(original)
123
456
789
(a la salida del programa)
00000
01230
04560
07890
00000
osea que todo quede rodeado de 0's.
por favor bakunos!!!!
ayuda!
MIREN, TENGO ESTE CODIGO YA HECHO EN TURBO C JEJE.
#include <iostream.h>
#include <fstream.h>
#include <iomanip.h>
//using namespace std;
void main()
{
ifstream entrada("matriz.txt");
ifstream input;
char c;
input.open("matriz.txt");
if (entrada.good())
cout << "El archivo matriz.txt fue abierto correctamente";
else
cout << "El archivo matriz.txt no pudo ser abierto correctamente";
cout << endl;
entrada >> c;
entrada.close();
input.close();
cout << c << endl;
}
y ya me abre el archivo,ya solo me falta agregar lo de los ceros a la salida, pero no se como hacer eso...
GRACIAS BAKUNOS!
Hola bakunos, gracias a todos los que me han ayudado, llevo este avance en el programa, ya me genera n archivo nuevo y yame rodea la matriz de 0's.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
int main()
{
FILE *nombre;
FILE *nombre2;
char palabra[100];
char palabra2[100];
int cols=0;
int rows=0;
int c;
int ch;
nombre = fopen("matriz.txt", "r");
if (nombre == NULL)
{
printf("El archivo no existe \n");
exit (EXIT_FAILURE);
}
else
{
do
{
rows++;
c = fscanf(nombre, "%s", palabra);
}
while (c != EOF);
}
cols = strlen(palabra);
cols += 2;
nombre2 = fopen("newmatriz.txt", "w");
nombre = fopen("matriz.txt", "r");
if (nombre2 == NULL)
{
printf("Falla al abrir el archivo \n");
exit (EXIT_FAILURE);
}
int wh=0;
while(wh<cols)
{
putc('0', nombre2);
wh++;
}
putc('\n', nombre2);
do
{
c = fscanf(nombre, "%s", palabra2);
fprintf(nombre2, "0%s0\n",palabra2);
}
while (c != EOF);
wh=0;
while(wh<cols)
{
putc('0', nombre2);
wh++;
}
fclose(nombre);
fclose(nombre2);
return EXIT_SUCCESS;
}
Ahora solo me falta que me separe todo en capas, algo asi:
Matriz original:
123
456
789
012
345
678
Matriz a la salida
00000
01230
04560
07890
00000
00120
03450
06780
00000
si notan la diferencia de una capa y otra comoqueda rodeada de ceros. Ayuda Bakunos!!
Gracias a todos los que me han posteado, me han servido de mucho... Saludos!