ОТЧЕТ
Лабораторная работа по дисциплине «Языковые средства создания гипердокументов»
Функции и массивы в PHP
Доцент каф. ЭМИС, к.ф.-м.н. Студенты гр.890
_______А.О.Гилетий
__________Е.А. Панасенко ______А.А Завьялова
Томск - 2012
Цель работы изучить возможности создания пользовательских функций в PHP. Получить навыки работы с массивами и различными встроенными функциями для обработки массивов.
1. Создать три переменные с названием товаров ($product1, $product2, $product3) и соответствующие им переменные с ценой товаров ($priec1, $priec2, $priec3), вывести их на экран. Рассчитать и вывести среднюю цену товара.
2. Оформить вывод данных о товарах в виде таблицы.
3. Сравнить цены товаров и вывести наименование и цену самого дорогого товара. Сопроводить вывод результата соответствующим сообщением.
4. Решить задачу, используя конструкции if и elseif.
5. Определить товар с минимальной ценой. Решить задачу, методом "вытеснения", используя только конструкцию if. Во вспомогательные переменные $max_prise и $max_ product сразу записать данные о первом товаре. Последовательно сравнить цены второго и третьего товаров со значением, записанным в переменной $max_prise (конструкция if). Если цена окажется меньше, переопределить переменные $max_prise и $max_ product. Протестировать программу с различными значениями переменных.
Основные конструкции языка PHP. Функции пользователя.
Оформить решение задачи 3 с помощью функции, определяющей товар с максимальной ценой. Функция должна иметь шесть формальных входных параметров: три переменных - наименования товаров и три переменных, задающих их стоимость. Вывод искомых данных производить внутри функции. После описания функции вызвать ее не менее трех раз с различными значениями фактических параметров.
7. Подготовить файл, обеспечивающий проверку правильности ввода пароля. Действия по проверке пароля должны выполняться с помощью пользовательской функции с одним входным аргументом. Функция должна сравнивать пароль, заданный внутри функции, с паролем, переданный ей через аргумент. Результат сравнения вывести в виде текста: "Пароль верный" или "Ошибка в пароле". Вывод сообщения должен производиться при внутри тела функции. Протестировать программу с различными значениями пароля.
Организация циклических вычислительных процессов.
a. Подготовить текст программы для решения следующей задачи.Пусть стоимость товара равна 100 р. в начале текущего года. Процент инфляции в этом году по прогнозам составит 10%. В последующие годы прогнозируется увеличение процента инфляции на 3,5% в год. С помощью циклической программы вывести прогнозируемую стоимость товара к концу текущего года и в последующие годы. Прекратить расчеты, как только стоимость товара превысит 150 р. Использовать цикл while.
b. Решить ту же задачу с помощью цикла for. Вывести прогнозируемую стоимость товара к концу текущего года и в последующие 5 лет. Вывод оформить в виде таблицы ГОД => ЦЕНА.
9. Работа с массивами. Подготовить текст программы, выполняющей следующие действия:
a. Создать список (индексированный массив), состоящий из 5-ти наименований товаров с помощью функции array(). Определить количество элементов массив, используя функцию count(), и вывести названия товаров в цикле for. Протестировать работу программы с различным количеством элементов массива.
b. Модифицировать программу, добавив сортировку массива в алфавитном порядке наименований товаров (использовать функцию sort). Вывести на экран исходный массив и результат сортировки.
c. Вывести товары и цены, используя оператор цикла foreach(). Протестировать работу программы с различным количеством элементов массива, добавив их любым способом.
d. Модифицировать программу для решения следующих задач: Подсчитать количество товаров и их суммарную стоимость.
e. Отсортировать массив: в порядке убывания (возрастания) цены товара и вывести на экран (использовать функции asort()/arsort()).
f. Выполнить сортировку массива так, чтобы товары расположились в алфавитном порядке для чего использовать функции или ksort()/krsort().
Листинг программы:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Документ без названия</title>
</head>
<body>
<?php
$product1="чайник";
$product2="кофемашина";
$product3="кипятильник";
$price1=300;
$price2=7000;
$price3=150;
echo "<table border=2 bordercolor= #FFFF00 width=500 height=100 >";
echo "<tr><td >$product1</td><td>$price1</td></tr>";
echo "<tr><td >$product2</td><td>$price2</td></tr>";
echo "<tr><td >$product3</td><td>$price3</td></tr>";
echo "</table>";
$sr=($priec1+$priec2+$priec3)/3;
printf("<h3 align=center> средняя цена %.2f руб. </h3><br>",$sr);
if ($price1>$price2) {
$max_price=$price1;
$max_product=$product1;}
else {$max_price=$price2;
$max_product=$product2;}
if ($max_price>$price3)
echo "$max_product stoit $max_price <br>";
else {echo "$product3 stoit price3 <br>";}
if($price1>$price2) {
$lux=$price1;
$luxProd=$product1;}
else {$lux=$price2; $luxProd=$product2;}
if ($lux>$price3)
echo "Самый дорогой товар: ", $luxProd, ". Цена данного товара = ",$lux;
else {$lux=$price2; $luxProd=$product2;
echo "Самый дорогой товар: ", $luxProd, ". Цена данного товара = ",$lux;}
if($price1<$price2) {
$min_price=$price1;
$minProd=$product1;}
else {$min_price=$price2; $minProd=$product2;}
if ($min<$price3)
echo "Самый дешевый товар: ", $minProd, ". Цена данного товара = ",$min_price;
else {$min_price=$price2; $minProd=$product2;
echo "Самый дешевый товар: ", $minProd, ". Цена данного товара = ",$min_price;}
function zadanie6(
$product1,
$product2,
$product3,
$price1,
$price2,
$price3)
{if ($price1 > $price2)
{$max_price=$price1;
$max_produkt=$product1;}
else{$max_price=$price2;
$max_produkt=$product2;}
if($max_price>$price3)
{echo "$max_produkt stoit $max_price <br>";}
else { echo "$product3 stoit $price3 <br>";}
if ($price1 < $price2)
{$max_price=$priec1;
$max_produkt=$product1;}
else{$max_price=$price2;
$max_produkt=$product2;}
if($max_price<$price3)
{echo "$max_produkt stoit $max_price <br>";}
else { echo "$product3 stoit $price3 <br>";}
}
echo "Введите пароль:<br>".$_POST["Password"]."<BR>";
if (strcmp($data, $password)==0){
echo "Пароль введен правильно";
} else {
echo "Пароль введен неверно";
}
//начальные данные
$priceNY=100;
$procent_infl=0.1;
$proc_infl_next=$procent_infl+0.035;
echo "<table border=2 bordercolor= #FF69B4 width=500 height=100 >";
echo "<tr><td>Год</td><td>Прогнозируемая цена </td></tr>";
//цена на 2012 год
$year=2012;
$price_NY2=$priceNY+$priceNY*$procent_infl;
echo"<tr><td>",$year, "</td><td>", $price_NY2, "</td></tr>";
$price_next=$price_NY2;
//цена на последующие года
for($i=0;$i<6;$i++){
$year++;
if($price_next>=150) break;
$price_next+=$price_next+$price_next*$proc_infl_next;
echo"<tr><td>",$year, "</td><td>", $price_next, "</td></tr>";
}
echo "</table>";
//начальные данные
$priceNY=100;
$procent_infl=0.1;
$proc_infl_next=$procent_infl+0.035;
echo "<table border=2 bordercolor= #CCFF00 width=500 height=100 >";
echo "<tr><td>Год</td><td>Прогнозируемая цена </td></tr>";
//цена на 2012 год
$year=2012;
$price_NY2=$priceNY+$priceNY*$procent_infl;
echo"<tr><td>",$year, "</td><td>", $price_NY2, "</td></tr>";
$price_next=$price_NY2;
//цена на последующие года
while($price_next<150){
$year++;
if($price_next>=150) break;
$price_next+=$price_next*$proc_infl_next;
echo"<tr><td>",$year, "</td><td>", $price_next, "</td></tr>";
}
echo "</table>";
?>
</body>
</html>
Вывод: в ходе лабораторной работы были изучены возможности создания пользовательских функций в PHP..