<?php
/*
1)La siguiente página Web le permite a una persona ingresar una cadena:
<html>
<head>
<title>Recuperatorio</title>
</head>
<body>
<h1>Ingrese una cadena</h1>
<form action="tres.php" method="get">
<input type="text" name="x">
<input type="submit" value="Enviar">
</form>
</body>
</html>

Realizar un programa en php que verifique que la cadena corresponda a un número hexadecimal. Una cadena es un número hexadecimal si todos sus caracteres son: dígitos o bien las letras A, B, C, D, E, o F mayúsculas. Eliminar los espacios en blanco al comienzo o el final de la cadena ingresada.
En un comentario, indicar cómo se llama el archivo.
Ejemplos de salida:
Ud ingresó la cadena 40D8AC3. Es un número hexadecimal.
Ud. ingresó la cadena 3AJ4Ñ2L. No es un número hexadecimal.
*/

//El archivo se llama tres.php
$cadena = trim($_GET['x']);
$caracteresValidos = '0123456789ABCDEF';
//Recorremos la cadena carácter por carácter:
for($i=0; $i<strlen($cadena); $i++) {
    //El caracter actual, ¿NO esta entre los caracteres validos?
    if(strpos($caracteresValidos,$cadena[$i]) === false) {
        echo "Ud. ingresó la cadena $cadena. No es un número hexadecimal.<br>";
        //Si ya encontramos un carácter no válido, no tiene sentido seguir buscando:
        break;        
    }
}
//Si *no* salió por el "break", entonces debería haber llegado al final de la cadena:
if ($i == strlen($cadena) ) {
echo "Ud. ingresó la cadena $cadena. Es un número hexadecimal.<br>";
}
?>

<?php
//Otra forma, de manera exhaustiva:
$cadena = trim($_GET['x']);
$esValido = true;
//Recorremos la cadena carácter por carácter:
for($i=0; $i<strlen($cadena); $i++) {
switch($cadena[$i]) {
        case 'A':
        case 'B':
        case 'C':
        case 'D':
        case 'E':
        case 'F':
        case '0':
        case '1':
        case '2':
        case '3':
        case '4':
        case '5':
        case '6':
        case '7':
        case '8':
        case '9':
            break;
        default:
            $esValido = false;
            break 2; //Interrumpe el switch y también el for.
    }
}
if($esValido) {
    echo "Ud. ingresó la cadena $cadena. Es un número hexadecimal.<br>";
}
else {
    echo "Ud. ingresó la cadena $cadena. No es un número hexadecimal.<br>";
}
?>

<?php
/*
2) Se tiene un array indexado llamado $datos. Cada uno de los elementos de ese array es a su vez un array asociativo de tres elementos, cuyas claves son ['ciudad'] (contiene el nombre de la ciudad),['capital'] (contiene TRUE si la ciudad es capital de provincia y FALSE si no lo es) y ['poblacion'] (contiene la población de la ciudad). Se desea conocer:
* Cuál es la ciudad más poblada del array.
* Cuánto suma el total de los habitantes de las ciudades que son capital de provincia.
Un ejemplo de cómo podría ser el array está publicado en http://www.escuelaurquiza.edu.ar/jmarquez/prog2/recup.html
*/
//COPIADO DE LA CONSIGNA, DESDE AQUI...
$datos = array(
    array('ciudad'=> 'Santa Fe', 'capital'=>true,'poblacion'=>500),
    array('ciudad'=> 'Rosario', 'capital'=>false,'poblacion'=>1325),
    array('ciudad'=> 'Paraná', 'capital'=>true,'poblacion'=>247),
    array('ciudad'=> 'Rafaela', 'capital'=>false,'poblacion'=>83),
    array('ciudad'=> 'Victoria', 'capital'=>false,'poblacion'=>32),
    array('ciudad'=> 'Corrientes', 'capital'=>true,'poblacion'=>342),
    array('ciudad'=> 'Resistencia', 'capital'=>true,'poblacion'=>452),
    array('ciudad'=> 'Goya', 'capital'=>false,'poblacion'=>66),
    array('ciudad'=> 'Formosa', 'capital'=>true,'poblacion'=>234),
    array('ciudad'=> 'Clorinda', 'capital'=>false,'poblacion'=>47)
);
//La población está expresada en miles de personas.
//Para mostrarlo:
foreach ($datos as $unaCiudad) {
echo $unaCiudad['ciudad'] . ' - ';
var_dump($unaCiudad['capital']);
echo ' - ' .$unaCiudad['poblacion'] . '<br>';
}
// ...HASTA AQUI.
$max=0;
$suma=0;
foreach($datos as $unaCiudad) {
//Si la ciudad actual es capital, entonces la sumo:
    if($unaCiudad['capital']) {
        $suma += $unaCiudad['poblacion'];
    }
    if($unaCiudad['poblacion'] > $max) {
        $max = $unaCiudad['poblacion'];
        $nombreMax = $unaCiudad['ciudad'];
    }
}

echo "El total de habitantes de las capitales es $suma, y la ciudad más poblada es $nombreMax";
?>