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

Para obtener información más detallada sobre estos temas, visita la página del concepto.

Sintaxis general

La etiqueta de apertura de PHP <?php marca el inicio del código PHP. Todas las sentencias deben terminar con un ; para separar las instrucciones.

<?php

$message = "Success!"; // Statement correctly ends with `;`
$message = "I fail." // PHP Parse error: syntax error, [...]

Para facilitar la lectura, todos los ejemplos de código omiten la etiqueta de apertura de PHP <?php.

Comentarios

Los comentarios de una línea empiezan con //.

// Single line comment

Valores y variables

Con el operador de asignación =, puedes asignar un valor a una variable. Los nombres de las variables deben empezar con el signo de dólar $ y seguir las convenciones de nomenclatura.

$count = 1; // Assign value of 1

// Strings can be created by enclosing the characters
// within single `'` quotes or double `"` quotes.
$message = "Success!";

Funciones y métodos

Puedes pasar valores y variables a las funciones. Los argumentos de la función se convierten en nuevas variables que contienen los valores que se pasan. Las funciones pueden devolver cualquier valor usando la palabra clave return.

function window_height($height)
{
    return $height + 10;
}

window_height(100);
// => 110

Las funciones que están dentro de las clases y sus instancias se llaman métodos. Para llamar a un método, el nombre va precedido por la instancia y ->. Los métodos tienen acceso a la variable especial $this, que hace referencia a la instancia actual.

<?php

class Calculator {
    public function sub($x, $y)
    {
        return $this->add($x, -$y); // Calls the method add() of the current instance
    }

    public function add($x, $y)
    {
        return $x + $y;
    }
}

$calculator = new Calculator(); // Creates a new instance of Calculator class
$calculator->sub(3, 1); // Calls the method sub() of the instance stored in $calculator
// => 2

Instrucciones

En este ejercicio vas a escribir algo de código para ayudarte a cocinar una lasaña buenísima de tu libro de cocina favorito.

Tienes cinco tareas, todas relacionadas con el tiempo que dedicas a cocinar la lasaña.

1. Define el tiempo de horneado esperado en minutos

Implementa la función expectedCookTime en la clase Lasagna que no recibe ningún argumento y devuelve cuántos minutos debe estar la lasaña en el horno. Según el libro de cocina, el tiempo de horneado esperado en minutos es 40:

<?php
$timer = new Lasagna();
$timer->expectedCookTime()
// => 40

2. Calcula el tiempo restante de horneado en minutos

Implementa la función remainingCookTime en la clase Lasagna que recibe como argumento los minutos reales que la lasaña ha estado en el horno y devuelve cuántos minutos le quedan aún por estar en el horno, según el tiempo de horneado esperado en minutos de la tarea anterior.

<?php
$timer = new Lasagna();
$timer->remainingCookTime(30)
// => 10

3. Calcula el tiempo de preparación en minutos

Implementa la función totalPreparationTime en la clase Lasagna que recibe como argumento el número de capas que agregaste a la lasaña y devuelve cuántos minutos dedicaste a preparar la lasaña, suponiendo que cada capa te toma 2 minutos de preparación.

<?php
$timer = new Lasagna();
$timer->totalPreparationTime(3)
// => 6

4. Calcula el tiempo total de trabajo en minutos

Implementa la función totalElapsedTime en la clase Lasagna que recibe dos argumentos: el primer argumento es el número de capas que agregaste a la lasaña, y el segundo argumento es el número de minutos que la lasaña ha estado en el horno. La función debe devolver cuántos minutos en total has trabajado cocinando la lasaña, que es la suma del tiempo de preparación en minutos y el tiempo en minutos que la lasaña ha pasado en el horno hasta el momento.

<?php
$timer = new Lasagna();
$timer->totalElapsedTime(3, 20)
// => 26

5. Crea una notificación de que la lasaña está lista

Implementa la función alarm en la clase Lasagna que no recibe ningún argumento y devuelve un mensaje que indica que la lasaña está lista para comer.

<?php
$timer = new Lasagna();
$timer->alarm()
// => "Ding!"
Editar en GitHub El enlace se abre en una ventana o una pestaña nuevas
PHP Exercism

¿Todo listo para empezar La deliciosa lasaña de Lucian?

Regístrate en Exercism para aprender y dominar PHP con 11 conceptos122 ejercicios y mentoría humana real, todo gratis.