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; 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 Scopul lucrării: să înveți să folosești funcțiile de nivel ridicat și scăzut atunci când lucrezi cu fișiere.
fluxuri (fișiere)Articole similare