diff --git a/2024/02-funciones-y-alcance/solution.cs b/2024/02-funciones-y-alcance/solution.cs
new file mode 100644
index 0000000..59bba01
--- /dev/null
+++ b/2024/02-funciones-y-alcance/solution.cs
@@ -0,0 +1,112 @@
+class FuncionesAlcance
+{
+ // Variable global
+ static int globalVariable = 10;
+
+ public static void Execute()
+ {
+ // 1. Función sin parámetros ni retorno
+ PrintHello();
+
+ // 2. Función con un parámetro
+ PrintMessage("Hello, C#!");
+
+ // 3. Función con varios parámetros
+ AddNumbers(5, 10);
+
+ // 4. Función con retorno
+ int result = MultiplyNumbers(3, 4);
+ Console.WriteLine($"Resultado de la multiplicación: {result}");
+
+ // 5. Funciones dentro de funciones (con función local)
+ OuterFunction();
+
+ // 6. Variables locales y globales
+ int localVariable = 5;
+ Console.WriteLine($"Variable local: {localVariable}");
+ Console.WriteLine($"Variable global antes de modificar: {globalVariable}");
+ ModifyGlobalVariable();
+ Console.WriteLine($"Variable global después de modificar: {globalVariable}");
+
+ // 7. Función con dos cadenas de texto y retorno de un número (Dificultad Extra)
+ int count = PrintNumbersWithText("Fizz", "Buzz");
+ Console.WriteLine($"El número de veces que se imprimió un número es: {count}");
+ }
+
+ // Función sin parámetros ni retorno
+ public static void PrintHello()
+ {
+ Console.WriteLine("Hello, World!");
+ }
+
+ // Función con un parámetro
+ public static void PrintMessage(string message)
+ {
+ Console.WriteLine(message);
+ }
+
+ // Función con varios parámetros
+ public static void AddNumbers(int a, int b)
+ {
+ Console.WriteLine($"Suma: {a + b}");
+ }
+
+ // Función con retorno
+ public static int MultiplyNumbers(int a, int b)
+ {
+ return a * b;
+ }
+
+ // Función externa con función interna (local)
+ public static void OuterFunction()
+ {
+ // Función local dentro de una función
+ static void InnerFunction()
+ {
+ Console.WriteLine("Soy una función interna.");
+ }
+
+ Console.WriteLine("Soy la función externa.");
+ InnerFunction(); // Llamada a la función interna
+ }
+
+ // Modificar la variable global
+ public static void ModifyGlobalVariable()
+ {
+ globalVariable += 10;
+ }
+
+ // Función que recibe dos cadenas de texto y retorna un número (Dificultad Extra)
+ public static int PrintNumbersWithText(string text1, string text2)
+ {
+ int count = 0;
+
+ for (int i = 1; i <= 100; i++)
+ {
+ if (i % 3 == 0 && i % 5 == 0)
+ {
+ // Si es múltiplo de 3 y 5, imprime ambas cadenas concatenadas
+ Console.WriteLine(text1 + text2);
+ }
+ else if (i % 3 == 0)
+ {
+ // Si es múltiplo de 3, imprime la primera cadena
+ Console.WriteLine(text1);
+ }
+ else if (i % 5 == 0)
+ {
+ // Si es múltiplo de 5, imprime la segunda cadena
+ Console.WriteLine(text2);
+ }
+ else
+ {
+ // Imprime el número y aumenta el contador
+ Console.WriteLine(i);
+ count++;
+ }
+ }
+
+ // Retorna la cantidad de veces que se imprimió un número
+ return count;
+ }
+}
diff --git a/README.md b/README.md
index 286c16c..f6cb267 100644
--- a/README.md
+++ b/README.md
@@ -71,7 +71,7 @@ dotnet run 2024 00
| :-: | ------------------------------------------------------------------------------------------- | :--------: | --------------------------------------------------------------------------------------------------------------------- |
| 00 | [Sintaxis, Variables, Tipos de datos y Hola Mundo](https://retosdeprogramacion.com/roadmap/)| 🟢 | [![JavaScript](https://img.shields.io/badge/-JavaScript-F7DF1E?style=flat&logo=javascript&logoColor=black)](./2024/00-sintaxis-variables-tipos-de-datos-y-hola-mundo/index.js)
[![TypeScript](https://img.shields.io/badge/-TypeScript-3178C6?style=flat&logo=typescript&logoColor=white)](./2024/00-sintaxis-variables-tipos-de-datos-y-hola-mundo/solution.ts)
[![PHP](https://img.shields.io/badge/PHP-777BB4?style=flat&logo=php&logoColor=white)](./2024/00-sintaxis-variables-tipos-de-datos-y-hola-mundo/solution.php)
[![C#](https://img.shields.io/badge/C%23-239120?style=flat&logo=c-sharp&logoColor=white)](./2024/00-sintaxis-variables-tipos-de-datos-y-hola-mundo/solution.cs) |
| 01 | [Operadores y Estructuras de Control](https://retosdeprogramacion.com/roadmap/) | 🟢 | [![JavaScript](https://img.shields.io/badge/-JavaScript-F7DF1E?style=flat&logo=javascript&logoColor=black)](./2024/01-operadores-y-estructuras-de-control/index.js)
[![TypeScript](https://img.shields.io/badge/-TypeScript-3178C6?style=flat&logo=typescript&logoColor=white)](./2024/01-operadores-y-estructuras-de-control/solution.ts)
[![PHP](https://img.shields.io/badge/PHP-777BB4?style=flat&logo=php&logoColor=white)](./2024/01-operadores-y-estructuras-de-control/solution.php)
[![C#](https://img.shields.io/badge/C%23-239120?style=flat&logo=c-sharp&logoColor=white)](./2024/01-operadores-y-estructuras-de-control/solution.cs) |
-| 02 | [Funciones y alcance](https://retosdeprogramacion.com/roadmap/) | 🟢 | [![JavaScript](https://img.shields.io/badge/-JavaScript-F7DF1E?style=flat&logo=javascript&logoColor=black)](./2024/02-funciones-y-alcance/index.js)
[![TypeScript](https://img.shields.io/badge/-TypeScript-3178C6?style=flat&logo=typescript&logoColor=white)](./2024/02-funciones-y-alcance/solution.ts)
[![PHP](https://img.shields.io/badge/PHP-777BB4?style=flat&logo=php&logoColor=white)](./2024/02-funciones-y-alcance/solution.php) |
+| 02 | [Funciones y alcance](https://retosdeprogramacion.com/roadmap/) | 🟢 | [![JavaScript](https://img.shields.io/badge/-JavaScript-F7DF1E?style=flat&logo=javascript&logoColor=black)](./2024/02-funciones-y-alcance/index.js)
[![TypeScript](https://img.shields.io/badge/-TypeScript-3178C6?style=flat&logo=typescript&logoColor=white)](./2024/02-funciones-y-alcance/solution.ts)
[![PHP](https://img.shields.io/badge/PHP-777BB4?style=flat&logo=php&logoColor=white)](./2024/02-funciones-y-alcance/solution.php)
[![C#](https://img.shields.io/badge/C%23-239120?style=flat&logo=c-sharp&logoColor=white)](./2024/02-funciones-y-alcance/solution.cs) |
| 03 | [Estructuras de Datos](https://retosdeprogramacion.com/roadmap/) | 🟡 | [![JavaScript](https://img.shields.io/badge/-JavaScript-F7DF1E?style=flat&logo=javascript&logoColor=black)](./2024/03-estructuras-de-datos/index.js)
[![TypeScript](https://img.shields.io/badge/-TypeScript-3178C6?style=flat&logo=typescript&logoColor=white)](./2024/03-estructuras-de-datos/solution.ts)
[![PHP](https://img.shields.io/badge/PHP-777BB4?style=flat&logo=php&logoColor=white)](./2024/03-estructuras-de-datos/solution.php) |
| 04 | [Cadena de Caracteres](https://retosdeprogramacion.com/roadmap/) | 🟡 | [![JavaScript](https://img.shields.io/badge/-JavaScript-F7DF1E?style=flat&logo=javascript&logoColor=black)](./2024/04-cadenas-de-caracteres/index.js)
[![TypeScript](https://img.shields.io/badge/-TypeScript-3178C6?style=flat&logo=typescript&logoColor=white)](./2024/04-cadenas-de-caracteres/solution.ts)
[![PHP](https://img.shields.io/badge/PHP-777BB4?style=flat&logo=php&logoColor=white)](./2024/04-cadenas-de-caracteres/solution.php) |
| 05 | [Valor y Referencia](https://retosdeprogramacion.com/roadmap/) | 🟢 | [![JavaScript](https://img.shields.io/badge/-JavaScript-F7DF1E?style=flat&logo=javascript&logoColor=black)](./2024/05-valor-y-referencia/index.js)
[![TypeScript](https://img.shields.io/badge/-TypeScript-3178C6?style=flat&logo=typescript&logoColor=white)](./2024/05-valor-y-referencia/solution.ts)
[![PHP](https://img.shields.io/badge/PHP-777BB4?style=flat&logo=php&logoColor=white)](./2024/05-valor-y-referencia/solution.php) |
diff --git a/weekly-challenges.cs b/weekly-challenges.cs
index 9d449fc..7ae5d11 100644
--- a/weekly-challenges.cs
+++ b/weekly-challenges.cs
@@ -11,6 +11,7 @@ private class Challenge(string name, Action execute)
private static readonly Dictionary challenges2024 = new() {
{ "00", new Challenge("Sintaxis, variables, tipos de datos y ¡Hola, Mundo!", SintaxisVariables.Execute) },
{ "01", new Challenge("Operadores y estructuras de control", OperadoresEstructurasControl.Execute) },
+ { "02", new Challenge("Funciones y métodos", FuncionesAlcance.Execute) },
};
private static readonly Dictionary> challengeActions = new() {
diff --git a/weekly-challenges.sln b/weekly-challenges.sln
new file mode 100644
index 0000000..d38f250
--- /dev/null
+++ b/weekly-challenges.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.5.002.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "weekly-challenges", "weekly-challenges.csproj", "{9AC8FB7D-179A-4836-81E5-618E5173EB35}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {9AC8FB7D-179A-4836-81E5-618E5173EB35}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {9AC8FB7D-179A-4836-81E5-618E5173EB35}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {9AC8FB7D-179A-4836-81E5-618E5173EB35}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {9AC8FB7D-179A-4836-81E5-618E5173EB35}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {AD2B30D3-5AA5-4748-A39E-CCFC40A3CD2C}
+ EndGlobalSection
+EndGlobal