Diferencia entre revisiones de «Plantilla:ManuelRomero/PHP/funciones/practica»

De WikiEducator
Saltar a: navegación, buscar
(Pautas para resolver el ejercicio:)
(Pautas para resolver el ejercicio:)
 
(4 revisiones intermedias por el mismo usuario no mostrado)
Línea 44: Línea 44:
 
{{plegable|hide|platilla|
 
{{plegable|hide|platilla|
 
<source lang=html5>
 
<source lang=html5>
        <?php
+
<?php
        // Variables simples para las tareas
+
  
        // Inicializamos Variables para estadísticas
 
  
        // Función para calcular estadísticas
+
function contarTareasCompletadas(string $t1, string $t2, string $t3): int
        function contarTareas($t1, $t2, $t3, &$total, &$completadas, &$pendientes) {
+
{
 +
 
 +
}
  
        }
+
function crearTareas(&$tarea_1, &$tarea_2, &$tarea_3)
 +
{
  
        // Llamar a la función
+
}
        contarTareas($tarea1_estado, $tarea2_estado, $tarea3_estado, $total, $completadas, $pendientes);
+
 
        ?>
+
function asigarEstado(): string
 +
{
 +
}
 +
 
 +
function asigarEstilo($estado)
 +
{
 +
}
 +
 
 +
 
 +
// Variables simples para las tareas
 +
 
 +
//Declaramos 3 tareas
 +
crearTareas($tarea_1, $tarea_2, $tarea_3);
 +
 
 +
//Establecemso el estado de las tareas (de cada una)
 +
$tarea_1_estado = asigarEstado();
 +
$tarea_2_estado = asigarEstado();
 +
$tarea_3_estado = asigarEstado();
 +
 
 +
//Contamos las tareas
 +
$completadas = contarTareasCompletadas($tarea_1_estado, $tarea_2_estado, $tarea_3_estado);
 +
$pendientes = $tareas_total - $completadas;
 +
 
 +
//Asignamos estilo a las tareas
 +
$tarea_1_estilo = asigarEstilo($tarea_1_estado);
 +
$tarea_2_estilo = asigarEstilo($tarea_2_estado);
 +
$tarea_3_estilo = asigarEstilo($tarea_3_estado);
 +
 
 +
 
 +
?>
  
 
<!DOCTYPE html>
 
<!DOCTYPE html>
 
<html lang="es">
 
<html lang="es">
 
<head>
 
<head>
  <meta charset="UTF-8">
+
    <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Gestor de Tareas - Funciones</title>
+
    <title>Gestor de Tareas - Funciones</title>
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet">
+
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet">
 
</head>
 
</head>
 
<body class="bg-light">
 
<body class="bg-light">
 
<div class="container py-5">
 
<div class="container py-5">
  <h1 class="text-center mb-4">Gestor de Tareas</h1>
+
    <h1 class="text-center mb-4">Gestor de Tareas</h1>
  
  <!-- Introducción -->
+
    <!-- Introducción -->
  <div class="mb-4">
+
    <div class="mb-4">
      <p>En esta página trabajaremos con funciones para calcular estadísticas de tareas. Actualmente, hay tres tareas predefinidas.</p>
+
        <p>En esta página trabajaremos con funciones para calcular estadísticas de tareas.
  </div>
+
            Actualmente, hay tres tareas predefinidas.</p>
 +
    </div>
  
  <!-- Tareas con variables simples -->
+
    <!-- Tareas con variables simples -->
  <div class="card mb-4">
+
    <div class="card mb-4">
      <div class="card-body">
+
        <div class="card-body">
        <h2 class="card-title">Tareas Iniciales</h2>
+
            <h2 class="card-title">Tareas Iniciales</h2>
        <ul class="list-group">
+
            <ul class="list-group">
            <li class="list-group-item">Tarea 1: Estudiar PHP <span class="badge bg-warning">Pendiente</span></li>
+
                <li class="list-group-item "><span
            <li class="list-group-item">Tarea 2: Completar el ejercicio de funciones <span class="badge bg-success">Completada</span></li>
+
                            class="fw-bold fs-4">Tarea 1:</span>
            <li class="list-group-item">Tarea 3: Leer sobre sesiones <span class="badge bg-warning">Pendiente</span></li>
+
                    <span class="badge ">estado tarea 1</span>
        </ul>
+
                </li>
      </div>
+
                <li class="list-group-item "><span
  </div>
+
                            class="fw-bold fs-4">Tarea 2:</span>
 +
                    <span class="badge ">estado tarea 2</span>
 +
                </li>
 +
                <li class="list-group-item "><span
 +
                            class="fw-bold fs-4">Tarea 3:</span>
 +
                    <span class="badge ">estado tarea 3</span>
 +
                </li>
 +
 
 +
            </ul>
 +
        </div>
 +
    </div>
 +
 
 +
    <!-- Estadísticas -->
 +
    <div class="card">
 +
        <div class="card-body">
 +
            <h2 class="card-title">Estadísticas de Tareas</h2>
 +
            <ul class="list-group">
 +
                <li class="list-group-item">Total de tareas:
 +
                    <strong> Total de tareas</strong></li>
 +
                <li class="list-group-item">Tareas completadas:
 +
                    <strong>total de tareas completadas</strong></li>
 +
                <li class="list-group-item">Tareas pendientes:
 +
                    <strong>Total tareas pendientes</strong></li>
 +
            </ul>
 +
        </div>
 +
        <!-- Gráfica de estadísticas -->
 +
        <!-- podemosintentar meter un gráfico de js -->
  
  <!-- Estadísticas -->
 
  <div class="card">
 
      <div class="card-body">
 
        <h2 class="card-title">Estadísticas de Tareas</h2>
 
        <ul class="list-group">
 
            <li class="list-group-item">Total de tareas: <strong><?= $total ?></strong></li>
 
            <li class="list-group-item">Tareas completadas: <strong><?= $completadas ?></strong></li>
 
            <li class="list-group-item">Tareas pendientes: <strong><?= $pendientes ?></strong></li>
 
        </ul>
 
      </div>
 
  </div>
 
</div>
 
 
</body>
 
</body>
 
</html>
 
</html>
 +
 
</source>
 
</source>
 
}}
 
}}

