Enunciats dels exercicis per a començar a programar en PHP
ex04.php
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="content-type">
<title>Matrius en PHP</title>
</head>
<body>
<?php
function presentaCodiFont($codiFont){
if(!file_exists($codiFont)){
return -1;
}
echo "<B>$codiFont<HR><FONT size = 3>";
show_source($codiFont);
echo "</font></B><P>";
echo "<A href=\"$codiFont\">Executa-ho</a><HR>";
return 0;
}
echo "<A href=\"ex04.pdf\">Enunciats dels exercicis per a començar a programar en PHP</a><HR>";
presentaCodiFont("ex04.php");
presentaCodiFont("ex04-1.php");
presentaCodiFont("ex04-2.php");
presentaCodiFont("ex04-3.php");
presentaCodiFont("ex04-4.php");
presentaCodiFont("ex04-5.php");
presentaCodiFont("ex04-6.php");
presentaCodiFont("ex04-7.php");
?>
</body>
</html>
Executa-ho
ex04-1.php
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="content-type">
<title>Matriu simple</title>
</head>
<body>
<h2>Com és el temps metereològic?</h2>
<?php
//Es crea una mtriu
$meteo=array(
"pluja",
"sol",
"núvols",
"aiguaneu",
"neu",
"vent",
"calamarsa"
);
//Ús de la matriu a la frase
echo "<p>Hem vist tot tipus de clima aquest mes. A principis de mes, ";
echo "vam tenir $meteo[5] i el $meteo[6]. Després va venir $meteo[1] amb alguns $meteo[2] ";
echo "i una mica de $meteo[0]. Almenys no va haver $meteo[3] o $meteo[4].</p>";
?>
</body>
</html>
Executa-ho
ex04-2.php
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="content-type">
<title>Bucle matriu simple - Ciutats</title>
</head>
<body>
<h2>Grans ciutats<br /></h2>
<?php
//Crea la matriu
$ciutats=array(
"Tòquio",
"Ciutat de Mèxic",
"Nova York",
"Mumbai",
"Seül",
"Xangai",
"Lagos",
"Buenos Aires",
"El Caire",
"Londres"
);
//Visualitza els valors de la matriu al navegador, separat per comes.
foreach($ciutats as $c){
echo "$c, ";
}
//Sort array.
sort($ciutats);
//Visualitza la matriu com una llista començada per punts
echo "\n<ul>\n" ;
foreach($ciutats as $c){
echo "<li>$c</li>\n";
}
echo "</ul>" ;
//Afegeix 4 ciutats a la matriu
array_push($ciutats, "Los Angeles", "Calcuta", "Osaka", "Pequín") ;
//Ordena un altre cop i visualitza llista amb punts inicials
sort($ciutats);
echo "\n<ul>\n";
foreach($ciutats as $c){
echo "<li>$c</li>\n";
}
echo "</ul>";
?>
</body>
</html>
Executa-ho
ex04-3.php
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="content-type">
<title>Matrius des de l'entrada d'usuari</title>
</head>
<body>
<h2>Quina percepció teniu del temps metereològic? </h2>
<?php
// Si no s'ha premut el botó, es va al formulari inicial
if (!isset($_POST['submit'])){
?>
<form method="post" action="ex04-3.php">
<p>Introdueixi la seva informació:</p>
Ciutat: <input type="text" name="ciutat" />
Mes: <input type="text" name="mes" />
Any: <input type="text" name="any" />
<p>Si us plau, seleccioni quin tipus de temps metereològic heu experimentat.
<br />Escolliu el que toqui. </p>
<input type="checkbox" name="tempsMeteo[]" value="assolellat" />Assolellat<br />
<input type="checkbox" name="tempsMeteo[]" value="núvols" />Núvols<br />
<input type="checkbox" name="tempsMeteo[]" value="pluja" />Pluja<br />
<input type="checkbox" name="tempsMeteo[]" value="calamarsa" />Calamarsa<br />
<input type="checkbox" name="tempsMeteo[]" value="aiguaneu" />Aiguaneu<br />
<input type="checkbox" name="tempsMeteo[]" value="neu" />Neu<br />
<input type="checkbox" name="tempsMeteo[]" value="vent" />Vent<br />
<input type="checkbox" name="tempsMeteo[]" value="fred" />Fred<br />
<input type="checkbox" name="tempsMeteo[]" value="calor" />Calor<br />
<p />
<input type="submit" name="submit" value="Endavant" />
</form>
<?php
// Si s'ha premut el botó es processa l'entrada
}else{
//Recull la informació de la data i el lloc
$entradaLocal = array(
$_POST['ciutat'],
$_POST['mes'],
$_POST['any']
);
echo "A $entradaLocal[0] al mes de/d' $entradaLocal[1] de $entradaLocal[2], heu observat aquest temps:<br /> <ul>";
foreach($_POST['tempsMeteo'] as $w){
echo "<li>$w</li>\n";
}
echo "</ul>";
}
?>
</body>
</html>
Executa-ho
ex04-4.php
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="content-type">
<title>Matriu entrant dades d'usuari</title>
</head>
<body>
<h2>Com viatges?</h2>
<?php
//Si no has premut el botó, visualitza el formulari
if (!isset($_POST['submit'])){
$travel=array(
"automòbil",
"avió",
"ferri",
"metro"
);
?>
<p>Es pot viatjar de moltes maneres depenent si vols anar a un altre
lloc del teu municipi, anar a un altre lloc del teu país o si vols anar
a un altre lloc del món. Aquesta és una llista d'alguns mitjans de
transport comuns :</p>
<ul>
<?php
foreach ($travel as $t){
echo "<li>$t</li>\n";
}
?>
</ul>
<form method="post" action="ex04-4.php">
<p>Voleu afegir altres mitjans de transport?.
Si voleu fer-ho introduiu-los separats per comes:</p>
<input type="text" name="added" size="80" />
<p />
<?php
//S'envia la matriu actual com a formulari de dades ocult.
foreach ($travel as $t){
echo "<input type=\"hidden\" name=\"travel[]\" value=\"$t\" />\n";
}
?>
<input type="submit" name="submit" value="Ves" />
</form>
<?php
//En cas d'haver introduït dades es processa l'entrada
}else{
//Matriu prèvia
$travel=($_POST['travel']);
//Converteix les dades d'entrada a una matriu
$added=explode(',',$_POST['added']);
//S'afegeix a la matriu principal
array_splice($travel, count($travel), 0, $added);
// Es podia haver escrit $travel=array_merge($travel, $added);
//Retorna la nova llista a l'usuari
echo "<p>Aquí hi ha la llista amb els mitjans de transport que has afegit:</p>\n<ul>\n";
foreach($travel as $t){
//La funció trim esborra els espais extra que l'usuari hagi introduït
echo "<li>".trim($t)."</li>\n";
}
echo"</ul>";
?>
<p>Voleu afegir-ne més?</p>
<form method="post" action="ex04-4.php">
<input type="text" name="added" size="80" />
<p />
<?php
//Tramet la matriu actual com a formulari ocult de dades
foreach ($travel as $t){
echo "<input type=\"hidden\" name=\"travel[]\" value=\"$t\" />\n";
}
?>
<input type="submit" name="submit" value="Ves" />
</form>
<?php
}
?></body>
</html>
Executa-ho
ex04-5.php
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="content-type">
<title>Matriu associativa</title>
</head>
<body>
<h2>Grans ciutats un altre cop<br /></h2>
<?php
$ciutats=array(
"Japó"=>"Tòquio",
"Mèxic"=>"Ciutat de Mèxic",
"Estats Units d'Amèrica"=>"Nova York",
"Índia"=>"Mumbai",
"Corea"=>"Seül",
"Xina"=>"Xangai",
"Nigèria"=>"Lagos",
"Argentina"=>"Buenos Aires",
"Egipte"=>"El Caire",
"Anglaterra"=>"Londres"
);
//Si no has premut el botó, visualitza el formulari
if(!isset($_POST['submit'])){
?>
<form method="post" action="ex04-5.php">
<p>Escull una ciutat:</p>
<select name="ciutat">
<?php
foreach($ciutats as $c){
echo "<option value=\"$c\">$c</option>\n";
}
?>
</select> <p />
<input type="submit" name="submit" value="Ves">
</form>
<?php
//En cas d'haver introduït dades es processa l'entrada
}else{
//Captura la ciutat
$ciutat=$_POST['ciutat'];
//Troba la clau corresponent a la matriu associativa
$pais=array_search($ciutat, $ciutats);
//Tramet la informació a l'usuari
echo "<p>$ciutat és a $pais.</p>" ;
}
?>
</body>
</html>
Executa-ho
ex04-6.php
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="content-type">
<title>Matriu associativa</title>
</head>
<body>
<h2>Matriu de temperatures màximes per a un mes de primavera</h2>
<?php
//Matriu de les 30 temperatures màximes per a un mes de primavera
$temperaturesMaximes = array(
20, 22, 24, 18, 19, 28, 32, 24, 25, 27, 23, 18, 23, 29, 28,
20, 23, 25, 30, 29, 18, 12, 15, 27, 23, 28, 32, 35, 34, 33
);
//Obté el nombre de temperatures
$comptador = count($temperaturesMaximes);
//Sumatori de totes les temperatures
$total = 0;
foreach ($temperaturesMaximes as $h){
$total += $h;
}
//Calcula la mitja
$mitja = round($total / $comptador);
//Tramet dades al navegador. ° és el codi ASCII per º
echo "<p>La mitja de les temperatures màximes pel mes ha estat de $mitja °C.</p>\n";
//Ordena les temperatures i obté les cinc màximes.
//S'empra rsort per ordenar de manera decreixent
rsort($temperaturesMaximes);
//Recull els cinc valors màxims
$topTemps = array_slice($temperaturesMaximes, 0, 5);
echo "<p>Les cinc temperatures més càlides són: <br />\n";
foreach($topTemps as $t){
echo "$t °C <br/> \n";
}
echo "</p>";
//Visualitza les cinc temperatures màximes més baixes
$lowTemps = array_slice($temperaturesMaximes, -5, 5);
echo "<p>Les cinc temperatures més baixes: <br/>\n";
foreach($lowTemps as $l){
echo "$l °C <br/> \n";
}
echo "</p>";
?>
</body>
</html>
Executa-ho
ex04-7.php
<?php
$multiCiutat=array(
array('Ciutat', 'País', 'Continent'),
array('Tòquio', 'Japó', 'Àsia'),
array('Ciutat de Mèxic','Mèxic', 'Amèrica'),
array('Nova York', 'Estats Units d\'Amèrica', 'Amèrica'),
array('Mumbai', 'Índia', 'Àsia'),
array('Seül', 'Corea', 'Àsia'),
array('Xangai', 'Xina', 'Àsia'),
array('Lagos', 'Nigèria', 'Àfrica'),
array('Buenos Aires', 'Argentina', 'Amèrica'),
array('El Caire', 'Egipte', 'Àfrica'),
array('Londres', 'Regne Unit','Europa')
);
?>
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="content-type">
<title>Matriu multidimensional</title>
<style type="text/css">
td, th {width: 8em; border: 1px solid black; padding-left: 4px;}
th {text-align:center;}
table {border-collapse: collapse; border: 1px solid black;}
</style>
</head>
<body>
<h2>Taula de ciutats<br /></h2>
<table>
<thead>
<tr>
<th>
<?php
echo $multiCiutat[0][0] ."</th>\n<th>";
echo $multiCiutat[0][1] ."</th>\n<th>";
echo $multiCiutat[0][2] ."</th>\n";
?>
</tr>
</thead>
<?php
//Troba el nombre de files de la matriu
$num = count($multiCiutat);
for ($row=1; $row<$num; $row++){
echo "<tr>\n";
foreach ($multiCiutat[$row] as $valor){
echo "<td>$valor</td>\n";
}
echo "</tr>\n";
}
?>
</table></body>
</html>
Executa-ho