Tracks
/
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

Conceptos básicos

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 conoce como definir una variable. Una variable se puede definir especificando su tipo de forma explícita, o dejando que el compilador de C# infiera su tipo a partir del valor asignado (esto se conoce como inferencia de tipos). Por lo tanto, las siguientes dos definiciones de variable son equivalentes:

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

Actualizar el valor de una variable se hace con el operador =. Una vez que se define, 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 dentro de una clase. La palabra clave class se usa para definir una clase. Los objetos (o instancias) se crean usando la palabra clave new.

class Calculator
{
    // ...
}

var calculator = new Calculator();

Una función dentro de una clase se conoce como método. Cada método puede tener cero o más parámetros. Todos los parámetros deben tener un tipo explícito; no hay inferencia de tipos para los parámetros. De manera similar, el tipo de retorno también debe ser explícito. Los valores se devuelven desde los métodos usando la palabra clave return. Para permitir que el código de otros archivos llame a un método, se debe agregar el modificador de acceso public.

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

Los métodos se invocan usando la sintaxis de punto (.) sobre 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 de forma opcional 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 ámbito en C# se define entre los caracteres { y }.

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

Instrucciones

¡La novia de Lucian está por llegar 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 preparar una exquisita lasaña de su libro de cocina favorito.

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

1. Define el tiempo esperado en el horno en minutos

Define el método Lasagna.ExpectedMinutesInOven() que no toma 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 toma como parámetro los minutos actuales que la lasaña ha estado en el horno y devuelve cuántos minutos le quedan a la lasañ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 toma como parámetro el número de capas que le agregaste a la lasaña y devuelve cuántos minutos tardaste en preparar la lasaña, suponiendo que tardas 2 minutos en preparar cada capa.

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

4. Calcula el tiempo transcurrido en minutos

Define el método Lasagna.ElapsedTimeInMinutes() que toma dos parámetros: el primer parámetro es el número de capas que le agregaste a la lasaña, y el segundo parámetro es el número de minutos que la lasaña ha estado 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 ha estado 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 una pestaña nuevas
C# Exercism

¿Todo 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.