Циклический вычислительный процесс 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Циклический вычислительный процесс



Простые циклы

Найти значение суммы или произведения. Значения переменных выбрать самостоятельно.

Задания для решения на практических занятиях:

1. 2.

Варианты индивидуальных заданий



Вложенные циклы

Найти значение суммы или произведения. Значения переменных выбрать самостоятельно.

Задания для решения на практических занятиях:

1.

2.

Варианты индивидуальных заданий


 


Образец выполнения задания

Вычислить 1) простой цикл:

2) вложенный цикл:

Значения переменных выбрать самостоятельно.

1. Входными данными являются переменные a, n.

2. Выходными данными – значение Y.

3. На форме спроэктированы следующие элементы управления:

Label (Введите a, Введите n, Y=, Исходный данные, Результат),

TextBox (для ввода и вывода чисел),

CommandButton (Найти Y, Выход),

OptionButton (Простой цикл, Вложенный цикл)

При проектировании данной формы использованы свойства элементов управления:

Alignment - для выравнивания текста,

Caption (для элементов управления Label, CommandButton, OptionButton),

Text (для элемента TextBox),

Font – для изменения размера и начертания шрифта,

ForeColor - для изменения цвета шрифта.

 

4. Программный код:

Dim a As Single, Y As Single, n As Integer, k As Integer

Dim i As Integer, f As Long

 

Private Sub Form_Load()

Option1.Value = True

End Sub

 

Private Sub Option1_Click()

Text3.Text = ""

Label7.Visible = False

End Sub

 

Private Sub Option2_Click()

Text3.Text = ""

Label7.Visible = False

End Sub

 

Private Sub Command1_Click()

Label7.Visible = False

If IsNumeric(Text2) = True And IsNumeric(Text1) = True Then

n = Text2.Text

a = Text1.Text

If n < 0 Or n <> Int(n) Then

Label7.Visible = True

Text2.Text = ""

Text3.Text = ""

Text2.SetFocus

'Exit Sub

Else

If Option1.Value = True Then

Y = 0

For k = 0 To n

Y = Y + (k ^ 2 - k + 1) / (k + 4)

Next

Y = a - Y

Text3.Text = Y

End If

If Option2.Value = True Then

Y = 1

For k = 1 To n

f = 1

For i = 1 To k

f = f * i

Next

Y = Y * (f + a ^ 2)

Next

Text3.Text = Y

End If

End If

 

Else

MsgBox " Вы ввели не число!""

Text1.Text = ""

Text2.Text = ""

Text3.Text = ""

Text2.SetFocus

Exit Sub

End If

End Sub

 

Private Sub Command2_Click()

End

End Sub

5. Результат выполнения программы:

Вслучае некорректности введенных данных появляется диалоговое окно «Вы ввели не число!» или появляется надпись «Некорректные данные», если n введено отрицательным числом или не целым.

 

В случае правильности введенных данных получаем результаты в зависимости от установки переключателя (Простой или Вложенный циклы)

 

Итерационные циклы

Варианты индивидуальных заданий

Найти сумму ряда:

  1. ;
  2. ;
  3. ;
  4. ;
  5. ;
  6. ;
  7. ;
  8. ;
  9. ;
  10. ;
  11. ;
  12. ;
  13. ;
  14. ;
  15. ;
  16. ;
  17. ;
  18. Вычислить корень квадратный по алгоритму Герона , где n = 0,1,2…, приняв начальное значение ; расчет остановить, если .
  19. Вычислить двумя способами: используя стандартную функцию и формулу разложения в ряд

.

Сравнить два полученных результата и получить их абсолютную разницу. Учесть ввод аргументов в градусах.

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

.

Сравнить два полученных результата.

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

.

Образец выполнения задания

Пример 1. Определить количество итераций, при котором будет выполняться равенство с точностью до 0,001:

Dim S As Single, N As Integer

Private Sub Form_Load()

S = 0 'Присвоить начальное значение S

N = 0 'Присвоить начальное значение N

WHILE ABS(2 - S) >=.001 'Начало итерационного цикла

S = S + (1 / 2 ^ N) 'Вычисление очередного приближения

N = N + 1 'Изменение переменной N

WEND 'Конец цикла

MSGBOX "S=" & S 'Вывод результата на экран

MSGBOX "N="& N '

END Sub

 

Пример 2. Программа, вычисляющая сумму первых n членов ряда

1+1/2+1/3+....1/n.

Dim S As Single, N As Integer, J As Integer

Private Sub Form_Load()

N=INPUTBOX ("введите число членов ряда")

S=1: 'S-сумма ряда;

j=1 ‘j-переменная цикла

DO WHILE j <= n 'начало цикла, делать, пока J <= n

S=S+1/(j+1) 'накапливаем сумму ряда

j=j+1 'изменяем переменную цикла

LOOP 'конец цикла

MSGBOX "сумма ряда равна " & S 'печать результата

END SUB

 

Пример 3. Определить сумму членов арифметической прогрессии:

формулу не использовать.

Dim S As Single,N As Integer,J As Integer,D As Single,A As Single

Private Sub Form_Load()

S=0'S-сумма ряда

J=1 'j-переменная цикла

N = INPUTBOX ("Введите N ")'Ввод переменных N, D, A

D = INPUTBOX ("Введите D ")

A = INPUTBOX ("Введите A ")

 

DO WHILE J <= N 'начало цикла, делать, пока J <= N

S = S + (A + (J - 1) * D) 'накапливаем сумму ряда

J = J + 1'изменяем переменную цикла

LOOP'конец цикла

MSGBOX "S=" & S'печать результата

END SUB

 

Задание 4



Поделиться:


Последнее изменение этой страницы: 2016-08-12; просмотров: 82; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.143.205.2 (0.04 с.)