КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Вычисление сумм
End. Repeat Begin Var Выполнение оператора. OператорN Repeat Структура оператора Оператор цикла с постусловием End. Begin Var Выполнение оператора. Структура оператора Оператор цикла с предусловием While логическое выражение do оператор, где оператор – простой или составной оператор, который является телом цикла. 1) вычисляется логическое выражение, результат вычисления анализируется; 2) если результат вычислений – true, то выполняется тело цикла, после чего осуществляется возврат к оператору while; если результат – false, то тело цикла не выполняется, а управление передаётся оператору программы, расположенному непосредственно после тела цикла. Если первая проверка условия окончания цикла дала результат false, то тело цикла не выполнится ни разу. Логику действия оператора while можно сформулировать так: «выполнять тело цикла, пока условие истинно». Пример 4.13. Вычислить значения функции y = sin (x 2) на отрезке [a, b], если шаг изменения её аргумента Dx.
x, y, deltaX, a, b: real; write ('введите a, b, deltaX - '); readln (a, b, deltaX); x:= a; { присваивание параметру цикла x его начального значения } while x <= b do { проверка условия работы цикла } begin { операторы, составляющие } y:= sin(x * x); { тело цикла, заключены в } writeln ('x=', x:10:3, ' y=',y:10:3); x:= x + deltaX { операторные скобки } end { begin-end }
oператор1; oператор2; …………… until логическое выражение; где оператор1, оператор2,..., операторN – операторы, представляющие в совокупности тело цикла; repeat ([репиит] – повторять), until ([антил] – пока) – ключевые слова оператора. Приставка “пост” означает “после”, т.е. в дословном переводе это цикл с “послеусловием”. 1) исполняются операторы, составляющие тело цикла; 2) вычисляется логическое выражение, результат вычисления анализируется; 3) если результатом вычислений является false, тело цикла выполняется снова, в противном случае (результат вычислений – true) очередного повторения тела цикла не происходит, а осуществляется выход из цикла на следующий по порядку оператор программы. Таким образом, логику действия оператора repeat можно выразить инструкцией «выполнять тело цикла до тех пор, пока условие не станет истинным». Пример 4.14. Выполнить задание примера 4.13, используя оператор repeat. x, y, deltaX, a, b: real; write ('введите a, b, deltaX - '); readln (a, b, deltaX); x:= a; {присваивание параметру цикла x его начального значения } { вычисления, предусмотренные телом цикла } y:= sin(x * x); writeln ('x =', x:10:3,' y =', y:10:3); x:= x + deltaX until x > b { проверка условия выхода из цикла }
Применяя операторы while и repeat, необходимо позаботиться о том, чтобы значения переменных, входящих в условие окончания цикла, менялись в теле цикла, иначе циклический процесс будет продолжаться бесконечно («зацикливание» программы). Подчеркнем отличия между операторами repeat и while. 1. В операторе repeat проверка условия выхода из цикла производится в конце, а не в начале цикла, поэтому тело цикла выполняется хотя бы один раз. Это наиболее важное различие, оно отражено и в названиях операторов: “предусловие” – т.е. сначала проверяется условие, “постусловие” – т.е. условие проверяется после. 2. В операторе repeat условие выхода из цикла удовлетворяется, если логическое выражение истинно, а в операторе while, если ложно. Для лучшего запоминания этого различия предлагается такое правило: если в данных операторах логическое выражение истинно, то выполняется то действие, которое следует за ним. В цикле while это тело цикла, а в repeat – следующие за циклом операторы. 3. Тело цикла, организованного с помощью оператора while, может содержать только один оператор (в том числе и составной), в то время как между словами repeat и until их можно разместить несколько.
Одной из важных задач, решаемых с помощью циклического алгоритма – вычисление суммы большого числа слагаемых. Пример 4.15. Вычислить сумму . Для решения данной задачи воспользуемся методом накопления суммы. Суть его состоит в следующем. Положим S = 0 – это начальное значение S, когда вычисление суммы еще не начато. Далее вычислим следующее выражение: S + , значение которого равно 1, присвоим его переменной S. На языке PASCAL эта ото действие можно записать в виде оператора S:= S + 1/sqr(1); После выполнения этой операции значение S будет равно 1, т.е. первому слагаемому. Теперь вычислим выражение: S + , значение которого, снова присвоим переменной S. На языке PASCAL эта ото действие можно записать в виде оператора S:= S + 1/sqr(2); При выполнении этой операции к старому значению S = 1 прибавится второе слагаемое, и результат запишется в S. После выполнения этой операции значение S будет равно , т.е. сумме первых двух слагаемых. Аналогично, после выполнения оператора S:= S + 1/sqr(3); мы получим сумму 3-х слагаемых, и т.д. Для вычисления всей суммы надо 20 раз повторить следующий оператор S:= S + 1/sqr(k); увеличивая при этом каждый раз значение k на 1. Окончательно получаем следующий алгоритм: 1. Положить S = 0, k = 1. 2. Вычислить S + и записать результат в S. 3. Увеличить k на 1. 4. Если k £ 20, повторить шаг 2, иначе СТОП. На PASCAL этот алгоритм удобно записать с помощью цикла repeat, т.к. в данном варианте алгоритма проверка условия прекращения цикла происходит после выполнения действия. var S: real; k: integer;
Дата добавления: 2014-01-06; Просмотров: 308; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |