Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Типовые задачи с использованием циклов




Табулирование функции

 

Задача табулирования некоторой функции y = f (x) сводится к вычислению значений этой функции при параметре цикла х, изменяющемся в заданных пределах с постоянным шагом. На печать при этом выводится множество пар значений аргумента х и функции у с помощью оператора печати, расположенного внутри тела цикла.

В рассмотренных выше примерах тело цикла реализовывалось одним или несколькими простыми операторами (присвоения, печати). Однако в общем случае внутри цикла могут использоваться любые операторы, в том числе и другие операторы цикла, условные операторы, операторы безусловного перехода.

Вычисление суммы

 

Вычисление конечной суммы сводится к нахождению суммы заданного количества слагаемых:

,

где i – номер слагаемого; f (i) – слагаемое с номером i.

Вычисление организуется в виде циклического алгоритма, когда при каждом прохождении цикла номер слагаемого i увеличивается на 1, а сумма изменяется на величину i -го слагаемого:

 

.

 

Цикл повторяется до тех пор, пока не будут просуммированы все n слагаемых. Для того, чтобы начальное содержимое ячейки суммы не исказило результат, сумма предварительно должна быть обнулена (). Вывод результата, поскольку он является единственным, осуществляется после окончания работы цикла.

Алгоритм нахождения суммы представлен на рис. 2.

 


 

Рис. 2. Вычисление суммы

 

Рис. 3. Вычисление произведения


 

Пример. Вычислить сумму ряда N натуральных чисел.

 

Sub Demo_Summa()

Dim i As Integer

Dim sStart, sEnd As Integer

Dim Sum As Long

sStart = 1

sEnd = InputBox("Введите длину ряда:", "Запрос программы")

Sum = 0

For i = sStart To sEnd

Sum = Sum + i

Next i

MsgBox "Сумма чисел от " & sStart & " до " & sEnd & " равна " & Sum,, "Решение задачи"

End Sub

 

 

 

Решим эту же задачу с использованием цикла Do…Loop.

 

Sub Demo_Summa()

Dim i As Integer

Dim sStart, sEnd As Integer

Dim Sum As Long

sEnd = InputBox("Введите длину ряда:", "Запрос программы")

sStart = 1

i = sStart

Sum = 0

Do

Sum = Sum + i

i = i + 1

Loop While i <= sEnd

MsgBox "Сумма чисел от " & sStart & " до " & sEnd & " равна " & Sum,, "Решение задачи"

End Sub

 

Пример. Вычислить сумму ряда натуральных чисел, кратных произвольно заданному числу М и подсчитать их количество.

 

Sub Demo_Summa()

Dim n, m, i, u As Integer

n = InputBox("Введите длину ряда ", "Запрос первого параметра")

m = InputBox("Введите число М ", "Запрос второго параметра")

summa = 0 'обнуление переменной суммы

j = 0 'обнуление счетчика количества чисел

For i = 1 To n

u = i

' Накапливаем сумму, если число кратно М

If i Mod m = 0 Then

summa = summa + u

' Подсчет количества чисел, кратных М

j = j + 1

End If

Next i

MsgBox "Сумма равна " & summa & ", " & "Количество элементов " & j,, "Решение задачи"

End Sub

 

 

 

 

В данном примере для выбора чисел, кратных М используется оператор Mod, который вычисляет остаток от деления. Если число кратно М, то остаток от деления на М равен нулю. Обратите также внимание на использование блочной формы оператора If.

 

Вычисление произведения

 

Вычисление конечного произведения представляет собой процесс нахождения произведения заданного количества сомножителей по формуле

 

.

 

Как и суммирование, вычисление произведения организуется с помощью циклического процесса по рекуррентному соотношению

 

.

 

В отличие от суммирования начальное значение произведения должно быть равно единице.

Алгоритм нахождения произведения представлен на рис. 3.

Пример. Вычислить факториал числа N.

Формула для вычисления факториала имеет вид:

 

.

 

Как видно из формулы, вычисление факториала числа N сводится к нахождению произведения n сомножителей.

 

Sub Demo_Proizvedenie()

Dim n, i, u As Integer

Dim p As Double

n = InputBox("Введите число n= ", "Запрос программы")

p = 1

For i = 1 To n

u = i

p = p * u

Next i

MsgBox "Факториал чисел от 1 до " & n & " равен " & p,, "Решение задачи"

End Sub

 

 

 





Поделиться с друзьями:


Дата добавления: 2015-10-27; Мы поможем в написании ваших работ!; просмотров: 1161 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Люди избавились бы от половины своих неприятностей, если бы договорились о значении слов. © Рене Декарт
==> читать все изречения...

2514 - | 2318 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.008 с.