Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    8

    [C] Legare un vettore ad una funzione

    Ciao ragazzi,
    spero di riuscire ad essere chiaro nella mia spiegazione.
    Premetto che sono abbastanza inesperto nell'utilizzo del C quindi mi mi scuserete se utilizzerò un linguaggio poco "preciso".

    Quello che mi chiedevo è se è possibile collegare un vettore ad una funzione. Mi spiego:
    se io ho una funzione, intesa a livello matematico, non prettamente a livello di C, composta da 3 variabili per esempio: f(x,y,z).
    E' possibile a questo punto con un vettore, tipo vett[m], identificare la posizione di una variabile nella funzione? Del tipo scrivendo vett[3] io vorrei identificare la variabile z.


    Grazie dell'attenzione.
    Jack

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Non ho capito ... spiega la finalità ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    8
    Ci provo:
    quello che vorrei facesse il mio programma è modificare un valore o più della mia funzione di partenza moltiplicandolo per un certo coefficiente.
    L'unico modo che mi era venuto in mente era fare una cosa del genere (per una funzione con 7 parametri indipendenti):

    prendo i 7 parametri indipendenti della funzione acquisendoli in un vettore v[6];
    scrivo la mia funzione che da in uscita un numero ;
    codice:
    f(v[1],v[2],v[3],v[4],v[5],v[6]);
    H=2;
    for(i=0;i<=5;i++){
                            for(j=i+1;i<=6;i++){
                                                        v[i]=v[i]*H;
                                                        v[j]=v[j]*H;
                                                        ora ricalcolo la funzione f;
                                                        a questo punto continuo a verificare il valore di f ed                                    aggiorno il massimo. 
                                                       }
                          }
    In questo modo il programma tiene fisso i e fa girare j fino a quando non esaurisce tutte le possibilità di combinazione.
    Ora il mio problema è che non riesco a capire se una cosa del genere può funzionare anche a livello di codice. Il mio programma C poi dovrebbe andare in Mathcad, che è per altro l'ambiente dove ho creato la mia funzione.
    Jack

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Intanto, se i parametri sono in un vettore, conviene passare solo il vettore

    f(v)

    Per il resto, scusa, ma ancora non capisco.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    8
    Il programma che cerco dovrebbe prendere una funzione f(x,y,z,t,k,m,n), cioè composta di 7 parametri. A questo punto quello che dovrebbe fare il programma è generare ogni combinazione semplice composta dalle 7 parametri e moltiplicare per un certo coefficiente H tutti i parametri interessati dalla combinazione generata ed infine confrontare il massimo fra tutti i valori assunti dalla f(x,y,z,t,k,m,n) con alcuni parametri moltiplicati per H.

    Per spiegarmi meglio faccio un esempio:
    Prendo una disposizione semplice che genera tutte le combinazioni possibili dei parametri:
    xy,xz,xt,xk,xm,xn,yz,yt,yk,ym,yn,zt,zk,zm,zn,tk,tm ,tn,km,kn,mn
    Queste sono le combinazioni possibili fra i parametri. Il programma dovrebbe prendere una di queste combinazioni alla volta (ma verificarle tutte) e moltiplicare ogni volta quella coppia di parametri per H. Prendendo per esempio "xy" come combinazione, il mio programma dovrebbe moltiplicare x e y per H e calcolare la funzione in questo modo:
    f(x*H,y*H,z,t,k,m,n)
    confrontare il valore calcolato con un massimo preimpostato ed eventualmente aggiornarlo.
    Successivamente ripetere la cosa con "xz", calcolando f(x*H,y,z*H,t,k,m,n) e controllare il valore con il massimo ecc... per tutte le combinazioni.

    Spero di aver fatto di meglio, altrimenti mi ritiro
    Jack

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Penso di aver capito ma mi manca un solo particolare ... la funzione cosa calcola in base ai parametri?

    Ovvero, fissati dei valori dei parametri, cosa ci fa la funzione e cosa restituisce?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    8
    E' una funzione matematica restituisce un valore numerico. Per quanto riguarda l'espressione non posso scrivertela perché riguarda un progetto con l'università; quindi dovrei consultare il mio professore.


    P.s. Grazie mille per il tentativo che stai facendo di capirmi ...
    Jack

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Non l'ho provato, ma un codice simile dovrebbe funzionare ...

    Ho assunto che il max non sia negativo

    codice:
    int actualFunc(int v[])
    {
    	return v[0]+v[1]+v[2]+v[3]+v[4]+v[5]+v[6];
    }
    
    int maxFunc(int v[], int h)
    {
    	int i, j, curr, max=0;
    	int z[7];
    
    	for(i=0; i<6; i++)
    		for(j=i+1; i<7; i++)
    		{
    			memcpy(z, v, sizeof(int)*7);
    
    			z[i] *= h; 
    			z[j] *= h;
    
    			curr = actualFunc(z);
    
    			if(curr>max) max=curr;
    		}
    
    	return max;
    }
    Tu dal main dovrai chiamare la

    maxFunc
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    8
    Benissimo! A parte qualche finezza di linguaggio che non conosco, credo proprio di aver capito. Ora non mi resta che provare ad andare avanti lungo questa corrente di pensiero


    Sei stato gentilissimo e disponibilissimo, ti ringrazio.
    Buona giornata
    Jack

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da Yusuke
    ti ringrazio.
    Di nulla ... purtroppo il titolo mi aveva portato fuori strada ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.