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