diff --git a/src/pages/blog/es/programacion-06.mdx b/src/pages/blog/es/programacion-06.mdx index 56e2b36..718098f 100644 --- a/src/pages/blog/es/programacion-06.mdx +++ b/src/pages/blog/es/programacion-06.mdx @@ -257,5 +257,23 @@ pero intenta resolverlos por ti mismo antes. + + 6: Escribe un programa que imprima el siguiente texto + (fíjate en las lineas en blanco): + + + + + ```zig + const std = @import("std"); + + pub fn main() !void { + std.debug.print("linea 1\n\n", .{}); // [!code focus:3] + std.debug.print("linea 2\n\n\n", .{}); + std.debug.print("linea 3", .{}); + } + ``` + + diff --git a/src/pages/blog/es/programacion-07.md b/src/pages/blog/es/programacion-07.mdx similarity index 74% rename from src/pages/blog/es/programacion-07.md rename to src/pages/blog/es/programacion-07.mdx index 77705e7..ec42058 100644 --- a/src/pages/blog/es/programacion-07.md +++ b/src/pages/blog/es/programacion-07.mdx @@ -10,6 +10,8 @@ image: alt: "" caption: "" --- +import Exercise from "../../../components/Blog/Exercise.astro" +import Sh from "../../../components/Blog/Sh.astro" En este artículo aprenderemos más acerca de la impresión, especialmente un aspecto importante para futúros artículos: @@ -83,4 +85,27 @@ Hemos visto el formato `{s}`, pero existen muchos más, que aprenderemos a medida que los necesitemos. +## Ejercicios +Resuelve estos ejercicios en tu editor de texto VSCode. +Al ejecutar debe salir en el terminal el mismo resultado +que el del enunciado. + +Si estas atascado en un problema puedes mostrar la solución, +pero intenta resolverlos por ti mismo antes. + + + 1: Utiliza el formato `{s}` para imprimir: + + + + + ```zig + const std = @import("std"); + + pub fn main() !void { + std.debug.print("Hola {s}", .{"mundo"}); // [!code focus] + } + ``` + + diff --git a/src/pages/blog/es/programacion-08.md b/src/pages/blog/es/programacion-08.mdx similarity index 51% rename from src/pages/blog/es/programacion-08.md rename to src/pages/blog/es/programacion-08.mdx index 7d49368..12678a8 100644 --- a/src/pages/blog/es/programacion-08.md +++ b/src/pages/blog/es/programacion-08.mdx @@ -10,6 +10,8 @@ image: alt: "" caption: "" --- +import Exercise from "../../../components/Blog/Exercise.astro" +import Sh from "../../../components/Blog/Sh.astro" Ahora veremos un concepto fundamental: Variables. @@ -162,8 +164,6 @@ Para crear una variable se escribe: - 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: @@ -174,6 +174,37 @@ const edad = "32"; const helado_favorito = "Vainilla"; ``` + +## Nombre de la variable + +Los nombres de las variables siguen algunas reglas: + +- El nombre inicia con letra minúscula o guión bajo `_` +- El nombre despues puede tener letras minúsculas, mayúsculas, + números o guiones bajos `_`. +- No pueden haber espacios, guiones `-` u otros. + +Por ejemplo, los siguientes nombres son válidos: + +```zig +_nombre +apellido +nombres_y_apellidos +numeroDeVentas +ratio_fiscal_2 +``` + +Los siguientes nombres son inválidos: + +```zig +Nombre // inicia con N mayuscula +3_gatos // inicia con un número +nombres y apellidos // tiene espacios +apelido-paterno // tiene un guión +``` + + + ## Error de duplicado Otro dato importante es que solo se puede crear @@ -221,4 +252,143 @@ En el siguiente artículo aprenderemos los conceptos: comentarios, números y operaciones matemáticas. +## Ejercicios + +Resuelve estos ejercicios en tu editor de texto VSCode. +Al ejecutar debe salir en el terminal el mismo resultado +que el del enunciado. + +Tu respuesta no necesita ser exáctamente la misma a la +que está aquí, pero debería funcionar. + + + 1: Crea una variable `nombre` con valor `"John"`, + y una variable `apellido` con valor `"Doe"`. + Imprime ambas utilizando formatos. + + + + + ```zig + const std = @import("std"); + + pub fn main() !void { + const nombre = "John"; // [!code focus:4] + const apellido = "Doe"; + + std.debug.print("{s} {s}\n", .{nombre, apellido}); + } + ``` + + + + + 2: Necesito un programa que imprima el siguiente mensaje: + + + + Mi empresa aún no tiene un nombre fijo, así que necesito + poder cambiar `ACME inc` fácilmente después. + + + ```zig + const std = @import("std"); + + pub fn main() !void { + const empresa = "ACME inc"; // [!code focus:5] + + std.debug.print("Bienvenido a {s}\n\n", .{empresa}); + std.debug.print("Tu postulación a {s} ha sido aceptada.\n", .{empresa}); + std.debug.print("En breve recibirás un correo con el código de conducta de {s}\n", .{empresa}); + } + ``` + + + + + 3: También necesito un programa que imprima una lista de invitados: + + + + Como puedes ver, aun está el nombre provisional `ACME inc`. + Pero también hay nombres provisionales de las áreas de la + empresa: `Área A`, `Área B` y `Área C`. Estos nombres + eventualmente cambiarán, asi que necesito poder cambiarlos + después en un único lugar. Los nombres de las personas + no cambiarán. + + + ```zig + const std = @import("std"); + + pub fn main() !void { + const empresa = "ACME inc"; // [!code focus:13] + const area_1 = "Área A"; + const area_2 = "Área B"; + const area_3 = "Área C"; + + std.debug.print("Lista de invitados:\n\n", .{}); + std.debug.print("{} de {}: Rosa\n", .{area_1, empresa}); + std.debug.print("{} de {}: María\n", .{area_1, empresa}); + std.debug.print("{} de {}: Andrea\n", .{area_1, empresa}); + std.debug.print("{} de {}: Rodrigo\n", .{area_2, empresa}); + std.debug.print("{} de {}: Pedro\n", .{area_2, empresa}); + std.debug.print("{} de {}: Raul\n", .{area_3, empresa}); + std.debug.print("{} de {}: Ana\n", .{area_3, empresa}); + } + ``` + + + + + 4: Mis socios y yo nos pusimos de acuerdo. Necesito el programa + para imprimir la lista de invitados. El nombre final de la + empresa es `AXM SAC`, y las 3 áreas son (en orden): + `Administración`, `Tesorería` y `Ventas`. + + La lista debe verse así: + + + + + ```zig + const std = @import("std"); + + pub fn main() !void { + const empresa = "AXM SAC"; // [!code focus:13] + const area_1 = "Administración"; + const area_2 = "Tesorería"; + const area_3 = "Ventas"; + + std.debug.print("Lista de invitados:\n\n", .{}); + std.debug.print("{} de {}: Rosa\n", .{area_1, empresa}); + std.debug.print("{} de {}: María\n", .{area_1, empresa}); + std.debug.print("{} de {}: Andrea\n", .{area_1, empresa}); + std.debug.print("{} de {}: Rodrigo\n", .{area_2, empresa}); + std.debug.print("{} de {}: Pedro\n", .{area_2, empresa}); + std.debug.print("{} de {}: Raul\n", .{area_3, empresa}); + std.debug.print("{} de {}: Ana\n", .{area_3, empresa}); + } + ``` + + + + + diff --git a/src/pages/blog/es/programacion-09.md b/src/pages/blog/es/programacion-09.mdx similarity index 88% rename from src/pages/blog/es/programacion-09.md rename to src/pages/blog/es/programacion-09.mdx index 9c315a5..326a936 100644 --- a/src/pages/blog/es/programacion-09.md +++ b/src/pages/blog/es/programacion-09.mdx @@ -10,6 +10,8 @@ image: alt: "Imágen del meme 'Matemáticas hijo'" caption: "¡Matemáticas hijo!" --- +import Exercise from "../../../components/Blog/Exercise.astro" +import Sh from "../../../components/Blog/Sh.astro" En este artículo vemos 3 conceptos: Comentarios, números y operaciones matemáticas. @@ -72,6 +74,23 @@ A partir de ahora, utilizaré comentarios en el código para explicar mejor los conceptos. +### Strings vs comentarios + +Los comentarios no pueden ir dentro de un string: + +```zig +const std = @import("std"); + +pub fn main() !void { + const nombre = "Juan // no es comentario" + std.debug.print("Hola {s}", .{nombre}); +} +``` + + + + + ## Números Hay un concepto importante que aprenderemos en un @@ -184,6 +203,21 @@ agruparlas con paréntesis. const resultado = 80 + 20 / (5 - 3); ``` +Y puedes utilizar variables: + +```zig +const std = @import("std"); + +pub fn main() !void { + const largo = 150; // [!code focus:6] + const ancho = 70; + const area = largo * ancho; // [!code highlight] + + // Imprime `El área es 10500m2` + std.debug.print("El área es {d}m2", .{area}); +} +``` +