КАТЕГОРИИ: Архитектура-(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) |
Программирование циклов для вычисления сумм и произведений рядов
Процесс называется циклическим, если вычисления в нём многократно повторяются по одним и тем же формулам, при разных значениях входящих в них переменных. Различают циклы со списком (или со счётчиком) и итерационные. Для первой схемы число выполненных циклов заранее известно или подсчитывается с помощью некоторой переменной (счётчика), для которой задаются начальное и конечное значения, а так же шаг, с которым меняется эта переменная при каждом новом повторении цикла. Переменная, меняющая своё значение при выполнении цикла, называется параметром, а сам цикл – циклом с параметром. В итерационном процессе вычислений число повторений цикла заранее неизвестно. Исходя из принципов структурного программирования, циклические алгоритмы могут быть построены по схеме с предусловием, с использованием блока модификации (цикл с параметром) и на основе схемы с постусловием. В цикле с параметром задаётся переменная, выполняющая роль параметра цикла, её начальное и конечное значения, приращение (шаг изменения значения параметра цикла). Блок-схема алгоритма цикла с параметром представлена на рисунке 5.1. Рисунок 5.1 – Блок-схема алгоритма на основе цикла с параметром На рисунке 5.1 введены обозначения: Сч – счетчик цикла (задает количество выполнений тела цикла); НЗн – начальное значение счетчика цикла; КЗн – конечное значение счетчика цикла; Шаг – это шаг изменения значений счетчика цикла. Следует отметить, что на Паскале шаг в цикле с параметром может принимать только два значения: +1, -1. Цикл с параметром на Паскале с положительным приращением имеет следующий синтаксис: for Сч:= НЗн to КЗн do тело цикла; Цикл с параметром на Паскале с отрицательным приращением имеет синтаксис: for Сч:= НЗн downto КЗн do тело цикла; Блок-схема цикла с предусловием показана на рисунке 5.2. В таком цикле при входе проверяется условие продолжения цикла. Если оно истинно, то выполняется тело цикла. Затем снова проверяется условие продолжения цикла. Таким образом, цикл будет повторяется до тех пора, пока условие продолжения не станет ложным. После этого программа покинет цикл. Синтаксис цикла имеет вид: while (условие) do тело цикла; Если в теле цикла с параметром, или в теле цикла с предусловием находится более одного операнда, то цело цикла заключается в операторные скобки: while (условие) do begin { Начало тела цикла } тело цикла; end; { Конец тела цикла } Рисунок 5.2 – Блок-схема алгоритма на основе цикла с предусловием Блок-схема цикла с постусловием показана на рисунке 5.3. В таком цикле при входе условия не проверяются. Сразу выполняется тело цикла. Затем проверяется условие выхода из цикла. Условие выхода из цикла противоположно условию продолжения цикла. Если условие выхода ложно, то снова выполняется тело цикла. Затем снова проверяется условие выхода из цикла. Таким образом, цикл будет повторяется до тех пор, пока условие выхода не станет истинным. После этого программа покинет цикл. Рисунок 5.3 – Блок-схема алгоритма на основе цикла с постусловием Синтаксис цикла с постусловием имеет вид: repeat { Начало тела цикла } тело цикла; until (условие); { Конец тела цикла } Задача 3. Вычислить произведение членов ряда на Паскале. Построить блок-схему алгоритма и написать программу. . Решение на основе цикла с предусловием. Блок-схема алгоритма показана на рисунке 5.4. Рисунок 5.4 – Блок-схема алгоритма решения задачи № 3 на основе цикла В качестве ввода исходных данных (см. рисунок 5.4) осуществляется ввод верхней границы цикла k и переменной x. Перед входом в цикл задается начальное значение произведения L=1, а также начальное значение счетчика цикла i=1. В теле цикла осуществляется домножение промежуточного произведения членов ряда на очередной член, а также увеличение счетчика цикла с целью перехода к следующему члену ряда. Текст программы (на основе цикла с предусловием): Program lab3preduslovie; uses crt; var i,k:integer; L,x:real; begin clrscr; writeln('Vvedite k,x'); readln(k,x); L:=1; { Начальное значение произведения } i:=1; { Начальное значение счетчика цикла } while (i<=k) do begin { Начало тела цикла } L:=L*(i*i*i-2*x+5); i:=i+1; end; { Конец тела цикла } writeln('L=',L:5:4); end. Результаты работы программы показаны на рисунке 5.5. Рисунок 5.5 – Результаты работы программы для задачи № 3 на основе цикла Решение на основе цикла с постусловием. Блок-схема алгоритма показана на рисунке 5.6. Рисунок 5.6 – Блок-схема алгоритма решения задачи № 3 на основе цикла Текст программы на основе цикла с постусловием: Program lab3postuslovie; uses crt; var i,k:integer; L,x:real; begin clrscr; writeln('Vvedite k,x'); readln(k,x); L:=1; i:=1; repeat { Начало цикла с постусловием } L:=L*(i*i*i-2*x+5); i:=i+1; until (i>k); { Конец цикла с постусловием } writeln('L=',L:5:4); end. Решение на основе цикла с параметром. Блок-схема алгоритма показана на рисунке 5.7. Рисунок 5.7 – Блок-схема алгоритма решения задачи № 3 на основе цикла Текст программы на основе цикла с параметром: Program lab3parametr; uses crt; var i,k:integer; L,x:real; begin clrscr; writeln('Vvedite k,x'); readln(k,x); L:=1; for i:=1 to k do L:=L*(i*i*i-2*x+5); writeln('L=',L:5:4); end.
Дата добавления: 2014-11-07; Просмотров: 1529; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |