Отличие циклов с предусловием от циклов с постусловием заключается в том, операторы цикла с постусловием всегда выполняются хотя бы один раз. — КиберПедия 

История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...

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

2017-09-27 205
Отличие циклов с предусловием от циклов с постусловием заключается в том, операторы цикла с постусловием всегда выполняются хотя бы один раз. 0.00 из 5.00 0 оценок
Заказать работу

Пример 1:

Вычислить значения Y=sin(x)+ex для всех значений хÎ[a,b]

 

· Программный код с использованием оператора Do While

 

Public Sub Операторы_повтора1()

 

Dim a As Double, b As Double, hx As Double

Dim x As Double, y As Double

Dim i As Integer

 

a = Worksheets(1).Range("b1")

b = Worksheets(1).Range("b2")

hx = Worksheets(1).Range("b3")

 

Worksheets(1).Range("a4") = "Результат"

x = a: i = 5

Do While x <= b

y = Sin(x) + Exp(x)

Worksheets(1).Cells(i, 1) = "x[" & i & "]="

Worksheets(1).Cells(i, 2) = x

Worksheets(1).Cells(i, 3) = "y[" & i & "]="

Worksheets(1).Cells(i, 4) = y

i = i + 1

x = x + hx

Loop

 

End Sub

 

· Программный код с использованием оператора While

 

Public Sub Операторы_повтора2()

 

Dim a As Double, b As Double, hx As Double

Dim x As Double, y As Double

Dim i As Integer

 

a = Worksheets(1).Range("b1")

b = Worksheets(1).Range("b2")

hx = Worksheets(1).Range("b3")

 

Worksheets(1).Range("a4") = "Результат"

x = a: i = 5

While x <= b

y = Sin(x) + Exp(x)

Worksheets(1).Cells(i, 1) = "x[" & i & "]="

Worksheets(1).Cells(i, 2) = x

Worksheets(1).Cells(i, 3) = "y[" & i & "]="

Worksheets(1).Cells(i, 4) = y

i = i + 1

x = x + hx

Wend

 

End Sub

 

 

· Программный код с использованием оператора Do Until

 

Public Sub Операторы_повтора3()

 

Dim a As Double, b As Double, hx As Double

Dim x As Double, y As Double

Dim i As Integer

 

a = Worksheets(1).Range("b1")

b = Worksheets(1).Range("b2")

hx = Worksheets(1).Range("b3")

 

Worksheets(1).Range("a4") = "Результат"

x = a: i = 5

Do Until x >= b

y = Sin(x) + Exp(x)

Worksheets(1).Cells(i, 1) = "x[" & i & "]="

Worksheets(1).Cells(i, 2) = x

Worksheets(1).Cells(i, 3) = "y[" & i & "]="

Worksheets(1).Cells(i, 4) = y

i = i + 1

x = x + hx

Loop

 

End Sub

 

· Программный код с использованием оператора Do … Loop While

 

Public Sub Операторы_повтора4()

 

Dim a As Double, b As Double, hx As Double

Dim x As Double, y As Double

Dim i As Integer

 

a = Worksheets(1).Range("b1")

b = Worksheets(1).Range("b2")

hx = Worksheets(1).Range("b3")

 

Worksheets(1).Range("a4") = "Результат"

x = a: i = 5

Do

y = Sin(x) + Exp(x)

Worksheets(1).Cells(i, 1) = "x[" & i & "]="

Worksheets(1).Cells(i, 2) = x

Worksheets(1).Cells(i, 3) = "y[" & i & "]="

Worksheets(1).Cells(i, 4) = y

i = i + 1

x = x + hx

Loop While x <= b

 

End Sub

 

Пример 2

Рассортировать по убыванию одномерный массив, содержащий 10 вещественных элементов.

Текст программы приведен ниже

 

Public Sub Сортировка()

Dim a(1 To 10) As Double

Dim i As Integer, i1 As Integer

Dim n As Integer, imax As Integer

Dim j As Integer

Dim max As Double

Worksheets(1).Range("a1") = "Исходный массив"

n = 10

j = 2

For i = 1 To n

a(i) = Worksheets(1).Cells(j, 1)

j = j + 1

Next i

i1 = 1

Do While i1 <= n - 1

max = a(i1)

imax = i1

For i = i1 To n

If a(i) > max Then

imax = i: max = a(i)

End If

Next i

a(imax) = a(i1)

a(i1) = max

i1 = i1 + 1

Loop

Worksheets(1).Range("c1") = "Рассортированный массив"

j = 2

For i = 1 To n

Worksheets(1).Cells(j, 3) = a(i)

j = j + 1

Next i

End Sub

 

Пример 3

Вычислить . Вычисление суммы прекратить, когда при каком-то значении i, общий член ряда станет <=e

 

Текст программного кода будет выглядеть следующим оьразом

 

Public Sub Summa_ряда()

Const eps = 0.001

Dim sum As Double, ai As Double

Dim n As Integer, i As Integer

Dim j As Integer

Dim f1 As Integer, f2 As Integer

 

sum = 0

i = 1

ai = 1 / 2

Do Until ai <= eps

sum = sum + ai

i = i + 1

f1 = 1

For j = 1 To i

f1 = f1 * j

Next j

f2 = 1

For j = 1 To 2 * i

f2 = f2 * j

Next j

ai = f1 / f2

Loop

MsgBox "Значение i=" & i & Chr(10) & _

"Значение ai=" & ai & Chr(13) & _

"Значение Sum=" & sum

End Sub

 


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

Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

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

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.009 с.