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

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

por entreunosyceros
Publicado el Última actualización el

¡¡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 tu comentario

* Al utilizar este formulario, acepta que este sitio web almacene y maneje sus datos.

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