Inicio Apuntes FPApuntes DAWDesarrollo Web en Entorno Servidor Ejercicio Básico 15 PHP: Media de las notas de una clase

Ejercicio Básico 15 PHP: Media de las notas de una clase

Publicado el: Última actualización: 0 Comentario
0

AVISO: Esta entrada tiene más de dos años desde su publicación. Es posible que el contenido esté desactualizado.


variables predefinidas PHPEn este ejercicio hay que crear un script que acepte un array de valores que contendrá las notas de una clase con valores entre 1 y 10 y que calcule la media e indique el número de estudiantes suspensos y con sobresaliente. En el formulario, la lista de nombres se introducirá en un campo de texto, con las notas separadas por espacios en blanco. Consultar el uso de las funciones floatval y isset. El ejercicio ha de realizarse en el mismo archivo (index.php)

Obtener la media de las notas de una clase

<?php
if (isset($_POST['Enviar'])){
  if(empty($_POST['notas'])){
     echo "El campo notas est&aacute; vac&iacute;o. <a href='index.php' title='Volver'>Volver</a>";
  }else{
     $datos = $_POST['notas'];
     $arrayDatos = split(" ", $datos);
     //reemplazamos las , por .
     $arrayDatos= str_replace(",",".",$arrayDatos,$longitud);       
     $longitud = count($arrayDatos);
     $suspensos=0;
     $aprobados=0;
     $sobresalientes=0;
     $Media=0; $errores=0;
           
//*******************************
//comprobamos que los numeros introducidos sean entre 1 y 10
//comprobación de aprobados y suspensos
//*******************************
//Mostramos todas las notas del array
     for ($i=0; $i<=$longitud-1; $i++){
        if ($arrayDatos[$i]>=1 && $arrayDatos[$i]<=10){
            echo "Nota ".($i+1).": ".floatval($arrayDatos[$i])."<br>";
            if ($arrayDatos[$i]>=9){
               $sobresalientes++;
            }else{
               if ($arrayDatos[$i]>=5){
                 $aprobados++;
               }else{
                 $suspensos++;
               }
               }
       }else{
         echo "ERROR en la nota con valor ".$arrayDatos[$i].". Los valores tienen que estar entre 1 y 10. <br>";
         $errores++;

       }
                 
    }
echo "<hr>";
echo "Hay ".intval($sobresalientes)." sobresalientes.<br>";
echo "Hay ".intval($aprobados)." aprobados.<br>";
echo "Hay ".intval($suspensos)." suspensos.<br>";  

echo $errores." notas no v&aacute;lidas";
          
//*******************************
//se calcula la media
   for ($i=0; $i<=$longitud-1; $i++){
       if ($arrayDatos[$i]>=1 && $arrayDatos[$i]<=10){
          $Media=$Media+$arrayDatos[$i];
       }
   }
   $logintudmedia=intval($sobresalientes+$aprobados+$suspensos);
   $mediatotal=  $Media/$logintudmedia;  
   echo "<hr>";
   echo "La media de todas las notas es: ".floatval(number_format($mediatotal,2))."<br>";
//*******************************
//botón volver
   echo "<a href='index.php' title='Volver'>Volver</a>";
           
  }                
}else{
?>    
<form action="index.php" method="post" name="form" id="form"><!--Inicio formulario-->
<table align="center" border="1" >  <!--Tabla-->
                        
 <tr><!--línea título-->
     <td align="center" colspan="2" bgcolor="#f0f0f0">
     <h2>
     Escribe un conjunto de notas separadas por espacios
     </h2>
     </td>
 </tr><!--Fin de la línea título-->
            
 <tr><!--Línea notas-->
     <td bgcolor="#f0f0f0">Notas: </td>
     <td><input type="text" name="notas" size="70" maxlenght="40" title="Notas"/></td>
 </tr><!--Fin de la línea notas-->
            
 <tr><!--línea botones-->
     <td align="center" bgcolor="#f0f0f0" colspan="2">
     <input type="submit" value="enviar" name="Enviar" title="Enviar" />
     &nbsp;||&nbsp;
     <input type="reset" value="borrar" name="borrar" title="borrar" />
     </td>< /code>
 </tr><!--Fin línea botones-->
            
</table><!--FIN de la tabla-->
</form><!--Fin del formulario-->
<?php
   }
?>

 

También te puede interesar ...

Deja un comentario

* Al utilizar este formulario, aceptas que este sitio web almacene y maneje tus datos.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.