Se consideră șirul x1, x2, x3, ..., xk, ...., xn cu n componente și se pune problema găsirii elementului minim și a poziției acestuia din șir.
Diagrama sau schema logică după care se scrie subprogramul este:
Ideia de subprogram apare din faptul că alegerea minimului dintr-un șir apare în numeroase probleme și deci de fiecare dată trebuie apelat un subprogram de bibliotecă și nu scrisă secvența respectivă.
SUBROUTINE MINIM (X,N,MIN)
MIN=X(1)
DO 10 I=2,N
IF(MIN.GE.X(I)) GO TO 10
MIN=X(I)
10 CONTINUE
RETURN
END
Dacă se dorește și aflarea poziției elementului minim subprogramului i se adaugă în lista de parametrii variabila IPOZ și ceva instrucțiuni de atribuire, după cum urmează:
SUBROUTINE MINIM (X,N,MIN,IPOZ)
MIN=X(1)
IPOZ=1
DO 10 I=2,N
IF(MIN.GE.X(I)) GO TO 10
MIN=X(I)
IPOZ=I
10 CONTINUE
RETURN
END
Am preferat să nu scriu acest subprogram ca subprogram funcție datorită faptului că îl voi folosi să returneze nu numai valoarea elementului minim și și poziția pe care acesta se află. În plus, fără modificări semnificative îl modific să stabilesc și valoarea maximă și poziția acesteia dacă vreau.
Diagrama sau schema logică după care se scrie subprogramul este:
Ideia de subprogram apare din faptul că alegerea minimului dintr-un șir apare în numeroase probleme și deci de fiecare dată trebuie apelat un subprogram de bibliotecă și nu scrisă secvența respectivă.
SUBROUTINE MINIM (X,N,MIN)
MIN=X(1)
DO 10 I=2,N
IF(MIN.GE.X(I)) GO TO 10
MIN=X(I)
10 CONTINUE
RETURN
END
Dacă se dorește și aflarea poziției elementului minim subprogramului i se adaugă în lista de parametrii variabila IPOZ și ceva instrucțiuni de atribuire, după cum urmează:
SUBROUTINE MINIM (X,N,MIN,IPOZ)
MIN=X(1)
IPOZ=1
DO 10 I=2,N
IF(MIN.GE.X(I)) GO TO 10
MIN=X(I)
IPOZ=I
10 CONTINUE
RETURN
END
Am preferat să nu scriu acest subprogram ca subprogram funcție datorită faptului că îl voi folosi să returneze nu numai valoarea elementului minim și și poziția pe care acesta se află. În plus, fără modificări semnificative îl modific să stabilesc și valoarea maximă și poziția acesteia dacă vreau.
(14 decembrie 2017)
No comments:
Post a Comment