Arrays of pointers to funcții - stadopedia

Ca și variabilele obișnuite, pointerii funcției pot fi combinați în tablouri de indicatori. De exemplu, interpretăm descrierea unei serii de indicatori de funcție:







1) există un obiect cu acest nume

4) despre funcțiile care

5) returnați o valoare dublă.

Pentru a inițializa matricea de indicatori pentru funcții, puteți utiliza numele ambelor funcții standard și cele dezvoltate de utilizator, de exemplu:

dublu f0 (dublu x) / * descrierea funcțiilor * /

dublu f1 (dublu x) / * utilizator * /

Inițializarea unei serii de indicatori de funcții la numele funcțiilor (indicatori constanți):

Accesul la elementele matricei fp se face ca și pentru elementele obișnuite ale matricei, de exemplu:

x = 0,5; / * valoarea argumentului * /

pentru (i = 0; i<3; i++) /* цикл по функциям */

fx = fp [i] (x); / * apela o funcție printr-o serie de pointeri * /

printf ("fx =% f \ n", fx); / * valoarea funcției de ieșire * /

Un exemplu. În problema aproximării funcției, utilizatorul trebuie să specifice mai multe seturi de trei funcții de bază în cadrul setului de funcții oferite de el de a alege, care formează o variantă a funcției aproximative implicate în calcule ulterioare. Prin rezultatele calculelor este posibil să se definească un set de funcții de bază, care, de exemplu, furnizează valoarea minimă a funcției aproximative.

În programul de calcul al valorilor variantelor funcției aproximative, folosim matricea de indicatori duble (* fb [kb]) () pentru funcția

(x) + c [1] * fb [1] (x) + c [2] * fb [2] (x)

unde fb [i] () sunt funcții de bază.

Pentru a selecta funcțiile de bază din setul de funcții de testare, utilizați funcția int select_fb (int).

#define kv 2 / * numărul de opțiuni de testare * /

#define kb 3 / * numărul de funcții de bază * /

dublu f0 (dublu x) / * descrieri de subiecte * /

dublu f1 (dublu x) / * funcții * /

int select_fb (număr int); / * funcția prototip pentru alegerea funcției de bază * /

void principal () / * funcția principală * /

dublu c [] =; / * matricea coeficienților de aproximare * /

double fap, x; / * variabile de lucru * /

int var, i; / * parametrii ciclului * /

clrscr (); / * curățarea ecranului * /

printf ("Selectați 3 funcții de bază de la posibile: \ n"

"0) x 1) x * x 2) 1 / x 3) sin (x) 4) cos (x) 5) exp (x) \ n";







pentru (var = 0; var

pentru (i = 0; i

fb [i] = fptr [select_fb (i)]; / * selectați și fixați indicatorul funcției din spatele funcției de bază * /

printf ("Introduceți un x zero (argumentul funcției):");

/ * Folosind o serie de funcții de bază: * /

pentru (i = 0; i

printf ("Valoarea funcției aproximative fap =% -7.2f \ n", fap);

getch (); / * întârziere ecranul rezultatelor * /

/ * Funcția de selectare a funcției bazei de test din setul dat. * /

int select_fb (număr int)

în timp ce (sel<0 || sel>5) / * Verificarea numărului de zone din afara domeniului * /

scanf (".", sel); / * introduceți numărul funcției de bază * /

return sel; / * returnează numărul funcției selectate * /

Selectați 3 funcții de bază din cele posibile:

0) x 1) x * x 2) 1 / x 3) sin (x) 4) cos (x) 5) exp (x)

Specificați numărul primei funcții de bază (de la 0 la 5): 0

Specificați numărul celei de-a doua funcții de bază (de la 0 la 5): 1

Specificați numărul celei de-a treia funcții de bază (de la 0 la 5): 2

Introduceți un x non-zero (argumentul funcției): 1

Valoarea funcției aproximative fap = 6,00

Specificați numărul primei funcții de bază (de la 0 la 5): 5

Specificați numărul celei de-a doua funcții de bază (de la 0 la 5): 0

Specificați numărul celei de-a treia funcții de bază (de la 0 la 5): 1

Introduceți un x non-zero (argumentul funcției): 1

Valoarea funcției aproximative fap = 7,72

Instrucțiuni generale. 1

Algoritmizarea proceselor de calcul. 1

Programarea asistată de calculator 4

Elemente de bază ale limbajului C. 4

Datele și tipurile acestora. 5

Intrare / ieșire de date. 6

Intrare formatată. 7

Formatată ieșire. 8

Intrare-ieșire neformatată. 9

Consola I / O. 10

Prevederi directe. 12

Expresii și operații. 12

Expresii și operații logice. 14

LUCRĂRILE CU PROCESE DE FABRICARE. 16

Operator de atribuire. 16

Operator condiționat (dacă). 17

Transmiterea operatorilor de control. 20

O declarație goală. 20

Operatorul de alegere (comutator). 21

LUCRĂRILE CU PROCESELE CICLIC. 24

Bucle cu un număr fix de repetări. 24

Declarație ciclu cu o condiție prealabilă (în timp). 24

Întrerupeți ciclul. 25

Cicluri cu un număr necunoscut de repetări. 27

Calcularea secvențelor recurente. 27

Declarare ciclu cu o condiție postcondiționată (do). 28

Buclele brute și organizarea dialogului în cadrul programului. 29

Instrucțiunea ciclu cu parametrul (pentru). 30

Lucrul cu Arrays. 34

Descrierea matricei. 34

Accesul la elementele matrice. 35

Introducerea datelor într-un matrice. 36

Array multidimensionale. 37

Caracterele de caractere. 39

Lucrul cu funcții. 42

Definiția funcției. 43

Apel de funcții. 44

Transmiterea parametrilor funcției. 45

Transferul de date în funcție de valoare. 45

Funcția prototip (șablon). 47

Structura bloc a programului. 48

Descrieri externe ale variabilelor. 51

Programe multimodulare. 51

Proiectul programului. 51

Link-uri externe. 52

Crearea unui program de proiect. 54

Lucrează cu pointeri. 55

Arrays of pointers. 56

Indică pointerul. 59

Un indicator pentru o funcție. 60

Utilizați un pointer la o funcție ca argument. 62

Arrays of pointers function. 63







Articole similare

Trimiteți-le prietenilor: