es blog: add quizes to zig 6
This commit is contained in:
parent
5f2912f76a
commit
ccc50fbb7f
42
src/components/Blog/Exercise.astro
Normal file
42
src/components/Blog/Exercise.astro
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
<div class="border-l border-c-on-bg pl-4 my-8">
|
||||||
|
<slot />
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<button class="inline-block py-2 px-4 rounded-md bg-cyan-300 text-cyan-950
|
||||||
|
font-bold hover:underline exercise-button"
|
||||||
|
>
|
||||||
|
Mostrar solución
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="pt-4 hidden exercise-solution">
|
||||||
|
<slot name="solution" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
document.addEventListener("DOMContentLoaded", () => {
|
||||||
|
const solutionButtons = document.querySelectorAll(".exercise-button");
|
||||||
|
|
||||||
|
for (const button of solutionButtons) {
|
||||||
|
button.addEventListener("click", (ev) => {
|
||||||
|
const el = ev.target as HTMLButtonElement;
|
||||||
|
const button_text = el.innerText;
|
||||||
|
const solution_div = el.parentElement?.parentElement?.querySelector(".exercise-solution");
|
||||||
|
|
||||||
|
if (!solution_div) {
|
||||||
|
console.error("A solution button doesn't have its correspoding solution");
|
||||||
|
console.error(el);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (button_text === "Mostrar solución") {
|
||||||
|
el.innerText = "Ocultar solución";
|
||||||
|
} else {
|
||||||
|
el.innerText = "Mostrar solución";
|
||||||
|
}
|
||||||
|
|
||||||
|
solution_div?.classList.toggle("hidden");
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
5
src/components/Blog/Sh.astro
Normal file
5
src/components/Blog/Sh.astro
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
const {code} = Astro.props;
|
||||||
|
---
|
||||||
|
|
||||||
|
<div class="whitespace-pre p-2 bg-black text-white rounded-md mb-4 font-mono">{code}</div>
|
@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
import BlogLayout from "../../../layouts/BlogLayout.astro";
|
import BlogLayout from "../../../layouts/BlogLayout.astro";
|
||||||
|
|
||||||
const allPosts = await Astro.glob("./*.md");
|
const allPosts = await Astro.glob("./*.{md,mdx}");
|
||||||
---
|
---
|
||||||
|
|
||||||
<BlogLayout lang="es">
|
<BlogLayout lang="es">
|
||||||
|
@ -10,6 +10,9 @@ image:
|
|||||||
alt: ""
|
alt: ""
|
||||||
caption: ""
|
caption: ""
|
||||||
---
|
---
|
||||||
|
import Exercise from "../../../components/Blog/Exercise.astro"
|
||||||
|
import Sh from "../../../components/Blog/Sh.astro"
|
||||||
|
|
||||||
|
|
||||||
En el artículo anterior escribimos nuestro primer programa:
|
En el artículo anterior escribimos nuestro primer programa:
|
||||||
Hola mundo. En este artículos vamos a modificar el mensaje
|
Hola mundo. En este artículos vamos a modificar el mensaje
|
||||||
@ -148,7 +151,6 @@ pub fn main() !void {
|
|||||||
|
|
||||||
Cada instrucción se coloca en una linea nueva.
|
Cada instrucción se coloca en una linea nueva.
|
||||||
|
|
||||||
|
|
||||||
## Siguiente
|
## Siguiente
|
||||||
|
|
||||||
En el siguiente artículo continuaremos trabajando
|
En el siguiente artículo continuaremos trabajando
|
||||||
@ -156,5 +158,104 @@ con impresiones, y aprenderemos qué es ese dato
|
|||||||
adicional misterioso.
|
adicional misterioso.
|
||||||
|
|
||||||
|
|
||||||
|
## 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.
|
||||||
|
|
||||||
|
<Exercise>
|
||||||
|
1: Utiliza `std.debug.print` para imprimir:
|
||||||
|
|
||||||
|
<Sh code={"Son las 10:00pm"} />
|
||||||
|
|
||||||
|
<Fragment slot="solution">
|
||||||
|
```zig
|
||||||
|
const std = @import("std");
|
||||||
|
|
||||||
|
pub fn main() !void {
|
||||||
|
std.debug.print("Son las 10:00pm", .{}); // [!code focus]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
</Fragment>
|
||||||
|
</Exercise>
|
||||||
|
|
||||||
|
<Exercise>
|
||||||
|
2: Escribe un programa que imprima el siguiente texto
|
||||||
|
(necesitaras usar `\n` para crear 2 lineas):
|
||||||
|
|
||||||
|
<Sh code={"hola\nmundo"} />
|
||||||
|
|
||||||
|
<Fragment slot="solution">
|
||||||
|
```zig
|
||||||
|
const std = @import("std");
|
||||||
|
|
||||||
|
pub fn main() !void {
|
||||||
|
std.debug.print("hola\nmundo", .{}); // [!code focus]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
</Fragment>
|
||||||
|
</Exercise>
|
||||||
|
|
||||||
|
<Exercise>
|
||||||
|
3: Escribe un programa que imprima el siguiente texto.
|
||||||
|
Utiliza 1 `std.debug.print` para cada linea
|
||||||
|
|
||||||
|
<Sh code={"El\ncielo\nes\nazul"} />
|
||||||
|
|
||||||
|
<Fragment slot="solution">
|
||||||
|
```zig
|
||||||
|
const std = @import("std");
|
||||||
|
|
||||||
|
pub fn main() !void {
|
||||||
|
std.debug.print("El\n", .{}); // [!code focus:4]
|
||||||
|
std.debug.print("cielo\n", .{});
|
||||||
|
std.debug.print("es\n", .{});
|
||||||
|
std.debug.print("azul\n", .{});
|
||||||
|
}
|
||||||
|
```
|
||||||
|
</Fragment>
|
||||||
|
</Exercise>
|
||||||
|
|
||||||
|
<Exercise>
|
||||||
|
4: Escribe un programa que imprima el siguiente texto.
|
||||||
|
Utiliza **solo 1** `std.debug.print`;
|
||||||
|
|
||||||
|
<Sh code={"El\ncielo\nes\nazul"} />
|
||||||
|
|
||||||
|
<Fragment slot="solution">
|
||||||
|
```zig
|
||||||
|
const std = @import("std");
|
||||||
|
|
||||||
|
pub fn main() !void {
|
||||||
|
std.debug.print("El\ncielo\nes\nazul\n", .{}); // [!code focus]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
</Fragment>
|
||||||
|
</Exercise>
|
||||||
|
|
||||||
|
<Exercise>
|
||||||
|
5: Escribe un programa que imprima el siguiente texto
|
||||||
|
(fíjate en los espacios en blanco antes de cada palabra):
|
||||||
|
|
||||||
|
<Sh code={" El\n cielo\n es\n azul"} />
|
||||||
|
|
||||||
|
<Fragment slot="solution">
|
||||||
|
```zig
|
||||||
|
const std = @import("std");
|
||||||
|
|
||||||
|
pub fn main() !void {
|
||||||
|
std.debug.print(" El\n", .{}); // [!code focus:4]
|
||||||
|
std.debug.print(" cielo\n", .{});
|
||||||
|
std.debug.print(" es\n", .{});
|
||||||
|
std.debug.print(" azul\n", .{});
|
||||||
|
}
|
||||||
|
```
|
||||||
|
</Fragment>
|
||||||
|
</Exercise>
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user