Вход  ::   Регистрация  ::   Забыли пароль?  ::   Правила
 
ОтветитьСоздать новую темуСоздать новое голосование

> Итерационный цикл в VB, Помогите, пожалуйста, с задачей...

 
Piroman
  post 03.06.09 - 19:42   (Ответ #1)
Пользователь offline

-----


Kindle
Группа: Обыватель
Сообщений: 306
Репутация: 38
Нарушений: (0%)
Доброго времени суток. Нужна помощь знающих людей, коих здесь немало, я полагаю smile.gif Вот задача:

Цитата: 
Составить алгоритм и программу для вычисления значения функции Y с заданной точностью E. Итерационные вычисления значений функции y производятся по определенной рекуррентной формуле, пусть будет пока в общем виде: y(i+1) = f(y(i); y(i-1))  .Вычисления заканчиваются при выполнении условия |y(i+1) - y(i)|<=E . Вывести на печать значения функции Y и число итераций, выполненных для выполнения поставленного условия. Е = 0,01. Начальные значения y0=0.55, y1=0.35

Указание: использовать операторы Do... Loop


надо добавить, что (i), (i + 1), (i - 1) - просто нижние индексы.

Думаю, прог. код недлинный, но это было бы просто идеально, поэтому я буду рад блок-схемке какой-нить или просто пунктам, которых надо придерживаться.

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

Не читай это!
ПрофайлОтправить личное сообщениеВернуться к началу страницы
+Цитировать сообщение
 
Mechanical Lover
  post 03.06.09 - 21:04   (Ответ #2)
Пользователь offline

-----


Герцог Мира
Группа: Обыватель
Сообщений: 892
Репутация: 82
Нарушений: (0%)
Составить цикл любой сложности - не проблема. Может потребоваться несколько вложенных и промежуточные переменные. Но если подробнее растолкуешь условия задачи smile.gif Что поделать, математику со студенческих времен подзабыл, вот в программировании упражняться приходится регулярно smile.gif
И почему непременно Do...Loop, когда тут, похоже, логичнее использовать For...Next?

Сообщение отредактировал Mechanical Lover - 03.06.09 - 21:25

Не говорите мне что делать, и я не скажу куда вам пойти.
[SPOILER] >->o ---> (_!_) [/SPOILER]
ПрофайлОтправить личное сообщениеВернуться к началу страницы
+Цитировать сообщение
 
Piroman
  post 03.06.09 - 21:59   (Ответ #3)
Пользователь offline

-----


Kindle
Группа: Обыватель
Сообщений: 306
Репутация: 38
Нарушений: (0%)
Вот собственно задача со всеми данными условиями.

Спойлер! Чтобы прочитать скрытый текст, щелкните мышкой.


А по поводу Do... Loop сказано:

Цитата: 
Указания. При программировании циклов с незаданным числом повторения следует использовать цикл с условием, организуемый с помощью оператора Do… Loop. Цикл будет выполняться до тех пор, пока не будет выполнено <вышеупомянутое> условие. Число итераций – это количество выполненных циклов для достижения заданной точности вычисления.

Не читай это!
ПрофайлОтправить личное сообщениеВернуться к началу страницы
+Цитировать сообщение
 
Dr. YankeeDoodle
  post 04.06.09 - 01:01   (Ответ #4)
Пользователь offline

-----


Психохирург
Группа: Обыватель
Сообщений: 1 084
Репутация: 286
Нарушений: (0%)
Ах, ьим ышшо и счетчег нужен...
Код:

Do Until Abs(y1 - y0) <= E
   i=i+1
   y0 = f(y0, y1)
   y1 = f(y1, f(y0, y1))
   Debug.Print y0 & vbCrLf
   Debug.Print y1 & vbCrLf & vbCrLf
Loop
Debug.Print i


добавлено Dr. YankeeDoodle - 04.06.09 - 01:01
Код:
Private Function f(y0, y1)
    f = 0.5 * ((y1 / (y0 + 2)) + y1)
End Function


Сообщение отредактировал Dr. YankeeDoodle - 04.06.09 - 01:35

Is that how drowned all your witches?
Down in the ocean
One by one
Disappear
ПрофайлОтправить личное сообщениеВернуться к началу страницы
+Цитировать сообщение
 
Piroman
  post 05.06.09 - 18:12   (Ответ #5)
Пользователь offline

-----


Kindle
Группа: Обыватель
Сообщений: 306
Репутация: 38
Нарушений: (0%)
Всем спасибо!

Не читай это!
ПрофайлОтправить личное сообщениеВернуться к началу страницы
+Цитировать сообщение
ОтветитьСоздать новую тему
 

Цитата не в тему: А я бомж... Бродяжу в простых железных доспехах, сплю под кустом удушайки и никогда не ем.) (Spir(i)t)
Упрощённая версия / Версия для печати Сейчас: 28.03.24 - 22:54