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

Как получить из исходных данных (даты рождения и длины циклов 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