Биоритмы человека. Программа для расчета по дате рождения.

Как получить из исходных данных (даты рождения и длины циклов 23,28,33 дней) циклические синусоидальные графики биоритмов человека?

Значения на заданный день от даты рождения человека получается просто: полные циклы удаляются, а на заданный день определяетя фаза цикла. Считается, что в день рождения конкретного человека, все его циклы находились на максимуме.

  1. Биологические ритмы (биоритмы) человека
  2. Гармонические циклы : физический, эмоциональный, интеллектуальный
  3. Расчет значений Биоритмов на очередной месяц
  4. Простейший Вывод результатов (синусоид) с помощью графических функций VB
  5. Запоминание даты рождения в ini-файл (для удобства пользователя)

Актуальность...?


Биологические ритмы (биоритмы) человека

Можно верить, можно не верить, но какое-то время назад была популярна теория о трёх, неизменных ритмах (физической, интеллектуальной и эмоциональной активности с периодами в 23, 28, 33 дня, соответственно), рассчитываемых от даты рождения..

скачать ехе-файл для тестирования

Биологические ритмы, биоритмы  человека
Рис.1        Биологические ритмы (биоритмы) человека

А в целом, то, что показатели (параметры) состояния человека (и физического, и эмоционального, и интеллектуального) изменяются во времени - это «к гадалке не ходи». Любой из нас может без труда вспомнить примеры из собственной жизни... В определенные дни, даже проделав большую физическую или интеллектуальную работу - кажется, совсем не чувствуешь усталость... Чего нельзя сказать про некоторые другие дни (неудачные для данного вида деятельности).

Вот только вопрос синусоидальные ли это колебания? И еще... насколько стабилен их период? Какова причинно-следственная связь этих колебаний?

Может для установления показателя состояния человека лучше использовать не синусоидальный график, а программу тестирования в конкретный день... И таким образом определять свои возможности в физическом, эмоциональном и интеллектуальном плане на сегодня... ?



Гармонические циклы : физический, эмоциональный, интеллектуальный

Физическая составляющая состояния человека характеризует его энергичность. Так, ориентируясь на этот показатель, можно говорить о выносливости, целеустремленности, инициативности, амбициозности.

Эмоциональная составляющая - это чувствительность к восприятию всех внешних факторов и внутренних переживаний (проблем). Поэтому в отдельные дни интуиция человека поразительна. Также с этим показателем связывают творческие способности индивидуума.

Интеллектуальная составляющая - это о возможностях умственной деятельности. Логика, рациональность, безошибочность подсчетов и перебора вариантов, плюс в какой-то мере, осторожность.

У кого есть время и желание, может провести исследовательскую работу на себе... Ежедневно записываю свои успехи и самочувствие и сверяя их с тремя графиками...



Расчет значений Биоритмов на очередной месяц

Считаем количество дней от даты рождения до нулевого дня заданного (т.е. последнего дня предыдущего месяца).

Год и рассчетный месяц - изменяются константами. Очень легко. Если исходник у Вас...

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

//------------------------------
Private Function Get_CorrectDate() As Date 'корректирует Combо3
  Dim monthNum As Integer, dayNum As Integer
     monthNum = Combo2.ListIndex + 1
     If monthNum = 0 Then monthNum = 1
     If monthNum > 12 Then monthNum = 12

     dayNum = Get_day_in_theMonth(monthNum, CInt(Combo1.Text))
     If dayNum < CInt(Combo3.Text) Then Combo3.Text = dayNum
     If CInt(Combo3.Text) < 1 Then Combo3.Text = 1

     SelectYear = CLng(Combo1.Text)
     SelectMonth = monthNum
     SelectDay = CInt(Combo3.Text)

     Birth = DateSerial(SelectYear, SelectMonth, SelectDay)
  Get_CorrectDate = Birth
End Function
//------------------------------

функция Get_day_in_theMonth возвращает правильное количество дней в любом месяце, включая високосные годы...

Находим поочередно, через оператор Mod, остаток от деления (по модулю) на длину каждого из циклов.

Переводим этот остаток в радианы, считая что весь цикл это 2π радиан И находим синус...

Это и будет значение одного из показателей (физического, эмоционального или интеллектуального), которое синусоидально изменяться от -1 до 1 и обратно.



Простейший Вывод результатов (синусоид) с помощью графических функций VB

Используя в цикле графический оператор Line языка VB, строим синусоиды разного цвета...

Простейший Вывод  результатов (синусоид) с помощью графических функций VB
Рис.2        Простейший Вывод результатов (синусоид) с помощью графических функций VB

по коду:

//------------------------------
Private Sub DrawGraf()
Dim i As Integer, st As Integer, X0 As Long, X1 As Long, Y1 As Long, Y2 As Long, Y3 As Long, Ytmp As Long

DrawWidth = 3 'DrawStyle = vbSolid
st = 3 'шаг рисования графиков

Y1 = sk.uAmpl * GetNextY(T1, aSinStart1, 0)
Y2 = sk.uAmpl * GetNextY(T2, aSinStart2, 0)
Y3 = sk.uAmpl * GetNextY(T3, aSinStart3, 0)

For i = 1 To sk.dW \ st Step st
     X1 = st * i: X0 = X1 - st
     Ytmp = sk.uAmpl * GetNextY(T1, aSinStart1, X1)
     Line (dLeft + X0, sk.uNull - Y1)-(dLeft + X1, sk.uNull - Ytmp), mColor1
     Y1 = Ytmp
     Ytmp = sk.uAmpl * GetNextY(T2, aSinStart2, X1)
     Line (dLeft + X0, sk.uNull - Y2)-(dLeft + X1, sk.uNull - Ytmp), mColor2
     Y2 = Ytmp
     Ytmp = sk.uAmpl * GetNextY(T3, aSinStart3, X1)
     Line (dLeft + X0, sk.uNull - Y3)-(dLeft + X1, sk.uNull - Ytmp), mColor3
     Y3 = Ytmp
Next i
DrawKritical 'критические дни
End Sub
//------------------------------

aSinStart1,aSinStart2,aSinStart3 - это фазы (арксинусы) для каждого из циклов.

скачать ехе-файл для тестирования




Другие примеры на тему «Математические методы компьютерной 2D 3D графики»

Другие примеры на языке «Visual Basic»



Запоминание даты рождения в ini-файл (для удобства пользователя)

//------------------------------
Function Save_ini(dan As Long) As Boolean 'сохранение в файл
Dim pathBIN As String
Dim FNum As Integer
On Error GoTo oo

pathBIN = App.Path & "\" & FN
FNum = FreeFile

Open pathBIN For Output As FNum
Print #FNum, CStr(dan)
Close FNum
Save_ini = True
Exit Function
oo:
MsgBox "Не возможно сохранить ini-файл"
End Function
//------------------------------







Если у Вас остались вопросы, то задать их Вы можете, нажав на эту кнопочку ...






Поделиться в соц сетях:



Если на этой странице не нашлось того, что Вы так искали...

         Не расстраивайтесь, не все потеряно... Смело щелкайте...
исходный код на заказ. orenstudent.ru Автоматизация документов MS Office. orenstudent.ru Помогите найти и устранить ошибку в исходном коде программы. orenstudent.ru Skype-консультирование по программированию
Скайп-консультации

Акция !!!
исходный код комментарии цена минимальная


Не попадайтесь на удочку мошенников-кидал...
Сайт помощи студентам по программированию и информатике

Program code