CursosEmpresasBlogLiveConfPrecios

Ejercicios de PHP: Descuentos y Orden de Productos

Clase 16 de 18 • Curso Práctico de PHP

Contenido del curso

Introducción

  • 1

    Curso actualizado

    00:05 min
  • 2
    Fundamentos de PHP sin Frameworks y Desarrollo de Microproyecto

    Fundamentos de PHP sin Frameworks y Desarrollo de Microproyecto

    01:41 min
  • 3
    Uso de la Consola de Comandos en Visual Studio Code

    Uso de la Consola de Comandos en Visual Studio Code

    01:43 min
  • 4
    Pensamiento Lógico en Desarrollo de Software: Estrategias y Aplicaciones

    Pensamiento Lógico en Desarrollo de Software: Estrategias y Aplicaciones

    13:43 min

Conceptos básicos en la práctica

  • 5
    Operadores Lógicos en PHP: Uso y Ejemplos Prácticos

    Operadores Lógicos en PHP: Uso y Ejemplos Prácticos

    12:15 min
  • 6
    Operadores aritméticos en PHP: suma, resta, multiplicación y más

    Operadores aritméticos en PHP: suma, resta, multiplicación y más

    06:44 min
  • 7
    Estructuras de Control en PHP: If, Else, While, For, Switch

    Estructuras de Control en PHP: If, Else, While, For, Switch

    09:02 min
  • 8
    Funciones en PHP: Creación, Uso y Documentación

    Funciones en PHP: Creación, Uso y Documentación

    14:49 min
  • 9
    Funciones matemáticas en PHP: max, min, pi, rand y sqrt

    Funciones matemáticas en PHP: max, min, pi, rand y sqrt

    08:38 min
  • 10
    Interacción entre Formularios HTML y Scripts PHP

    Interacción entre Formularios HTML y Scripts PHP

    05:21 min
  • 11

    Ejercicios de Lógica con PHP: Edades y Dibujos en Consola

    01:23 min

Microproyecto de lógica

  • 12
    Desarrollo de Aplicación para Ordenar Palabras Desordenadas

    Desarrollo de Aplicación para Ordenar Palabras Desordenadas

    03:35 min
  • 13
    Creación de Formularios y Validación de Datos en PHP

    Creación de Formularios y Validación de Datos en PHP

    16:13 min
  • 14
    Escalabilidad de Formularios Dinámicos en PHP

    Escalabilidad de Formularios Dinámicos en PHP

    06:49 min
  • 15
    Validación Dinámica de Datos en Formularios Web

    Validación Dinámica de Datos en Formularios Web

    11:34 min
  • 16

    Ejercicios de PHP: Descuentos y Orden de Productos

    Viendo ahora

Conclusiones

  • 17
    Buenas prácticas en desarrollo web: separación frontend y backend

    Buenas prácticas en desarrollo web: separación frontend y backend

    04:33 min
  • 18
    Resumen de Aprendizajes en PHP y Programación Lógica

    Resumen de Aprendizajes en PHP y Programación Lógica

    01:24 min
Tomar examen

