Trilhas
/
C#
C#
/
Exercícios
/
A lasanha deliciosa do Lucian
A lasanha deliciosa do Lucian

A lasanha deliciosa do Lucian

Exercício de aprendizagem

Introdução

Noções básicas

C# é uma linguagem de tipagem estática, o que significa que tudo tem um tipo em tempo de compilação. Atribuir um valor a um nome é o que chamamos de definir uma variável. Você pode definir uma variável especificando o tipo explicitamente ou deixando o compilador do C# inferir o tipo com base no valor atribuído (o que chamamos de inferência de tipo). Por isso, as duas definições de variável a seguir são equivalentes:

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

Para atualizar o valor de uma variável, usamos o operador =. Depois de definida, o tipo de uma variável nunca muda.

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

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

O C# é uma linguagem orientada a objetos e exige que todas as funções sejam definidas em uma classe. A palavra-chave class é usada para definir uma classe. Objetos (ou instâncias) são criados com a palavra-chave new.

class Calculator
{
    // ...
}

var calculator = new Calculator();

Uma função dentro de uma classe é chamada de método. Cada método pode ter zero ou mais parâmetros. Todos os parâmetros precisam ter o tipo explícito; não existe inferência de tipo para parâmetros. Da mesma forma, o tipo de retorno também precisa ser explícito. Valores são retornados dos métodos com a palavra-chave return. Para que um método possa ser chamado por código em outros arquivos, é preciso adicionar o modificador de acesso public.

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

Os métodos são invocados com a sintaxe de ponto (.) em uma instância, informando o nome do método a chamar e passando argumentos para cada um dos parâmetros dele. Os argumentos podem, opcionalmente, especificar o nome do parâmetro correspondente.

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

O escopo em C# é definido entre os caracteres { e }.

O C# aceita dois tipos de comentários. Comentários de uma linha são precedidos por //, e comentários de várias linhas ficam entre /* e */.

Instruções

A namorada de Lucian está voltando para casa e ele ainda não preparou o jantar de aniversário deles!

Neste exercício, você vai escrever um pouco de código para ajudar Lucian a preparar uma lasanha primorosa do seu livro de receitas favorito.

Você tem quatro tarefas, todas relacionadas ao tempo gasto no preparo da lasanha.

1. Defina o tempo esperado no forno, em minutos

Defina o método Lasagna.ExpectedMinutesInOven() que não recebe nenhum parâmetro e retorna quantos minutos a lasanha deve ficar no forno. De acordo com o livro de receitas, o tempo esperado no forno, em minutos, é 40:

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

2. Calcule o tempo restante no forno, em minutos

Defina o método Lasagna.RemainingMinutesInOven() que recebe como parâmetro os minutos que a lasanha já passou no forno e retorna quantos minutos a lasanha ainda precisa ficar no forno, com base no tempo esperado no forno, em minutos, da tarefa anterior.

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

3. Calcule o tempo de preparo, em minutos

Defina o método Lasagna.PreparationTimeInMinutes() que recebe como parâmetro o número de camadas que você adicionou à lasanha e retorna quantos minutos você passou preparando a lasanha, considerando que cada camada leva 2 minutos para preparar.

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

4. Calcule o tempo decorrido, em minutos

Defina o método Lasagna.ElapsedTimeInMinutes() que recebe dois parâmetros: o primeiro é o número de camadas que você adicionou à lasanha, e o segundo é o número de minutos que a lasanha já passou no forno. A função deve retornar quantos minutos você passou trabalhando no preparo da lasanha, ou seja, a soma do tempo de preparo, em minutos, com o tempo, em minutos, que a lasanha já passou no forno até o momento.

var lasagna = new Lasagna();
lasagna.ElapsedTimeInMinutes(3, 20);
// => 26
Editar via GitHub O link abre em uma nova janela ou aba
C# Exercism

Tudo pronto para começar A lasanha deliciosa do Lucian?

Crie sua conta no Exercism para aprender e dominar C# com 62 conceitos178 exercícios e mentoria humana de verdade, tudo de graça.