Пример 4.2п. Операторы цикла. Часть II
Согласно заданию нужно вычислить следующее выражение: в зависимости от N.
Сначала определимся, какие переменные понадобятся при написании программы. Понадобиться переменная N - количество элементов произведения, которая будет целого типа, а ее значение будет задаваться с клавиатуры. Понадобится еще четыре переменные: a, b - будут отвечать за числитель и знаменатель первой дроби в круглых скобках и c, d - числитель знаменатель второй дроби. Эти переменные так же будут целого типа. Повторяющимися действиями в этой задаче будет: вычисление нового элемента произведения и добавление его в произведение. Следовательно, понадобиться еще одна переменная, обозначим ее как p, в которую будет накапливаться произведение всех элементов. Она будет вещественного типа, т.к. элементами произведения являются величины, представляющие собой сумму двух дробей. Так же понадобиться еще одна переменная, которая будет выступать в качестве счетчика арифметического цикла, обозначим ее как i. Так как в теле цикла нужно, чтобы выполнялось несколько вычислений (числителей, знаменателей и произведения элементов), то тогда для арифметического и цикла с предусловием необходимо использовать составной оператор. В программе реализуется два способа вычисления нового значения числителя и знаменателя. Первый способ - числитель и знаменатель вычисляются через номер элемента произведения, этот способ реализован в арифметическом операторе цикла и в операторе цикла с постусловием. Второй способ - числитель и знаменатель дробей вычисляются через предыдущие значения числителя и знаменателя соответственно, этот способ реализован в операторе цикла с предусловием. Таким образом, результатом будет следующая программа.
Var a,b,c,d,i,N:integer; p:real; {раздел описания переменных} begin {начало раздела операторов} readln(N); {задание значения N через оператор ввода} p:=1; {задание начального результата произведения} for i:=1 to N do {арифметический цикл} begin {начало составного оператора} a:=round(exp(i*ln(2))); {вычисление значения a в зависимости от номера элемента произведения} b:=i+2; {вычисление значения b в зависимости от номера элемента произведения} c:=29-2*i; {вычисление значения c в зависимости от номера элемента произведения} d:=2+2*i; {вычисление значения d в зависимости от номера элемента произведения} p:=p*(a/b+c/d); {добавление элемента в произведение} end; {конец составного оператора} writeln('for = ',p); {вывод полученного результата произведения на экран}
p:=1; {задание начального результата произведения} a:=2; b:=3; {задание начальных значений числителя и знаменателя 1 дроби} c:=27; d:=4; {задание начальных значений числителя и знаменателя 2 дроби} i:=1; {задание номера первого элемента добавляемого в произведение} while i<=N do {оператор цикла с предусловием} begin {начало составного оператора} p:=p*(a/b+c/d); {добавление элемента в произведение} a:=2*a; {вычисление значения a через предыдущее значение} b:=b+1; {вычисление значения b через предыдущее значение} c:=c-2; {вычисление значения c через предыдущее значение} d:=d+2; {вычисление значения d через предыдущее значение} i:=i+1; {увеличение номера элемента на 1} end; {конец составного оператора}
writeln('while = ',p); {вывод полученного результата произведения на экран}
p:=1; {задание начального результата произведения} i:=1; {задание номера первого элемента добавляемого в произведение} repeat {начало оператора цикла с постусловием} a:=round(exp(i*ln(2))); {вычисление значения a в зависимости от номера элемента произведения} b:=i+2; {вычисление значения b в зависимости от номера элемента произведения} c:=29-2*i; {вычисление значения c в зависимости от номера элемента произведения} d:=2+2*i; {вычисление значения d в зависимости от номера элемента произведения} p:=p*(a/b+c/d); {добавление элемента в произведение} i:=i+1; {увеличение номера элемента на 1} until i>N; {конец оператора цикла с постусловием} writeln('repeat= ',p); {вывод полученного результата произведения на экран}
readln; {ожидание нажатия клавиши Enter} end. {конец программы}
Пример 4 Найти сумму квадратов всех натуральных чисел от 1 до 100. Var A : Integer; S : Longint; Begin A:=1; S:=0; Repeat S:=S+A*A; A:=A+1 Until A>100; Writeln(S)
End.
Популярное: Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация... Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (326)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |