diff --git a/public/blog.css b/public/blog.css
index 7e38667..612bb93 100644
--- a/public/blog.css
+++ b/public/blog.css
@@ -84,4 +84,13 @@ pre.astro-code>code .line::before {
font-weight: var(--shiki-dark-font-weight) !important;
text-decoration: var(--shiki-dark-text-decoration) !important;
}
-}
\ No newline at end of file
+}
+
+/* isso */
+#isso-thread textarea {
+ color: black;
+}
+
+#isso-thread input {
+ color: black;
+}
diff --git a/public/img/blog/es/tutorial/1x/004.png b/public/img/blog/es/tutorial/1x/004.png
deleted file mode 100644
index 91009b1..0000000
Binary files a/public/img/blog/es/tutorial/1x/004.png and /dev/null differ
diff --git a/public/img/blog/es/tutorial/1x/009-matematicas.jpg b/public/img/blog/es/tutorial/1x/009-matematicas.jpg
new file mode 100644
index 0000000..c34d7dc
Binary files /dev/null and b/public/img/blog/es/tutorial/1x/009-matematicas.jpg differ
diff --git a/public/img/blog/es/tutorial/1x/010.jpg b/public/img/blog/es/tutorial/1x/010.jpg
new file mode 100644
index 0000000..e764e8e
Binary files /dev/null and b/public/img/blog/es/tutorial/1x/010.jpg differ
diff --git a/public/img/blog/es/tutorial/1x/011.png b/public/img/blog/es/tutorial/1x/011.png
new file mode 100644
index 0000000..18011fd
Binary files /dev/null and b/public/img/blog/es/tutorial/1x/011.png differ
diff --git a/public/img/blog/es/tutorial/1x/012.jpg b/public/img/blog/es/tutorial/1x/012.jpg
new file mode 100644
index 0000000..a66224d
Binary files /dev/null and b/public/img/blog/es/tutorial/1x/012.jpg differ
diff --git a/public/img/blog/es/tutorial/1x/013.jpg b/public/img/blog/es/tutorial/1x/013.jpg
new file mode 100644
index 0000000..471b68f
Binary files /dev/null and b/public/img/blog/es/tutorial/1x/013.jpg differ
diff --git a/src/layouts/BlogLayout.astro b/src/layouts/BlogLayout.astro
index 0f07aa9..f39d0c2 100644
--- a/src/layouts/BlogLayout.astro
+++ b/src/layouts/BlogLayout.astro
@@ -6,7 +6,7 @@ lang = lang ?? "en";
---
-
+
@@ -68,8 +68,22 @@ lang = lang ?? "en";
+
+
Comments/Comentarios
+
+
+
+
+
+
+
diff --git a/src/layouts/BlogLayoutEs.astro b/src/layouts/BlogLayoutEs.astro
new file mode 100644
index 0000000..1669028
--- /dev/null
+++ b/src/layouts/BlogLayoutEs.astro
@@ -0,0 +1,9 @@
+---
+import BlogLayout from "./BlogLayout.astro";
+
+let { frontmatter } = Astro.props;
+---
+
+
+
+
\ No newline at end of file
diff --git a/src/pages/blog/es/lenguajes-01.md b/src/pages/blog/es/lenguajes-01.md
index 3669917..5762ea3 100644
--- a/src/pages/blog/es/lenguajes-01.md
+++ b/src/pages/blog/es/lenguajes-01.md
@@ -1,5 +1,5 @@
---
-layout: ../../../layouts/BlogLayout.astro
+layout: ../../../layouts/BlogLayoutEs.astro
title: "¿Con qué lenguaje de programación se crean los lenguajes de programación?"
description: |
Vista superior de cómo funciona un lenguaje de programación
diff --git a/src/pages/blog/es/programacion-01.md b/src/pages/blog/es/programacion-01.md
index 248e8cc..b39573d 100644
--- a/src/pages/blog/es/programacion-01.md
+++ b/src/pages/blog/es/programacion-01.md
@@ -1,5 +1,5 @@
---
-layout: ../../../layouts/BlogLayout.astro
+layout: ../../../layouts/BlogLayoutEs.astro
title: "01: Programación desde cero absoluto con Zig"
description: |
Aprendé a programar desde completamente cero, utilizando el lenguaje
diff --git a/src/pages/blog/es/programacion-02.md b/src/pages/blog/es/programacion-02.md
index 4922c51..6dee32e 100644
--- a/src/pages/blog/es/programacion-02.md
+++ b/src/pages/blog/es/programacion-02.md
@@ -1,5 +1,5 @@
---
-layout: ../../../layouts/BlogLayout.astro
+layout: ../../../layouts/BlogLayoutEs.astro
title: "02: Programación desde cero absoluto con Zig: Fundamentos"
description: |
Fundamentos de la computación, programas, componentes
diff --git a/src/pages/blog/es/programacion-03.md b/src/pages/blog/es/programacion-03.md
index b58ec94..a341aa3 100644
--- a/src/pages/blog/es/programacion-03.md
+++ b/src/pages/blog/es/programacion-03.md
@@ -1,5 +1,5 @@
---
-layout: ../../../layouts/BlogLayout.astro
+layout: ../../../layouts/BlogLayoutEs.astro
title: "03: Programación desde cero: Hola mundo"
description: |
Escribí el tradicional programa "Hola mundo" por tí mismo!
diff --git a/src/pages/blog/es/programacion-04.md b/src/pages/blog/es/programacion-04.md
index f8d3327..f426918 100644
--- a/src/pages/blog/es/programacion-04.md
+++ b/src/pages/blog/es/programacion-04.md
@@ -1,5 +1,5 @@
---
-layout: ../../../layouts/BlogLayout.astro
+layout: ../../../layouts/BlogLayoutEs.astro
title: "04: Programación desde cero: Modificando el hola mundo"
description: |
Impresión, strings/cadenas y stdout.
diff --git a/src/pages/blog/es/programacion-05.md b/src/pages/blog/es/programacion-05.md
index 2ad5258..f895a1a 100644
--- a/src/pages/blog/es/programacion-05.md
+++ b/src/pages/blog/es/programacion-05.md
@@ -1,5 +1,5 @@
---
-layout: ../../../layouts/BlogLayout.astro
+layout: ../../../layouts/BlogLayoutEs.astro
title: "05: Cero a Zig: Instalando VSCode y Zig"
description: |
Instalamos Zig y VSCode en nuestro computador
diff --git a/src/pages/blog/es/programacion-06.md b/src/pages/blog/es/programacion-06.md
index 29a0fb5..70ab310 100644
--- a/src/pages/blog/es/programacion-06.md
+++ b/src/pages/blog/es/programacion-06.md
@@ -1,5 +1,5 @@
---
-layout: ../../../layouts/BlogLayout.astro
+layout: ../../../layouts/BlogLayoutEs.astro
title: "06: Cero a Zig: Terminal y Proyecto Zig"
description: |
Veremos el terminal y cómo crear/ejecutar un proyecto de Zig
diff --git a/src/pages/blog/es/programacion-07.md b/src/pages/blog/es/programacion-07.md
index e238aec..c9f71ba 100644
--- a/src/pages/blog/es/programacion-07.md
+++ b/src/pages/blog/es/programacion-07.md
@@ -1,8 +1,8 @@
---
-layout: ../../../layouts/BlogLayout.astro
-title: "07: Cero a Zig - Variables"
+layout: ../../../layouts/BlogLayoutEs.astro
+title: "07: Cero a Zig - Impresión con formatos"
description: |
- Introducción a las variables
+ Imprimiendo información adicional.
pubDate: "2024-08-10"
tags: ["tech", "lenguajes", "intro", "tutorial", "zig", "VSCode"]
image:
@@ -11,214 +11,76 @@ image:
caption: ""
---
-Ahora veremos un concepto fundamental: Variables.
+En este artículo aprenderemos más acerca de la impresión,
+especialmente un aspecto importante para futúros artículos:
+formatos.
-Todo el código lo escribiremos en el proyecto que creamos
-en el artículo anterior.
+## Formato de impresión
-
-## Motivación
-
-Vamos a plantear un escenario: Queremos escribir un programa
-que salude a una persona, le diga cuanto cuesta su orden,
-y se despida.
-
-Digamos que la persona se llama `Juan`. El código es así:
+El código para imprimir texto tiene dos partes:
```zig
-const std = @import("std");
-
-pub fn main() !void {
- std.debug.print("Hola {s}\n", .{"Juan"});
- std.debug.print("Tu pedido cuesta {s} dolares\n", .{"20"});
- std.debug.print("Adios {s}\n", .{"Juan"});
-}
+// --- 1 --- -2-
+std.debug.print("formato", .{});
```
-Y al ejecutarlo se muestra:
+- 1: un formato (string)
+- 2: datos adicionales
-![Codigo](/img/blog/es/tutorial/1x/001.jpg)
+Hasta ahora utilizamos el primer string (1) para imprimir
+nuestro texto. Pero en (1) podemos poner unas secuencias
+especiales, que permiten colocar información adicional.
+Esta información adicional se coloca en (2).
-Como el código es sencillo, no hay ningún problema.
-¿Pero qué pasaría si tuvieramos que imprimir el nombre 10 veces?
-Entonces tendríamos que repetirlo 10 veces.
+Por ejemplo, podemos colocar `{s}` para imprimir un
+texto adicional:
+
+![Codigo](/img/blog/es/tutorial/1x/011.png)
+
+En este caso, `{s}` será reemplazado por `Hola`, e
+imprimirá `Hola`.
+
+Otro ejemplo:
+
+![Codigo](/img/blog/es/tutorial/1x/012.jpg)
+
+Aquí también, `{s}` será reemplazado por `Sara`.
+Al ejecutar obtendremos `Mi nombre es Sara, y el tuyo?`
+
+Podemos colocar más de un formato:
+
+![Codigo](/img/blog/es/tutorial/1x/013.jpg)
+
+En este caso la información adicional se reemplaza en orden,
+e imprime `Soy Raul y ella es Rosa`.
+
+Cuando se colocan datos adicionales, se separan con comas:
```zig
-const std = @import("std");
-
-pub fn main() !void {
- std.debug.print("Hola {s}\n", .{"Juan"});
- std.debug.print("Hola {s}\n", .{"Juan"});
- std.debug.print("Hola {s}\n", .{"Juan"});
- std.debug.print("Hola {s}\n", .{"Juan"});
- std.debug.print("Hola {s}\n", .{"Juan"});
- std.debug.print("Hola {s}\n", .{"Juan"});
- std.debug.print("Hola {s}\n", .{"Juan"});
- std.debug.print("Hola {s}\n", .{"Juan"});
- std.debug.print("Hola {s}\n", .{"Juan"});
- std.debug.print("Hola {s}\n", .{"Juan"});
-}
+ .{"Raul", "Rosa"}
+ // |
```
-![Codigo](/img/blog/es/tutorial/1x/002.jpg)
-
-Un poco tedioso, pero nada imposible.
-
-Ahora vamos a cambiar el programa: el nombre de la
-persona será `Maria`.
-
-Lo que tenemos que hacer es cambiar `Juan` por
-`Maria` en los 10 lugares, uno por uno.
-
-Esto es bastante común, y existe una solución para
-no cambiar 10 veces, sino solamente una.
-
-
-## Variables
-
-Una variable es como un almacén. Una variable
-almacena un valor bajo un nombre.
-
-Por ejemplo, podemos decir que `nombre = "Juan"`,
-y a partir de ese momento cada vez que usemos
-`nombre` se reemplazará por `Juan`.
-
-Por ejemplo:
+En el siguiente artículo veremos un concepto
+llamado variables. Por ahora, solo necesitas
+saber que se pueden utilizar.
```zig
-const std = @import("std");
+const std = @import("zig");
pub fn main() !void {
const nombre = "Juan";
- std.debug.print("Hola {s}\n", .{nombre});
+ const apellido = "Perez";
+ std.debug.print("{s} {s}", .{nombre, apellido});
+ // Imprime: `Juan Perez`
}
```
-En el código de arriba en la linea 4, hemos creado una
-variable `nombre`, y le hemos dado como valor `"Juan"`.
-Despues, en la linea 5 estamos utilizando la variable.
-En vez de escribir `.{"Juan"}` escribimos `.{nombre}`.
+## Otros formatos
-Al ejecutar el programa se imprimirá `Hola Juan`
-
-![Codigo](/img/blog/es/tutorial/1x/003.jpg)
-
-Podemos utilizar la variable las veces que queramos.
-Si imprimimos 10 veces se vería así:
-
-```zig
-const std = @import("std");
-
-pub fn main() !void {
- const nombre = "Juan";
- std.debug.print("Hola {s}\n", .{nombre});
- std.debug.print("Hola {s}\n", .{nombre});
- std.debug.print("Hola {s}\n", .{nombre});
- std.debug.print("Hola {s}\n", .{nombre});
- std.debug.print("Hola {s}\n", .{nombre});
- std.debug.print("Hola {s}\n", .{nombre});
- std.debug.print("Hola {s}\n", .{nombre});
- std.debug.print("Hola {s}\n", .{nombre});
- std.debug.print("Hola {s}\n", .{nombre});
- std.debug.print("Hola {s}\n", .{nombre});
-}
-```
-
-Y al ejecutar se imprime 10 veces.
-
-![Codigo](/img/blog/es/tutorial/1x/004.jpg)
-
-Ahora, si queremos cambiar `Juan` por `Maria`,
-solo tenemos que hacerlo en un lugar:
-
-```zig
-const std = @import("std");
-
-pub fn main() !void {
- const nombre = "Maria";
- std.debug.print("Hola {s}\n", .{nombre});
- std.debug.print("Hola {s}\n", .{nombre});
- std.debug.print("Hola {s}\n", .{nombre});
- std.debug.print("Hola {s}\n", .{nombre});
- std.debug.print("Hola {s}\n", .{nombre});
- std.debug.print("Hola {s}\n", .{nombre});
- std.debug.print("Hola {s}\n", .{nombre});
- std.debug.print("Hola {s}\n", .{nombre});
- std.debug.print("Hola {s}\n", .{nombre});
- std.debug.print("Hola {s}\n", .{nombre});
-}
-```
-![Codigo](/img/blog/es/tutorial/1x/005.jpg)
-
-
-## Creando una variable
-
-Para crear una variable se escribe:
-
-- `const`
-- El nombre de la variable
-- `=`
-- El valor de la variable
-- `;`
-
-El nombre de la variable solo puede tener letras,
-números y guiones bajos. No puede tener espacios.
-
-Puedes crear varias variables, cada una en una
-línea. Por ejemplo:
-
-```zig
-const nombre = "Pedro";
-const edad = "32";
-const helado_favorito = "Vainilla";
-```
-
-## Error de duplicado
-
-Otro dato importante es que solo se puede crear
-una variable con un nombre una vez. Por ejemplo:
-
-![Codigo](/img/blog/es/tutorial/1x/006.jpg)
-
-En el código de arriba hay un error. Cuando aparecen
-lineas punteadas rojas significa que hay un error.
-
-Si colocas tu mouse encima de la palabra subrayada
-aparecerá un mensaje:
-
-![Codigo](/img/blog/es/tutorial/1x/007.jpg)
-
-El error es `redeclaration of local constant 'nombre'`.
-Significa "redeclaración de constante local 'nombre'".
-
-Hay algunas palabras raras, pero quiere decir que
-estas volviendo a crear una variable con un nombre
-ya ocupado.
-
-Para solucionar el error, cambia el nombre de la variable.
-
-
-## Error con variables no utilizadas
-
-Si creas variables, y no las utilizas despues,
-tendrás este error:
-
-![Codigo](/img/blog/es/tutorial/1x/008.jpg)
-
-`unused local constant`: "constante local inutilizada".
-
-Zig no nos permite crear una variable y dejarla olvidada.
-Si creamos una variable, la tenemos que usar.
-
-Para solucionar el error, imprime la variable,
-o elimínala, si no la vas a utilizar aún.
-
-
-## Próximamente
-
-En el siguiente artículo aprenderemos los conceptos:
-comentarios, números y operaciones matemáticas.
+Hemos visto el formato `{s}`, pero existen muchos más,
+que aprenderemos a medida que los necesitemos.
diff --git a/src/pages/blog/es/programacion-08.md b/src/pages/blog/es/programacion-08.md
new file mode 100644
index 0000000..5b3a855
--- /dev/null
+++ b/src/pages/blog/es/programacion-08.md
@@ -0,0 +1,224 @@
+---
+layout: ../../../layouts/BlogLayoutEs.astro
+title: "08: Cero a Zig - Variables"
+description: |
+ Introducción a las variables
+pubDate: "2024-08-11"
+tags: ["tech", "lenguajes", "intro", "tutorial", "zig", "VSCode"]
+image:
+ url: ""
+ alt: ""
+ caption: ""
+---
+
+Ahora veremos un concepto fundamental: Variables.
+
+Todo el código lo escribiremos en el proyecto que creamos
+en el artículo anterior.
+
+
+## Motivación
+
+Vamos a plantear un escenario: Queremos escribir un programa
+que salude a una persona, le diga cuanto cuesta su orden,
+y se despida.
+
+Digamos que la persona se llama `Juan`. El código es así:
+
+```zig
+const std = @import("std");
+
+pub fn main() !void {
+ std.debug.print("Hola {s}\n", .{"Juan"});
+ std.debug.print("Tu pedido cuesta {s} dolares\n", .{"20"});
+ std.debug.print("Adios {s}\n", .{"Juan"});
+}
+```
+
+Y al ejecutarlo se muestra:
+
+![Codigo](/img/blog/es/tutorial/1x/001.jpg)
+
+Como el código es sencillo, no hay ningún problema.
+¿Pero qué pasaría si tuvieramos que imprimir el nombre 10 veces?
+Entonces tendríamos que repetirlo 10 veces.
+
+```zig
+const std = @import("std");
+
+pub fn main() !void {
+ std.debug.print("Hola {s}\n", .{"Juan"});
+ std.debug.print("Hola {s}\n", .{"Juan"});
+ std.debug.print("Hola {s}\n", .{"Juan"});
+ std.debug.print("Hola {s}\n", .{"Juan"});
+ std.debug.print("Hola {s}\n", .{"Juan"});
+ std.debug.print("Hola {s}\n", .{"Juan"});
+ std.debug.print("Hola {s}\n", .{"Juan"});
+ std.debug.print("Hola {s}\n", .{"Juan"});
+ std.debug.print("Hola {s}\n", .{"Juan"});
+ std.debug.print("Hola {s}\n", .{"Juan"});
+}
+```
+
+![Codigo](/img/blog/es/tutorial/1x/002.jpg)
+
+Un poco tedioso, pero nada imposible.
+
+Ahora vamos a cambiar el programa: el nombre de la
+persona será `Maria`.
+
+Lo que tenemos que hacer es cambiar `Juan` por
+`Maria` en los 10 lugares, uno por uno.
+
+Esto es bastante común, y existe una solución para
+no cambiar 10 veces, sino solamente una.
+
+
+## Variables
+
+Una variable es como un almacén. Una variable
+almacena un valor bajo un nombre.
+
+Por ejemplo, podemos decir que `nombre = "Juan"`,
+y a partir de ese momento cada vez que usemos
+`nombre` se reemplazará por `Juan`.
+
+Por ejemplo:
+
+```zig
+const std = @import("std");
+
+pub fn main() !void {
+ const nombre = "Juan";
+ std.debug.print("Hola {s}\n", .{nombre});
+}
+```
+
+En el código de arriba en la linea 4, hemos creado una
+variable `nombre`, y le hemos dado como valor `"Juan"`.
+
+Despues, en la linea 5 estamos utilizando la variable.
+En vez de escribir `.{"Juan"}` escribimos `.{nombre}`.
+
+Al ejecutar el programa se imprimirá `Hola Juan`
+
+![Codigo](/img/blog/es/tutorial/1x/003.jpg)
+
+Podemos utilizar la variable las veces que queramos.
+Si imprimimos 10 veces se vería así:
+
+```zig
+const std = @import("std");
+
+pub fn main() !void {
+ const nombre = "Juan";
+ std.debug.print("Hola {s}\n", .{nombre});
+ std.debug.print("Hola {s}\n", .{nombre});
+ std.debug.print("Hola {s}\n", .{nombre});
+ std.debug.print("Hola {s}\n", .{nombre});
+ std.debug.print("Hola {s}\n", .{nombre});
+ std.debug.print("Hola {s}\n", .{nombre});
+ std.debug.print("Hola {s}\n", .{nombre});
+ std.debug.print("Hola {s}\n", .{nombre});
+ std.debug.print("Hola {s}\n", .{nombre});
+ std.debug.print("Hola {s}\n", .{nombre});
+}
+```
+
+Y al ejecutar se imprime 10 veces.
+
+![Codigo](/img/blog/es/tutorial/1x/004.jpg)
+
+Ahora, si queremos cambiar `Juan` por `Maria`,
+solo tenemos que hacerlo en un lugar:
+
+```zig
+const std = @import("std");
+
+pub fn main() !void {
+ const nombre = "Maria";
+ std.debug.print("Hola {s}\n", .{nombre});
+ std.debug.print("Hola {s}\n", .{nombre});
+ std.debug.print("Hola {s}\n", .{nombre});
+ std.debug.print("Hola {s}\n", .{nombre});
+ std.debug.print("Hola {s}\n", .{nombre});
+ std.debug.print("Hola {s}\n", .{nombre});
+ std.debug.print("Hola {s}\n", .{nombre});
+ std.debug.print("Hola {s}\n", .{nombre});
+ std.debug.print("Hola {s}\n", .{nombre});
+ std.debug.print("Hola {s}\n", .{nombre});
+}
+```
+![Codigo](/img/blog/es/tutorial/1x/005.jpg)
+
+
+## Creando una variable
+
+Para crear una variable se escribe:
+
+- `const`
+- El nombre de la variable
+- `=`
+- El valor de la variable
+- `;`
+
+El nombre de la variable solo puede tener letras,
+números y guiones bajos. No puede tener espacios.
+
+Puedes crear varias variables, cada una en una
+línea. Por ejemplo:
+
+```zig
+const nombre = "Pedro";
+const edad = "32";
+const helado_favorito = "Vainilla";
+```
+
+## Error de duplicado
+
+Otro dato importante es que solo se puede crear
+una variable con un nombre una vez. Por ejemplo:
+
+![Codigo](/img/blog/es/tutorial/1x/006.jpg)
+
+En el código de arriba hay un error. Cuando aparecen
+lineas punteadas rojas significa que hay un error.
+
+Si colocas tu mouse encima de la palabra subrayada
+aparecerá un mensaje:
+
+![Codigo](/img/blog/es/tutorial/1x/007.jpg)
+
+El error es `redeclaration of local constant 'nombre'`.
+Significa "redeclaración de constante local 'nombre'".
+
+Hay algunas palabras raras, pero quiere decir que
+estas volviendo a crear una variable con un nombre
+ya ocupado.
+
+Para solucionar el error, cambia el nombre de la variable.
+
+
+## Error con variables no utilizadas
+
+Si creas variables, y no las utilizas despues,
+tendrás este error:
+
+![Codigo](/img/blog/es/tutorial/1x/008.jpg)
+
+`unused local constant`: "constante local inutilizada".
+
+Zig no nos permite crear una variable y dejarla olvidada.
+Si creamos una variable, la tenemos que usar.
+
+Para solucionar el error, imprime la variable,
+o elimínala, si no la vas a utilizar aún.
+
+
+## Próximamente
+
+En el siguiente artículo aprenderemos los conceptos:
+comentarios, números y operaciones matemáticas.
+
+
+
diff --git a/src/pages/blog/es/programacion-09.md b/src/pages/blog/es/programacion-09.md
new file mode 100644
index 0000000..fa6ff46
--- /dev/null
+++ b/src/pages/blog/es/programacion-09.md
@@ -0,0 +1,187 @@
+---
+layout: ../../../layouts/BlogLayoutEs.astro
+title: "09: Cero a Zig - Comentarios y Números"
+description: |
+ Comentarios, números y operaciones matemáticas
+pubDate: "2024-08-17"
+tags: ["tech", "lenguajes", "intro", "tutorial", "zig", "VSCode"]
+image:
+ url: "/img/blog/es/tutorial/1x/009-matematicas.jpg"
+ alt: "Imágen del meme 'Matemáticas hijo'"
+ caption: "¡Matemáticas hijo!"
+---
+
+En este artículo vemos 3 conceptos: Comentarios, números
+y operaciones matemáticas.
+
+
+## Comentarios
+
+Hasta el momento lo único que hemos escrito es código.
+Pero existen multitud de ocasiones donde queremos escribir
+apuntes, recordatorios, explicaciones, etc. Para esto sirven
+los comentarios.
+
+Un comentario es un texto que es ignorado por Zig. Dentro
+de un comentario podemos escribir cualquier cosa, sin importar
+las reglas de Zig.
+
+Los comentarios inician con doble slash `//`,
+y terminan cuando acaba la linea.
+
+
+```zig
+// Este es un comentario
+pub fn main() !void {
+ // Este también es un comentario
+ std.debug.print("Hola", .{});
+}
+```
+
+Una vez que iniciamos un comentario con doble slash,
+la única forma de terminarlo es con una linea nueva.
+
+Si quieres un comentario que abarque varias lineas,
+cada linea debe iniciar con doble slash:
+
+```zig
+pub fn main() !void {
+ // Este es un comentario
+ // que ocupa 3 lineas
+ // de texto :D
+ std.debug.print("Hola", .{});
+}
+```
+
+También puedes escribir un comentario en
+medio de una linea con código, pero no
+es recomendable.
+
+```zig
+pub fn main() !void { // Este es un comentario
+ std.debug.print("Hola", .{}); // Este también
+}
+```
+
+A partir de ahora, utilizaré comentarios en el código
+para explicar mejor los conceptos.
+
+
+## Números
+
+Hay un concepto importante que aprenderemos en un
+próximo artículo llamado "Tipos de datos". Pero por
+ahora, hablaremos solo de una parte pequeña: números.
+
+No necesito explicarte qué son los números. Lo que
+sí necesito es explicar cómo se utilizan en Zig,
+y como se diferencian de los strings.
+
+Primero, vamos a imprimir un número. El código
+es el siguiente:
+
+```zig
+const std = @import("std");
+
+pub fn main() !void {
+ std.debug.print("{d}", .{322});
+}
+```
+
+Nota que el número no tiene comillas. Es `322`,
+no `"322"`.
+
+Al ejecutarlo en el terminal con `zig build run`
+obtenemos:
+
+
+![Codigo](/img/blog/es/tutorial/1x/010.jpg)
+
+Nota en la línea 4 qué formato estamos utilizando:
+`{d}`. Este formato permite imprimir números.
+
+
+También podemos utilizar números en variables:
+
+```zig
+const std = @import("std");
+
+pub fn main() !void {
+ const edad = 32;
+ // Imprime: `Tengo 32 años`
+ std.debug.print("Tengo {d} años", .{edad});
+}
+```
+
+También podemos utilizar números negativos: `-20`;
+
+
+
+### Números, no strings
+
+Quiero recalcar este punto. Estamos escribiendo
+`123`, no `"123"`. No utilizamos comillas.
+
+Esto es importante porque estos dos son cosas
+diferentes. Una cosa es un número, y otra cosa
+es un texto (string).
+
+`123` es un número. Podemos realizar operaciones
+matemáticas con él. `"123"` no es un número,
+es un string. Solo que resulta que los caracteres
+son el 1, 2 y 3. Pero no podemos hacer matemática
+con un string.
+
+Este es un punto de confusión común cuando se
+aprende a programar.
+
+
+### Números enteros, técnicamente (`int`)
+
+Técnicamente, hay muchos tipos de números.
+Lo que estamos utilizando hasta ahora son números
+enteros, que en ingles se llaman "integer numbers".
+
+Ya que en programación todo es inglés y abreviaciones,
+en vez de decir "integer numbers", se les conoce como
+"int".
+
+A partir de ahora también diré `int` cuando me
+refiera a los números enteros.
+
+
+## Matemáticas
+
+Ahora que sabemos cómo crear números (int), podemos hacer
+operaciones con ellos.
+
+Zig soporta las operaciones que conoces: suma `+`,
+resta `-`, multiplicación `*` y división `/`.
+
+```zig
+const std = @import("std");
+
+pub fn main() !void {
+ const r1 = 9 + 3; // 12
+ const r2 = 9 - 3; // 6
+ const r1 = 9 * 3; // 27
+ const r1 = 9 / 3; // 3
+
+ // imprime: `12 6 27 3`
+ std.debug.print("{d} {d} {d} {d}", .{r1, r2, r3, r4});
+}
+```
+
+También puedes hacer varias operaciones a la vez, y
+agruparlas con paréntesis.
+
+```zig
+ const resultado = 80 + 20 / (5 - 3);
+```
+
+
+
+
+## Números racionales (float)
+
+