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

De WikiEducator
Saltar a: navegación, buscar
Línea 47: Línea 47:
  
  
function contarTareasCompletadas(string $t1, string $t2, string $t3): int
 
{
 
  $completadas = 0;
 
  if ($t1 == "completada") $completadas++;
 
  if ($t2 == "completada") $completadas++;
 
  if ($t3 == "completada") $completadas++;
 
  return $completadas;
 
}
 
 
function crearTareas(&$tarea_1, &$tarea_2, &$tarea_3)
 
{
 
  $tarea_1 = "Estudiar PHP";
 
  $tarea_2 = " Completar el ejercicio de funciones";
 
  $tarea_3 = " Comletar ejercicios de sintaxis";
 
 
}
 
 
function asigarEstado(): string
 
{
 
  return rand(0, 1) == 0 ? "completada" : "pendiente";
 
}
 
 
function asigarEstilo($estado)
 
{
 
  return $estado == "completada" ? "success" : "warning";
 
}
 
 
 
// Variables simples para las tareas
 
$tareas_total = 3;
 
 
//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>
 
<html lang="es">
 
<head>
 
    <meta charset="UTF-8">
 
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
 
    <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">
 
</head>
 
<body class="bg-light">
 
<div class="container py-5">
 
    <h1 class="text-center mb-4">Gestor de Tareas</h1>
 
 
    <!-- Introducción -->
 
    <div class="mb-4">
 
        <p>En esta página trabajaremos con funciones para calcular estadísticas de tareas.
 
            Actualmente, hay tres tareas predefinidas.</p>
 
    </div>
 
 
    <!-- Tareas con variables simples -->
 
    <div class="card mb-4">
 
        <div class="card-body">
 
            <h2 class="card-title">Tareas Iniciales</h2>
 
            <ul class="list-group">
 
                <li class="list-group-item  "><span
 
                            class="fw-bold fs-4">Tarea 1:</span>
 
                    <span class="badge ">estado tarea 1</span>
 
                </li>
 
                <li class="list-group-item  "><span
 
                            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 -->
 
  
 
</body>
 
</body>

Revisión de 00:00 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.