русс | укр

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

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

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

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


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

Циклы с постусловием


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


Break;

Return 0;

КОНЕЦ;

НАЧАЛО

I = 1;

S = 0;

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

Оператор;

Оператор;

Оператор;

While (условие)

Оператор;

While (условие)

Цепочка;

ПОКА (условие) ВЫПОЛНЯТЬ

Циклы с предусловием

Как правило, некоторую цепочку операторов необходимо повторять не бесконечно, а до тех пор, пока выполняется некоторое условие:

Такой цикл называется циклом с предусловием (циклом ПОКА) и изображается следующей схемой:

 

 

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

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

Цикл ПОКА превращается в бесконечный, если условие подобрано так, что оно всегда истинно.

В PHP цикл с предусловием реализуется оператором цикла while:

или

{

. . . .

}

Операторы, находящиеся между фигурными скобками, называются телом цикла.

Внимание!Условие всегда заключается в скобки и после него точка с запятой не ставится!

Если поставить точку с запятой после условия, то этот цикл, как правило, превращается в бесконечный, потому что в этом случае условие изменяться не будет.

Фигурные скобки используются в том случае, если после условия должна следовать цепочка операторов.

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

1. проверяется выполнение условия,

2. если оно истинно, то выполняется оператор (цепочка), стоящий после него,



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

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

Примеры:

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

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

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

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

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

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

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

d. увеличиваем очередное число на единицу: i = i+ 1,

e. если оно не больше 100, то снова добавляем его в сумму и повторяем цикл.

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

ПОКА (i ≤ 100)

s = s + i;

i = i + 1;

Программа:

$i = 1;

$s = 0;

while ($i <= 100)

{

$s += $i;

$i++;

}

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

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

s = 5050 i = 101

Таким образом, выходим из этого цикла со значением i не 100, а 101.

Вместо цепочки:

$s += $i;

$i++;

можно использовать один оператор:

$s += $i++;

Этот цикл можно превратить в бесконечный, если после условия поставить точку с запятой:

 


$i = 1;

$s = 0;

while ($i <= 100);

{

$s += $i;

$i++;

}

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

Значение переменной $i в этом случае меняться не будет – она останется равной единице.

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;

$n = 12345;

while ($n > 0)

{

$i = $n % 10;

$s += $i;

$n /= 10;

}

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;

while ($n != 0)

{

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

// ввод очередного $n

if ($n == 0)

$count++;

$s += $n;

if ($n > $max)

$max = $n;

if ($n < $min)

$min = $n;

}

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

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

echo “<BR>min = $min”;

echo “<BR>max = $max”;

$sred = $s / $count;

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

Часто встречающиеся ошибки программирования:

1. Использование после условия точки с запятой, которая, как правило, приводит к появлению бесконечного цикла:

$i = 1;

$s = 0;

while ($i <= 100);

{

$s += $i;

$i++;

}

2. Условие не заключено в скобки:

$i = 1;

$s = 0;

while $i <= 100

{

$s += $i;

$i++;

}

3. Отсутствие фигурных скобок, в которые заключается тело цикла:

$i = 1;

$s = 0;

while ($i <= 100)

$s += $i;

$i++;

4.Отсутствие в теле цикла оператора, изменяющего условие:

$i=1;

$s = 0;

while ($i <= 100)

{

$s += $i;

}

У циклов с постусловием (циклов типа ДО) проверка условия продолжения цикла производится после выполнения операторов, составляющих тело цикла:

 



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


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


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

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

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


 


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

 
 

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

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