Prezentarea pe tema: „1 matrice PROGRAM ca parametru oficial subprogram 3 Curs Plan 1.Protsedury și funcții folosind matrice în antetul 2.Descriere rutine ..“ - Transcriere:
1 1 SUBPROGRAMATORI. Array ca un plan de Prelegerea parametrilor formali Subprogramul 3 1. Procedurile și funcțiile folosind matrice în antetul 2. Descrierea subrutine cu matrice 3. Parametrii subrutine cu matrice Lector: Prof. Dr. Ivanchina Emilia Dmitrievna
2 2 1. Proceduri și funcții care utilizează matrice în antet Subrutinele pot conține matrice ca parametri. Parametrii globali sunt obișnuiți pentru toate unitățile de program. Parametrii locali își modifică valorile numai în cadrul acestei unități de program. Descrierea parametrilor din blocul VAR înseamnă că acest grup de parametri este global pentru valorile de intrare și ieșire. Dacă în antet nu există niciun cuvânt de serviciu VAR, valorile parametrilor sunt transmise în interiorul procedurii, dar nu sunt transferate de la programul principal. În cazurile în care parametrii procedurilor și funcțiilor sunt matrice, dimensiunea și mărimea acestor matrice trebuie să fie specificate prin cuvântul de serviciu TYPE. TIP a = matrice [1..3,1..4] de întreg; a - identificator de tip array Următoarele vor descrie exemple de creare a procedurilor și a funcțiilor utilizând arrays în antet.
4 4 Antetul subrutinei arată astfel: FUNCTION FUN (Y: a; var S: real): real; PROCEDURA proc (vd: b1; var md: d1); Pentru a descrie parametrii globali, utilizați cuvântul utilitar var. Lista parametrilor formali este reprezentată de o virgulă în ordinea succesiunii
5 3. Parametrii subprogramelor cu matrice. Procedurile sunt utilizate dacă subprogramul are mai multe rezultate de calcul sau rezultatul este o valoare multidimensională (matrice). Descrierea procedurii este: Procedura (parametrii formali); etichetă; const; tip; var Begin End; Procedura este plasată în programul principal din secțiunea descriere VAR.
6 6 În cazurile în care parametrii procedurilor și funcțiilor sunt matrice, trebuie să specificați dimensiunea și mărimea acestor matrice prin cuvântul de serviciu TYPE. Regula. Tipul oricărui parametru din lista parametrilor formali poate fi un tip declarat anterior. TIP a = matrice [1..10] real; Procedeul S (b: a); Funcția f (c: a): reală;
7 7 Exemplul 1. Compilați programul pentru calculul matricei Z (10). Calculați funcția f (x) ca funcție de subrutină. Calcularea sumei - sub forma unui subprogram - a procedurii.
3, atunci f: = 1 / x altceva f: = 1 + 2xsqr (x) final; "title =" 8 Programul Pro1; tip mas = array [1..10] de real; var x, Z: mas; c, q, S: real; funcția F (x: reală): reală; începe dacă x> 3, apoi f: = 1 / x altceva f: = 1 + 2xsqr (x) final; "class =" link_thumb „> August 8 Programul Pro1; mas type = array [1..10] de reale; var x, Z: mas, c, q, S: real, funcția f (x: real): real; începe dacă x> 3, apoi f: = 1 / x altceva f: = 1 + 2xsqr (x) final; 3 atunci f: = 1 / x altceva f: = 1 + 2xsqr (x) final; "> 3, apoi f: = 1 / x altceva f: = 1 + 2xsqr (x) final;"> 3, apoi f: = 1 / x altfel f: = 1 + 2xsqr (x) end; " title = „8 Programul Pro1; tip mas = array [1..10] real; var x, Z: mas, c, q, S: real, funcția F (x: real): real; începe dacă x> 3 atunci f: = 1 / x altfel f: = 1 + 2xsqr (x) end; ">
3 atunci f: = 1 / x altfel f: = 1 + 2xsqr (x) end; "title =" 8 Programul Pro1; tip mas = array [1..10] de real; var x, Z: mas; c, q, S: real; funcția F (x: reală): reală; începe dacă x> 3 atunci f: = 1 / x altfel f: = 1 + 2xsqr (x) end; ">9 Suma procedurii (x: mas; var S: real); var i: întreg; începe S: = 0; pentru i: = 1 până la 10 nu face S: = S + sqrt (x [i]) sfârșitul;
10 10 BEGIN readln (c, q); pentru i: = 1 la 10 face readln (x [i]) Suma (x, S); pentru i: = 1 la 10 nu începe Z (i): = sqr (f (x [i])) / sin (c) + sqrt (x [i]) / (sqr (S) q); writeln (Z [i]: 10) sfârșit; END.
11 11 Exemplu 2. Creați un program pentru calcularea expresiei.
12 12 Programul ppp; tip m = matrice [1..10] de real; var x, y: m; f: real; i, k: întreg; Suma funcției (a: m; n1, n2, p: întreg): real; var S: adevărat; i: întreg; începe S: = 0; pentru i: = n1 până la n2 nu face S: = S + exp (pln (a [i])); Sumă: = sfârșitul S;
13 13 BEGIN pentru i: = 1 la 8 face readln (x [i]);
14 14 pentru k: = 1 la 10 face citirea (y [k]); se încheie; F: Suma (x, 3.8.2) + Suma (y, 2.10.3); writeln (F =, F: 10) END.
15 15 Exemplul 3. Compuneți o subrutină pentru a determina valoarea maximă. și min. elementul de program maxmin; tip b1 = matrice [1..4,1..3] de real; var i, j. întreg; ymax, ymin: real; y: b1; r1, r2: text;
= xmax apoi xmax: = x [n, k] sfârșit; end; "title =" 16 procedură mm (var x: b1; var Xmax, xmin: real); var n, k: întreg; începe xmax: = x [1,1]; xmin: = x [1,1]; pentru n: = 1 până la 4 face pentru k: = 1 până la 3 se începe dacă x [n, k] = xmax apoi xmax: = x [n, k] capăt; end "; clasa = 1,1], pentru n: = 1 până la 4 face pentru k: = 1 până la 3 se începe dacă x [n, k] = xmax apoi xmax: = x [n, k] final; end; = xmax apoi xmax: = x [n, k] final; end; „> = xmax apoi xmax: = x [n, k] capăt; end; "> = xmax apoi xmax: = x [n, k] final; end;" title = „16 Procedura mm (var x: b1; var Xmax, xmin: real); var n, k: integer; începe xmax: = x [1,1]; xmin: = x [1,1]; pentru n : = 1 până la 4 face pentru k: = 1 până la 3 se începe dacă x [n, k] = xmax apoi Xmax: = x [n, k] final; end; „>
= xmax apoi xmax: = x [n, k] sfârșit; end "; title =" 16 procedură mm (var x: b1; var xmax, xmin: real); var n, k: întreg; începe xmax: = x [1,1]; xmin: = x [1,1]; pentru n: = 1 până la 4 pentru k: = 1 până la 3 nu începe dacă x [n, k] = xmax apoi xmax: = x [n, k] final; end; ">17 17 începe asignați (r1, 'a.dat'); resetați (r1); pentru i: = 1 la 4 nu pentru j: = 1 la 3 nu se citesc (r1, y [i, j]); atribuie (r2, 'b.res'); rescrie (r2); mm (y, ymax, ymin); scrie (r2, ymax, ymin); închide (r2); end.
18 18 Exemplul 4. Creați o subrutină pentru calcularea funcției prin formula Lagrange
19 19 Program lagra; TIPE a = ARRAY [1..4] din REAL; Var x, y: a; i: întreg; x0: real; Funcția lag (x, y: a, x0): reală; Var I, j: întreg; s, p, x0: real); ÎNCEPUT S: = 0; PENTRU i: = 1 până la 4 începe P: = 1; FORMULA j: = 1 până la 4 dacă IF i TH THEN P: = P (x0-x [j]) / (x [i] -x [j]); S: = S + y [i] P; lag: = S; END; Începeți pentru i: = 1 până la 4 nu citiți (x [i], y [i]); citiți (x0); scriere (lag (x, y, x0): 5: 2); END.