Escuelas

  • Desarrollo Web
    • Fundamentos del Desarrollo Web Profesional
    • Diseño y Desarrollo Frontend
    • Desarrollo Frontend con JavaScript
    • Desarrollo Frontend con Vue.js
    • Desarrollo Frontend con Angular
    • Desarrollo Frontend con React.js
    • Desarrollo Backend con Node.js
    • Desarrollo Backend con Python
    • Desarrollo Backend con Java
    • Desarrollo Backend con PHP
    • Desarrollo Backend con Ruby
    • Bases de Datos para Web
    • Seguridad Web & API
    • Testing Automatizado y QA para Web
    • Arquitecturas Web Modernas y Escalabilidad
    • DevOps y Cloud para Desarrolladores Web
  • English Academy
    • Inglés Básico A1
    • Inglés Básico A2
    • Inglés Intermedio B1
    • Inglés Intermedio Alto B2
    • Inglés Avanzado C1
    • Inglés para Propósitos Específicos
    • Inglés de Negocios
  • Marketing Digital
    • Fundamentos de Marketing Digital
    • Marketing de Contenidos y Redacción Persuasiva
    • SEO y Posicionamiento Web
    • Social Media Marketing y Community Management
    • Publicidad Digital y Paid Media
    • Analítica Digital y Optimización (CRO)
    • Estrategia de Marketing y Growth
    • Marketing de Marca y Comunicación Estratégica
    • Marketing para E-commerce
    • Marketing B2B
    • Inteligencia Artificial Aplicada al Marketing
    • Automatización del Marketing
    • Marca Personal y Marketing Freelance
    • Ventas y Experiencia del Cliente
    • Creación de Contenido para Redes Sociales
  • Inteligencia Artificial y Data Science
    • Fundamentos de Data Science y AI
    • Análisis y Visualización de Datos
    • Machine Learning y Deep Learning
    • Data Engineer
    • Inteligencia Artificial para la Productividad
    • Desarrollo de Aplicaciones con IA
    • AI Software Engineer
  • Ciberseguridad
    • Fundamentos de Ciberseguridad
    • Hacking Ético y Pentesting (Red Team)
    • Análisis de Malware e Ingeniería Forense
    • Seguridad Defensiva y Cumplimiento (Blue Team)
    • Ciberseguridad Estratégica
  • Liderazgo y Habilidades Blandas
    • Fundamentos de Habilidades Profesionales
    • Liderazgo y Gestión de Equipos
    • Comunicación Avanzada y Oratoria
    • Negociación y Resolución de Conflictos
    • Inteligencia Emocional y Autogestión
    • Productividad y Herramientas Digitales
    • Gestión de Proyectos y Metodologías Ágiles
    • Desarrollo de Carrera y Marca Personal
    • Diversidad, Inclusión y Entorno Laboral Saludable
    • Filosofía y Estrategia para Líderes
  • Diseño de Producto y UX
    • Fundamentos de Diseño UX/UI
    • Investigación de Usuarios (UX Research)
    • Arquitectura de Información y Usabilidad
    • Diseño de Interfaces y Prototipado (UI Design)
    • Sistemas de Diseño y DesignOps
    • Redacción UX (UX Writing)
    • Creatividad e Innovación en Diseño
    • Diseño Accesible e Inclusivo
    • Diseño Asistido por Inteligencia Artificial
    • Gestión de Producto y Liderazgo en Diseño
    • Diseño de Interacciones Emergentes (VUI/VR)
    • Desarrollo Web para Diseñadores
    • Diseño y Prototipado No-Code
  • Contenido Audiovisual
    • Fundamentos de Producción Audiovisual
    • Producción de Video para Plataformas Digitales
    • Producción de Audio y Podcast
    • Fotografía y Diseño Gráfico para Contenido Digital
    • Motion Graphics y Animación
    • Contenido Interactivo y Realidad Aumentada
    • Estrategia, Marketing y Monetización de Contenidos
  • Desarrollo Móvil
    • Fundamentos de Desarrollo Móvil
    • Desarrollo Nativo Android con Kotlin
    • Desarrollo Nativo iOS con Swift
    • Desarrollo Multiplataforma con React Native
    • Desarrollo Multiplataforma con Flutter
    • Arquitectura y Patrones de Diseño Móvil
    • Integración de APIs y Persistencia Móvil
    • Testing y Despliegue en Móvil
    • Diseño UX/UI para Móviles
  • Diseño Gráfico y Arte Digital
    • Fundamentos del Diseño Gráfico y Digital
    • Diseño de Identidad Visual y Branding
    • Ilustración Digital y Arte Conceptual
    • Diseño Editorial y de Empaques
    • Motion Graphics y Animación 3D
    • Diseño Gráfico Asistido por Inteligencia Artificial
    • Creatividad e Innovación en Diseño
  • Programación
    • Fundamentos de Programación e Ingeniería de Software
    • Herramientas de IA para el trabajo
    • Matemáticas para Programación
    • Programación con Python
    • Programación con JavaScript
    • Programación con TypeScript
    • Programación Orientada a Objetos con Java
    • Desarrollo con C# y .NET
    • Programación con PHP
    • Programación con Go y Rust
    • Programación Móvil con Swift y Kotlin
    • Programación con C y C++
    • Administración Básica de Servidores Linux
  • Negocios
    • Fundamentos de Negocios y Emprendimiento
    • Estrategia y Crecimiento Empresarial
    • Finanzas Personales y Corporativas
    • Inversión en Mercados Financieros
    • Ventas, CRM y Experiencia del Cliente
    • Operaciones, Logística y E-commerce
    • Gestión de Proyectos y Metodologías Ágiles
    • Aspectos Legales y Cumplimiento
    • Habilidades Directivas y Crecimiento Profesional
    • Diversidad e Inclusión en el Entorno Laboral
    • Herramientas Digitales y Automatización para Negocios
  • Blockchain y Web3
    • Fundamentos de Blockchain y Web3
    • Desarrollo de Smart Contracts y dApps
    • Finanzas Descentralizadas (DeFi)
    • NFTs y Economía de Creadores
    • Seguridad Blockchain
    • Ecosistemas Blockchain Alternativos (No-EVM)
    • Producto, Marketing y Legal en Web3
  • Recursos Humanos
    • Fundamentos y Cultura Organizacional en RRHH
    • Atracción y Selección de Talento
    • Cultura y Employee Experience
    • Gestión y Desarrollo de Talento
    • Desarrollo y Evaluación de Liderazgo
    • Diversidad, Equidad e Inclusión
    • AI y Automatización en Recursos Humanos
    • Tecnología y Automatización en RRHH
  • Finanzas e Inversiones
    • Fundamentos de Finanzas Personales y Corporativas
    • Análisis y Valoración Financiera
    • Inversión y Mercados de Capitales
    • Finanzas Descentralizadas (DeFi) y Criptoactivos
    • Finanzas y Estrategia para Startups
    • Inteligencia Artificial Aplicada a Finanzas
    • Domina Excel
    • Financial Analyst
    • Conseguir trabajo en Finanzas e Inversiones
  • Startups
    • Fundamentos y Validación de Ideas
    • Estrategia de Negocio y Product-Market Fit
    • Desarrollo de Producto y Operaciones Lean
    • Finanzas, Legal y Fundraising
    • Marketing, Ventas y Growth para Startups
    • Cultura, Talento y Liderazgo
    • Finanzas y Operaciones en Ecommerce
    • Startups Web3 y Blockchain
    • Startups con Impacto Social
    • Expansión y Ecosistema Startup
  • Cloud Computing y DevOps
    • Fundamentos de Cloud y DevOps
    • Administración de Servidores Linux
    • Contenerización y Orquestación
    • Infraestructura como Código (IaC) y CI/CD
    • Amazon Web Services
    • Microsoft Azure
    • Serverless y Observabilidad
    • Certificaciones Cloud (Preparación)
    • Plataforma Cloud GCP

Platzi y comunidad

  • Platzi Business
  • Live Classes
  • Lanzamientos
  • Executive Program
  • Trabaja con nosotros
  • Podcast

Recursos

  • Manual de Marca

Soporte

  • Preguntas Frecuentes
  • Contáctanos

