Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОБЩИЙ_файл_ПОСОБИЕ.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
22.69 Mб
Скачать

Використання масивів даних в Web-додатках

Масив – це проіндексована сукупність змінних одного типу. Кожна змінна (элемент) в масиві має свій індекс (номер). Індекси призначаються від 0 до N-1, де N – кількість елементів масиву.

Імена масивів так саме, як і змінні починаються в мові РНР з символа $. Наприклад, $mas[]. Для того, щоб звернутись до окремого элемента масиву, необхідно вказати ім'я масиву, після якого в квадратних дужках указати індекс. Наприклад: $mas[0], $mas[3], $mas[9]. Індексація починається з нуля.

В масив можна включати інші масиви. В такому випадку говорять про багатовимірні масиви, а для звернення до елементів використовується декілька пар квадратних дужок – дві, якщо масив двовимірний, три, якщо масив трьохвимірний і т. д. Наприклад: $mas[0] [0], $mas[0] [0] [0].

Створення одновимірних масивів

В РНР існує два варіанти створення одновимірних масивів:

просте присвоение значень елементам масиву;

використання конструкцій array().

За першим варіантом значення присвоюються окремо кожному елементу масива за індексами:

<?php

$mas[0] = ”7”;

$mas[1] = ”3”;

$mas[2] = ”23”;

echo $mas[1]; // Буде виведено 3

?>.

Інколи застосовується спосіб визначення елементів без посилань на індекси. Тоді елементи додаються в кінець масива:

<?php

$mas[] = ”7”;

$mas[] = ”3”;

$mas[] = ”23”;

Echo $mas[1]; // Буде виведено 3

?>.

За другим варіантом для створення масива використовується конструкція array(), де значення елементів задаються безпосередньо в круглих дужках після службового слова array, на приклад:

<?php

$mas= array(”7”, ”3”, ”23”); // Лапки можна не ставити.

echo $mas[1]; // Буде виведено ”3”

?>.

Інструментальні засоби програмування рнр-сценаріїв

Програмування сценаріїв з використанням мови РНР буде виконано на основі програм пакета "Денвер". Пакет "Денвер" – набір програм Web-розробника, котрий включає Web-сервер Apache, віртуальний хост Localhost, мови програмування РНР і Perl та СКБД MySql. Вказаний пакет можна установлювати на жорсткі диски або на флеш-диск.

Перш ніж користуватись пакетом "Денвер" необхідно перевірити його працездатність. Для цього слід запустити і перевірити дієвість Web-сервера Apache і мови РНР.

Після настроювання системи можна приступати до виконання конкретних завдань.

Приклади динамізації Web-сторінок з використанням

РНР-сценаріїв

Програмування сценаріїв обчислювальних процесів з лінійною структурою. Обчислювальний процес має лінійну структуру, якщо всі операції виконуються одноразово і послідовно одна за одною згідно алгоритму. Типи даних можуть бути будь-якими з раніше визначених. Основними операторами зазвичай є оператори присвоювання, оператори виводу та оператори коментарів.

Приклад 9.6. Обчислити відхилення результату фактичного виконання завдання від планового за формулою:

Відхилення = Факт – План,

при значеннях Факт = 3600 і План = 3150.

РНР-скрипт матиме наступний вигляд:

<?php

$plan=”3150”;

$fakt=”3600”;

$otkl=$fakt-$plan;

echo “<br>”; // Перехід на наступний пустий рядок

echo “План”, $plan;

echo “<br>”;

echo “Факт”, $fakt;

echo “<br>”;

echo “Відхилення”, $otkl, “<br>”;

?>.

Щоб реалізувати цей скрипт потрібно: ввести текст скрипта в Блокнот і зберегти отриманий HTML-документ, як файл Plan-Fact.php, в папці www; запустити Internet Explorer; ввести URL – http://localhost/Plan-Fact.php. Результат виконання такого сценарію подано на рис. 9.13.

Рис. 9.13. Вікно з результатом виконання скрипта

Програмування сценаріїв обчислювальних процесів, що розгалужуються. Для реалізації розгалужених обчислювальних процесів використовуються програми з розгалуженою структурою. Концептуальну основу розгалужених програм складають умовні оператори, котрі відносяться до групи операторів керування. Вони використовуються для виконання різних фрагментів програми в залежності від умови завдання.

Приклад 9.7. Застосовуючи оператор If … else, провести розрахунки премії в залежності від величини продажу товарів. Якщо величина продажу не перевищує 5000 грн., то премії немає. Якщо величина продажу 5000 грн. і більше, але не перевищує 10000 грн., то премія складає 10% від величини продажу. Якщо ж величина продажу 10000 грн. і більше, то премія складає 15% від величини продажу.

Лістинг РНР-скрипта може бути таким:

<?php

$prodaj=4000;

If($prodaj<5000)

{

$premiya=0;

echo "<br>";

echo "Продаж склав ", $prodaj;

echo "<br>";

echo "Вам немає премії";

echo "<br>";

}

elseif($prodaj<10000)

{

$premiya=0.1*$prodaj;

echo "Продаж склав:_", $prodaja;

echo "<br>";

echo "Вам призначена премія:_", $premiya, "грн.";

echo "<br>";

}

