mirror of
https://github.com/adambard/learnxinyminutes-docs.git
synced 2024-11-27 13:32:56 +03:00
133 lines
3.8 KiB
Markdown
133 lines
3.8 KiB
Markdown
|
---
|
||
|
language: SmallBASIC
|
||
|
filename: learnsmallbasic-es.bas
|
||
|
contributors:
|
||
|
- ["Chris Warren-Smith", "http://smallbasic.sourceforge.net"]
|
||
|
translators:
|
||
|
- ["José Juan Hernández García", "http://jjuanhdez.es"]
|
||
|
lang: es-es
|
||
|
---
|
||
|
|
||
|
## Acerca de
|
||
|
|
||
|
SmallBASIC es un intérprete del lenguaje BASIC rápido y fácil de aprender, ideal para cálculos cotidianos, scripts y prototipos. SmallBASIC incluye funciones trigonométricas, matrices y álgebra, un IDE integrado, una potente librería de cadenas de texto, comandos de sistema, sonido y gráficos, junto con una sintaxis de programación estructurada.
|
||
|
|
||
|
## Desarrollo
|
||
|
|
||
|
SmallBASIC fue desarrollado originalmente por Nicholas Christopoulos a finales de 1999 para el Palm Pilot. El desarrollo del proyecto ha sido continuado por Chris Warren-Smith desde el año 2005.
|
||
|
Versiones de SmallBASIC se han hecho para una serie dispositivos de mano antiguos, incluyendo Franklin eBookman y el Nokia 770. También se han publicado varias versiones de escritorio basadas en una variedad de kits de herramientas GUI, algunas de las cuales han desaparecido. Las plataformas actualmente soportadas son Linux y Windows basadas en SDL2 y Android basadas en NDK. También está disponible una versión de línea de comandos de escritorio, aunque no suele publicarse en formato binario.
|
||
|
Alrededor de 2008 una gran corporación lanzó un entorno de programación BASIC con un nombre de similar. SmallBASIC no está relacionado con este otro proyecto.
|
||
|
|
||
|
```SmallBASIC
|
||
|
REM Esto es un comentario
|
||
|
' y esto tambien es un comentario
|
||
|
|
||
|
REM Imprimir texto
|
||
|
PRINT "hola"
|
||
|
? "? es la abreviatura de PRINT"
|
||
|
|
||
|
REM Estructuras de control
|
||
|
FOR index = 0 TO 10 STEP 2
|
||
|
? "Este es el numero de linea "; index
|
||
|
NEXT
|
||
|
J = 0
|
||
|
REPEAT
|
||
|
J++
|
||
|
UNTIL J = 10
|
||
|
WHILE J > 0
|
||
|
J--
|
||
|
WEND
|
||
|
|
||
|
REM Estructura Select Case
|
||
|
SELECT CASE "Cool"
|
||
|
CASE "null", 1, 2, 3, 4, 5, 6, 7, 8, "Cool", "blah"
|
||
|
CASE "No Cool"
|
||
|
PRINT "Fallo epico"
|
||
|
CASE ELSE
|
||
|
PRINT "Fallo"
|
||
|
END SELECT
|
||
|
|
||
|
REM Captura de errores con TRY/CATCH
|
||
|
TRY
|
||
|
fn = Freefile
|
||
|
OPEN filename FOR INPUT As #fn
|
||
|
CATCH err
|
||
|
PRINT "No se pudo abrir"
|
||
|
END TRY
|
||
|
|
||
|
REM Procedimientos y funciones definidas por el usuario
|
||
|
FUNC add2(x, y)
|
||
|
' variables pueden declararse como locales en el ambito de una SUB o FUNC
|
||
|
LOCAL k
|
||
|
k = "k dejara de existir cuando retorne FUNC"
|
||
|
add2 = x + y
|
||
|
END
|
||
|
PRINT add2(5, 5)
|
||
|
|
||
|
SUB print_it(it)
|
||
|
PRINT it
|
||
|
END
|
||
|
print_it "IT...."
|
||
|
|
||
|
REM Visualizacion de lineas y pixeles
|
||
|
At 0, ymax / 2 + txth ("Q")
|
||
|
COLOR 1: ? "sin(x)":
|
||
|
COLOR 8: ? "cos(x)":
|
||
|
COLOR 12: ? "tan(x)"
|
||
|
LINE 0, ymax / 2, xmax, ymax / 2
|
||
|
FOR i = 0 TO xmax
|
||
|
PSET i, ymax / 2 - SIN(i * 2 * pi / ymax) * ymax / 4 COLOR 1
|
||
|
PSET i, ymax / 2 - COS(i * 2 * pi / ymax) * ymax / 4 COLOR 8
|
||
|
PSET i, ymax / 2 - TAN(i * 2 * pi / ymax) * ymax / 4 COLOR 12
|
||
|
NEXT
|
||
|
SHOWPAGE
|
||
|
|
||
|
REM SmallBASIC es ideal para experimentar con fractales y otros efectos interesantes
|
||
|
DELAY 3000
|
||
|
RANDOMIZE
|
||
|
ff = 440.03
|
||
|
FOR j = 0 TO 20
|
||
|
r = RND * 1000 % 255
|
||
|
b = RND * 1000 % 255
|
||
|
g = RND * 1000 % 255
|
||
|
c = RGB(r, b, g)
|
||
|
ff += 9.444
|
||
|
FOR i = 0 TO 25000
|
||
|
ff += ff
|
||
|
x = MIN(xmax, -x + COS(f * i))
|
||
|
y = MIN(ymax, -y + SIN(f * i))
|
||
|
PSET x, y COLOR c
|
||
|
IF (i % 1000 == 0) THEN
|
||
|
SHOWPAGE
|
||
|
fi
|
||
|
NEXT
|
||
|
NEXT j
|
||
|
|
||
|
REM Para historiadores de computadoras, SmallBASIC puede ejecutar programas
|
||
|
REM encontrados en los primeros libros de computacion y revistas, por ejemplo:
|
||
|
10 LET A = 9
|
||
|
20 LET B = 7
|
||
|
30 PRINT A * B
|
||
|
40 PRINT A / B
|
||
|
|
||
|
REM SmallBASIC también tiene soporte para algunos conceptos modernos como JSON
|
||
|
aa = ARRAY("{\"cat\":{\"name\":\"harry\"},\"pet\":\"true\"}")
|
||
|
IF (ismap(aa) == false) THEN
|
||
|
THROW "no es un mapa"
|
||
|
END IF
|
||
|
PRINT aa
|
||
|
|
||
|
PAUSE
|
||
|
|
||
|
```
|
||
|
## Artículos
|
||
|
|
||
|
* [Primeros pasos](http://smallbasic.sourceforge.net/?q=node/1573)
|
||
|
* [Bienvenido a SmallBASIC](http://smallbasic.sourceforge.net/?q=node/838)
|
||
|
|
||
|
## GitHub
|
||
|
|
||
|
* [Código fuente](https://github.com/smallbasic/SmallBASIC)
|
||
|
* [Reference snapshot](http://smallbasic.github.io/)
|
||
|
|