Alguien puede ayudarme con este programa ? en C (Linux)

Iniciado por tadprox, 2 Junio 2013, 17:04 PM

0 Miembros y 5 Visitantes están viendo este tema.

tadprox

Cita de: pacoperico en  3 Junio 2013, 12:15 PM
Eso ya es cosa tuya, aqui nadie va a hacerte la tarea. Ya tienes lo basico de como poder graficar una funcion en modo consola, solo has de usar la funcion printf() y ponerle las condiciones necesarias para que te dibuje en pantalla lo que tu quieras.

Quieres por ejemplo que de cada cinco lineas horizontales, una de ellas este compuesta por el simbolo '-' y las cuatro restantes por espacios en blanco ' ', pues usa if y pones en su condicion todo esto ultimo.

Ok pero, no es solo graficar tal cual como esta en la imagen, porque ademas, deberia tener estas otras 2 opciones

Para la salida se debe poder definir los valores mínimos y máximo de los ejes, intervalos de la rejilla. Pero paquete puede realizar algunos de estos cálculos de forma automática.
- Se podría trabajar con dos ejes en la Y, para lo cual se definir una serie se le puede asociar con cuál de los dos ejes está trabajando.

Y claro, podria hacerlo con un simple printf y las condiciones que me dices, pero como adaptarlo segun esas 2 cosas, que tambien deberia poder hacer? Algun consejo? Y no estoy pidiendo que me lo hagan, sino que me aconsejen, no malinterpretes, no quiero que me lo hagan, solo que me ayuden a entender, y ayudarme...Ayudar no es hacer todo completo.

Saludos!

RyogiShiki

Si estás trabajando en Linux, talvés quieras investigar un poco sobre als librerías ncurses. Seguramente te facilitarán muchísimo la tarea.
Documentación: ncurses

Saludos


leosansan

#12
Cita de: tadprox en  2 Junio 2013, 17:04 PM

Recien lo que hice fue una funcion Gotoxy aqui en Debian (Linux) que me permite posicionar el texto o algo donde yo quiera.. Pero no se como graficar esas funciones asi de esa forma


Pues te muestro una imagen del seno entre 0 y 2Pi:



mejorable eligiendo más adecuadamente los valores de i. Pero de muestra creo que te sirve.

Por cierto, el código de gotoxy es para windows. Tan solo tienes que adaptar tu Goto de linux y el dibujo en sí, con el bucle for, te sirve igual:


Código (cpp) [Seleccionar]
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <windows.h>

int main(){
   float i=0,j=0,seno[100]={0},temp=0;
   int x=0,y=0,cont=0;
   for (i=0;i<=2*3.14165;i+=0.10)
   {
       x=(int)(i*10);
       y=(int)(10-sin (i)*10);
       gotoxy (x,y);
       printf ("*");
   }
   gotoxy (0,20);
   system ("pause");
   return 0;
}
int gotoxy(int x, int y)
{
  COORD coord;
  HANDLE h_stdout;
  coord.X = x;
  coord.Y = y;
  if ((h_stdout = GetStdHandle(STD_OUTPUT_HANDLE)) == INVALID_HANDLE_VALUE)
     return 0;
  if (SetConsoleCursorPosition(h_stdout, coord) == 0)
     return 0;
  return 1;
}



Saluditos! .... ..

amchacon

Estoy fascinado Leo, en cada post me sorprendes con algo nuevo  ;-)

Creo que podríamos considerarte el amo del lenguaje C.
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

leosansan

#14

Una ligera mejora:



Código (cpp) [Seleccionar]
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <windows.h>

int main(){
   system("mode 110,40");
   float i=0,j=0,seno[100]={0},temp=0;
   int x=0,y=0,cont=0;
   for (i=0;i<=2*3.14165;i+=0.10)
   {
       x=(int)(i*15);
       y=(int)(15-sin (i)*15);
       gotoxy (x,y+5);
       printf ("*");
       gotoxy (x,20);
       printf ("-");
       gotoxy (0,y+5);
       printf ("|");
   }
   gotoxy (x,20);
       printf ("----> EJE OX");
   gotoxy (0,5);
       printf ("^ EJE OY");
   gotoxy (0,35);
   system ("pause");
   return 0;
}
int gotoxy(int x, int y)
{
  COORD coord;
  HANDLE h_stdout;
  coord.X = x;
  coord.Y = y;
  if ((h_stdout = GetStdHandle(STD_OUTPUT_HANDLE)) == INVALID_HANDLE_VALUE)
     return 0;
  if (SetConsoleCursorPosition(h_stdout, coord) == 0)
     return 0;
  return 1;
}


Saluditos! .... ..

P.D: Penita pena tienes que "estirar" a lo ancho la página  o hacer uso de la barra horizontal de desplazamiento para ver la imagen completa.Bueno, si estas interesado ejecuta el código que, como curiosidad, cambia automáticamente el tamaño de la consola para que se vea la curva entera  :o

P.D:P.D: Es León, no Leo querido colega amchacon .... y gracias por lo dicho por tí, pero no es para tanto, de veras.