Rutas
/
C#
C#
/
Ejercicios
/
La deliciosa lasaña de Lucian
La deliciosa lasaña de Lucian

La deliciosa lasaña de Lucian

Ejercicio de aprendizaje

Introducción

Fundamentos

C# es un lenguaje de tipado estático, lo que significa que todo tiene un tipo en tiempo de compilación. Asignar un valor a un nombre se denomina definir una variable. Una variable se puede definir especificando explícitamente su tipo o dejando que el compilador de C# infiera su tipo a partir del valor asignado (lo que se conoce como inferencia de tipos). Por lo tanto, las dos definiciones de variable siguientes son equivalentes:

int explicitVar = 10; // Explicitly typed
var implicitVar = 10; // Implicitly typed

Actualizar el valor de una variable se hace mediante el operador =. Una vez definida, el tipo de una variable nunca puede cambiar.

var count = 1; // Assign initial value
count = 2;     // Update to new value

// Compiler error when assigning different type
// count = false;

C# es un lenguaje orientado a objetos y requiere que todas las funciones se definan en una clase. La palabra clave class se utiliza para definir una clase. Los objetos (o instancias) se crean utilizando la palabra clave new.

class Calculator
{
    // ...
}

var calculator = new Calculator();

Una función dentro de una clase se denomina método. Cada método puede tener cero o más parámetros. Todos los parámetros deben estar tipados explícitamente; no hay inferencia de tipos para los parámetros. Del mismo modo, el tipo de retorno también debe ser explícito. Los valores se devuelven desde los métodos mediante la palabra clave return. Para permitir que el código de otros archivos llame a un método, se debe añadir el modificador de acceso public.

class Calculator
{
    public int Add(int x, int y)
    {
        return x + y;
    }
}

Los métodos se invocan utilizando la sintaxis de punto (.) en una instancia, especificando el nombre del método que se va a llamar y pasando argumentos para cada uno de los parámetros del método. Los argumentos pueden especificar opcionalmente el nombre del parámetro correspondiente.

var calculator = new Calculator();
var sum_v1 = calculator.Add(1, 2);
var sum_v2 = calculator.Add(x: 1, y: 2);

El scope en C# se define entre los caracteres { y }.

C# admite dos tipos de comentarios. Los comentarios de una sola línea van precedidos de // y los comentarios multilínea se insertan entre /* y */.

Instrucciones

¡La novia de Lucian está de camino a casa y él todavía no ha preparado la cena de su aniversario!

En este ejercicio, vas a escribir algo de código para ayudar a Lucian a cocinar una exquisita lasaña de su libro de cocina favorito.

Tienes cuatro tareas, todas relacionadas con el tiempo que se tarda en cocinar la lasaña.

1. Define el tiempo esperado en el horno en minutos

Define el método Lasagna.ExpectedMinutesInOven(), que no recibe ningún parámetro y devuelve cuántos minutos debe estar la lasaña en el horno. Según el libro de cocina, el tiempo esperado en el horno en minutos es 40:

var lasagna = new Lasagna();
lasagna.ExpectedMinutesInOven();
// => 40

2. Calcula el tiempo restante en el horno en minutos

Define el método Lasagna.RemainingMinutesInOven(), que recibe como parámetro los minutos que la lasaña lleva ya en el horno y devuelve cuántos minutos le quedan todavía por permanecer en el horno, según el tiempo esperado en el horno en minutos de la tarea anterior.

var lasagna = new Lasagna();
lasagna.RemainingMinutesInOven(30);
// => 10

3. Calcula el tiempo de preparación en minutos

Define el método Lasagna.PreparationTimeInMinutes(), que recibe como parámetro el número de capas que has añadido a la lasaña y devuelve cuántos minutos has tardado en prepararla, suponiendo que cada capa te lleva 2 minutos de preparación.

var lasagna = new Lasagna();
lasagna.PreparationTimeInMinutes(2);
// => 4

4. Calcula el tiempo transcurrido en minutos

Define el método Lasagna.ElapsedTimeInMinutes(), que recibe dos parámetros: el primer parámetro es el número de capas que has añadido a la lasaña, y el segundo parámetro es el número de minutos que la lasaña lleva en el horno. La función debe devolver cuántos minutos has dedicado a cocinar la lasaña, que es la suma del tiempo de preparación en minutos y el tiempo en minutos que la lasaña lleva en el horno en ese momento.

var lasagna = new Lasagna();
lasagna.ElapsedTimeInMinutes(3, 20);
// => 26
Editar en GitHub El enlace se abre en una ventana o pestaña nueva
C# Exercism

¿Listo para empezar La deliciosa lasaña de Lucian?

Regístrate en Exercism para aprender y dominar C# con 62 conceptos178 ejercicios y mentoría humana real, todo gratis.