Cambia tema in:  • Kubuntu  • Xubuntu  • Edubuntu  
05 Luglio, 2009, 00:11:08 *
Benvenuto! Accedi o registrati.
Hai dimenticato l'e-mail di attivazione?

Accesso con nome utente, password e durata della sessione
Notizia: È uscito il numero 26 della Newsletter italiana di Ubuntu! Lo trovate qui. Buona lettura... e partecipate al sondaggio!
 
   Indice   Aiuto Regolamento Ricerca Agenda Accedi Registrati  

Guide
Programmazione
Wiki
Programmazione   •   Editor di Testo   •   Linguaggio Bash
Pagine: [1] 2 3 ... 5   Vai giù
  Stampa  
Autore Discussione: [c]utilizzare gnuplot  (Letto 1529 volte)
0 Utenti e 1 Utente non registrato stanno visualizzando questa discussione.
cristian_c
Hero Member
*****
Non Connesso Non Connesso

Messaggi: 3.655

Media messaggi



Mostra profilo
« inserita: 30 Novembre, 2008, 13:04:15 »

ciao,
volevo utilizzare gnuplot in un programma che ho scritto per poter disegnare il grafico della radice con indice intero.
ho installato il programma con synaptic.
Ma ora non so come andare avanti.
Mi potete aiutare?
Registrato

UP! Unreal Project(la resurrezione), il futuro inizia qui
Jabber:cristian_c@jabber.org | Bite vi guarda!
Non riesci a cambiare l'avatar? Allora prova QUI
faustomr
Full Member
***
Non Connesso Non Connesso

Sesso: Maschio
Messaggi: 445

Media messaggi



Mostra profilo
« Risposta #1 inserita: 30 Novembre, 2008, 23:13:35 »

Ciao.
Dunque, la mia situazione è la seguente: uso gnuplot per un programma non scritto da me, uso xmgrace per programmi scritti da me. Cosa ti serve sapere di preciso?
Registrato

2 cose sono infinite: l'Universo e la stupidità umana, ma riguardo l'Universo ho ancora qualche dubbio.
Non credo riuscirai a battermi, ma puoi provarci.. http://huhuhaha2.labrute.fr/
cristian_c
Hero Member
*****
Non Connesso Non Connesso

Messaggi: 3655

Media messaggi



Mostra profilo
« Risposta #2 inserita: 01 Dicembre, 2008, 00:06:27 »

vorrei chiamare in causa gnuplot nel mio programma per chiamarlo e disegnare il grafico della radice.
Se vuoi posto il codice del programma se puo essere utile.
Registrato

UP! Unreal Project(la resurrezione), il futuro inizia qui
Jabber:cristian_c@jabber.org | Bite vi guarda!
Non riesci a cambiare l'avatar? Allora prova QUI
faustomr
Full Member
***
Non Connesso Non Connesso

Sesso: Maschio
Messaggi: 445

Media messaggi



Mostra profilo
« Risposta #3 inserita: 01 Dicembre, 2008, 17:13:13 »

Se è in fortran ok, posso dargli un'occhiata. Se è in C invece, purtroppo non conosco questo linguaggio.
Registrato

2 cose sono infinite: l'Universo e la stupidità umana, ma riguardo l'Universo ho ancora qualche dubbio.
Non credo riuscirai a battermi, ma puoi provarci.. http://huhuhaha2.labrute.fr/
cristian_c
Hero Member
*****
Non Connesso Non Connesso

Messaggi: 3655

Media messaggi



Mostra profilo
« Risposta #4 inserita: 01 Dicembre, 2008, 17:16:32 »

purtroppo è in c. Ti ringrazio comunque, ciao!  Cheesy
Registrato

UP! Unreal Project(la resurrezione), il futuro inizia qui
Jabber:cristian_c@jabber.org | Bite vi guarda!
Non riesci a cambiare l'avatar? Allora prova QUI
faustomr
Full Member
***
Non Connesso Non Connesso

Sesso: Maschio
Messaggi: 445

Media messaggi



Mostra profilo
« Risposta #5 inserita: 01 Dicembre, 2008, 17:30:52 »

purtroppo è in c. Ti ringrazio comunque, ciao!  Cheesy

Mi dispiace.. Si programma troppo poco in fortran   Shocked
Comunque, credo che tu possa far scrivere i tuoi valori in un file, e dire e gnuplot di leggere il file. In ogni caso, in rete puoi trovare la guida di gnuplot. Per farti un'idea, invece, un "man gnuplot" è più che sufficiente.
Ciao
Registrato

2 cose sono infinite: l'Universo e la stupidità umana, ma riguardo l'Universo ho ancora qualche dubbio.
Non credo riuscirai a battermi, ma puoi provarci.. http://huhuhaha2.labrute.fr/
cristian_c
Hero Member
*****
Non Connesso Non Connesso

