jueves, 3 de mayo de 2007

Codificación Parte II

Acá les envio el código de los sub programas o rutinas externas o modulos como quieran llamarlos
------------------------------------------------------------------------------------------------

0010 REM "MATCHI"
0020 REM "SUBPROGRAMA DE MATRIX"
0030 REM "RESULUCION POR CHIO"
0040 ENTER CO,N,M,X,R[ALL],E,CH
0050 LET CH=0
0060 IF CO<>2 THEN GOTO 0100
0070 FOR I=0 TO N; FOR J=X TO M; IF I+X<>J THEN GOTO 0090
0080 LET R[I,J]=1
0090 NEXT J; NEXT I
0100 LET E=1; FOR A=0 TO N; LET IC=A; IF A=N THEN GOTO 0180
0110 LET AM=ABS(R[A,A]); FOR J=A+1 TO N; IF AM>=ABS(R[J,A]) THEN GOTO 0130
0120 LET AM=ABS(R[J,A]); LET IC=J
0130 NEXT J; IF AM<>0 THEN GOTO 0160
0140 IF CO>0 THEN LET CH=1; GOTO 0230
0150 LET E=0; GOTO 0230
0160 IF IC=A THEN GOTO 0190
0170 LET E=-E; FOR J=A TO M; LET AM=R[A,J]; LET R[A,J]=R[IC,J]; LET R[IC,J]=AM; NEXT J; GOTO 0190
0180 IF R[N,N]=0 THEN GOTO 0140
0190 LET L=R[A,A]; LET E=E*L; FOR I=A TO M; LET R[A,I]=R[A,I]/L; NEXT I
0200 FOR I=0 TO N; FOR J=A TO M; IF I=A OR J=A THEN GOTO 0220
0210 LET R[I,J]=R[I,J]-R[A,J]*R[I,A]
0220 NEXT J; NEXT I; NEXT A
0230 EXIT
------------------------------------------------------------------------------------------------

0010 REM "MATDLU"
0020 REM "SUBPROGRAMA DE MATRIX"
0030 REM "CALCULA POR DIVISION L/U"
0040 ENTER CO,N,M,X,R[ALL],E,CH
0050 LET CH=0,E=1
0060 IF CO<>2 THEN GOTO 0100
0070 FOR I=0 TO N; FOR J=X TO M; IF I+X<>J THEN GOTO 0090
0080 LET R[I,J]=1
0090 NEXT J; NEXT I
0100 FOR A=0 TO N; LET IC=A; IF A=N THEN GOTO 0160
0110 LET AM=ABS(R[A,A]); FOR J=A+1 TO N; IF AM>=ABS(R[J,A]) THEN GOTO 0130
0120 LET AM=ABS(R[J,A]); LET IC=J
0130 NEXT J; IF AM<>0 THEN GOTO 0170
0140 IF CO>0 THEN LET CH=1; GOTO 0280
0150 LET E=0; GOTO 0280
0160 IF R[N,N]=0 THEN GOTO 0140
0170 IF IC=A THEN GOTO 0190
0180 LET E=-E; FOR J=A TO M; LET AM=R[A,J],R[A,J]=R[IC,J],R[IC,J]=AM; NEXT J
0190 LET E=E*R[A,A]; IF A=N THEN GOTO 0230
0200 FOR I=A+1 TO N; IF R[I,A]=0 THEN GOTO 0220
0210 LET G=R[A,A]/R[I,A],E=E/G; FOR J=A TO M; LET R[I,J]=R[I,J]*G-R[A,J]; NEXT J
0220 NEXT I
0230 NEXT A
0240 IF CO=0 THEN GOTO 0280
0250 FOR B=N+1 TO M; LET R[N,B]=R[N,B]/R[N,N]; NEXT B
0260 FOR A=N-1 TO 0 STEP -1; FOR I=N+1 TO M; FOR J=N TO A+1 STEP -1
0270 LET R[A,I]=R[A,I]-R[A,J]*R[J,I]; NEXT J; LET R[A,I]=R[A,I]/R[A,A]; NEXT I; NEXT A
0280 EXIT
------------------------------------------------------------------------------------------------

0010 REM "MATPRO"
0020 REM "SUBPROGRAMA DE MATRIX"
0030 REM "PRODUCTO MATRICIAL"
0040 ENTER M,M1,N1,R[ALL],S[ALL],P[ALL]
0050 FOR JS=0 TO N1; FOR IS=0 TO M1; FOR TS=0 TO M; LET P[TS,JS]=P[TS,JS]+S[IS,JS]*R[TS,IS]
0060 NEXT TS; NEXT IS; NEXT JS
0070 EXIT
------------------------------------------------------------------------------------------------

Bueno acá esta todo lo que faltaba para que el programa funcione.
Tengan en cuenta los distintos dialectos del Basic. Sean pacientes y no deseperen que ire explicando todo en cuanto y a medida que tenga tiempo disponible.
Suerte y por favor si sos estudiante no creas que todo esto se puede hacer o enterder en un rato o noche lleva un poco mas de tiempo.

No hay comentarios.: