Thursday, December 14, 2017

Aflarea minimului dintre trei elemente

Ani în șir, la disciplina Limbaje de programare am dat la examen problema: să se scrie programul FORTRAN pentru aflarea elementului minim dintre elementele a, b și c, date pe cartele și să se afișeze rezultatul. Nu m-am plictisit niciodată, pentru că din 20 de persoane foarte rare au fost cazurile în care aveam și schema logică și programul așa cum trebuiau ele să fie și nu niște caricaturi de tot râsul, deși cei cărora le ceream acest mic detaliu se dădeau mari programatori.
Schema logică esteprezentată în partea dreaptă, iar programul FORTRAN IV este următorul:
C         PROGRAM AFLARE ELEMENT MINIM
C         DINTRE 3 ELEMENTE INTREGI CITITE DE PE
C         CARTELE
            INTEGER A,B,C,MIN
            READ(5,10)A,B,C
10        FORMAT(I5,I5,I5)
            MIN=A
            IF(MIN.GT.B) MIN=B
            IF(MIN.GT.C) MIN=C
            WRITE(6,20) MIN
20         FORMAT(13HMINIMUL ESTE ,I5)
             STOP
             END
O altă variantă de a realiza acest program fără a folosi IF() logic este aceea în care se utilizează evaluarea de expresii aritmetice, ceea ce conduce la construcția un pic mai complicată ce urmează:
C         PROGRAM AFLARE ELEMENT MINIM
C         DINTRE 3 ELEMENTE INTREGI CITITE DE PE
C         CARTELE
            INTEGER A,B,C,MIN
            READ(5,10)A,B,C
10        FORMAT(I5,I5,I5)
            MIN=A
            IF(MIN-B) 30,30,20
20        MIN=B
30        IF(MIN-C) 50,50,40
40        MIN=C
50        WRITE(6,60) MIN
60         FORMAT(13HMINIMUL ESTE ,I5)
             STOP
             END

Acest al doilea program nu prea arată bine căci conține prea multe instrucțiuni și acea pânză de păianjen de etichete, care sunt destul de greu de urmărit și mai ales de a li se asigura să fie în progresie aritmetică cu primul termen 10 și cu rație tot 10.
Aflarea minimului dintre trei elemente este un program fortran banal, dar care dă de furcă la foarte mulți programatori care știu să rezolve lucruri complicate, dar se împiedică în fleacuri.



(14 decembrie 2017)

No comments:

Post a Comment