Folosind pointeri pentru a lucra cu funcții

Obiectiv: dezvoltarea abilităților practice în scrierea programelor cu funcții și utilizarea pointerilor pentru a lucra cu funcții.

[Const]<тип>*<имя указателя>

Un exemplu de folosire a pointerilor pentru diferite tipuri de date ca parametri ai unei funcții.







int funct (float *, int *); // transferând indicii la tipul de tip float și tipul int

void loadMy (Myst * pmy); // trecând pointerul la tipul de structuri MUST.

Exemplul declară o structură de tip Myst și funcția loadMy () este declarată. Funcția are un parametru formal de parametru pmy pentru a tasta Myst.

Declare pointer pfunc pe o funcție care necesită doi parametri de tip int și nu returnează o valoare (void). Trebuie să creeze tipurile și numărul de parametri, precum și tipul valorii returnate. Pentru a folosi indicatorul, declarăm o funcție

și o sună

Indică parametrii unei funcții

Indicatorii sunt folosiți pe scară largă atunci când trec argumentele unei funcții și dintr-o funcție, creând un flux de date bidirecțional între funcțiile apelate și cele de apelare.

Pentru a transmite argumente unei funcții, utilizați:

1 Indică tipurile de date simple ca parametri ai unei funcții.

2 Indicatori la matrice (nu pot fi trecuți prin valoare).

3 Indicatori la tipurile enumerate ca parametri funcționali.

4 Indicatori la structuri și uniuni ca parametri ai unei funcții.

5 indicatori de funcții (nu pot fi trecuți prin valoare).

Inițializați indicatorul funcției:

Sintaxa generală pentru a apela o funcție folosind un pointer este:

a = (* căutare) (pstr); // apela funcția linesearch () cu un pointer.

Dezvoltat Petrov Yu.V.

Declarați funcțiile specificate și un indicator la o funcție de acest tip,

îndepliniți definiția funcțiilor. Declare matrice și indicatori

pe ele, inițializați conform celor specificate

dependențele și utilizarea indicatorilor. Pentru unul dintre

alocați memoria în heap. Determinați valorile elementelor

pe ecran. Apelați funcțiile utilizând

din indice. Rezultati rezultatele functiilor pe ecran. * /

const int kx = 6, ky = 6, kw = 8, a1 = 3, a2 = 9,

b1 = 6, b2 = 5, c1 = 6, c2 = 10;

// Calculați suma elementelor negative ale matricei

float summa (int, float *);







// Evaluează produsul elementelor pozitive ale unei matrice

float prois (int, float *);

float y [ky + 2]; // + 2 elemente ale matricei pentru stocare

// rezultatele funcțiilor

float * px = float nou [kx + 2]; // Alocarea memoriei pentru o matrice din "heap"

pentru (i = 0; i

printf ("x [.] =% 6.2f% p \ n", i, * px, px);

gotoxi (25,1); printf ("Matricea y [] \ n");

pentru (i = 0; i

px- = kx; // Setați pointerul la elementul zero al matricei

ps = summa; // Legați un pointer cu suma ()

printf ("Sumă: x [.] =% 6.2f", kx, (* ps) (kx, px));

printf ("Sumă: y [.] =% 6.2f \ n", ky, (* ps) (ky, y));

ps = prois; // Asociați un pointer cu funcția prois ()

printf ("Produs: x [.] =% 8.2f", kx + 1, (* ps) (kx, px));

printf ("Produs: y [.] =% 8.2f \ n", ky + 1, (* ps) (ky, y));

ștergeți [] px; // Eliberarea memoriei alocate în "heap" pentru matrice

float summa (int kol, float * Arr) // Definiția funcției

pentru (int i = 0; i

float prois (int kol, float * Arr) // Definirea funcției

pentru (int i = 0; i0) s * = Arr [i];

Array x [] Array y []

x [0] = -45,00 0AD0 y [0] = 0,03

x [1] = -33,00 0AD4 y [1] = 5,55

x [2] = -15,00 0AD8 y [2] = -4,29

x [3] = 9,00 0ADC y [3] = -1,00

x [4] = 39,00 0AE0 y [4] = 7,78

x [5] = 75,00 0AE4 y [5] = 1,74

Suma: x [6] = -93.00 Suma: y [6] = -5.29

Lucrare: x [7] = 26325.00 Lucrare: y [7] = 2.52 * /

1 Studiu de informații teoretice.

2 În conformitate cu sarcina individuală pentru lucrarea de laborator nr. 7. dezvolta un algoritm.

3 Declarați indicatorii funcției. Utilizați pointerii pentru a apela funcțiile corespunzătoare. Utilizați instrucțiunea switch pentru a selecta varianta funcției.

4 Dezvoltați și tastați programul de pe computer, remediați erorile.

5 Obțineți rezultatul.

6 Consultați raportul.

7 Pregătiți-vă pentru protecția muncii de laborator prin examinarea întrebărilor de control.

Sarcina individuală la lucrările de laborator №16

Creați un program care utilizează apelurile funcționale cu indicii. Sarcinile individuale sunt enumerate în Tabelul 16.1.

Tabelul 16.1 - sarcini individuale

Cerințele pentru conținutul raportului sunt prezentate în lucrarea de laborator nr. 1.

Întrebări de control pentru pregătire și muncă independentă

1 Pot folosi indicatori pentru a trimite date către funcții?

2 Ce tipuri de date pot fi transmise unei funcții utilizând indicii?

3 Este posibilă schimbarea valorilor datelor într-o funcție atunci când se utilizează pointeri atunci când există un modificator const.

4 Pot reveni indicii din funcții?

5 Cum declar un indicator pentru o funcție?

6 Pot folosi pointeri pentru a lucra cu funcții de diferite tipuri?

7 Ce tip are numele funcției?

8 Cum asociaz un indicator cu o anumită funcție?

9 Cum folosesc pointerii pentru a apela o funcție?

10 Cum se limitează accesul la membrii clasei?

11 Cum să conectați și să utilizați un indicator al funcției?

12 Cum se apelează o funcție utilizând un indicator?

Lucrare de laborator №17

Folosind funcțiile de înaltă și joasă pentru a lucra cu
fluxuri (fișiere)

Scopul lucrării: să înveți să folosești funcțiile de nivel ridicat și scăzut atunci când lucrezi cu fișiere.







Articole similare

Trimiteți-le prietenilor: