hola espero que me puedan ayudar esq la verdad me estan enseñando no mucho de borland c++ pro quisiera saber si me podrian ayudar...................bueno lo que necesito es como hago para transformar de una matriz de 5*5 a esto...........
11111
12221
12321
12221
11111
bueno eso debe salir automaticamente osea soo sin ingresar nada.....debe salir ya automatizado para definir esta tabla como podria hacer debo utlizar for o que otro comando espero que me ayuden gracias..........saludos a todos en esta comunidad........................ ;-) :o :xD
Busca algún manual de C, eso que pides es muy simple, solo necesitas saber asignar valores y usar arreglos :P
BUENO SI TU LO DICES PRO COMO LE PODRIA ASIGNAR SI ESQ ME PODRIAS DECIR.........GRACIAS
Hola como estas!
Me tome el trabajo de hacerte el programita que pedis en Borland C++ for DOS.
Aqui te dejo el código, la verdad que se me hizo un poco largo. Quizás se lo pueda acortar pero por el momento lo realice asi. Seguro alguien más dará su opinión.
#include <conio.h>
#include <iostream.h>
void main()
{
clrscr();
int mat[5][5], i=0, j=0;
for (i=0; i<5; i++)
{
for (j=0; j<5; j++)
{
if (i==0 || i==4) //SE LLENA LA FILA 0 Y 4 CON NUMEROS UNO
{
mat[i][j]=1;
}
else
{
if (i==1) //NOS POSICIONAMOS EN LA FILA 1
{
if (j==0 || j==4) //SE LLENA LA COLUMNA 0 Y 4 DE LA FILA 1 CON NUMEROS UNO
{
mat[i][j]=1;
}
else
{
mat[i][j]=2; //SE LLENAN LAS COLUMNAS RESTANTES, 1, 2 Y 3 DE LA FILA 1 CON NUMEROS DOS
}
}
else
{
if (i==2) //NOS POSICIONAMOS EN LA FILA 2
{
if (j==0 || j==4) //SE LLENA LA COLUMNA 0 Y 4 DE LA FILA 2 CON NUMEROS UNO
{
mat[i][j]=1;
}
else
{
if (j==1 || j==3) //SE LLENA LA COLUMNA 1 Y 3 DE LA FILA 2 CON NUMEROS DOS
{
mat[i][j]=2;
}
else
{
mat[i][j]=3; //SE LLENA LA COLUMNA RESTANTE, COLUMNA 2 CON UN NUMERO TRES
}
}
}
else
{
if (i==3) //NOS POSICIONAMOS EN LA FILA 3
{
if (j==0 || j==4) //SE LLENA LA COLUMNA 0 Y 4 DE LA FILA 3 CON NUMEROS UNO
{
mat[i][j]=1;
}
else
{
mat[i][j]=2; //SE LLENAN LAS COLUMNAS RESTANTES, 1, 2, Y 3 DE LA FILA 3 CON NUMEROS DOS
}
}
}
}
}
}
}
//SE MUESTRA POR PANTALLA LA MATRIZ RESULTANTE 5x5
for (i=0; i<5; i++)
{
cout<<"\n";
for (j=0; j<5; j++)
{
cout<<mat[i][j];
}
}
cout<<"\n\nPresione una tecla para continuar...";
getch();
}
Trata de leer el código e interpretar lo que se trata de hacer en cada línea, es la única forma de aprender además de practicar!
Cualquier duda que tengas pregunta!
Saludos!
main debe devolver int.
- No deberías utilizar conio.
- iostream.h es una declaración de header antigua, utiliza iostream
En cuanto al código, te excediste un poco con los if/else. Replantea el problema y veras que hay formas mas sencillas de codificarlo, pero en todo caso eso debe quedar para el usuario que posteo la duda, ya que en esta sección no se hacen tareas.
Saludos
Cita de: daxelmejor en 6 Mayo 2010, 14:44 PM
BUENO SI TU LO DICES PRO COMO LE PODRIA ASIGNAR SI ESQ ME PODRIAS DECIR.........GRACIAS
variable = 5;
eso es asignar valores :)
int matriz[5][5]= {
{1,1,1,1,1},
{1,2,2,2,1},
{1,2,3,2,1},
{1,2,2,2,1},
{1,1,1,1,1}
};
Bueno aqui traigo otro codigo que hace exactamente lo mismo.
@Torino10: al igual que como dice LittleHorse creo que debes replantearte el problema y buscar una forma de hacerlo sin tantos if. Es incomodo para la lectura.
@kworld: La idea era hacer un codigo que lo imprimiera por pantalla sin ponerlo todo declarado desde el inicio.
/*************************************************
* Fichero: matrizPoC.c *
* Descripcion: Crea una matriz del tipo *
* 11111 *
* 12221 *
* 12321 *
* 12221 *
* 11111 *
* *
* Probado en Ubuntu 10.04. *
* Compilado en G++ *
* g++ -std=c99 matrizPoC.c *
* ***********************************************/
#include <stdio.h>
int main()
{
int matriz[5][5];
for(int i=0;i<5;i++)
{
for(int j=0;j<5;j++)
{
//Condicion que se cumple para todo el borde pero tambien a la casilla central.
if(i*j==0||j%4==0||i%4==0)matriz[i][j]=1;
//Las demas casillas no cumplen con la condicion anterior.
else matriz[i][j]=2;
//En caso de ser la casilla central el valor debe ser 3.
if(i==2 && j==2) matriz[i][j]=3;
printf("%i",matriz[i][j]); //Imprimimos el valor por pantalla
}
//Saltamos la linea al terminar de trabajar la fila.
printf("\n");
}
return 0;
}
Primero y principal, en esta sección no se hacen tareas, así que estaría bueno que dejen de postear códigos "solucionando" un ejercicio cuando el autor del post ni siquiera mostró lo que lleva hecho. Leer las reglas por favor.
Segundo, el algoritmo adecuado debe funcionar con matrices N x M ya que obviamente esa es la idea básica del ejercicio. Si no fuese así, las soluciones de Torino10 y kworld serian validas, lo cual no es así.
Saludos
Felicidades a Torino10 y a Lord R.N.A. le acaban de hacer la tarea a daxelmejor , mientras uds. estaban codificando su tarea , él a lo mejor estaba jugando ;-)
Cita de: Didacso en 7 Mayo 2010, 09:56 AM
Felicidades a Torino10 y a Lord R.N.A. le acaban de hacer la tarea a daxelmejor , mientras uds. estaban codificando su tarea , él a lo mejor estaba jugando ;-)
Yo estaba aburrido y buscaba algo que hacer.
De esta forma no ayudan ni al foro ni al usuario, para estas alturas lo deberían tener claro.
Por lo pronto para no aburrirse deberían buscar formas que no violen las reglas de esta sección.
Saludos