Diferencia entre revisiones de «Plantilla:ManuelRomero/PHP/funciones/practica»
De WikiEducator
(→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 | |
− | + | ||
− | |||
− | + | function contarTareasCompletadas(string $t1, string $t2, string $t3): int | |
− | + | { | |
+ | |||
+ | } | ||
− | + | function crearTareas(&$tarea_1, &$tarea_2, &$tarea_3) | |
+ | { | ||
− | + | } | |
− | + | ||
− | + | 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 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> | </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> | |
− | + | <!-- 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> | ||
</html> | </html> | ||
+ | |||
</source> | </source> | ||
}} | }} |
Última revisión de 00:01 5 dic 2024
Contenido
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';
- La función contarTareas debe:
- Calcular las estadísticas a partir de los estados proporcionados.
- Modificar directamente las variables total, completadas y pendientes usando parámetros por referencia.
- Ejemplo de firma de la función:
function contarTareas($t1, $t2, $t3, &$total, &$completadas, &$pendientes)
- Mostrar las estadísticas en una lista dentro de la página web:
- 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:
platilla |
---|
<?php function contarTareasCompletadas(string $t1, string $t2, string $t3): int { } function crearTareas(&$tarea_1, &$tarea_2, &$tarea_3) { } 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> <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> </html> |
- 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.