/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

GRAFICADOR DE FUNCIONES CON MATRIZ

 
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
manus



Registrado: 12 Nov 2010
Mensajes: 2

MensajePublicado: 22/06/2011 7:53 pm
Título: GRAFICADOR DE FUNCIONES CON MATRIZ

Hola a todos y desde ya les doy las gracias.

Inicie este programa por curiocidad y ya creo q es personal, en sistesis es, un graficador de funciones utilizando una matriz bidimencional.

Tengo problemas al momento de subir la funcion, cuando se imprime, se imprime como un plano cartesiano pero con el eje "y" invertido.

ejem: quiero subir esta funcion y=4x+2

pense q como la matriz es asi matriz[algo][algo]

[algo] [algo] son sus pocisiones entonces hay q llevar la funcion en parametricas y no me funciono: matriz[4*i+2][i] y no funka, solo pude graficar la funcion identidad. con matriz[i][i].

Espero una ayuda, gracias.
este es el codigo:


#include<stdio.h>
#define N 150

int main (void)
{
int matriz[N][N]; //esto es para graficar la funcion en una matriz
int i,j; //para recorrer la matriz

for(i=0;i<N;i++) //esto para poner en cero toda la matriz
for(j=0;j<N;j++) //por alguna razon me tira un warning cuando: matriz[N][N]={0};
matriz[i][j]=0;

/****************************************************/

for(i=0;i<N;i++) //esto es una la funcion identidad con el eje Y invertido
matriz[i][i]=1; //ACA ES EL PROBLEMA

/***************************************************/

for(i=0;i<N;i++) //para imprimir
{
for(j=0;j<N;j++)
{
printf("%d",matriz[i][j]);
}
printf("\n");
}
return 0;
}
[/b]
_________________
tengo sed de conocimiento, y quiero aprender con ud o aprender de ud y seguir un proceso de progreso intelectual, analitico, Esencialmente Quiero diferenciarme de los demas por el conocimiento
Volver arriba
rir3760



Registrado: 01 Oct 2004
Mensajes: 7516
Ubicación: Mexico

MensajePublicado: 23/06/2011 4:30 pm
Título:

Un problema con las dimensiones de la matriz, al ser de 150x150 vas a tener problemas imprimiendola en una consola ya que usualmente sus dimensiones son de 25x80. Por el momento habría que utilizar un array mas pequeño.

Para inicializar a cero un array de arrays debes indicar el primer elemento del primer array de esta forma:
Código:
int matriz[N][N] = {{0}};


Y para graficar el eje Y de forma correcta basta con imprimir las filas de matriz empezando por la ultima y terminando con la primera. Tu programa modificado:
Código:
#include <stdio.h>

#define N  20

int main (void)
{
   int matriz[N][N] = {{0}};
   int i;
   int j;
   
   for (i = 0; i < N; i++)
      matriz[i][i] = 1;
   
   i = N;
   while (i-- > 0){
      for (j = 0; j < N; j++)
         printf(" %d", matriz[i][j]);
     
      putchar('\n');
   }
   
   return 0;
}


En cuanto a "matriz[4*i+2][i]" supongo es algo que eliminaste del programa.

Un saludo
_________________
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Volver arriba
manus



Registrado: 12 Nov 2010
Mensajes: 2

MensajePublicado: 24/06/2011 1:02 pm
Título: Graficador mejorado

gracias a rir3760, pude continuar.

Bueno aposte un poco mas y dibuje la funcion modulo, aqui les dejo el codigo, y si tiene quieren agregar mas cosas, republiquenla para compartir el codigo y capas con mucha voluntad, sea un graficador decente en c con arrays,

Cualquier sujerencia o mejora o temas q podrian ayudarme a mejorarlo, agradesco, ya que recien comienzo en lenguaje c


Código:

#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#define N 48

int main (void)
{
   int matriz[N][N]={{0}};   //para inicializar en cero todo el array
   int i,j,y,x,b;      //para recorrer en array

   for(i=0;i<N;i++)
   {         //ecuacion de forma parametrica   
      y=abs(i-24);   //aca van las funcion en este caso es {(y=2i);(x=i)}
      x=i;   
      if(y<N)      //este if es para q no de valores fuera del array
         matriz[y][x]=1;
   }   
   
   
   i=N;                  //iguala a N
   while (i-- > 0)               //i deciende hasta q se acerce a cero
   {
         for (j = 0; j < N; j++)         //N veces elbucle
            printf(" %d", matriz[i][j]);      //jajaja que groso
     
            printf("\n");
   }
return 0;
}





_________________
tengo sed de conocimiento, y quiero aprender con ud o aprender de ud y seguir un proceso de progreso intelectual, analitico, Esencialmente Quiero diferenciarme de los demas por el conocimiento
Volver arriba
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com