freestuff.gr αρχική σελίδα
 FAQFAQ    ΑναζήτησηΑναζήτηση   Λίστα ΜελώνΛίστα Μελών   Ομάδες ΜελώνΟμάδες Μελών   <b>Εγγραφή Μέλους</b>Εγγραφή Μέλους 
 ΠροφίλΠροφίλ   Επιλογές μέλους Επιλογές   Τα bookmarks μου Τα bookmarks μου   Προσωπικά μηνύματαΠροσωπικά μηνύματα 
  διαφήμιση  

Καλώς ήρθατε στο forum μας! Για να συμμετάσχετε στις συζητήσεις θα πρέπει να είσαστε μέλος. Γίνετε μέλος τώρα!.

Συμβολοσυναρτήσεις σε Array


 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » Γλώσσες Προγραμματισμού » C, C++
Moderators:  Super-Moderators, WebDev Moderators
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [3 Μηνύματα]       Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
ΑποστολέαςΜήνυμα
tonik


Μέλος από: 17 Μαη 2007
Μηνύματα: 32

View users profile
ΜήνυμαΣτις: 17 Μαη 2007 21:10    Θέμα: Συμβολοσυναρτήσεις σε Array Απάντηση με παράθεση  Mark this post and the followings unread

Γεια σας! Μετα από επίπονες προσπάθειες αποφάσισα να γράψω σχετικά με ένα πρόβλημα που αντιμετωπιζω στη C.

Θέλω να φτιάξω έναν πίνακα ο οποίος θα περιέχει συμβολοσυναρτήσεις.

Για παράδειγμα:

Έστω 1/2*pow(a,2)*(s+1)
1/5pow(s,4)*(a+2s)

πως μπορώ να έχω ένα πίνακα που αντι για αριθμούς ή χαρακτήρες το κάθε στοιχείο αυτού να είναι κάθε μία από τις παραπάνω συναρτήσεις;

π.χ. matrix[0]=1/2*pow(a,2)*(s+1)
matrix[1]=1/5pow(s,4)*(a+2s)

H βοηθειά σας θα είναι πολύτιμη για μένα.Ευχαριστώ!
dva_dev
Script Master

Μέλος από: 16 Σεπ 2005
Μηνύματα: 256+

View users profile Visit posters website
blog deviantART facebook linkedin 
ΜήνυμαΣτις: 17 Μαη 2007 23:58    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Ρίξε μια ματιά σε function pointers

google
How to Use Arrays of Function Pointers

Τα a,s τί τύπου είναι; Αν είναι int αυτό που ζητάς θα μπορούσε να γίνει κάπως έτσι:
κώδικας:

#include <stdio.h>
#include <stdlib.h>

double func1(int a, int s);
double func2(int a, int s);
...
double funcN(int a, int s);

typedef double (*FUNCTYPE)(int, int);

FUNCTYPE matrix[] = {
   func1,
   func2,
   ...,
   funcN
};

int main(int argc, char**argv)
{
   int a=2;
   int b=3;
   double r1 = matrix[0](a,b);
   double r2 = matrix[1](a,b);
   ...
   return 0;
}

double func1(int a, int s)
{
   return ... //Η 1η πράξη
}

double func2(int a, int s)
{
   return ... //Η 2η πράξη
}

...

double funcN(int a, int s)
{
   return ... //Η Nη πράξη
}

tonik


Μέλος από: 17 Μαη 2007
Μηνύματα: 32

View users profile
ΜήνυμαΣτις: 20 Μαη 2007 19:46    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Ευχαριστώ!
τα a,s βέβαια δεν θα είναι integer αλλά double.
δεν πιστεύω να αλλάζει σημαντικά ο κώδικας;
Εμφάνιση Μηνυμάτων:   
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [3 Μηνύματα] Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » Γλώσσες Προγραμματισμού » C, C++
Τώρα είναι 28 Μαρ 2017 06:19 | All times are UTC + 2


Email This Page to Someone! add to Favorites

     Powered by p h p B B © 2001,2005 p h p B B Group
Για άμεση επικοινωνία με τον διαχειριστή του freestuff.gr στο email: freestuff.gr(παπάκι)gmail.com


Copyright © 1999-2013 Freestuff.gr All Rights Reserved  
Version Aegean, designed by N. Tsaganos