|
10
|
REM SIMULADOR DEL"FRIJOLARIUM" |
|
20
|
REM PARA CRECIMIENTO UNIESPECÍFICO |
|
30
|
REM O INTERACCIONES BIESPECÍFICAS |
|
40
|
REM ESTE PROGRAMA PUEDE SER COPIADO |
|
50
|
O MODIFICADO A VOLUNTAD |
|
60
|
REM |
|
70
|
REM ------------------------ |
|
80
|
REM DECLARACIONES |
|
90
|
REM N Y M REPRESENTAN LAS POBLACIONES TOTALES DE CADA ESPECIE. |
|
100
|
REM A1 Y A2 SON ARREGLOS QUE REPRESENTAN LA CANTIDAD DE INDIVIDUOS |
|
110
|
DIM N(50), M(50), A1(64), A2(64) |
|
120
|
REM Q ES EL NÚMERO DE COLUMNAS DE LA PANTALLA O LA
IMPRESORA |
|
130
|
Q=40 |
|
140
|
REM MENÚ DE ENTRADA |
|
150
|
GOSUB 1460 |
|
160
|
REM ASIGNACIÓN DE PARÁMETROS |
|
170
|
ON C1 GOSUB 2110, 2150, 2190, 2240, 2290, 2360, 2420 |
|
180
|
REM |
|
190
|
IF C1>4 THEN C=2:ELSE C=1 |
|
200
|
PRINT "CUÁNTAS GENERACIONES VAS A SIMULAR?" |
|
210
|
INPUT G |
|
220
|
IF C>1 THEN 260 |
|
230
|
PRINT "CUÁL ES EL VALOR INICIAL DE TU POBLACIÓN?" |
|
240
|
INPUT N (1) |
|
250
|
GOTO 290 |
|
260
|
PRINT "CUÁLES SON LOS VALORES" |
|
270
|
PRINT "INICIALES DE TUS POBLACIONES" |
|
280
|
INPUT N(1), M(1) |
|
290
|
IF G > 50 THEN 200 |
|
300
|
REM |
|
310
|
REM |
|
320
|
REM |
|
330
|
REM SE INICIA LA SIMULACIÓN |
|
340
|
FOR T=1 TO G |
|
350
|
IF C=1 THEN PRINT T, N(T): ELSE PRINT T, N(T); M (T) |
|
360
|
REM LIMPIA TABLEROS |
|
370
|
GOSUB 1810 |
|
380
|
REM ARROJA FRIJOLES |
|
390
|
ON C GOSUB 1640, 1720 |
|
400
|
REM HACE CUENTAS Y SACA BALANCES |
|
410
|
ON C1 GOSUB 460, 540, 620, 710, 820, 1010, 1240 |
|
420
|
NEXT T |
|
430
|
GOSUB 1880 |
|
440
|
END |
|
450
|
REM |
|
460
|
REM EXPONENCIAL |
|
470
|
S1=0 |
|
480
|
FOR I=1 TO 32 |
|
490
|
S1=S1+A1 (I) |
|
500
|
NEXT I |
|
510
|
N(T+1)=S1*F1 |
|
520
|
RETURN |
|
530
|
REM |
|
540
|
REM LOGÍSTICO ASINTÓTICO |
|
550
|
S1=0 |
|
560
|
FOR I=1 TO 64 |
|
570
|
IF A1(I) <= L1 THEN S1=S1+A1(I) |
|
580
|
REM IF A1 (I) L1 THEN S1=S1+L1 |
|
590
|
NEXT I |
|
600
|
N (T+1)=S1*F1 |
|
610
|
RETURN |
|
620
|
REM |
|
630
|
REM LOGÍSTICO OSCILATORIO |
|
640
|
S1=0 |
|
650
|
FOR I=1 TO 64 |
|
660
|
IF A1(I) < L1 THEN S1= S1+A1 (I)*F1 |
|
670
|
IF A1(I) = L1 THEN S1=S1+A1(I) |
|
680
|
NEXT I |
|
690
|
N (T+1)=S1 |
|
700
|
RETURN |
|
710
|
REM |
|
720
|
REM RÉGIMEN CAÓTICO |
|
730
|
S1=0 |
|
740
|
FOR I=1 TO 64 |
|
750
|
IF A1(I) < L1 THEN S1=S1+A1(I) *F1 |
|
760
|
IF A1(I) = L1 THEN S1= S1+A1(I) |
|
770
|
NEXT I |
|
780
|
N(T+1)= S1 |
|
790
|
IF N (T+1) =0 THEN N(T+1) =1 |
|
800
|
RETURN |
|
810
|
REM |
|
820
|
REM COMPETENCIA INTERESPECÍFICA |
|
830
|
S1=0 |
|
840
|
S2=0 |
|
850
|
FOR I=1 TO 64 |
|
860
|
IF A2 (I) >0 THEN 900 |
|
870
|
REM ESPECIE 1 SOLA |
|
880
|
IF A1(I) <= L1 THEN S1=S1+A1(I)*F1 |
|
890
|
GO TO 970 |
|
900
|
IF A1(I) >0 THEN 940 |
|
910
|
REM ESPECIE 2 SOLA |
|
920
|
IF A2(I) <= L2 THEN S2=S2+A2(I)*F2 |
|
930
|
GO TO 970 |
|
940
|
REM LAS DOS ESPECIES JUNTAS |
|
950
|
IF A1(I) >A2(I) THEN S1=S1+A1(I) |
|
960
|
IF A1(I) <A2(I) THEN S2=S2+A2(I) |
|
970
|
NEXT I |
|
980
|
N (T+1)=S1 |
|
990
|
M (T+1)=S2 |
|
1000
|
RETURN |
|
1010
|
REM |
|
1020
|
REM DEPREDADOR-PRESA |
|
1030
|
REM A1 REPRESENTA LAS PRESAS Y A2 A LOS DEPREDADORES. |
|
1040
|
S1=0 |
|
1050
|
S2=0 |
|
1060
|
FOR I=1 TO 64 |
|
1070
|
IF A2(I) >0 THEN 1120 |
|
1080
|
REM PRESAS SOLAS |
|
1090
|
IF A1(I) < L1 THEN S1=S1+A1(I)*F1 |
|
1100
|
IF A1(I)=L1 THEN S1=S1+A1(I) |
|
1110
|
GO TO 1190 |
|
1120
|
IF A1(I) >0 THEN 1160 |
|
1130
|
REM DEPREDADORES SOLOS |
|
1140
|
IF A2(I)=1 THEN S2=S2+1 |
|
1150
|
GO TO 1190 |
|
1160
|
REM JUNTOS DEPREDADORES Y PRESAS |
|
1170
|
IF A1(I) >= A2(I) THEN S2=S2+A2(I)*F2 |
|
1180
|
IF A1 (I) <A2(I) THEN S2=S2+A1(I)*F2 |
|
1190
|
NEXT I |
|
1200
|
N(T+1)=S1 |
|
1210
|
M(T+1)=S2 |
|
1220
|
RETURN |
|
1230
|
REM |
|
1240
|
REM DEPREDADOR PRUDENTE |
|
1250
|
S1=0 |
|
1260
|
S2=0 |
|
1270
|
FOR I=1 TO 64 |
|
1280
|
IF A2(I) >0 THEN 1330 |
|
1290
|
REM PRESAS SOLAS |
|
1300
|
IF A1 (I) <L1 THEN S1=S1+A1(I) *F1 |
|
1310
|
IF A1 (I) =L1 THEN S1=S1+A1(I) |
|
1320
|
GO TO 1420 |
|
1330
|
IF A1(I) >0 THEN 1370 |
|
1340
|
REM DEPREDADORES SOLOS |
|
1350
|
IF A2 (I)=1 THEN S2=S2+1 |
|
1360
|
GO TO 1420 |
|
1370
|
REM JUNTOS DEPREDADORES Y PRESAS |
|
1380
|
IF A1(I) <= A2(I) THEN S2=S2+A1(I) |
|
1390
|
IF A1(I) <= A2(I) THEN 1420 |
|
1400
|
S1=S1+A1(I)-A2(I) *F1 |
|
1410
|
S2=S2+A2(I) *F2 |
|
1420
|
NEXT I |
|
1430
|
N (T+1)=S1 |
|
1440
|
M (T+1)=S2 |
|
1450
|
RETURN |
|
1460
|
REM MENÚ DE ENTRADA |
|
1470
|
PRINT " NO SE PUEDEN SIMULAR MÁS DE 50 GENERACIONES" |
|
1480
|
PRINT |
|
1490
|
PRINT " SE PUEDEN SIMULAR VARIOS TIPOS DE CRECIMIENTOS" |
|
1500
|
PRINT " POBLACIONES MONO Y BI-ESPECÍFICOS |
|
1510
|
PRINT |
|
1520
|
PRINT |
|
1530
|
PRINT " (1)------EXPONENCIAL |
|
1540
|
PRINT " (2)------APROXIMACIÓN ASINTÓTICA
AL EQUILIBRIO" |
|
1550
|
PRINT " (3)------OSCILACIONES ALREDEDOR DEL EQUILIBRIO" |
|
1560
|
PRINT " (4)------RÉGIMEN CAÓTICO" |
|
1570
|
PRINT " (5)------COMPETENCIA" |
|
1580
|
PRINT " (6)------DEPREDADOR-PRESA" |
|
1590
|
PRINT " (7)------DEPREDADOR PRUDENTE" |
|
1600
|
PRINT |
|
1610
|
PRINT " CUÁL QUIERES?" |
|
1620
|
INPUT C1 |
|
1630
|
RETURN |
|
1640
|
REM |
|
1650
|
REM LANZADO DE UNA SOLA ESPECIE |
|
1660
|
IF N (T) =0 THEN 1710 |
|
1670
|
FOR K=1 TO N(T) |
|
1680
|
J=INT (RND (1) *64+1) |
|
1690
|
A1(J) =A1(J)+1 |
|
1700
|
NEXT K |
|
1710
|
RETURN |
|
1720
|
REM |
|
1730
|
REM LANZADO DE DOS ESPECIES |
|
1740
|
GOSUB 1640 |
|
1760
|
FOR K=1 TO M (T) |
|
1770
|
J=INT (RND (1) *64+1) |
|
1780
|
A2 (J) =A2(J)+1 |
|
1790
|
NEXT K |
|
1800
|
RETURN |
|
1810
|
REM |
|
1820
|
REM LIMPIADO DE TABLEROS |
|
1830
|
FOR I=1 TO 64 |
|
1840
|
A1 (I) =0 |
|
1850
|
A2(I) =0 |
|
1860
|
NEXT I |
|
1870
|
RETURN |
|
1880
|
REM |
|
1890
|
REM CALCULA EL VALOR MÁXIMO PARA GRAFICAR |
|
1900
|
B=0 |
|
1910
|
FOR T=1 TO G |
|
1920
|
IF N(T) >B THEN B=N (T) |
|
1930
|
NEXT T |
|
1940
|
IF C=1 THEN 1980 |
|
1950
|
FOR T=1 TO G |
|
1960
|
IF M (T) >B THEN B=M (T) |
|
1970
|
NEXT T |
|
1980
|
REM |
|
1990
|
REM GRAFICACIÓN DE RESULTADOS |
|
2000
|
PRINT TAB(Q ); B |
|
2010
|
PRINT "------------------------------------->" |
|
2020
|
FOR T=1 TO G |
|
2030
|
PRINT "!" TAB (Q*N(T) /B) "+" |
|
2040
|
IF C=1 THEN 2060 |
|
2050
|
PRINT "!" TAB (Q*M(T) /B) "*" |
|
2060
|
NEXT T |
|
2070
|
RETURN |
|
2080
|
REM |
|
2090
|
REM ASIGNACIÓN DE PARÁMETROS |
|
2100
|
REM |
|
2110
|
REM EXPONENCIAL |
|
2120
|
F1=3 |
|
2130
|
RETURN |
|
2140
|
REM |
|
2150
|
REM LOGÍSTICA ASINTÓTICA |
|
2160
|
F1=2 |
|
2170
|
L1=2 |
|
2180
|
RETURN |
|
2190
|
REM LOGÍSTICA OSCILATORIA |
|
2200
|
F1=7 |
|
2210
|
L1=2 |
|
2220
|
RETURN |
|
2230
|
REM |
|
2240
|
REM LOGÍSTICA CAÓTICA |
|
2250
|
F1=12 |
|
2260
|
L1=3 |
|
2270
|
RETURN |
|
2280
|
REM |
|
2290
|
REM COMPETENCIA |
|
2300
|
F1=3 |
|
2310
|
F2=3 |
|
2320
|
L1=2 |
|
2330
|
L2=3 |
|
2340
|
RETURN |
|
2350
|
REM |
|
2360
|
REM DEPREDADOR-PRESA |
|
2370
|
F1=3 |
|
2380
|
F2=3 |
|
2390
|
L1=2 |
|
2400
|
RETURN |
|
2410
|
REM |
|
2420
|
REM DEPREDADOR PRUDENTE |
|
2430
|
F1=3 |
|
2440
|
F2=3 |
|
2450
|
L1=2 |
|
2460
|
RETURN |
|
|
|
|
READY.
|
|