Miércoles 20 de Noviembre de 2024, 14:28
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Realización De Cuadrícula.
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Realización De Cuadrícula. (Leído 5361 veces)
aarias
Nuevo Miembro
Mensajes: 4
Realización De Cuadrícula.
«
en:
Miércoles 15 de Agosto de 2007, 17:58 »
0
Buenas, estoy teniendo un problema para realizar un trabajo. La idea es realizar una matriz cuadrada, tengo que mostrar los cuadrados que separarían cada valor de la matriz y esta cuadricula tiene que variar de tamaño con solo cambiar una constante.
Por ejemplo: tengo una matriz 3x3 entonces la cuadricula debe contener a todos los elementos de la matriz y si cambio la constante que delimita en tamaño de la matriz la cuadricula debe realizar el trabajo sin sufrir más alteraciones que el cambio de la constante.
Adjunto un archivo para que vean como es lo que se tiene que lograr.
¿Alguien tiene idea de como hacer esto?
gracias por la ayuda. saludos
El mensaje contiene
1 archivo adjunto
. Debes
ingresar
o
registrarte
para poder verlo y descargarlo.
Tweet
LeGatoRojo
Miembro HIPER activo
Mensajes: 552
Nacionalidad:
Re: Realización De Cuadrícula.
«
Respuesta #1 en:
Miércoles 15 de Agosto de 2007, 19:36 »
0
Pues si tengo idea, pero que haz intentado, yo lo haria con gráficos y lo demas es de lógica convencional, en que te haz atorado...
Un día desperte y en lugar de dientes tenía colmillos, en lugar de manos, tenía garras; pero lo más impactante fue el color escarlata de mi pelaje.
aarias
Nuevo Miembro
Mensajes: 4
Re: Realización De Cuadrícula.
«
Respuesta #2 en:
Miércoles 15 de Agosto de 2007, 20:03 »
0
Gracias por responder.
El tema pasa por que tenemos muchas acotaciones en el trabajo, hay funciones que no podemos usar, la librería de graficos.h no la podemos usar tampoco, logro generar un cuadrado pero no logro que se vaya desplazando en la pantalla y siempre me queda en una esquina.
Sino logro que se forme una cuadrícula en toda la pantalla, pero no que se ajuste al tamaño que yo quira.
LeGatoRojo
Miembro HIPER activo
Mensajes: 552
Nacionalidad:
Re: Realización De Cuadrícula.
«
Respuesta #3 en:
Miércoles 15 de Agosto de 2007, 23:22 »
0
puedes usar gotoxy?
Un día desperte y en lugar de dientes tenía colmillos, en lugar de manos, tenía garras; pero lo más impactante fue el color escarlata de mi pelaje.
aarias
Nuevo Miembro
Mensajes: 4
Re: Realización De Cuadrícula.
«
Respuesta #4 en:
Viernes 17 de Agosto de 2007, 17:03 »
0
Si puedo usar Gotoxy. Lo logré resolver de la siguiente manera, quizás tu tienes una forma más elegante de solucionar le problema y se aceptarán y agradecerán las sugerencias. Y si de paso le sirve a alguien más te mando el código.
#include<stdio.h>
#include<conio.h>
const int N=7;
const int cantcar=3; /*indico el largo máximo que pueden tener los números
ejemplo 100 Cantcar=3 */
void main()
{
int r1,c1,r2,c2;
clrscr();
textcolor(10);
gotoxy(1,1);
cprintf("%c",218);
gotoxy(1,(N+(N+1)));
cprintf("%c",192);
r1=1;
/*formo la linea superior he inferior del cuadrille*/
for(c1=2;c1<=(cantcar*N+N);c1++){
gotoxy(c1,1);
cprintf("%c",196);
gotoxy(c1,(N+(N+1)));
cprintf("%c",196);
}
/*formo los angulos superior he inferior del cuadrille, del lado derecho*/
gotoxy((cantcar*N+(N+1)),1);
cprintf("%c",191);
gotoxy((cantcar*N+(N+1)),(N+(N+1)));
cprintf("%c",217);
/*formo los laterales del cuadrille*/
for(r1=2;r1<=(N+N);r1++){
gotoxy(1,r1);
cprintf("%c",179);
gotoxy((cantcar*N+(N+1)),r1);
cprintf("%c",179);
}
/*formo las lineas horizantales dentro del cuadrille*/
for(r1=3;r1<=(N+N);r1+=2){
for(c1=2;c1<=(cantcar*N+N);c1++){
gotoxy(c1,r1);
cprintf("%c",196);
}
/*uno las lineas horizontales a las verticales en el marco del cuadrille*/
gotoxy(1,r1);
printf("%c",195);
gotoxy((cantcar*N+(N+1)),r1);
printf("%c",180);
}
/*formo las lineas verticales dentro del cuadrille*/
for(c1=(cantcar+2);c1<=(cantcar*N+N);c1+=(cantcar+1)){
for(r1=2;r1<=(N+N);r1++){
gotoxy(c1,r1);
cprintf("%c",179);
}
gotoxy(c1,1);
printf("%c",194);
gotoxy(c1,(N+(N+1)));
printf("%c",193);
/*armo la Å entre las lineas que se cruzan*/
for(r2=3;r2<=(N+N);r2+=2){
gotoxy(c1,r2);
cprintf("%c",197);
}
}
gotoxy(2,2);
printf ("135");
getch();
}
saludos
mjesun
Miembro activo
Mensajes: 56
Re: Realización De Cuadrícula.
«
Respuesta #5 en:
Jueves 23 de Agosto de 2007, 02:15 »
0
hola!
creo que quedaria mucho mas elegante si primero generases dos o tres arrays, en funcion de cantcar con el texto a postear. por ejemplo
STR1 = '| | | |';
STR2 = '+---+--+---+';
STR3 = '---------------';
despues mediante un unico bucle, podrias irlos imprimiendo.. primero STR3, despues una combinación de STR1 y STR2, y finalmente STR3...
si te interesa la idea dimelo, y te la aclaro mas a fondo.
un saludo, miguel.
aarias
Nuevo Miembro
Mensajes: 4
Re: Realización De Cuadrícula.
«
Respuesta #6 en:
Jueves 23 de Agosto de 2007, 16:12 »
0
Hola Miguel, claro que me interesa tu solucion del problema. Quizás me olvidé yo de aclarar, este "programilla" va a ser un procedimiento dentro de un sistema más grande, entonces la idea del cantcar es que sea un parámetro que me lo pasan desde el main, lo unico que hace esta constante es delimitar el tamaño máximo que entra en cada cuadrado, es decir cantcar = 1 entran cifras de 1 digito, cantcar=2 entran cifras de 2 digitos, etc, etc.
Por lo que hoy por hoy preciso esta constante, pero si se te ocurre de una mejor forma arriba me viene genial.
saludos ,
Alvaro.
mjesun
Miembro activo
Mensajes: 56
Re: Realización De Cuadrícula.
«
Respuesta #7 en:
Jueves 23 de Agosto de 2007, 16:26 »
0
hola aarias,
suena a sudoku
a ver.. me explico mejor xq creo qe no lo he conseguido. supongamos que la rejilla es de 3 * 3. entonces, se definen 3 o 4 strings que contienen unas cadenas a repetir. por ejemplo, para la primera de todas:
unsigned char *str1[3 * (cantcar+1) + 1];
Código: Text
str1[0] = 195;
for (i = 1; i < 3 * (cantcar+1) - 2; i++) {
if (i % cantcar) {
str[i] = 196;
} else {
str[i] = 197;
}
}
str1[i] = 180;
algo asi... no se si me he explicado... la cuestion es generar unos arrays de caracteres, que luego puedas imprimir uno detras de otro, seguidos. de hecho, se me acaba de ocurrir, que podrias implementar un código como ese a nivel general... es decir:
una funcion a la que tu le pases: el puntero al buffer, el primer carácter, el carácter intermedio y el caracter delimitador, y finalmente el último carácter. de esta manera, las tres líneas se generarían con una misma función.
creo que sigue siendo confuso, si no me explico bien dilo!!
un saludo
, miguel
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Realización De Cuadrícula.