| Ver tema anterior :: Ver siguiente tema | | Autor | Mensaje |
|---|
manus
Registrado: 12 Nov 2010 Mensajes: 2
| Publicado: 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
| Publicado: 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
| Publicado: 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 | |  | | |
| No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas
|
|
| |