Legal

  • Términos y Condiciones
  • Privacidad
  • Tyc promociones
Reconocimientos
Reconocimientos
Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
Logo reconocimientoPrimera Startup EdTech · 2018
Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
Logo reconocimientoCEO Mejor Emprendedor del año · 2024
De LATAM conpara el mundo
YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads

      Ahora que ya conoces cómo podemos trabajar con PHP para hacer cosas más complejas te reto a realizar los siguientes ejercicios para que continúes practicando tu lógica.

      Descuentos a la vista

      En una tienda de ropa hay descuento del 35% en todos sus productos, debes realizar una función que reciba el valor de cada producto y le reste el 35% para mostrar luego su valor original y en cuánto queda su nuevo valor a pagar.

      De mayor a menor

      Escribe una solución para una tienda donde se requiere encontrar el orden en el cual se publicarán los productos en su página web. Para esto, se debe contar con las dimensiones de cada producto y aquellos más grandes (en ancho y alto) estarán en los primeros lugares, y aquellos más pequeños estarán al final.

      Tip: Como entrada, debes recibir el ancho y alto de cada producto. Analiza su tamaño y después puedes exponer la lista de productos en el orden requerido como un array.

      ¡Ahora espero ver tus soluciones en los comentarios! Estaremos compartiendo las soluciones de toda nuestra comunidad.

      Disfrútalos, aprende mucho y recuerda hacer tus preguntas para resolver cada tarea.

        Aldo Miguel Ortiz Parodi

        Aldo Miguel Ortiz Parodi

        student•
        hace 4 años

        15. Ejercicios de práctica:

        Reto 1: Me costó bastante porque quise que se crearan de manera dinámica cada cosa (de acuerdo a la cantidad ingresada de productos, se fabriquen los input), y luego en base a los productos ingresados se muestre el resultado.

        Hice tres archivos y el resultado es el siguiente:

        reto1_final.png

        Código reto3.php:

        <form action="proceso_productos.php" method="post"> <label for="">Indicar cantidad de productos a ingresar:</label><br> <input type="number" name="productsQuantity" id=""> <button type="submit">Enviar</button> </form>

        Código proceso_productos.php:

        <?php $productsQuantitys = $_POST["productsQuantity"]; $form = "<form action='proceso_productos_final.php' method='post'>"; for($i=0; $i<$productsQuantitys; $i++) { $form .= "Ingresar precio de producto " . ($i+1) . ": " . "<input type='number' name='product" . $i . "'><br>"; } $button = "<button type='submit'>Enviar</button>"; $formCierre ="</form>"; $tempi = $productsQuantitys; echo $form.$button.$formCierre;

        Código proceso_productos_final.php:

        <?php for($i=0; $i<count($_POST); $i++) { echo "Nuevo precio de producto " . ($i+1) . ": $". ($_POST["product$i"] - ($_POST["product$i"] * 0.35)) . "<br>"; }

        Reto 2:

        El segundo ejercicio fue un tanto similar, al inicio establecí el tamaño, luego, multipliqué largo por ancho para saber su tamaño final, y ordené el array de mayor a menor, finalmente imprimiendo el resultado.

        Hice también 3 archivos, viéndose así:

        reto2_final.png

        Comparto el código de los retos:

        entry.html:

        <!DOCTYPE html> <html lang="es"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Entrada de productos</title> </head> <body> <main> <form action="size_data_entry.php" method="post"> <label for="">Indicar cantidad de productos a ingresar en la web:</label><br> <input type="number" name="productsQuantity" id=""> <button type="submit">Enviar</button> </form> </main> </body> </html>

        size_data_entry.php:

        <?php $productsQuantity = $_POST["productsQuantity"]; $form = "<form action='final_result.php' method='post'>"; for($i=0; $i<$productsQuantity; $i++) { $form .= "Ingresar alto de producto " . ($i+1) . ": " . "<input type='number' name='productHeight" . $i . "'><br>" . "Ingresar ancho de producto " . ($i+1) . ": " . "<input type='number' name='productWidth" . $i . "'><br>"; } $button = "<button type='submit'>Enviar</button>"; $formCierre ="</form>"; echo $form.$button.$formCierre;

        final_result.php:

        <?php $finalSizeArray = []; for($i=0; $i<(count($_POST)/2); $i++) { $finalSizeArray[$i] = ($_POST["productHeight$i"]*$_POST["productWidth$i"]); } array_multisort($finalSizeArray, SORT_DESC); $i = 1; foreach($finalSizeArray as $value) { echo "Figura $i, mide $value<br>"; $i++; }
        Hugo Ivan Landeros Dimas

        Hugo Ivan Landeros Dimas

        student•
        hace 4 años

        Aquí mi código, saludos!

        Descuentos a la vista

        <?php function Descontar($precioOriginal, $descuentoPorcentaje) { return $precioOriginal - ($precioOriginal * $descuentoPorcentaje / 100); } $precio = 299; $descuento = 35; echo "Precio original: $$precio<br>"; echo "Descuento: $descuento%<br><br>"; $precioConDescuento = Descontar($precio, $descuento); echo "Precio con descuento: $$precioConDescuento<br>"; echo "Ahorras: $" . ($precio - $precioConDescuento) . "<br>";

        De mayor a menor

        <?php $productos = [ 'Celular' => [ 'ancho' => 5, 'alto' => 20 ], 'PlayStation 5' => [ 'ancho' => 47, 'alto' => 43 ], 'Audifonos' => [ 'ancho' => 3, 'alto' => 10 ], 'Tablet' => [ 'ancho' => 25, 'alto' => 30 ], 'Teclado' => [ 'ancho' => 100, 'alto' => 25 ] ]; function calcularArea($producto) { return $producto['ancho'] * $producto['alto']; } $areaProductos = array_map("calcularArea", $productos); asort($areaProductos); echo "<b>Productos sin ordenar:</b><br>"; foreach ($productos as $nombre => $producto) { echo "$nombre: " . $producto['ancho'] . " x " . $producto['alto'] . "<br>"; } echo "<br>"; echo "<b>Productos ordenados:</b><br>"; foreach ($areaProductos as $producto => $area) { echo "$producto: $area cm<sup>2</sup><br>"; }
        RAMIRO GARCIA GONZALEZ

        RAMIRO GARCIA GONZALEZ

        student•
        hace 4 años

        DECUENTO 35%

        <?php function descuento ($total) { return round((35 * $total) / 100,2); } $products = ["articulo 1" => 300,"articulo 2" => 500]; echo "<h2>Toda la tienda esta con el 35% de descuento.</h2>"; foreach ($products as $name => $price) { $ahorra = descuento($price); $total = $price - $ahorra; echo "$name price $$price - $ahorra after discount $$total <br>"; }
        Sabino Fernández

        Sabino Fernández

        student•
        hace 4 años
        codesnap2.png
        codesnap.png
        codesnap3.png
        Kevin Leonardo Saavedra Carmona

        Kevin Leonardo Saavedra Carmona

        student•
        hace 4 años

        Reto 2 De mayor a menor

        Me tarde vastante poque me toco comprender un poco de POO y revisar bastante documentacion, pero me divertí

        main.php

        <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="style.css"> <title>Document</title> </head> <body> <div class='form-container'> <h4>Ingrese la cantidad de articulos que desee almacenar</h4> <form action='width-height.php' class="form-main"> <input type='number' name='cant'> <button type='submit'>Enviar</button> </form> </div> </body> </html>

        width-height.php

        <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="style.css"> <title>Document</title> </head> <body> <div class='form-container'> <form action="analisis.php" method='$_POST'> <?php for($i=0; $i < $_REQUEST["cant"]; $i++): ?> <div> <label for="">ingrese los datos del producto<?=$i+1?></label> <input type="text" placeholder='Ingrese el nombre del producto' name="nombre<?=$i?>"> <input type='number' placeholder='Ingrese la altura en cm' name='height<?=$i?>'> <input type="number" placeholder='Ingrese el ancho en cm' name='width<?=$i?>'> </div> <?php endfor;?> <button type='submit'>Enviar</button> </form> </div> </body> </html>

        analisis.php

        <?php function object_sorter($clave, $orden=null) { return function ($a, $b) use ($clave,$orden) { $result = ($orden =="DESC") ? strnatcmp($b->$clave, $a->$clave) : strnatcmp($a->$clave, $b->$clave); return $result; }; } class producto { public $name; public $height; public $width; public $area; public function __construct($name, $height = 0, $width = 0, $area = 0) { $this->name = $name; $this->height = $height; $this->width = $width; $this->area = $area; } public function mostrarInfo($i) { $info = "<h4>Informacion del producto#".$i.": </h4> "; $info.= "<br/> Nombre: " .$this->name; $info.= "<br/> alto: " .$this->height; $info.= "<br/> ancho: " .$this->width; $info.= "<br/> area: " . $this->area; return $info; } } $producto = []; for($i=0; $i < (count($_REQUEST)/3); $i++) { $producto[$i] = new producto($_REQUEST["nombre".$i], $_REQUEST["height".$i], $_REQUEST["width".$i], (($_REQUEST["height".$i])*($_REQUEST["width".$i]))); } usort($producto, object_sorter('area', 'DESC')); echo "ORDEN DESCENDENTE: "; for($i=0; $i < (count($_REQUEST)/3); $i++) { echo $producto[$i]->mostrarInfo($i+1); } ?>
        RAMIRO GARCIA GONZALEZ

        RAMIRO GARCIA GONZALEZ

        student•
        hace 4 años

        ITEMS ORDENADOS

        <?php function listarMenorAmayor (array $tallas) { ksort($tallas); $counter = 0; foreach ($tallas as $ancho => $alto) { echo "item$counter ancho : $ancho X alto : $alto <br>"; $counter++; } } listarMenorAmayor([ 500 => '300', 30 => '100', 400 => '10' ]);
        Agustin Baigorria

        Agustin Baigorria

        student•
        hace 4 años

        Acá esta mi reto, me llevo su tiempo pero estoy contento con el resultado. Descuentos:

        <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Descuentos</title> </head> <body> <h2>Calcular descuento</h2> <form method="get" action="descuentos.php"> <h3>Poné tu precio y tu descuento deseado y nosotros lo calculamos</h3> <input type="number" placeholder="precio" name="price" value=""> <input type="number" placeholder="descuento" name="discount" value=""> <input value="calcular" type="submit"> </form> </body> </html>
        <?php $price = $_REQUEST['price']; $discount = $_REQUEST['discount']; function calculatePriceWithDiscount($precio,$descuento) { $perscentagePriceWithDiscount = 100 - $descuento; $priceWithDiscount = ($precio * $perscentagePriceWithDiscount) / 100; return $priceWithDiscount; } echo calculatePriceWithDiscount($price,$discount); ?>

        Mayor a Menor:

        <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <form action="mayorMenor.php"> <p>Calculador de mayor a menor de medidas de productos</p> <div> <p>Producto 1</p> <input placeholder="altura" type="number" name="product0Heigth"> <input type="number" placeholder="ancho" name="product0Width"> </div> <div> <p>Producto 2</p> <input placeholder="altura" type="number" name="product1Heigth"> <input type="number" placeholder="ancho" name="product1Width"> </div> <div> <p>Producto 3</p> <input placeholder="altura" type="number" name="product2Heigth"> <input type="number" placeholder="ancho" name="product2Width"> </div> <input value="calcular" type="submit"> </form> </body> </html>
        <?php $p1 = $_REQUEST['product0Heigth'] + $_REQUEST['product0Width']; $p2 = $_REQUEST['product1Heigth'] + $_REQUEST['product1Width']; $p3 = $_REQUEST['product2Heigth'] + $_REQUEST['product2Width']; $start = "Ordenado por orden de mayor de dimensión de productos el resultado es el siguiente: "; $d1 = "Dimensión de producto 1: $p1"; $d2 = "Dimensión de producto 2: $p2"; $d3 = "Dimensión de producto 3: $p3"; if($p1 > $p2 && $p2 > $p3) { echo $start."<br>".$d1."<br>".$d2."<br>".$d3; } elseif($p1 > $p2 && $p3 > $p2) { echo $start."<br>".$d1."<br>".$d3."<br>".$d2; } elseif ($p2 > $p3 && $p3 > $p1) { echo $start."<br>".$d2."<br>".$d3."<br>".$d1; } elseif($p2 > $p3 && $p1 > $p3) { echo $start."<br>".$d2."<br>".$d1."<br>".$d3; } elseif($p3 > $p1 && $p1 > $p2) { echo $start."<br>".$d3."<br>".$d1."<br>".$d2; } elseif($p3 > $p1 && $p2 > $p1) { echo $start."<br>".$d3."<br>".$d2."<br>".$d1; } ?>
        Aldo Yael Cordoba Ortiz

        Aldo Yael Cordoba Ortiz

        student•
        hace 3 años

        ¿El método de la burbuja alguien ya lo implementó?

        Dario Sarmiento Rojas

        Dario Sarmiento Rojas

        student•
        hace 4 años

        Intenté utilizar todo lo aprendido, entonces creé una página html donde solicita el número de productos, luego lleva a una página php donde aparece una matriz para ingresar nombre de producto, alto y ancho, en este php creo la variable $cantidad para hacer esa matriz.

        <?php $cantidad = ($_REQUEST["productos"]); $form ="<form action='mayormenor.php'>"; $button ="<button type = 'submit' > Enviar</button>"; $formCierre ="</form>"; print_r ("ingrese nombre de producto, Ancho y Alto <br>"); for ($i=0; $i < $cantidad; $i++){ //print_r("pasó " . $i . "<br>"); $form .="<input type ='text' name ='nombre".$i."'>" . "<input type ='int' name ='ancho".$i."'>" . "<input type ='int' name ='alto".$i."'>"; } echo $form.$button.$formCierre; ?>

        Hasta ahí voy bien, pero al ingresar al tercer PHP llamado mayormenor.php la variable $cantidad no me funciona (no está definida) para poder guardar esa información en una propia array, apenas inicio a programar y no se como llamarla... googleando encontré global pero no me funciona, tampoco me sirvió include. me pueden por favor ayudar.

          Juan Pablo Campuzano Monsalve

          Juan Pablo Campuzano Monsalve

          student•
          hace 4 años

          Hay un atributo llamado "hidden" de la etiqueta html. Si lo utilizas dentro del formulario este se ocultará la vista pero el mensaje se enviará igualmente al servidor. Lo utilizarías así:

          <input type='number' name='cantidad' value='<?php echo $cantidad ?>' hidden>

          Intenta con eso, espero te pueda ayudar

        Rodrigo Viñán

        Rodrigo Viñán

        student•
        hace 4 años

        En mi intento del segundo ejercicio tengo un error. Al añadir más elemetos al array "$boxes" siempre se sobreescribe el último elemento, entonces mi array no puede tener varios elementos, mas uno solamente. Sé que tiene que ver algo porque la añadidura ocurre dentro de un condicional que verifica que el botón sea presionado. ¿Cómo podría arreglar esto?

        <form action="" method="GET"> <input type="number" name="height" placeholder="height" min="1" max="1000"> <input type="number" name="width" placeholder="height" min="1" max="1000"> <button type="submit" name="submit" value="submit">Order</button> </form> <?php $boxes=[0=>[0,0]]; if(isset($_GET['submit'])){ $boxes+=nose($_GET['height'], $_GET['width']); ksort($boxes); } function area($height, $width){ return (integer) $height*$width; } function nose($height,$width){ $area=area($height,$width); return [$area=>[(integer)$height, (integer)$width]]; } echo "<pre / >"; var_dump($boxes); ?>
          Ana Belisa Martinez

          Ana Belisa Martinez

          teacher•
          hace 4 años

          Te recomiendo que hagas una depuración detallada antes, durante y después del IF.

        Simón Meléndez Moreno

        Simón Meléndez Moreno

        student•
        hace 10 meses

        Saludos, aqui mi solucion al segundo ejercicio:

        <?php $productos = array(    'oreo' => array(        'ancho' => 4,        'largo' => 2    ),    'helado' => array(        'ancho' => 20,        'largo' => 5    ),    'protector solar' => array(        'ancho' => 2,        'largo' => 15    ),    'crema humectante' => array(        'ancho' => 3,        'largo' => 20    ),    'lentes de sol' => array(        'ancho' => 10,        'largo' => 2    ),); function comparar_area_descendente($a, $b) {    $area_a = $a['ancho'] * $a['largo'];    $area_b = $b['ancho'] * $b['largo'];    if ($area_a == $area_b) {        return 0;    }    return ($area_a > $area_b) ? -1 : 1;} uasort($productos, 'comparar_area_descendente'); var_dump($productos); ?>

        Simón Meléndez Moreno

        Simón Meléndez Moreno

        student•
        hace 10 meses

        Saludos! Esta es mi solucion al primer ejercicio:

        <?php $productos = array(    'oreo' => 2.5,    'helado' => 8,    'protector solar' => 25,    'crema humectante' => 5,    'lentes de sol' => 10); $descuento = 35; function obtener_descuento($descuento, $valor){    $valor_con_descuento = $valor - (($descuento * $valor) / 100);    return $valor_con_descuento;}?>

        <html lang="es-ES" class="hide-scroll"><head>     <title>35% de descuento! Aprovecha!</title>    <meta name="Keywords">    <meta name="Description">     <style>        .dialog-wrapper {            display: none !important;        }         .wrap,        #main {            height: 100vh;            margin: 0 !important;        }         iframe {            display: none;        }

                html,        body {            height: 100%;        }         .page-preview {            border-radius: 0;            height: 100%;        }         .page-preview-header {            background: #f2f2f2;            border: none;            height: 70px;            position: relative;            text-align: center;        }         .page-preview-header > a {            display: inline-block;            margin-top: 15px;            padding: 4px;        }         .page-preview-header > a:hover {            background: #e2f0fc;            text-decoration: none;        }         .page-preview-header > a.active {            background: #c9e4f9;        }         .page-preview-header > .close {            float: right;            margin-right: 10px;        }         .page-preview-body {            height: calc(100% - 70px);            overflow: hidden;            text-align: center;        }         .page-preview-body iframe {            border: none;            display: inline-block;            height: 100%;        }         .cuadro {            width: 200px; /* Ancho del cuadro */            height: 100px; /* Alto del cuadro */            background-color: lightblue; /* Color de fondo */            border: 1px solid black; /* Borde del cuadro */            padding: 10px; /* Espacio interno */        }    </style>         <div class="page-preview-body">    <?php    foreach ($productos as $nombre => $valor){        echo '<div class="cuadro">' . "<p><b>" . $nombre . "</b><br>" . "Precio original: " . $valor . "<br>" . "Precio con descuento: " . obtener_descuento($descuento, $valor) . "<br>" . "</p>" . "</div>";    }    ?>                             </div></div> </body></html>

        Antonio Cortes Avila

        Antonio Cortes Avila

        student•
        hace un año
        flavio Mendez

        flavio Mendez

        student•
        hace un año

        tarde pero seguro, aunque no esta bien pulido, Funcionaa!!!

        <?php $productos = [ "playera"=>100, "pantalon"=>150, "camisa"=>200, ]; echo "Decuento del 35% toda la tienda"."<br><br>"; foreach ($productos as $tipo => $valor){ echo $tipo ." a $" .$valor. "<br>"; } //html ?> <!DOCTYPE html> <html> <head> <title>Formulario POST</title> </head> <body> <form method="post" action=""> <label for="%">Precio:</label> <input type="text" id="%" name="desx"> <button type="submit">Enviar</button> </form> <?php ?> </body> </html> <?php if(isset($_POST['desx'])){ function descuento($porcentaje){ echo "precio original: $".$_POST['desx']."<br>"; echo "descuento: $".($porcentaje*.35)."<br>"; echo "valor final: $".($porcentaje-($porcentaje*.35))."<br>"; } descuento($_POST['desx']); echo "\n"; }; ?> ```![](https://static.platzi.com/media/user_upload/image-01dce1a2-d50c-4716-aff7-32b24e4288ea.jpg) y de mayor a menor: ```js <?php $productos = [ "cafe" => ["ancho" => "", "alto" => ""], "azucar" => ["ancho" => "", "alto" => ""], "avena" => ["ancho" => "", "alto" => ""], "sopa" => ["ancho" => "", "alto" => ""], ]; // Verificar si se ha enviado el formulario if ($_SERVER["REQUEST_METHOD"] == "POST") { $i = 0; $claves = array_keys($productos); foreach ($productos as $key => $value) { $user_ancho = $_POST["ancho_" . $claves[$i]]; $user_alto = $_POST["alto_" . $claves[$i]]; // Asignar valores a 'ancho' y 'alto' $productos[$claves[$i]]["ancho"] = $user_ancho; $productos[$claves[$i]]["alto"] = $user_alto; // Calcular y agregar nueva clave 'dimensiones' $dimensiones = ((int)$user_ancho * (int)$user_alto); $productos[$claves[$i]]["dimensiones"] = $dimensiones; $i++; } // Ordenar el array de mayor a menor por la clave "dimensiones" uasort($productos, function($a, $b) { return $b['dimensiones'] <=> $a['dimensiones']; }); // Mostrar el resultado echo "<h4>Productos ordenados por dimensiones (de mayor a menor):</h4>"; foreach ($productos as $producto => $c) { echo "<p>Producto: " . $producto . "<br> Ancho: " . $c["ancho"] . "<br> Alto: " . $c["alto"] . "<br> Dimensión: " . $c["dimensiones"] . "</p>"; } } else { // Mostrar el formulario para ingresar datos echo '<form method="POST" action="">'; foreach ($productos as $producto => $detalles) { echo "<h5>Producto: $producto</h5>"; echo 'Ancho: <input type="number" name="ancho_' . $producto . '" required><br>'; echo 'Alto: <input type="number" name="alto_' . $producto . '" required><br>'; } echo '<button type="submit">Enviar</button>'; echo '</form>'; } ?> ```![](https://static.platzi.com/media/user_upload/image-0fe057c8-f1f5-4e08-83db-25d368051d62.jpg) ![](https://static.platzi.com/media/user_upload/Screenshot%202024-11-09%20125352-2d69fcaa-f211-496f-8c74-556c664a475f.jpg)
        Laura Juliana Serrano Garcia

        Laura Juliana Serrano Garcia

        student•
        hace un año

        Paz y bien, este sería mi solución con relación a la primera actividad.

        Descuentos a la vista.

        <?php // Función para calcular el valor con un 35% de descuento function descuento($valor){ // Calcula el valor descontando el 35% y lo retorna $valorConDescuento = $valor - ($valor * 0.35); return $valorConDescuento; } // Inicializamos una variable para almacenar el resultado que se mostrará al usuario $resultado = ""; // Verificamos si el formulario ha sido enviado y el valor ingresado es numérico if (isset($_GET['valor']) && is_numeric($_GET['valor'])) { // Obtenemos el valor ingresado por el usuario desde el formulario $valor = $_GET['valor']; // Formateamos el valor original ingresado como moneda $valorFormateado = number_format($valor, 2, ',', '.'); // Calculamos el valor con descuento y lo formateamos como moneda $valorConDescuento = number_format(descuento($valor), 2, ',', '.'); // Almacenamos el resultado en una etiqueta <label> para mostrarlo en el formulario $resultado = "<label>Valor Original: \$$valorFormateado <br> Valor con Descuento: \$$valorConDescuento</label>"; } // Mostramos el formulario al usuario echo " <form action='' method='get'> <h3>Descuentos a la vista</h3> <p>Ingrese el valor del producto para aplicar descuento</p> <input type='text' name='valor'> <!-- Campo para que el usuario ingrese el valor del producto --> <br><br> <button type='submit'>Enviar</button> <!-- Botón de envío del formulario --> <br><br> $resultado <!-- Muestra el resultado del cálculo debajo del botón de envío --> </form> "; ?>

        Muchas gracias. Bendiciones.

        Antonio Cortes Avila

        Antonio Cortes Avila

        student•
        hace un año

        <!doctype html><html lang="es"> <head>    <meta charset="utf-8">    <meta name="viewport" content="width=device-width, initial-scale=1">    <title>Curso PHP | Prueba Tienda</title>    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" >    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css">\</head> <body>    <?php include 'navbar.php'; ?>    <div class="container mt-3">        <h4>Prueba Tienda</h4>                <div class="card d-flex flex-row p-3 mt-3">            <div class="col-6">            <h4 class="text-center">Productos</h5>                        <?php                 $productos = [                    [                        'nombre' => 'Zapatos',                        'precio' => 100.00,                        'ancho' => 50,                        'alto' => 30                    ],                    [                        'nombre' => 'Pantalón',                        'precio' => 150.00,                        'ancho' => 60,                        'alto' => 40                    ],                    [                        'nombre' => 'Playera',                        'precio' => 200.00,                        'ancho' => 70,                        'alto' => 50                    ],                    [                        'nombre' => 'Abrigo',                        'precio' => 150.00,                        'ancho' => 60,                        'alto' => 40                    ],                    [                        'nombre' => 'Lentes',                        'precio' => 50.00,                        'ancho' => 60,                        'alto' => 40                    ],                    [                        'nombre' => 'Sombrero',                        'precio' => 250.00,                        'ancho' => 10,                        'alto' => 20                    ]                ];

                        for ($i=0; $i<count($productos) ; $i++) {                     echo "<span class='fw-semibold'>" . $productos[$i]['nombre'] . "</span><br>";                    echo "Precio: $" . number_format($productos[$i]['precio'], 2, ".", "," ) . "<br>";                    echo "Alto: " . $productos[$i]['alto'] . "cm <br>";                    echo "Ancho: " . $productos[$i]['ancho'] . "cm <br><br>";                }             ?>              </div>             <div class="col-6 bg-body-secondary d-flex flex-column justify-content-center align-items-center">               <h4 class="text-center mb-5">Calculadora de Precio</h5>                <form  class="px-3" action="" method="post">                    <label class="form-label fw-bolder ms-3" for="precio">Intoduce el Precio:</label>                    <input type="text" name="precio" class="form-control" id="precio">                    <button class="btn btn-primary btn-sm w-100 mt-2" type="submit">Calcular</button>                </form>                <?php                     if ($_SERVER['REQUEST_METHOD'] === 'POST') {                        // print_r($_REQUEST);                        $precio_descuento =  number_format(($_REQUEST['precio'] * .65), 2, ".", "," );                                               echo "<div class='mt-4 fw-semibold'>";                        echo "El precio con descuento es: $" . $precio_descuento;                        echo "</div>";                    }                 ?>              </div>        </div>            </div>        <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"        integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous">    </script></body> </html>

        Sergio Olivo Orellana

        Sergio Olivo Orellana

        student•
        hace 2 años

        Estoy tomando el curso y implementando Jquery , y DevExpress. me tarde pero se pudo.

        Jhon Didier Marin Conde

        Jhon Didier Marin Conde

        student•
        hace 2 años

        Hola a todos acá comparto mi ejercicio.$inventario = [    "camisa Hombre" => 55000,    "camisa Mujer" => 45000,    "pantalon Hombre" => 75000,    "pantalon Mujer" => 65000,]; function obtenerPrecio($inventario, $clave){    if ($inventario[$clave]) {        return $inventario[$clave];    } else {        return "el articulo no existe";    }} function articDisponibles($inventario){     echo "Articulo disponibles: \n";    echo "\nCamisa Hombre: $ " . obtenerPrecio($inventario, "camisa Hombre");    echo "\nCamisa Mujer: $ " .  obtenerPrecio($inventario, "camisa Mujer");    echo "\nPantalon Hombre: $ " .  obtenerPrecio($inventario, "pantalon Hombre");    echo "\nPantalon Mujer: $ " .  obtenerPrecio($inventario, "pantalon Mujer");};

        $carrito = [];function agregarProductosCarrito(&$inventario, &$carrito){     while (true) {        echo "\n Seleccione un articulo ";        echo "\n Para terminar escriba 'Salir' \n";        $articulo = trim(readline());         // Ver la entrada del usuario        echo "Entrada recibida: '$articulo'\n";

                //condicion para salir del bucle        if (strtolower($articulo) == 'salir') {            break;        }        //se verifica si el articulo existe en el inventario        if ($inventario[$articulo]) {            # agrega el articulo al carrito            $carrito[$articulo] = $inventario[$articulo];            //se elimina el articulo del inventario            unset($inventario[$articulo]);            echo "El articulo se agrego al carrito correctamente. \n";        } else {            echo "El articulo no existe en inventario. \n";        }    }}

        function sumProdCar($carrito){    $precioTotal = 0;     foreach ($carrito as $precio) {        $precioTotal += $precio;    }    return $precioTotal;    echo "El valor total de la compra es de  $" . $precioTotal . "\n";}

        function descuento($carrito){    $valorCompra = sumProdCar($carrito);    var_dump($valorCompra);    $descuento = $valorCompra * 0.35;    $valorTotal = $valorCompra - $descuento;    echo "Valor total a pagar : $" . $valorTotal . "\n";}

        articDisponibles($inventario);agregarProductosCarrito($inventario, $carrito);sumProdCar($carrito);descuento($carrito);

        $inventario = [ "camisa Hombre" => 55000, "camisa Mujer" => 45000, "pantalon Hombre" => 75000, "pantalon Mujer" => 65000, ]; function obtenerPrecio($inventario, $clave) { if ($inventario[$clave]) { return $inventario[$clave]; } else { return "el articulo no existe"; } } function articDisponibles($inventario) { echo "Articulo disponibles: \n"; echo "\nCamisa Hombre: $ " . obtenerPrecio($inventario, "camisa Hombre"); echo "\nCamisa Mujer: $ " . obtenerPrecio($inventario, "camisa Mujer"); echo "\nPantalon Hombre: $ " . obtenerPrecio($inventario, "pantalon Hombre"); echo "\nPantalon Mujer: $ " . obtenerPrecio($inventario, "pantalon Mujer"); }; $carrito = []; function agregarProductosCarrito(&$inventario, &$carrito) { while (true) { echo "\n Seleccione un articulo "; echo "\n Para terminar escriba 'Salir' \n"; $articulo = trim(readline()); // Ver la entrada del usuario echo "Entrada recibida: '$articulo'\n"; //condicion para salir del bucle if (strtolower($articulo) == 'salir') { break; } //se verifica si el articulo existe en el inventario if ($inventario[$articulo]) { # agrega el articulo al carrito $carrito[$articulo] = $inventario[$articulo]; //se elimina el articulo del inventario unset($inventario[$articulo]); echo "El articulo se agrego al carrito correctamente. \n"; } else { echo "El articulo no existe en inventario. \n"; } } } function sumProdCar($carrito) { $precioTotal = 0; foreach ($carrito as $precio) { $precioTotal += $precio; } return $precioTotal; echo "El valor total de la compra es de $" . $precioTotal . "\n"; } function descuento($carrito) { $valorCompra = sumProdCar($carrito); var_dump($valorCompra); $descuento = $valorCompra * 0.35; $valorTotal = $valorCompra - $descuento; echo "Valor total a pagar : $" . $valorTotal . "\n"; } articDisponibles($inventario); agregarProductosCarrito($inventario, $carrito); sumProdCar($carrito); descuento($carrito);
        carlos eduardo rodriguez reina

        carlos eduardo rodriguez reina

        student•
        hace 2 años

        precio, con descuento del 35% listo

        Jorge Diaz

        Jorge Diaz

        student•
        hace 2 años

        Mayor a menor

        <?php function ordenarProductosPorTamaño(array $productos) { // Ordena los productos de mayor a menor basándose en el tamaño (ancho * alto) usort($productos, function($a, $b) { $tamañoA = $a['ancho'] * $a['alto']; $tamañoB = $b['ancho'] * $b['alto']; return $tamañoB <=> $tamañoA; // Nota el cambio para ordenar de mayor a menor }); return $productos;} $productos = [ ['ancho' => 30, 'alto' => 20], ['ancho' => 10, 'alto' => 10], ['ancho' => 20, 'alto' => 15], ['ancho' => 25, 'alto' => 30],]; $productosOrdenados = ordenarProductosPorTamaño($productos); // Imprimir los productos ordenados para verificarforeach ($productosOrdenados as $producto) { echo "Producto - Ancho: {$producto['ancho']}, Alto: {$producto['alto']}, Tamaño: " . ($producto['ancho'] * $producto['alto']) . "\n";}

        Descuento

        <?php function calcularDescuento($precioOriginal) { // Calcular el valor del descuento (35% del precio original) $valorDescuento = $precioOriginal * 0.35; // Calcular el nuevo precio después del descuento $nuevoPrecio = $precioOriginal - $valorDescuento; // Imprimir el precio original y el nuevo precio echo "Precio Original: $" . number_format($precioOriginal, 2) . "\n"; echo "Nuevo Precio con Descuento: $" . number_format($nuevoPrecio, 2) . "\n";} // Ejemplo de usocalcularDescuento(100); // Suponiendo que el precio original del producto es $100