else

{

$premiya=0.15*$prodaj;

echo "Продаж склав ", $prodaj;

echo "<br>";

echo "Вам призначена премія:_", $premiya, "грн.";

echo "<br>";

}

?>.

В наведеному коді використано оператор if…elseif…else.

Програмування Web-додатків, що реалізують циклічні обчислювальні процеси. Використовуючи цикли, можна створювати прості і короткі програми, котрі в супротивному випадку вимагали б багаторазового повторення рядків програмного коду.

Приклад 9.8. Розраховувати і показувати значення функції:

y=x+a*Sin(x),

при а=10 і х, що змінюється в межах від 0 до 15 з кроком 2,5.

PHP-cкрипт задачі може бути подано у такому вигляді:

<?php

Error_Reporting(E_ALL & ~E_NOTICE);

define (a, 10); // Оголошення константи

echo "x....................y"."<br>";

for($x=0;$x<=15;$x+=2.5) // x - параметр циклу

{

$y=$x+a*Sin($x);

echo $x."..........";

echo $y."<br>";

}

?>.

Приклад 9.9. Застосування вкладених циклів. Визначення простих чисел в заданому інтервалі. РНР-код скрипта наступний:

<?php

Error_Reporting(E_ALL & ~E_NOTICE);

echo "Це прості числа в інтервалі від 2 до 100"."<br>";

for ($i=2; $i<100; $i++)

{

for ($j=2; $j<$i; $j++)

{

if (($i%$j)!=0)

{

continue;

}

else

{

$flag=true;

break;

}

}

if(!$flag) echo $i." ";

$flag=false;

}

?>.

Результат выполнения этого скрипта следующий:

Це прості числа в інтервалі від 2 до 100

2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97

Розглянемо приклади скриптів з використанням одновимірних масивів.

Приклад 9.10. Розглянемо скрипт, в якому буде демонструваться введення значень елементів масива $b[] за першим варіантом і визначаються максимальний і мінімальний елементи згідно класичних алгоритмів.

<?php

Error_Reporting(E_ALL & ~E_NOTICE);

// Безпосереднє введення елементів массиву $b[] в скрипт

$b[0]=3;

$b[1]=5;

$b[2]=17;

$b[3]=1;

$b[4]=7;

echo "Введений масив"; // Показ введеного масиву.

for ($i=-1;$i<5;$i++)

{

echo $b[$i];

echo "<br>";

}

echo "<br>";

echo "Пошук мінімального і максимального елементів в масиві";

$min=$b[0];

$max=$b[0];

for ($i=0;$i<5;$i++)

{

$min>$b[$i]? $min=$b[$i]:$min; // Застосована умовна операція

$max<$b[$i]? $max=$b[$i]:$max; // Застосована умовна операція

}

echo "<br>";

echo "Мінімальний елемент: ", $min;

echo "<br>";

echo "Максимальний елемент: ", $max;

?>.

Приклад 9.11. В РНР-скриптах можна обробляти одночасно декілька одновимірних масивів. Наступний приклад через сценарій визначає краще з двох підприємств за поданими даними про доходи р1 і р2.

<?php

Error_Reporting(E_ALL & ~E_NOTICE);

$p1=array(17,15,12,17,16,18,20,21,20,18,14,22);

$p2=array(21,15,20,18,25,19,20,18,17,16,15,14);

$r=array();

$Cum_p1=0;

$Cum_p2=0;

echo "Щомісячна різниця доходів р1-р2"."<br>";

for($i=0;$i<=11;$i++)

{

$r[$i]=$p1[$i]-$p2[$i]; // Різниця щомісячних доходів

echo $r[$i]."<br>";

$Cum_p1=$Cum_p1+$p1[$i];

$Cum_p2=$Cum_p2+$p2[$i];

}

echo "Сума р1 за всі місяці=".$Cum_p1."<br>";

echo "Сума р2 за всі місяці=".$Cum_p2."<br>";

if ($Cum_p1>$Cum_p2)

{

echo "Підприємство р1 краще"."<br>";

}

else

{

echo " Підприємство р2 краще"."<br>";

}

?>.

Сортування елементів. Однією з найпоширеніших операцій при роботі з масивами є сортування елементів, тобто їх упорядкування за визначеними критеріями.

Приклад 9.12. Наступний приклад демонструє сценарій виконання скриптом сортування елементів масиву за збільшенням їх значень.

<?php

Error_Reporting(E_ALL & ~E_NOTICE);

$p=array(17,15,12,17,16,18,20,21,20,18,14,22);

$b=0; // $b - змінна буферу обміну

for($i=0;$i<=10;$i++)

{

if ($p[$i]>$p[$i+1])

{

$b=$p[$i];

$p[$i]=$p[$i+1];

$p[$i+1]=$b;

$i=-1;

}

}

for($i=0;$i<=11;$i++)

{

echo $p[$i],"<br>";

}

?>.

В результаті виконання даного скрипта на екрані буде виведено в стовпець всі елементи массива $p(), упорядковані за збільшенням:

12 14 15 16 17 17 18 18 20 20 21 22.