Există diferite modalități prin care se produce inițializarea unei matrice, dar de fiecare dată trebuie cântărită cu mare atenție pe care dintre secvențe o adoptăm când scriem programe, pentru a face lucruri de apreciat și nu lucruri despre care râde toată lumea.
Am văzut inițializarea cu zero a elementelor unei matrice cu 5 linii și 5 coloane într-o secvență delirantă de Gâgă, pe care n-aș fi crezut s-o văd vreodată. Iat-o:
DIMENSION A(5,5)
A(1,1)=0.
A(1,2)=0.
A(1,3)=0.
A(1,4)=0.
A(1,5)=0.
A(2,1)=0.
A(2,2)=0.
A(2,3)=0.
A(2,4)=0.
A(2,5)=0.
A(3,1)=0.
A(3,2)=0.
A(3,3)=0.
A(3,4)=0.
A(3,5)=0.
A(4,1)=0.
A(4,2)=0.
A(4,3)=0.
A(4,4)=0.
A(4,5)=0.
A(5,1)=0.
A(5,2)=0.
A(5,3)=0.
A(5,4)=0.
A(5,5)=0.
Respectivul programator are a se lăuda cu un program cu multe instrucțiuni, dar complexitatea secvenței este zero căci diversitatea operatorilor și operanzilor este 1 iar logaritm în baza 2 din 1 este 0, știe tot poporul cu televizorul.
Cine lucreaza în FORTRAN IV știa de instrucțiunea DATA și toată secveța de mai sus s-ar fi scris cu mult mai elegant astfel:
DIMENSION A(5,5)/25*0./
Dacă cineva își dorește să apară totuși instrucțiuni de atribuire, secvența ar arăta astfel:
DIMENSION A(5,5)
...................
DO 10 I=1,5
DO 10 J=1,5
10 A(I,J)=0
..................
Lucrurile se complică atunci când elementele matricei au valori care trebuie să îndeplinească o serie de condiții, drept care și inițializarea se va face de fiecare dată în așa fel încât programul să fie bine scris, iar alți programatori să-l aprecieze pe cel care a scris programul.
Secvența:
DIMENSION A(5,5)
...................
READ(5,10) ((A(I,J), I=1,5), J=1,5)
10 FORMAT(5*F6.3)
.....................
permite inițializarea linie de linie, cu date de pe cartele a matricei A(5,5). În cazul în care matricea se inițializează cu niște constante care nu diferă de la o rulare la alta, acele valori vor fi date într-o listă construită de forma:
DIMENSION A(5,5)/1.,4.,6.1,4.8,6.,1.,4.,6.5,-.4,6.,1.,4.,7.1,4.4,6.,1.,4.,6.1,-4.4,6.,1.,4.,9.1,4.4,-6.,/
Despre cum se face o inițializare a unei matrice se va scrie cel puțin un tratat, fără a fi epuizată problema, căci fiecare program are un ce al lui și una este să se inițializeze o matrice linie de linie și cu totul altfel stau lucrurile când inițializarea se face pe blocuri.
(21 decembrie 2017)
No comments:
Post a Comment