Percursos
/
Java
Java
/
Exercícios
/
Cozinha a tua lasanha
Cozinha a tua lasanha

Cozinha a tua lasanha

Exercício de aprendizagem

Introdução

Noções básicas

O Java é uma linguagem de tipos estáticos, o que significa que o tipo de uma variável é conhecido em tempo de compilação. Atribuir um valor a um nome chama-se definir uma variável. Uma variável define-se especificando explicitamente o seu tipo.

int explicitVar = 10;

A atualização do valor de uma variável faz-se com o operador =. Aqui, o = não representa igualdade matemática. Limita-se a atribuir um valor a uma variável. Uma vez definida, o tipo de uma variável nunca pode mudar.

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

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

O Java é uma linguagem orientada a objetos e exige que todas as funções sejam definidas numa classe. A palavra-chave class serve para definir uma classe.

class Calculator {
    // ...
}

Uma função dentro de uma classe chama-se método. Cada método pode ter zero ou mais parâmetros. Todos os parâmetros têm de ter um tipo explícito; não há inferência de tipos para parâmetros. Do mesmo modo, o tipo do valor devolvido também tem de ser explícito. Os valores são devolvidos pelos métodos através da palavra-chave return. Para permitir que um método seja chamado por outras classes, é preciso acrescentar o modificador de acesso public.

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

Invocar/chamar um método faz-se indicando o nome da classe e do método e passando argumentos para cada um dos parâmetros do método.

int sum = new Calculator().add(1, 2);  // here the  "add" method has been called to perform the task of addition

Em Java, o âmbito define-se entre os caracteres { e }.

O Java suporta dois tipos de comentários. Os comentários de uma linha são precedidos de // e os comentários de várias linhas são inseridos entre /* e */.

Instruções

Neste exercício vais escrever código para te ajudar a cozinhar uma lasanha fantástica a partir do teu livro de receitas preferido.

Tens quatro tarefas, todas relacionadas com o tempo gasto a cozinhar a lasanha.

1. Define o tempo esperado no forno em minutos

Define o método expectedMinutesInOven() que não recebe parâmetros e devolve quantos minutos a lasanha deve estar no forno. De acordo com o livro de receitas, o tempo esperado no forno em minutos é 40:

Lasagna lasagna = new Lasagna();
lasagna.expectedMinutesInOven();
// => 40

2. Calcula o tempo restante no forno em minutos

Define o método remainingMinutesInOven() que recebe como parâmetro os minutos reais que a lasanha já esteve no forno e devolve quantos minutos a lasanha ainda tem de permanecer no forno, com base no tempo esperado no forno em minutos da tarefa anterior.

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

3. Calcula o tempo de preparação em minutos

Define o método preparationTimeInMinutes() que recebe como parâmetro o número de camadas que adicionaste à lasanha e devolve quantos minutos passaste a preparar a lasanha, assumindo que cada camada demora 2 minutos a preparar.

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

4. Calcula o tempo total de trabalho em minutos

Define o método totalTimeInMinutes() que recebe dois parâmetros: o primeiro parâmetro é o número de camadas que adicionaste à lasanha e o segundo parâmetro é o número de minutos que a lasanha já esteve no forno. A função deve devolver quantos minutos, no total, trabalhaste a cozinhar a lasanha, ou seja, a soma do tempo de preparação em minutos com o tempo em minutos que a lasanha passou no forno até ao momento.

Lasagna lasagna = new Lasagna();
lasagna.totalTimeInMinutes(3, 20);
// => 26
Editar via GitHub A ligação abre numa nova janela ou separador
Java Exercism

Estás pronto para começar Cozinha a tua lasanha?

Inscreve-te no Exercism para aprenderes e dominares Java com 26 conceitos158 exercícios, e mentoria humana real, tudo grátis.