Massiivid ja tsüklid

By Ivari at 18.02.2010

Veel üks tsükliülesanne

Meenutage korrutustabeli loomiseks vajalikku programmikoodi ning proovige luua malelaud: 8x8 ruudustik, mille ruudud on vaheldumisi värvitud mustaks ja valgeks.

Ruudustiku loomine on algselt sarnane korrutustabeliga. Sellegipoolest tekitage 8x8 tabel uuesti, nullist, mitte copy-paste meetodil eelmisest ülesandest. Soovi korral asendage for-tsüklid näiteks while või do-while tsüklitega. Programmikoodi uuesti läbikirjutamine aitab seda kinnistada ning samas sunnib algoritmi uuesti läbi mõtlema.

Vahelduva taustavärviga ruutude tekitamiseks võikas kasutada näiteks eraldi muutujat $color, mille väärtuseks kirjutatakse värv, milline peaks ruut olema (antud juhul siis black või white). Seda sõna saab kasutada HTML-i parameetri bgcolor väärtusena:
print "<td bgcolor=$bgcolor height=50 width=50></td>";

Vahelduva taustavärviga ruutude tekitamiseks tuleb vaadelda $color väärtust käesoleval hetkel ning vastavalt sellele salvestada muutujasse uus värvuse nimetus. Ehk, kui praegu on $color väärtuseks white, siis tuleb määrata uueks väärtuseks black ja vastupidi:

if($color=="white")
	$color="black";
else
	$color="white";

Vahelduma peavad lahtrite värvused, seetõttu peab värvi vahetama iga lahtri loomise järel. Samuti tuleb jälgida, et uut rida alustataks õige värviga.

Muutujatüübid

PHP-s on kasutusel erinevad tüüpi muutujad. Tutvuge kasutatavate andmetüüpidega manuaalist

http://www.php.net/manual/en/language.types.php

Ülevaatlik tabel muutujate kohta on siin:

Muutujatüüp Nimetus Väärtused
Boolean Tõeväärtustüüp Võimalikud väärtused on true ja false
Integer Täisarvutüüp Võimalikud väärtused on täisarvude hulgast
Float Ujukomatüüp Sisaldab reaalarvulisi väärtusi
String Tekstitüüp Tekstandmete hoidmiseks. Tekstitüüpi andmed kirjutatakse jutumärkide vahele!
Massiiv Array Mitut andmeelementi sisaldav muutuja

Massiivid on muutujad, mis sisaldavad mitut andmeelementi. Elemente võib massiivi salvestada lihtsalt järjekorranumbri alusel:

$arr=array("esmaspäev","teisipäev","kolmapäev","neljapäev","reede");

Sellisel juhul on võimalik massiivi elemendi poole pöörduda järjekorranumbri alusel. Massiivi elementide järjekorranumbrid algavad nullist!

//Trükime välja kolmanda elemendi "kolmapäev" väärtuse:
print $arr[2];

Selliseid massiive nimetatakse mitteassotsiatiivseteks massiivideks. Assotsiatiivsete massiivide korral kasutatakse massiivi elementide salvestamisel võtmesõnu, mis viitavad konkreetsele elemendile massiivis.

$assoc["esmasp"]="esmaspäev";
$assoc["teisip"]="teisipäev";
$assoc["kolmap"]="kolmapäev";
$assoc["neljap"]="neljapäev";
$assoc["reede"]="reede";

Sellise massiivi elementide poole saab pöörduda elemendi nimetuste kaudu:

//Trükime välja kolmanda elemendi "kolmapäev" väärtuse:
print $assoc["kolmap"];

Assotsiatiivse massiivi elementide nimetusi nimetatakse võtmeteks (key), nendele vastavad aga elementide väärtused (value):

$assoc[key] = value;