Messaggi: 3655

Media messaggi



Mostra profilo
« Risposta #6 inserita: 01 Dicembre, 2008, 19:34:52 »

ciao, ho letto la pagina del man fino in fondo, ma ancora non ho capito come usare il programma in un sorgente c  Roll Eyes

Purtroppo non sono mai stato alle prese con una cosa di questo genere. Spero che mi scusi.  Smiley
Registrato

UP! Unreal Project(la resurrezione), il futuro inizia qui
Jabber:cristian_c@jabber.org | Bite vi guarda!
Non riesci a cambiare l'avatar? Allora prova QUI
faustomr
Full Member
***
Non Connesso Non Connesso

Sesso: Maschio
Messaggi: 445

Media messaggi



Mostra profilo
« Risposta #7 inserita: 01 Dicembre, 2008, 20:44:08 »

Scherzi? Scusami tu se non ti sono di aiuto! Mi sono appena accorto che il man di gnuplot non è proprio utile e il --help non funziona.. In ufficio uso opensuse e il man di gnuplot è esaustivo. Se conosci qualcuno che usa opensuse puoi chiedere di installare gnuplot e..non so..stampare il man..
Registrato

2 cose sono infinite: l'Universo e la stupidità umana, ma riguardo l'Universo ho ancora qualche dubbio.
Non credo riuscirai a battermi, ma puoi provarci.. http://huhuhaha2.labrute.fr/
cristian_c
Hero Member
*****
Non Connesso Non Connesso

Messaggi: 3655

Media messaggi



Mostra profilo
« Risposta #8 inserita: 06 Dicembre, 2008, 10:10:47 »

nelle faq di gnuplot si fa riferimento a questo:
Citazione
5.2 Can I use gnuplot routines for my own programs?

