Организация циклических вычислительных процессов

ОТЧЕТ

Лабораторная работа по дисциплине «Языковые средства создания гипердокументов»

Функции и массивы в 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..