Última revisión de 00:01 5 dic 2024

Estadísticas de Tareas con Funciones

Descripción del problema
  • Queremos construir una aplicación básica que nos permita analizar el estado de tres tareas predefinidas.
  • Cada tarea puede estar en estado "pendiente" o "completada".
  • Utilizaremos una función para calcular estadísticas de estas tareas y mostrar los resultados en una página web.

Objetivos del ejercicio:

  • Crear una página web en PHP que muestre tres tareas predefinidas con su estado.
  • Implementar una función llamada contarTareas que reciba como parámetros los estados de las tres tareas.
  • Usar la función para calcular y devolver:
    • El número total de tareas.
    • El número de tareas completadas.
    • El número de tareas pendientes.
Mostrar las estadísticas calculadas en la página web de forma clara y ordenada.

Requisitos específicos:

Las tareas deben ser representadas como variables simples, no arrays. Ejemplo:

 $tarea1_estado = 'pendiente'; 
 $tarea2_estado = 'completada';
 $tarea3_estado = 'pendiente';
  1. La función contarTareas debe:
    1. Calcular las estadísticas a partir de los estados proporcionados.
    2. Modificar directamente las variables total, completadas y pendientes usando parámetros por referencia.
    3. Ejemplo de firma de la función:
 
 function contarTareas($t1, $t2, $t3, &$total, &$completadas, &$pendientes)
  1. Mostrar las estadísticas en una lista dentro de la página web:
    1. Ejemplo de salida:
* Total de tareas: 3
* Tareas completadas: 1
* Tareas pendientes: 2

Pautas para resolver el ejercicio:

  • Crea las variables para almacenar los estados de las tres tareas.
  • Escribe la función contarTareas siguiendo la estructura solicitada.
  • Llama a la función desde tu código principal, pasando los estados de las tareas y las variables de estadísticas.
  • Usa HTML con Bootstrap para estructurar la página:
  • Una sección que liste las tareas y su estado.
  • Una sección separada para mostrar las estadísticas calculadas.
  • Prueba diferentes combinaciones de estados para verificar que las estadísticas se calculan correctamente.