русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

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


Дата добавления: 2013-12-23; просмотров: 1273; Нарушение авторских прав


Break;

Break;

Break;

Do

Do

Break;

Do

Return 0;

Do

Do

Do

ВЫПОЛНЯТЬ

I = 1;

S = 1 + 2 + 3 + … + 98 + 99 + 100

While (условие);

Оператор;

. . . . . .

Оператор;

Оператор;

Оператор;

Do

ДО (условие);

Цепочка

ВЫПОЛНЯТЬ

 

Такой цикл повторяется до тех пор, пока условие истинно. Выполнение цикла заканчивается, если операторы цепочки изменяют значения переменных, входящих в условие, и оно становится ложным.

В любом случае этот цикл выполняется хотя бы один раз. Цикл с постусловием превращается в бесконечный, если условие подобрано так, что оно всегда истинно.

Таким образом, условие в данном цикле является условием его продолжения, как и в цикле с предусловием.

В PHP цикл с постусловием реализован оператором цикла do:

{

}

где do – служебное слово выполнять,

while – служебное слово пока.

Внимание! После слова do точка с запятой не ставится!

Перед закрывающей фигурной скобкой }поставить точку с запятой!

Действия оператора do:

1. выполняется оператор (цепочка),

2. проверяется выполнение условия, стоящего после слова while,

3. если оно истинно, то цикл повторяется,

4. если условие становится ложным, то цикл заканчивает работу.

Примеры:

1. вычислить сумму ста первых натуральных чисел:

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

i – очередное число (изменяется от 1 до 100).

Тогда алгоритм решения задачи можно описать следующим образом:



a. обнуляем сумму s = 0 ,

b. берем первое число: i = 1,

c. добавляем в сумму очередное число s = s + i,

d. как только очередное число станет больше ста, цикл заканчивает работу.

Представим этот алгоритм так:

s = 0;

s = s + i;

i = i + 1;

ПОКА (i <= 100);

Программа:


$i=1;

$s=0;

{

$s += $i;

$i++;

}

while ($i <= 100);


echo “<BR>s = $s i = $i”;

Результат решения задачи:

s = 5050 i = 101

Второй вариант решения задачи:

$s += $i++;

while ($i <= 100);


2. вычислить сумму s всех цифр заданного натурального числа n

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

i – очередная цифра числа.

Тогда алгоритм решения задачи можно описать следующим образом:



1. обнуляем сумму s = 0 ,

2. берем последнюю цифру числа, для чего определяем остаток от деления исходного числа на 10: i = n % 10,

3. добавляем в сумму найденную цифру: s = s + i,

4. уменьшаем число в 10 раз: n = n / 10,

5. повторяем цикл до тех пор, пока n != 0 .

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

Программа:

$s = 0;

echo “<BR>Введите целое положительное число:”;

// ввод $n

{

$i = $n % 10;

$s += $i;

$n /= 10;

}

while ($n != 0);

echo “<BR>s = $s”;

3. ввести с клавиатуры по одному последовательность целых чисел (конец последовательности – число 0). Определить их сумму, максимальное и минимальное число, количество введенных чисел и их среднее арифметическое.

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

min, max – минимальное и максимальное из введенных чисел,

count – количество введенных чисел,

sred – среднее арифметическое,

n – очередное число.

Тогда алгоритм решения задачи можно описать следующим образом:



1. обнуляем сумму s = 0,

2. вводим первое число n,

3. если оно не равно нулю, то

4. принимаем его значение за min и max

5. количество введенных чисел count = 1

6. увеличиваем сумму на введенное число s = s + n

7. входим в цикл ввода:

8. вводим очередное число n,

9. если оно не равно нулю, то

10. количество введенных чисел увеличиваем на 1: count = count+1

11. увеличиваем сумму на введенное число s = s + n

12. если оно меньше min, то min = n,

13. если оно больше max, то max = n,

14. повторяем цикл до тех пор, пока n # 0 – это и будет условием продолжения цикла.

Создадим интерфейс этой задачи – взаимодействие программы с пользователем, то есть что должно выводиться на экран:

Первое число: 3

Очередное число: 8

Очередное число: 1

Очередное число: -2

Очередное число: 0

Сумма = 10

Количество чисел = 4

min = -2

max = 8

Среднее арифметическое = 2.50

Программа:

$count = 0;

$s = 0.0;

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

// ввод $n

if ($n == 0)

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

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

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

$s = $n;

{

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

// ввод $n

if ($n == 0)

$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);


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








4. вычислить 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;

{

$k++;

$y *= $x / $k;

$s += $y;

}

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

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

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

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

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

{

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 день”;

case 4: case 6: case 9:

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

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

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

}

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

 

 

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

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

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

 

 

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

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

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

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

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



<== предыдущая лекция | следующая лекция ==>
Циклы с постусловием | 


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.008 сек.