On systems supporting pipes, you can pipe commands to gnuplot from other programs. Many applications with gnuplot as the graphics engine, like Octave (http://www.octave.org), uses this method. This also works from a cgi script to drive gnuplot from a forms-based web page.

John Campbell (jdc@nauvax.ucc.nau.edu) modified a much earlier version of gnuplot (3.5) to be a library of C subroutines callable from a C program. Gnuplot itself has changed radically since then, and we are not aware of any plans to create a similar library based on the current version.

come si fa ad attuare quello che è scritto qui sopra?  Huh?
Registrato

UP! Unreal Project(la resurrezione), il futuro inizia qui
Jabber:cristian_c@jabber.org | Bite vi guarda!
Non riesci a cambiare l'avatar? Allora prova QUI
moretto11
Jr. Member
**
Non Connesso Non Connesso

Messaggi: 217

Media messaggi



Mostra profilo WWW
« Risposta #9 inserita: 06 Dicembre, 2008, 22:15:26 »

per chiamare gnuplot dal tuo programma devi usare la funzione system("gnuplot //cio che devi fare con gnuplot//");
Registrato
cristian_c
Hero Member
*****
Non Connesso Non Connesso

Messaggi: 3655

Media messaggi



Mostra profilo
« Risposta #10 inserita: 06 Dicembre, 2008, 23:25:44 »

Grazie molte moretto,  Cheesy
la funzione "system" è inclusa in stdio.h oppure occorre includere qualche altro file header?

E poi volevo chiedere se al posto di "//cio che devi fare con gnuplot//" devo digitare i comandi del programma gnuplot

Intanto ti ringrazio ancora. È stato fatto un bel passo avanti  Good
Registrato

UP! Unreal Project(la resurrezione), il futuro inizia qui
Jabber:cristian_c@jabber.org | Bite vi guarda!
Non riesci a cambiare l'avatar? Allora prova QUI
cristian_c
Hero Member
*****
Non Connesso Non Connesso

Messaggi: 3655

Media messaggi



Mostra profilo
« Risposta #11 inserita: 05 Gennaio, 2009, 23:47:06 »

ciao,
ho realizzato l'implementazione, ma non funziona  Sad
Ecco il sorgente:
Codice:
#include <stdio.h>
#include <math.h>

#define ERR 0.00001

main()
{
 char *indice[]={"quadrata","cubica","quarta","quinta","sesta","settima","ottava","nona","decima"};
 float a,b,m,x;
 float fm,pot;
 int n,i,res;
 printf("\n// il programma calcola la radice\n// di un qualunque numero reale scelto dall'utente\n// con indice intero immesso da tastiera\n\n");
 do {
     printf("Inserire un indice valido per la radice(un numero intero da 1 a 10): ");
     res=scanf("%d",&n);
     while(getc(stdin)!='\n');
 } while((n<1 || n>10) && (res==0));
 do {
     printf("Inserire un valore reale di cui calcolare la radice: ");
     res=scanf("%f",&x);
     while(getc(stdin)!='\n');
 } while(res==0);
 if (n%2==0 && x<0) printf("\nil valore inserito non è valido poichè non fa parte dell'insieme di definizione della radice\n"); 
 else if (n==1) printf("\nla radice prima di %g è %g\n",x,x);
      else if (x==1) printf("\nla radice %s di 1 è 1\n\n",indice[n-2]);
           else {
                 if (x>1) {
                     a=1; b=x;
                 }
                 else if (x<-1) {
                          a=x; b=-1;
                      }
                      else {
                            a=-1; b=1;
                      }
                 do {
                     m=(a+b)/2;
                     pot=m;
                     for(i=1;i<n;i++) pot*=m;
                     fm=pot-x;
                     if (fm!=0) {
                         if (fm>0) b=m;
                         else a=m;
                     }
                 } while (fabs(fm)>ERR);   
                 printf("\nla radice %s di %g è %g\n\n",indice[n-2],x,m);                     
           }
 if (1 <= n < 11)
     system("gnuplot plot x**(1/n)");
}


ed ecco l'output:
Codice:
cristiancozzolino@cristiancozzolino-laptop:~/programmazione$ ./radice
// il programma calcola la radice
// di un qualunque numero reale scelto dall'utente
// con indice intero immesso da tastiera

Inserire un indice valido per la radice(un numero intero da 1 a 10): 3
Inserire un valore reale di cui calcolare la radice: 45

la radice cubica di 45 è 3.55689

sh: Syntax error: "(" unexpected
cristiancozzolino@cristiancozzolino-laptop:~/programmazione$

mi sapete spiegare come mai non funziona?
 Roll Eyes Huh? Undecided
Registrato

UP! Unreal Project(la resurrezione), il futuro inizia qui
Jabber:cristian_c@jabber.org | Bite vi guarda!
Non riesci a cambiare l'avatar? Allora prova QUI
cristian_c
Hero Member
*****
Non Connesso Non Connesso

Messaggi: 3655

Media messaggi



Mostra profilo
« Risposta #12 inserita: 15 Gennaio, 2009, 22:43:26 »

se modifico l'ultima istruzione così:
Codice:
system("gnuplot plot 'x**(1/n)'")
ricevo in output:
Codice:
Cannot open load file 'plot'
line 0: util.c: No such file or directory

Avete un suggerimento perchè funzioni?

E poi sarebbe bello sapere come integrare gnuplot nel programma. Cioè se io voglio che appaia e rimanga fissa la finestra di gnuplot come posso fare?
 Roll Eyes
Registrato

UP! Unreal Project(la resurrezione), il futuro inizia qui
Jabber:cristian_c@jabber.org | Bite vi guarda!
Non riesci a cambiare l'avatar? Allora prova QUI
Zoff
Hero Member
*****
Non Connesso Non Connesso

Sesso: Maschio
Messaggi: 5.651

Media messaggi


Ubuntu user #24913 :D :D :D Linux user #471539


Mostra profilo WWW
« Risposta #13 inserita: 16 Gennaio, 2009, 11:18:20 »

se modifico l'ultima istruzione così:
Codice:
system("gnuplot plot 'x**(1/n)'")
ricevo in output:
Codice:
Cannot open load file 'plot'
line 0: util.c: No such file or directory

Avete un suggerimento perchè funzioni?

E poi sarebbe bello sapere come integrare gnuplot nel programma. Cioè se io voglio che appaia e rimanga fissa la finestra di gnuplot come posso fare?
 Roll Eyes
controlla bene nel manuale... Quel comando in realtà non funziona neanche nel terminale...
Registrato

"Real programmers always confuse Halloween and Christmas 'cause 31oct = 25dec"
Let him who hath understanding reckon the number of the beast for it is a human number its number is rw-rw-rw-
cristian_c
Hero Member
*****
Non Connesso Non Connesso

Messaggi: 3655

Media messaggi



Mostra profilo
« Risposta #14 inserita: 17 Gennaio, 2009, 16:33:46 »

ciao, zoff, hai fatto un grosso errore a rispondere al topic. Adesso ti perseguiterà per il resto dei tuoi giorni!  Tongue (scherzo  Cheesy )

Citazione
controlla bene nel manuale... Quel comando in realtà non funziona neanche nel terminale...
è vero!  Yes Ho provato. Chissà come mai...  Roll Eyes

Eppure nel manuale è scritto:
Citazione
plot f(x)
Citazione
Notiamo per inciso che per tracciare il grafico di una funzione, gnuplot ci sonsente di utilizzare
una sintassi pi` semplificata, ` infatti possibile evitare di definire preventivamente una funzione
e di scriverne la formula dopo il comando splot.
Registrato

UP! Unreal Project(la resurrezione), il futuro inizia qui
Jabber:cristian_c@jabber.org | Bite vi guarda!
Non riesci a cambiare l'avatar? Allora prova QUI
Zoff
Hero Member
*****
Non Connesso Non Connesso

Sesso: Maschio
Messaggi: 5651

Media messaggi


Ubuntu user #24913 :D :D :D Linux user #471539


Mostra profilo WWW
« Risposta #15 inserita: 17 Gennaio, 2009, 19:17:19 »

ciao, zoff, hai fatto un grosso errore a rispondere al topic. Adesso ti perseguiterà per il resto dei tuoi giorni!  Tongue (scherzo  Cheesy )

Citazione
controlla bene nel manuale... Quel comando in realtà non funziona neanche nel terminale...
è vero!  Yes Ho provato. Chissà come mai...  Roll Eyes

Eppure nel manuale è scritto:
Citazione
plot f(x)
Citazione
Notiamo per inciso che per tracciare il grafico di una funzione, gnuplot ci sonsente di utilizzare
una sintassi pi` semplificata, ` infatti possibile evitare di definire preventivamente una funzione
e di scriverne la formula dopo il comando splot.
Infatit il manuale è corretto...
Devi prima avviare una sessione gnuplot e poi dare quel comando:
Codice:
root@root# gnuplot
gnuplot> plot x**2
Registrato

"Real programmers always confuse Halloween and Christmas 'cause 31oct = 25dec"
Let him who hath understanding reckon the number of the beast for it is a human number its number is rw-rw-rw-
cristian_c
Hero Member
*****
Non Connesso Non Connesso

Messaggi: 3655

Media messaggi



Mostra profilo
« Risposta #16 inserita: 17 Gennaio, 2009, 19:31:15 »

Infatit il manuale è corretto...
Devi prima avviare una sessione gnuplot e poi dare quel comando:
Codice:
root@root# gnuplot
gnuplot> plot x**2
e come faccio allora con la funzione system?  Roll Eyes
Registrato

UP! Unreal Project(la resurrezione), il futuro inizia qui
Jabber:cristian_c@jabber.org | Bite vi guarda!
Non riesci a cambiare l'avatar? Allora prova QUI
Zoff
Hero Member
*****
Non Connesso Non Connesso

Sesso: Maschio
Messaggi: 5651

Media messaggi


Ubuntu user #24913 :D :D :D Linux user #471539


Mostra profilo WWW
« Risposta #17 inserita: 17 Gennaio, 2009, 19:37:05 »

Infatit il manuale è corretto...
Devi prima avviare una sessione gnuplot e poi dare quel comando:
Codice:
root@root# gnuplot
gnuplot> plot x**2
e come faccio allora con la funzione system?  Roll Eyes
eh bella domanda...
Dicevo di leggere il manuale proprio per quello...
Registrato

"Real programmers always confuse Halloween and Christmas 'cause 31oct = 25dec"
Let him who hath understanding reckon the number of the beast for it is a human number its number is rw-rw-rw-
cristian_c
Hero Member
*****
Non Connesso Non Connesso

Messaggi: 3655

Media messaggi



Mostra profilo
« Risposta #18 inserita: 17 Gennaio, 2009, 20:17:09 »

Citazione
Dicevo di leggere il manuale proprio per quello...
ma stai parlando del manuale di gnuplot?  Roll Eyes
Perche se è così, non si trova chiaramente nulla su system, in quanto essa è una funzione del c  Wink
Registrato

UP! Unreal Project(la resurrezione), il futuro inizia qui
Jabber:cristian_c@jabber.org | Bite vi guarda!
Non riesci a cambiare l'avatar? Allora prova QUI
Zoff
Hero Member
*****
Non Connesso Non Connesso

Sesso: Maschio
Messaggi: 5651

Media messaggi


Ubuntu user #24913 :D :D :D Linux user #471539


Mostra profilo WWW
« Risposta #19 inserita: 17 Gennaio, 2009, 20:19:33 »

Citazione
Dicevo di leggere il manuale proprio per quello...
ma stai parlando del manuale di gnuplot?  Roll Eyes
Perche se è così, non si trova chiaramente nulla su system, in quanto essa è una funzione del c  Wink
sto parlando di quello perché "in teoria" dovrebbe spiegare anche come usarlo inline senza aprire una sessione...
Registrato

"Real programmers always confuse Halloween and Christmas 'cause 31oct = 25dec"
Let him who hath understanding reckon the number of the beast for it is a human number its number is rw-rw-rw-
Pagine: [1] 2 3 ... 5   Vai su
  Stampa  
 
Vai a: