Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по PHP.doc
Скачиваний:
198
Добавлен:
04.06.2015
Размер:
2.76 Mб
Скачать

Программа:

$count = 0;

$s = 0.0;

echo “<BR>Введите первое число:”;

// ввод $n

if ($n == 0)

return 0;

$min = $n; // за минимум и максимум принимаем

$max = $n; // первое введенное число

$count = 1; // введено одно число

$s = $n;

do

{

echo “<BR>Введите очередное число:”;

// ввод $n

if ($n == 0)

break;

$count++;

$s += $n;

if ($n > $max)

$max = $n;

if ($n < $min)

$min = $n;

}

while ($n != 0);

echo “<BR>Сумма = $s”;

echo “<BR>Количество чисел = $count”;

echo “<BR>min = $min);

echo “<BR>max = $max);

$sred = $s / $count;

echo “<BR>Среднее арифметическое = $sred);

Схема алгоритма:

  1. вычислить s– сумму членов бесконечного ряда:

s = 1 + x/ 1! + x2 / 2! + x3 / 3! + … + xk / k! + …

с погрешностью ε0.

Каждый последующий член ряда можно определить через предыдущий, используя рекуррентнуюформулу:

yk+1 = yk·x / k

Текущая погрешность вычислений εопределяется последним просуммированным членом ряда:

ε =|yn|

Эту погрешность необходимо сравнить с заданной погрешностью ε0 для реализации условия окончания суммирования:

- если ε > ε0, то заданная точность еще не достигнута, и суммирование ряда необходимо продолжить, прибавив к имеющейся сумме еще один член,

- если ε <= ε0, то заданная точность достигнута, и суммирование необходимо прекратить.

Пусть s– искомая сумма,

y – очередной член ряда,

k- номер члена ряда,

eps_0 – заданная точность вычислений,

x – вводимый аргумент.

Схема алгоритма:

Программа:

$eps_0 = 0.001;

$k = 0;

echo “<BR>x =”;

// ввод $x

$y = 1.0;

$s = $y;

do

{

$k++;

$y *= $x / $k;

$s += $y;

}

while (abs($y) > $eps_0);

echo “<BR>Сумма = $s”;

Циклы с постусловием обычно используются в фильтрах входных данных– исходные данные вводятся до тех пор, пока они не будут корректными, а некорректные исходные данные отвергаются.

Пример: по введенному месяцу года определить количество дней в нем.

Программа: Схема фильтра (month– номер месяца)

do

{

echo “<BR>Введите номер месяца: ”;

// ввод $month);

}

while (($month < 1)||($month > 12));

switch ($month)

{

case 1: case 3: case 5:

case 7: case 8: case 10:

case 12: echo “<BR>31 день”;

break;

case 4: case 6: case 9:

case 11: echo “<BR>30 дней”;

break;

case 2: echo “<BR>28 дней”;

break;

default: echo “<BR>Такого месяца нет<BR>”;

}

Циклы с пред- и постусловиями используются тогда, когда заранее неизвестно количество их повторений (итераций). Если количество итераций известно заранее, то используютсяциклы с параметром.

Циклы с параметром

Управление работой циклов с параметромосуществляется не толькоусловием, но и значением специальной переменной –параметра цикла(счетчика).

Циклы этого типа получили наиболее широкое распространение в алгоритмических языках.

Схему цикла с параметром можно представить в следующем виде:

где x – параметр цикла– любая переменная,

x_нач– егоначальноезначение,

x_кон– егоконечноезначение,

x_шагшагего изменения (не только целое число).

В PHP циклы с параметром реализуютсяоператором цикла:

for (инициализация; условие; изменение)

{

оператор;

оператор;

оператор;

. . .

оператор;

}

где инициализация– устанавливаетначальноезначение параметра цикла,

условие– определяетусловиевыполнения цикла,

изменение – задаетизменениепараметра цикла после каждой итерации.