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

VIII Международный конкурс научно-исследовательских и творческих работ учащихся
Старт в науке

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

Мулыкин А.Е. 1
1МБОУ школа №27
Стригалева Н.А. 1Лихницкий К.В. 2
1МБОУ школа №27
2НИФТИ ННГУ им. Н.И. Лобачевского
Автор работы награжден дипломом победителя I степени
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

Введение

3 октября 2018 года был подписан Президентом и официально опубликован на государственном портале правовой информации новый закон о пенсионном возрасте в России [4]. В свете данного закона еще более актуальными являются разработки ученых-геронтологов, исследующих генетику старения и долголетия. Они могут дать практические рекомендации, что может предпринять каждый из нас, чтобы стать здоровее, моложе, поднять настроение, и, в конечном счете, продлить активную, полноценную жизнь.

Каждый из нас неоднократно замечал, что люди, имеющие один и тот же паспортный возраст, порой совсем не похожи друг на друга. Один в 40 лет уже выглядит почти стариком, а другой и в 60 молод, энергичен и полон жизни. Дело в том, что состояние нашего здоровья зависит не от количества прожитых лет, а от степени сохранности организма. Именно этот фактор и определяет биологический возраст человека.

Ученые во всем мире разрабатывают методики оценки биологического старения организма человека. У каждого человека имеется термометр, аппарат для измерения давления, чтобы в домашних условиях отслеживать состояние своего организма и вовремя диагностировать начало заболевания. «Старение, дряхление организма - само по себе болезнь", - подчеркивает профессор Москалев [2]. Но есть ли у вас дома «инструменты» для диагностирования старения организма?

Объект исследования: биологическое старение организма человека.

Предмет исследования: количественные оценки биологического старения организма человека, которые можно проводить в домашних условиях.

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

Цель данного исследованияв среде Lazarusсоздать компьютерные модели количественных оценок старения организма человека, которые можно применять в домашних условиях.

Задачи:

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

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

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

Создать приложение, реализующее методику, основанную на измерении функционального возраста организма и позволяющую оценить стареет ли человек раньше положенного срока, или нет.

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

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

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

Для достижения поставленной цели использовались следующие методы исследования: анализ, синтез, визуализация, компьютерное моделирование.

Основная часть работы

Обзор количественных оценок биологического старения организма

11 июля 2017 года компания Zymo Research, также известная как «Эпигенетическая компания» ('The Epigenetics Company'), объявила о запуске нового сервиса, позволяющего проводить количественную оценку биологического старения с помощью теста myDNAge [6]. Запатентованная технология, основанная на так называемых «часах Хорвата», названных в честь профессора человеческой генетики и биостатистики Стива Хорвата, применяется для анализа профилей метилирования более чем 500 локусов ДНК. Новый тест будет продавать компания Epimorphy – дочерняя корпорации Zymo Research, созданная для того, чтобы представлять эпигенетические тесты на потребительском рынке. Подробный отчет анализа данных, предоставляемый потребителям теста, будет содержать сопоставление биологического возраста клиента с его хронологическим возрастом. Это может пролить свет на механизмы, посредством которых образ жизни и заболевания могут оказывать влияние на процесс старения, а также помочь в разработке новых подходов к борьбе со старением. Стоимость одного теста составляет 299 долларов США.

Другие считают, что куда важнее не просто биологический возраст, а так называемый функциональный – возможности организма при нагрузках (а создать их, не выходя из дому, не получится).

Однако существует методика упрощенных расчетов, основанных на сравнении фактического биологического возраста с должным [7]. Чтобы узнать, не стареете ли вы быстрее положенного, нужно отнять от фактического биологического возраста (ФБВ) должный биологический возраст (ДБВ). Если между ФБВ и ДБВ разницы нет или она меньше 3, то стареете вы в срок, а если больше трех - пора как минимум изменить образ жизни и привычки, а лучше - обратиться к врачу.

Мужчины: ДБВ = 0,629 х КВ + 18,56,

ФБВ = 26,985 + 0,215 • АДС - 0,149 • ЗДВ - 0,151 • СБ + 0,723 • СОЗ.

Женщины: ДБВ = 0,581 х КВ + 17,24,

ФБВ = - 1,463 + 0,415 • АДП - 0,14 • СБ + 0,248 • МТ + 0,694 • СОЗ

где:

КВ - календарный возраст в годах.

АДС - систолическое (верхнее) артериальное давление, в мм рт. ст. Измеряется на правой руке в положении сидя трижды с интервалом 5 мин. Учитываются результаты того измерения, при котором артериальное давление имело наименьшую величину.

АДП - пульсовое артериальное давление, в мм рт. ст. Разница между систолическим (верхним) и диастолическим (нижним) артериальным давлением.

ЗДВ - продолжительность задержки дыхания после глубокого вдоха, в секундах. Измеряется трижды с интервалом в 5 мин с помощью секундомера. Учитывается наибольшая величина.

СБ - статическая балансировка, в секундах. Определяется при стоянии на левой ноге, без обуви, глаза закрыты, руки опущены вдоль туловища (без предварительной тренировки). Измеряется с помощью секундомера трижды с интервалом 5 мин. Учитывается наилучший результат.

МТ - масса тела, в кг. Измеряется в легкой одежде, без обуви, натощак.

СОЗ - индекс самооценки здоровья (СОЗ), в баллах. Определяется с помощью анкеты, включающей 29 вопросов.

Алексей Москалев в научно-популярной книге «Биомаркеры старения человека» представил тесты, результаты которых могут сказать о биологическом возрасте органов человека, и, которые может каждый сделать в домашних условиях [2].

Создание приложения «Биологический возраст органов человека»

В основу приложения положены тесты, предложенные Алексеем Москалевым в книге «Биомаркеры старения человека». К ним относятся гибкость позвоночника, скорость реакции, состояние вестибулярного аппарата, периферийных сосудов, центральной нервной системы, здоровье легких (см. Рис. 1). Для каждого теста представлена градация возраста органа человека в зависимости от результата тестирования. Все тесты можно выполнить в домашних условиях.

Рис. 1 Тесты для измерения биологического возраста внутренних органов человека

Однако, в других источниках информации описывается большее количество параметров, которые нужно измерить. В том числе, тест Ромберга рассматривается, как «состояние вестибулярного аппарата», а для проверки «состояния центральной нервной системы» предлагается другой тест: «Для этого теста потребуется небольшая подготовка. Попросите помощника нарисовать на листе бумаги табличку, состоящую из пяти строк, по пять клеточек в каждой, и вписать в клеточки числа от 1 до 25, располагая их хаотично. Затем возьмите карандаш и постарайтесь быстро, не отвлекаясь, последовательно прикоснуться к клеткам в порядке возрастания чисел (с 1-й по 25-ю). Если ваш возраст соответствует 20 годам, на это должно уйти не более 35 секунд. 30-летний человек покажет результат от 36 до 40 секунд, 40-летний уложится в 41-50 секунд, 50-летний потратит около 60 секунд» [8].

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

Согласно содержанию тестов, выдвинем требования к интерфейсу приложения:

фиксировать дату тестирования;

фиксировать имя, фамилию, «возраст по паспорту», пол пользователя;

включить/отключить секундомер для отчета времени;

четкие инструкции для проведения тестов;

демонстрировать возраст органов человека;

демонстрировать окончательный результат;

возможность сохранять результаты тестов в текстовых файлах;

закрывать приложение.

Внешний вид приложения «Биологический возраст органов человека» показан на рис 2, программный код в приложении 1.

Рис. 2 Внешний вид окна приложения «Биологический возраст органов человека»

Для создания основы приложения (см. Рис. 2) выберем такие свойства формы, как недоступность кнопки развертывания окна, стиль рамки – диалоговое окно не изменяет размеры, появление окна в центре экрана.

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

Для выбора эпиграфа к содержанию приложения были изучены мудрые высказывания различных авторов о возрасте. Мы выбрали высказывание американской актрисы, известной своими афоризмами, одной из звезд своего времени, Мэй Уэст: «В любом возрасте можно стать моложе».

Для того, чтобы фиксировать кому принадлежат результаты тестов, в приложении (см. Рис. 2) предусмотрен ввод анкетных данных. К ним относятся: имя и фамилия пользователя, его возраст и пол. Для статистики результатов тестов важно отмечать дату их проведения.

Так как для измерения результатов тестов необходимо измерять время, то в приложении создан секундомер. Внешний вид секундомера включает в себя название объекта «Секундомер», табло и кнопку Пуск/Стоп, расположенные на основе (Рис. 3).

Рис. 3 Внешний вид секундомера

Имя кнопки Button1 «Пуск» соответствует выключенному состоянию таймера, при щелчке по кнопке «Пуск» таймер включается и имя кнопки меняется на «Стоп». Для создания секундомера используется компонент таймер (Timer). Программный код события Timer1Timer предусматривает четыре вида показаний на табло секундомера, например, 03:06; 03:12; 15:06; 15:12.

Тест: возраст вестибулярного аппарата

Содержание теста Проба Ромберга реализуем на панели Panel2. Расположим на панели текст теста (Label7, Label9, Label10, Label1, Label12, Label36), иллюстрацию к тесту (Image2) и кнопку «Определи возраст» для определения возраста вестибулярного аппарата (Button2). Приложение по щелчку по кнопке «Определи возраст» считывает показания с табло секундомера, переводит его в секунды, затем определяет состояния кнопок М и Ж (нажата она или нет) и, наконец согласно алгоритму теста Ромберга, рассчитывает возраст вестибулярного аппарата.

Тест: возраст суставов

Содержание теста «Возраст суставов» (см. Рис 1) отличается от измерения возраста вестибулярного аппарата тем, что не требует измерения времени. Проведя тест, необходимо выбрать один из пяти возможных результатов.

На панели (компонент Panel5) разместили компонент многостраничный блокнот PageControl2 с двумя страницами TabSheet3 TabSheet4. Первая страница передает содержание опыта. Вторая страница содержит набор из 5 радиокнопок с надписями (RadioButton8, RadioButton9, RadioButton10, RadioButton11, RadioButton12). Увидеть результат теста можно на кнопке «Определи возраст» (Button8).

Рис. 3 Внешний вид панели «Возраст суставов»

Тест: возраст дыхательной системы

Структура панели «Возраст дыхательной системы» аналогична панели «Возраст вестибулярного аппарата».

Тест: возраст кожи

Структура панели (Panel4) «Возраст кожи» аналогична панели «Возраст вестибулярного аппарата».

Тест: возраст центральной нервной системы

Для реализации теста «Возраст центральной нервной системы» на панели (Panel6) разместили многостраничный блокнот (см. Рис. 4). На странице «Нервная система» (TabSheet1) описан порядок проведения теста, на странице «Тест» (TabSheet2) его реализация. На странице «Тест» располагается 25 неподписанных кнопок и две кнопки управления тестом «Начать тест» (Button33) и «Определи возраст» (Button8).

По щелчку по кнопке «Начать тест» на каждой из 25 кнопок в качестве надписи появляются числа от1 до 25. По условиям теста человек должен нажимать на кнопки в порядке возрастания чисел, но он может нарушить этот порядок или «перескочить» через числа. Для защиты от ошибок прохождения тестасоздан счетчик числа нажатий на кнопки с числами от «2» до «24». Переменная счетчика увеличивает свое значение на единицу, если была нажата кнопка с предыдущим числом. При нажатии на кнопку «1» (Button9) начинает работать секундомер, а при нажатии на кнопку «25» он остановиться только тогда, когда переменная счетчика приняла значение 23, то есть человек нажал один раз на каждую из 25 кнопок с цифрами.

При нажатии на кнопку «Определи возраст», согласно содержанию теста, определяется возраст центральной нервной системы.

Рис. 4 Внешний вид страниц панели «Возраст нервной системы»

Согласно мнению профессора Москалева тестирование органов необходимо проводить систематически для последующего анализа. Для этого результаты тестирования необходимо сохранять. Мы будем сохранять результаты тестов в файлах. В среде Lazarus для работы с файлами служат диалоги [3]. Установим на форму компонент TOpenDialog и зададим ему ряд свойств. Результатом нажатия на кнопку «Сохранить результат» является протокол тестирования, записанный в выбранный пользователем файл:

В любом возрасте можно стать моложе

06.01.2019

Мария

Мулыкина

39 лет

Возраст вестибулярного аппарата 40 лет

Возраст суставов 50 лет

Возраст дыхательной системы 55 лет

Возраст кожи 20 лет

Возраст центральной нервной системы 20 лет

Биологический возраст человека 37 лет

В приложении отработаны исключительные ситуации. На кнопках «Определи возраст» не появиться результат тестов, пока пользователь не выполнить все его условия. Если же пользователь попытается узнать конечный результат испытаний, не пройдя все тесты, то ему поступит соответствующее сообщение.

Исследование на группе людей разного возраста результатов
измерения биологического возраста их органов

С помощью приложения «Биологический возраст органов человека» были исследованы две возрастные категории от 30 до 40 лет и от 60 до 70 лет людей как женского, так и мужского пола. Результаты исследования представлены в таблице 1 с помощью цветов: красный - возраст органа человека больше возраста по паспорту, желтый – возраст органа человека соответствует возрасту по паспорту, зеленый - возраст органа человека меньше возрасту по паспорту.

Таблица 1. Результаты тестирования группы людей различного возраста

 

Возраст вестибулярного аппарата

Возраст суставов

Возраст дыхательной системы

Возраст кожи

Возраст нервной системы

Женщина, 60 лет

         

Женщина, 60 лет

         

Мужчина, 67 лет

         

Женщина, 30 лет

         

Женщина, 35 лет

         

Мужчина, 35 лет

         
 

Возраст вестибулярного аппарата

Возраст суставов

Возраст дыхательной системы

Возраст кожи

Возраст нервной системы

Мужчина, 34 года

         

Мужчина, 40 лет

         

Женщина, 39 лет

         

Вывод исследования: Тесты Москалева фиксируют отличные от возраста по паспорту возраста органов человека.

Создание приложения «Фактический биологический возраст человека»

Возможно человеку не столько нужно знать биологический возраст своих органов, как важно понять стареет ли он раньше положенного строка. Ответ на этот вопрос можно получить с помощью методики вычисления функционального возраста человека, описанной в работе п. 1.1. Для реализации данной методики в домашних условиях нужен только аппарат измерения давления.

Методика вычисления функционального возраста человека была реализована в приложении «Фактический биологический возраст человека». Прохождение тестов и анкеты реализовано на страницах компонента многостраничный блокнот: «Измерения» и «Анкета». На странице «Советы» располагается несколько советов, как замедлить старение организма [9].

Внешний вид страниц приложения представлен на рис. 5, 6, 7 программный код – в приложении 2.

Рис. 5 Внешний вид страницы «Измерения»

Рис. 6 Внешний вид страницы «Анкета»

Рис 7 Внешний вид страницы «Советы»

На странице «Измерение» (см. рис. 5) рабочее поле разделено на две части для прохождения тестов мужчинами и женщинами. Так как ряд тестов необходимо повторять несколько раз, то на странице в виде картинки расположен секундомер, который показывает, что повторять тесты необходимо через 5 минут. Для измерения результатов тестов на продолжительность задержки дыхания и статической балансировки в секундах в приложении имеется встроенный секундомер. Картинки с видами измерения давления мужчиной и женщиной, а также позами балансировки помогут пользователю точнее пройти предложенные тесты.

Страница «Анкета» (см. рис. 6) содержит 29 вопросов для вычисления индекса самооценки человека и дает возможность с помощью компонента флажок указать на тот или иной вариант ответа. По завершению прохождения анкеты щелчком по текстовому полю «Индекс самооценки» (Label10) можно узнать итоговый результат. В программном коде обработчика Label10 используется переменная bal, которая увеличивает свое значение на единицу согласно щелчку по компонентам CheckBox, соответствующим ответам пользователя на каждый из 29 вопросам.

Несмотря на то, что методика включает в себя вычисление двух видов возрастов человека, должного и фактического, их значения мало, о чем говорят человеку, поэтому приложение имеет одну кнопку «Результаты обследования» (Button2), щелчком по которой выводится результат исследования: «стареете вы в срок или необходимо изменить образ жизни и привычки». Согласно методике, из трех измерений давления и статической балансировки необходимо выбрать одно (где минимальное, а где максимальное), то в программном коде обработчика Button2 организованы вспомогательные переменные min, maxd, maxb, которые служат для реализации алгоритмов нахождения максимального и минимального из трех значений переменных.

В приложении отработаны исключительные ситуации. На кнопке «Результаты обследования» не появиться результат тестов, пока пользователь не выполнить все его условия. Если же пользователь попытается узнать конечный результат испытаний, не пройдя все тесты, то ему поступит соответствующее сообщение.

Сопоставление результатов измерения биологического возраста человека с оценкой его функционального возраста

Цель исследования: Сопоставить результаты измерения биологического и функционального возраста организма человека.

Приведем результаты тестирования женщины 61-летнего возраста с помощью приложения «Биологический возраст органов человека», сохраненные в файле:

Начало тестирования

10.01.2019

Наталия

Стригалева

61 лет

Возраст вестибулярного аппарата 45 лет

Возраст суставов 30 лет

Возраст дыхательной системы 60 лет

Возраст кожи 40 лет

Возраст нервной системы 50 лет

Биологический возраст человека 45 лет

Далее протестируем эту же женщину с помощью приложения «Фактический биологический возраст человека».

Вывод. Сопоставительный анализ результатов двух разных методик оценки старения организма показал, что результаты не противоречат друг другу. Биологический возраст 61-летней женщины согласно результатам приложения «Биологический возраст органов человека» равен 45 годам, и соответственно меньше возраста по паспорту на 16 лет, что не противоречит результату исследования с помощью приложения «Фактический биологический возраст человека»: «Вы стареете в срок».

Заключение

Среди методик оценки биологического старения организма человека были выбраны те, которые позволяют проводить тестирование в домашних условиях. На основе них в среде Lazarus [1] было создано два приложения.

Первое приложение позволяет проводить исследование по 5 параметрам, таким как состояние вестибулярного аппарата, периферических сосудов, здоровье легких, сохранность суставов и состояние центральной нервной системы, и вычислять биологический возраст человека как среднее арифметическое возрастов измеренных органов. Практическое применение приложения показало, что в каждом внутреннем органе человека «биологические часы» тикают по-своему, и их реальный возраст может ощутимо отличаться от цифр по паспорту.

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

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

Приложения имеют практическое значение, так как позволят каждому человеку отслеживать процесс старения организма в домашних условиях, имея только аппарат для измерения давления.

Список литературы

Алексеев Е.Р., Чеснокова О.В., Кучер Т.В. Самоучитель по программированию на Free Pascal и Lazarus.

А. Москалев «Биомаркеры старения человека». velib.com…moskalev_aleksejj…biomarkery_starenija/

http://intuit.valrkl.ru/course-1265/ Программирование на Lazarus.

Пенсионный Возраст В России. http://pensiology.ru/news/poslednie-novosti-pensionnaja-reforma/.

Калькулятор определения биологического возраста человека. https://sozn.ru/formula-rascheta-biologicheskogo-vozrasta-cheloveka/.

Скоро каждый сможет определить свой биологический возраст, не выходя из своей квартиры. https://www.facebook.com/notes/андрей-тарасевич/проверьте-свой-биологический-возраст/838825892961517/.

Биологический возраст. Омоложение организма. http://konctanciya.info/post266866274/

https://www.neboleem.net/stati-o-zdorove/11913-opredeljaem-biologicheskij-vozrast-cheloveka-8-parametrov-kotorye-nuzhno-proverit.php

https://www.nnov.kp.ru/daily/26477/3347264/ 23 способа, как достичь долголетия.

https://cardul.ru/how-to-determine-the-age-of-the-body-criteria-of-biological-age/ Как определить возраст организма. Критерии биологического возраста.

Приложение 1

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

nit Unit1;

{$mode objfpc}{$H+}

interface

uses

Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls,

StdCtrls, ComCtrls, Menus, Buttons, ExtDlgs, Calendar, Types;

var

n,b:integer;

type

{ TForm1_File }

TForm1_File = class(TForm)

Button1: TButton;

Button10: TButton;

Button11: TButton;

Button12: TButton;

Button13: TButton;

Button14: TButton;

Button15: TButton;

Button16: TButton;

Button17: TButton;

Button18: TButton;

Button19: TButton;

Button2: TButton;

Button20: TButton;

Button21: TButton;

Button22: TButton;

Button23: TButton;

Button24: TButton;

Button25: TButton;

Button26: TButton;

Button27: TButton;

Button28: TButton;

Button29: TButton;

Button3: TButton;

Button30: TButton;

Button31: TButton;

Button32: TButton;

Button33: TButton;

Button35: TButton;

Button3_File: TButton;

Button4: TButton;

Button5: TButton;

Button6: TButton;

Button7: TButton;

Button8: TButton;

Button9: TButton;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Image1: TImage;

Image2: TImage;

Image3: TImage;

Image4: TImage;

Image5: TImage;

Image6: TImage;

Label1: TLabel;

Label10: TLabel;

Label11: TLabel;

Label12: TLabel;

Label13: TLabel;

Label14: TLabel;

Label15: TLabel;

Label16: TLabel;

Label17: TLabel;

Label18: TLabel;

Label19: TLabel;

Label2: TLabel;

Label20: TLabel;

Label21: TLabel;

Label28: TLabel;

Label29: TLabel;

Label3: TLabel;

Label30: TLabel;

Label31: TLabel;

Label32: TLabel;

Label33: TLabel;

Label34: TLabel;

Label35: TLabel;

Label36: TLabel;

Label37: TLabel;

Label38: TLabel;

Label39: TLabel;

Label4: TLabel;

Label40: TLabel;

Label41: TLabel;

Label42: TLabel;

Label43: TLabel;

Label44: TLabel;

Label45: TLabel;

Label46: TLabel;

Label47: TLabel;

Label48: TLabel;

Label49: TLabel;

Label5: TLabel;

Label50: TLabel;

Label51: TLabel;

Label52: TLabel;

Label53: TLabel;

Label6: TLabel;

Label7: TLabel;

Label8: TLabel;

Label9: TLabel;

OD: TOpenDialog;

PageControl1: TPageControl;

PageControl2: TPageControl;

PageControl3: TPageControl;

Panel1: TPanel;

Panel2: TPanel;

Panel3: TPanel;

Panel4: TPanel;

Panel5: TPanel;

Panel6: TPanel;

RadioButton1: TRadioButton;

RadioButton10: TRadioButton;

RadioButton11: TRadioButton;

RadioButton12: TRadioButton;

RadioButton2: TRadioButton;

RadioButton8: TRadioButton;

RadioButton9: TRadioButton;

TabSheet1: TTabSheet;

TabSheet2: TTabSheet;

TabSheet3: TTabSheet;

TabSheet4: TTabSheet;

Timer1: TTimer;

procedure Button10Click(Sender: TObject);

procedure Button11Click(Sender: TObject);

procedure Button12Click(Sender: TObject);

procedure Button13Click(Sender: TObject);

procedure Button14Click(Sender: TObject);

procedure Button15Click(Sender: TObject);

procedure Button16Click(Sender: TObject);

procedure Button17Click(Sender: TObject);

procedure Button18Click(Sender: TObject);

procedure Button19Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button20Click(Sender: TObject);

procedure Button21Click(Sender: TObject);

procedure Button22Click(Sender: TObject);

procedure Button23Click(Sender: TObject);

procedure Button24Click(Sender: TObject);

procedure Button25Click(Sender: TObject);

procedure Button26Click(Sender: TObject);

procedure Button27Click(Sender: TObject);

procedure Button28Click(Sender: TObject);

procedure Button29Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button30Click(Sender: TObject);

procedure Button31Click(Sender: TObject);

procedure Button32Click(Sender: TObject);

procedure Button33Click(Sender: TObject);

procedure Button35Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button3_FileClick(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

procedure Button6Click(Sender: TObject);

procedure Button7Click(Sender: TObject);

procedure Button8Click(Sender: TObject);

procedure Button9Click(Sender: TObject);

procedure Edit5Change(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure Image3Click(Sender: TObject);

procedure Label4Click(Sender: TObject);

procedure Label8Click(Sender: TObject);

procedure ListBox1Click(Sender: TObject);

procedure PageControl1Change(Sender: TObject);

procedure PageControl3Change(Sender: TObject);

procedure Panel1Click(Sender: TObject);

procedure Panel2Click(Sender: TObject);

procedure Panel6Click(Sender: TObject);

procedure RadioButton12Change(Sender: TObject);

procedure RadioButton1Change(Sender: TObject);

procedure RadioButton3Change(Sender: TObject);

procedure Shape1ChangeBounds(Sender: TObject);

procedure StaticText1Click(Sender: TObject);

procedure TabSheet1ContextPopup(Sender: TObject; MousePos: TPoint;

var Handled: Boolean);

procedure TabSheet2ContextPopup(Sender: TObject; MousePos: TPoint;

var Handled: Boolean);

procedure Timer1Timer(Sender: TObject);

private

public

end;

var

Form1_File: TForm1_File;

implementation

{$R *.lfm}

{ TForm1_File }

procedure TForm1_File.FormCreate(Sender: TObject);

begin

OD.Filter:='Текстовыефайлы|*.txt|Всефайлы|*.*';

end;

procedure TForm1_File.Image3Click(Sender: TObject);

begin

end;

procedure TForm1_File.Button1Click(Sender: TObject);

begin

//время

if Timer1.Enabled then

begin

Timer1.Enabled:=false;

Button1.Caption:='Пуск'

end

else

begin

n:=0;

Timer1.Enabled:=true;

Button1.Caption:='Стоп';

end;

end;

procedure TForm1_File.Button20Click(Sender: TObject);

begin //кнопка 15

if b = 13 then

b:=b+1;

end;

procedure TForm1_File.Button21Click(Sender: TObject);

begin //кнопка 17

if b = 15 then

b:=b+1;

end;

procedure TForm1_File.Button22Click(Sender: TObject);

begin //кнопка 18

if b = 16 then

b:=b+1;

end;

procedure TForm1_File.Button23Click(Sender: TObject);

begin //кнопка 24

if b=22 then

b:=b+1;

end;

procedure TForm1_File.Button24Click(Sender: TObject);

begin //кнопка 3

if b = 1 then

b:=b+1;

end;

procedure TForm1_File.Button25Click(Sender: TObject);

begin //кнопка 19

if b = 17 then

b:=b+1;

end;

procedure TForm1_File.Button26Click(Sender: TObject);

begin //кнопка 22

if b=20 then

b:=b+1;

end;

procedure TForm1_File.Button27Click(Sender: TObject);

begin //кнопка 23

if b=21 then

b:=b+1;

end;

procedure TForm1_File.Button28Click(Sender: TObject);

begin //кнопка 6

if b = 4 then

b:=b+1;

end;

procedure TForm1_File.Button29Click(Sender: TObject);

begin //кнопка 20

if b = 18 then

b:=b+1;

end;

procedure TForm1_File.Button14Click(Sender: TObject);

begin

//время 25

if b=23 then

if Timer1.Enabled then

begin

Timer1.Enabled:=false;

Button1.Caption:='Пуск'

end

else

begin

n:=0;

Timer1.Enabled:=true;

Button1.Caption:='Стоп';

end;

end;

procedure TForm1_File.Button15Click(Sender: TObject);

begin //кнопка 10

if b = 8 then

b:=b+1;

end;

procedure TForm1_File.Button16Click(Sender: TObject);

begin //копка 9

if b = 7 then

b:=b+1;

end;

procedure TForm1_File.Button17Click(Sender: TObject);

begin //кнопка 11

if b = 9 then

b:=b+1;

end;

procedure TForm1_File.Button18Click(Sender: TObject);

begin //кнопка 7

if b = 5 then

b:=b+1;

end;

procedure TForm1_File.Button19Click(Sender: TObject);

begin // кнопка 16

if b = 14 then

b:=b+1;

end;

procedure TForm1_File.Button11Click(Sender: TObject);

begin //кнопка 2

if b = 0 then

b:=b+1;

end;

procedure TForm1_File.Button12Click(Sender: TObject);

begin //кнопка 12

if b = 10 then

b:=b+1;

end;

procedure TForm1_File.Button13Click(Sender: TObject);

begin //кнопка 5

if b = 3 then

b:=b+1;

end;

procedure TForm1_File.Button10Click(Sender: TObject);

begin //кнока 4

if b = 2 then

b:=b+1;

end;

procedure TForm1_File.Button2Click(Sender: TObject);

var wr:integer;

begin

//Вестибулярныйаппарат

wr:= StrtoInt(copy(Label8.Caption,1,2)) *60+ StrtoInt(copy(Label8.Caption,4,2));

if RadioButton1.Checked then

begin

if wr>=40 then

Button2.Caption:='20 лет';

if (wr<40) and (wr>=30) then

Button2.Caption:='30 лет';

if (wr<30) and (wr>=25) then

Button2.Caption:='35 лет';

if (wr<25) and (wr>=20) then

Button2.Caption:='40 лет';

if (wr<20) and (wr>=17) then

Button2.Caption:='45 лет';

if (wr<17) and (wr>=15) then

Button2.Caption:='50 лет';

if (wr<15) and (wr>=12) then

Button2.Caption:='55 лет';

if (wr<12) and (wr>=10) then

Button2.Caption:='60 лет';

if (wr<10) and (wr<>0)then

Button2.Caption:='65 лет';

end;

if RadioButton2.Checked then

begin

if wr>=36 then

Button2.Caption:='20 лет';

if (wr<36) and (wr>=27) then

Button2.Caption:='30 лет';

if (wr<27) and (wr>=23) then

Button2.Caption:='35 лет';

if (wr<23) and (wr>=18) then

Button2.Caption:='40 лет';

if (wr<18) and (wr>=15) then

Button2.Caption:='45 лет';

if (wr<15) and (wr>=13) then

Button2.Caption:='50 лет';

if (wr<13) and (wr>=11) then

Button2.Caption:='55 лет';

if (wr<11) and (wr>=9) then

Button2.Caption:='60 лет';

if (wr<9) and (wr<>0)then

Button2.Caption:='65 лет';

end;

label8.Caption:='00:00';

end;

procedure TForm1_File.Button30Click(Sender: TObject);

begin //кнопка 14

if b = 12 then

b:=b+1;

end;

procedure TForm1_File.Button31Click(Sender: TObject);

begin //кнопка 13

if b = 11 then

b:=b+1;

end;

procedure TForm1_File.Button32Click(Sender: TObject);

begin //кнопка 8

if b = 6 then

b:=b+1;

end;

procedure TForm1_File.Button33Click(Sender: TObject);

begin

//возраст нервной системы

Button13.Caption:='5';

Button9.Caption:='1';

Button10.Caption:='4';

Button11.Caption:='2';

Button12.Caption:='12';

Button14.Caption:='25';

Button35.Caption:='21';

Button15.Caption:='10';

Button16.Caption:='9';

Button17.Caption:='11';

Button18.Caption:='7';

Button24.Caption:='3';

Button23.Caption:='24';

Button22.Caption:='18';

Button21.Caption:='17';

Button20.Caption:='15';

Button19.Caption:='16';

Button26.Caption:='22';

Button27.Caption:='23';

Button25.Caption:='19';

Button28.Caption:='6';

Button30.Caption:='14';

Button29.Caption:='20';

Button31.Caption:='13';

Button32.Caption:='8';

end;

procedure TForm1_File.Button35Click(Sender: TObject);

begin //кнопка 21

if b=19 then

b:=b+1;

end;

procedure TForm1_File.Button3Click(Sender: TObject);

begin

try

Button3.Caption:= InttoStr(trunc((StrtoInt(copy(Button2.Caption,1,2))+StrtoInt(copy(Button4.Caption,1,2))+StrtoInt(copy(Button5.Caption,1,2))+StrtoInt(copy(Button6.Caption,1,2))+StrtoInt(copy(Button8.Caption,1,2)))/5))+ ' лет';

except

ShowMessage('Вы не прошли все испытания');

end;

end;

procedure TForm1_File.Button3_FileClick(Sender: TObject);

var f:Text;

m:string;

s:string;

begin

//Откроем диалоговое окно для выбора файла

if OD.Execute then

begin

//Имя выбранного файла считываем в s

s:=OD.FileName;

// Связываем файловую переменную с файлом на диске

AssignFile(f,'rezultat.txt');

//Открываем файл для чтения

reset(f);

read(f,m);

// Закрываем файл

closeFile(f);

//Открываем файл на дозапись

Append(f);

write(f, 'Начало тестирования');

writeln(f);

write(f, Edit4.Text);

writeln(f);

write(f, Edit1.Text);

writeln(f);

write(f, Edit2.Text);

writeln(f);

write(f, Edit3.Text,' лет');

writeln(f);

write(f, 'Возраст вестибулярного аппарата ');

writeln(f,Button2.Caption);

write(f, 'Возрастсуставов ');

writeln(f,Button4.Caption);

write(f, 'Возрастдыхательнойсистемы ');

writeln(f,Button5.Caption);

write(f, 'Возраст кожи ');

writeln(f,Button6.Caption);

write(f, 'Возраст центральной нервной системы ');

writeln(f,Button8.Caption);

write(f, 'Биологический возраст человека ');

writeln(f,Button3.Caption);

CloseFile(f);

end;

end;

procedure TForm1_File.Button4Click(Sender: TObject);

begin

//Возрастсуставов

if RadioButton8.Checked then Button4.Caption:='20 лет';

if RadioButton9.Checked then Button4.Caption:='30 лет';

if RadioButton10.Checked then Button4.Caption:='40 лет';

if RadioButton11.Checked then Button4.Caption:='50 лет';

if RadioButton12.Checked then Button4.Caption:='60 лет';

end;

procedure TForm1_File.Button5Click(Sender: TObject);

var wr:integer;

begin

//Возраст дыхательной системы

wr:= StrtoInt(copy(Label8.Caption,1,2)) *60+ StrtoInt(copy(Label8.Caption,4,2));

if wr>=50 then

Button5.Caption:='20 лет';

if (wr<45) and (wr>=42) then

Button5.Caption:='30 лет';

if (wr<42) and (wr>=40) then

Button5.Caption:='35 лет';

if (wr<40) and (wr>=37) then

Button5.Caption:='40 лет';

if (wr<37) and (wr>=35) then

Button5.Caption:='45 лет';

if (wr<35) and (wr>=33) then

Button5.Caption:='50 лет';

if (wr<33) and (wr>=30) then

Button5.Caption:='55 лет';

if (wr<30) and (wr>=25) then

Button5.Caption:='60 лет';

if (wr<25) and (wr<>0) then

Button5.Caption:='65 лет';

label8.Caption:='00:00';

end;

procedure TForm1_File.Button6Click(Sender: TObject);

var wr:integer;

begin

//Возрасткожи

wr:= StrtoInt(copy(Label8.Caption,1,2)) *60+ StrtoInt(copy(Label8.Caption,4,2));

if (wr<=5) and (wr<>0) then

Button6.Caption:='20 лет';

if (wr<8) and (wr>=6) then

Button6.Caption:='30 лет';

if (wr<12) and (wr>=8) then

Button6.Caption:='40 лет';

if (wr<15) and (wr>=12) then

Button6.Caption:='50 лет';

if (wr>15) then

Button6.Caption:='60 лет';

label8.Caption:='00:00';

end;

procedure TForm1_File.Button7Click(Sender: TObject);

begin

Close;

end;

procedure TForm1_File.Button8Click(Sender: TObject);

var wr:integer;

begin

if b=23 then

begin

//Возрастнервнойсистемы

wr:= StrtoInt(copy(Label8.Caption,1,2)) *60+ StrtoInt(copy(Label8.Caption,4,2));

if (wr<=35) and (wr<>0) then

Button8.Caption:='20 лет'

else

if (wr<=40) and (wr<>0) then

Button8.Caption:='30 лет'

else

if (wr<=50) and (wr<>0) then

Button8.Caption:='40 лет'

else

if (wr<>0) then

Button8.Caption:='50 лет';

label8.Caption:='00:00';

end;

end;

procedure TForm1_File.Button9Click(Sender: TObject);

begin

//кнопка 1

b:=0;

if Timer1.Enabled then

begin

Timer1.Enabled:=false;

Button1.Caption:='Пуск'

end

else

begin

n:=0;

Timer1.Enabled:=true;

Button1.Caption:='Стоп';

end;

end;

procedure TForm1_File.Edit5Change(Sender: TObject);

begin

end;

procedure TForm1_File.Label4Click(Sender: TObject);

begin

end;

procedure TForm1_File.Label8Click(Sender: TObject);

begin

end;

procedure TForm1_File.ListBox1Click(Sender: TObject);

begin

end;

procedure TForm1_File.PageControl1Change(Sender: TObject);

begin

end;

procedure TForm1_File.PageControl3Change(Sender: TObject);

begin

end;

procedure TForm1_File.Panel1Click(Sender: TObject);

begin

end;

procedure TForm1_File.Panel2Click(Sender: TObject);

begin

end;

procedure TForm1_File.Panel6Click(Sender: TObject);

begin

end;

procedure TForm1_File.RadioButton12Change(Sender: TObject);

begin

end;

procedure TForm1_File.RadioButton1Change(Sender: TObject);

begin

end;

procedure TForm1_File.RadioButton3Change(Sender: TObject);

begin

end;

procedure TForm1_File.Shape1ChangeBounds(Sender: TObject);

begin

end;

procedure TForm1_File.StaticText1Click(Sender: TObject);

begin

end;

procedure TForm1_File.TabSheet1ContextPopup(Sender: TObject; MousePos: TPoint;

var Handled: Boolean);

begin

end;

procedure TForm1_File.TabSheet2ContextPopup(Sender: TObject; MousePos: TPoint;

var Handled: Boolean);

begin

end;

procedure TForm1_File.Timer1Timer(Sender: TObject);

var

s, m:integer;

begin

n:=n+1;

s:=n mod 60;

m:=n div 60;

if (m<10) and (s<10) then

label8.Caption:='0'+InttoStr(m)+':0'+inttoStr(s)

else

if (m<10) and (s>=10) then

label8.Caption:='0'+InttoStr(m)+':'+inttoStr(s)

else

if (m>=10) and (s<10) then

label8.Caption:=InttoStr(m)+':0'+inttoStr(s)

else

if (m>=10) and (s>=10) then

label8.Caption:=InttoStr(m)+inttoStr(s);

end;

end.

Приложение 2

Программный код приложения «Фактический биологический возраст человека»

unit Unit1;

{$mode objfpc}{$H+}

interface

uses

Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,

ExtCtrls, ComCtrls;

var n,bal,dolw,dolm:integer;

type

{ TForm1 }

TForm1 = class(TForm)

Button2: TButton;

Button3: TButton;

Button4: TButton;

CheckBox1: TCheckBox;

CheckBox10: TCheckBox;

CheckBox11: TCheckBox;

CheckBox12: TCheckBox;

CheckBox13: TCheckBox;

CheckBox14: TCheckBox;

CheckBox15: TCheckBox;

CheckBox16: TCheckBox;

CheckBox17: TCheckBox;

CheckBox18: TCheckBox;

CheckBox19: TCheckBox;

CheckBox2: TCheckBox;

CheckBox20: TCheckBox;

CheckBox21: TCheckBox;

CheckBox22: TCheckBox;

CheckBox23: TCheckBox;

CheckBox24: TCheckBox;

CheckBox25: TCheckBox;

CheckBox26: TCheckBox;

CheckBox27: TCheckBox;

CheckBox28: TCheckBox;

CheckBox29: TCheckBox;

CheckBox3: TCheckBox;

CheckBox30: TCheckBox;

CheckBox31: TCheckBox;

CheckBox32: TCheckBox;

CheckBox33: TCheckBox;

CheckBox34: TCheckBox;

CheckBox35: TCheckBox;

CheckBox37: TCheckBox;

CheckBox38: TCheckBox;

CheckBox39: TCheckBox;

CheckBox4: TCheckBox;

CheckBox40: TCheckBox;

CheckBox41: TCheckBox;

CheckBox42: TCheckBox;

CheckBox43: TCheckBox;

CheckBox44: TCheckBox;

CheckBox45: TCheckBox;

CheckBox46: TCheckBox;

CheckBox47: TCheckBox;

CheckBox48: TCheckBox;

CheckBox49: TCheckBox;

CheckBox5: TCheckBox;

CheckBox50: TCheckBox;

CheckBox51: TCheckBox;

CheckBox52: TCheckBox;

CheckBox53: TCheckBox;

CheckBox54: TCheckBox;

CheckBox55: TCheckBox;

CheckBox56: TCheckBox;

CheckBox57: TCheckBox;

CheckBox58: TCheckBox;

CheckBox59: TCheckBox;

CheckBox6: TCheckBox;

CheckBox60: TCheckBox;

CheckBox61: TCheckBox;

CheckBox7: TCheckBox;

CheckBox8: TCheckBox;

CheckBox9: TCheckBox;

Edit1: TEdit;

Edit10: TEdit;

Edit11: TEdit;

Edit12: TEdit;

Edit13: TEdit;

Edit14: TEdit;

Edit15: TEdit;

Edit16: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Edit5: TEdit;

Edit6: TEdit;

Edit7: TEdit;

Edit8: TEdit;

Edit9: TEdit;

Label1: TLabel;

Label10: TLabel;

Label11: TLabel;

Label12: TLabel;

Label13: TLabel;

Label14: TLabel;

Label15: TLabel;

Label16: TLabel;

Label17: TLabel;

Label18: TLabel;

Label19: TLabel;

Label20: TLabel;

Label21: TLabel;

Label22: TLabel;

Label23: TLabel;

Label24: TLabel;

Label25: TLabel;

Label26: TLabel;

Label27: TLabel;

Label28: TLabel;

Label29: TLabel;

Label3: TLabel;

Label30: TLabel;

Label31: TLabel;

Label32: TLabel;

Label33: TLabel;

Label34: TLabel;

Label35: TLabel;

Label36: TLabel;

Label37: TLabel;

Label38: TLabel;

Label39: TLabel;

Label4: TLabel;

Label40: TLabel;

Label41: TLabel;

Label43: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Label8: TLabel;

Label9: TLabel;

PageControl1: TPageControl;

Panel3: TPanel;

Panel4: TPanel;

RadioButton3: TRadioButton;

RadioButton4: TRadioButton;

TabSheet1: TTabSheet;

TabSheet2: TTabSheet;

TabSheet3: TTabSheet;

Timer1: TTimer;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure CheckBox9Change(Sender: TObject);

procedure Edit1Change(Sender: TObject);

procedure Edit2Change(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure Label10Click(Sender: TObject);

procedure Label13Click(Sender: TObject);

procedure PageControl1Change(Sender: TObject);

procedure Panel3Click(Sender: TObject);

procedure RadioButton3Change(Sender: TObject);

procedure RadioButton4Change(Sender: TObject);

procedure RadioButton53Change(Sender: TObject);

procedure RadioGroup1Click(Sender: TObject);

procedure Timer1Timer(Sender: TObject);

private

public

end;

var

Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.FormCreate(Sender: TObject);

begin

end;

procedure TForm1.Label10Click(Sender: TObject);

begin

bal:=0;

// 1 вопрос

if CheckBox1.Checked then bal:= 1;

// 2 вопрос

if CheckBox3.Checked then bal:= bal+ 1;

// 3 вопрос

if CheckBox4.Checked then bal:= bal+ 1;

// 4 вопрос

if CheckBox5.Checked then bal:= bal+ 1;

// 5 вопрос

if CheckBox7.Checked then bal:= bal+ 1;

// 6 вопрос

if CheckBox6.Checked then bal:= bal+ 1;

// 7 вопрос

if CheckBox10.Checked then bal:= bal+ 1;

// 8 вопрос

if CheckBox8.Checked then bal:= bal+ 1;

// 9 вопрос

if CheckBox41.Checked then bal:= bal+ 1;

// 10 вопрос

if CheckBox13.Checked then bal:= bal+ 1;

// 11 вопрос

if CheckBox12.Checked then bal:= bal+ 1;

// 12 вопрос

if CheckBox11.Checked then bal:= bal+ 1;

// 13 вопрос

if CheckBox45.Checked then bal:= bal+ 1;

// 14 вопрос

if CheckBox18.Checked then bal:= bal+ 1;

// 15 вопрос

if CheckBox16.Checked then bal:= bal+ 1;

// 16 вопрос

if CheckBox14.Checked then bal:= bal+ 1;

// 17 вопрос

if CheckBox15.Checked then bal:= bal+ 1;

// 18 вопрос

if CheckBox22.Checked then bal:= bal+ 1;

// 19 вопрос

if CheckBox51.Checked then bal:= bal+ 1;

// 20 вопрос

if CheckBox20.Checked then bal:= bal+ 1;

// 21 вопрос

if CheckBox19.Checked then bal:= bal+ 1;

// 22 вопрос

if CheckBox23.Checked then bal:= bal+ 1;

// 23 вопрос

if CheckBox24.Checked then bal:= bal+ 1;

// 24 вопрос

if CheckBox25.Checked then bal:= bal+ 1;

// 25 вопрос

if CheckBox29.Checked then bal:= bal+ 1;

// 26 вопрос

if CheckBox26.Checked then bal:= bal+ 1;

// 27 вопрос

if CheckBox27.Checked then bal:= bal+ 1;

// 28 вопрос

if CheckBox28.Checked then bal:= bal+ 1;

// 29 вопрос

if (CheckBox32.Checked) or (CheckBox33.Checked) then bal:= bal+ 1;

Label10.Caption:='Количествобаллов = '+inttostr(bal);

end;

procedure TForm1.Label13Click(Sender: TObject);

begin

end;

procedure TForm1.PageControl1Change(Sender: TObject);

begin

end;

procedure TForm1.Panel3Click(Sender: TObject);

begin

end;

procedure TForm1.RadioButton3Change(Sender: TObject);

begin

end;

procedure TForm1.RadioButton4Change(Sender: TObject);

begin

end;

procedure TForm1.RadioButton53Change(Sender: TObject);

begin

end;

procedure TForm1.RadioGroup1Click(Sender: TObject);

begin

end;

procedure TForm1.Timer1Timer(Sender: TObject);

var

s, m:integer;

begin

n:=n+1;

//вычисление количества секунд

s:=n mod 60;

//вычисление количества минут

m:=n div 60;

if (m<10) and (s<10) then

Label11.Caption:='0'+InttoStr(m)+':0'+inttoStr(s)// форматтаблотипа 03:06

else

if (m<10) and (s>=10) then

Label11.Caption:='0'+InttoStr(m)+':'+inttoStr(s)// форматтаблотипа 03:12

else

if (m>=10) and (s<10) then

Label11.Caption:=InttoStr(m)+':0'+inttoStr(s)// форматтаблотипа 15:06

else

Label11.Caption:=InttoStr(m)+inttoStr(s) // форматтаблотипа 15:12;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin //измерение должного биологического возраста

if RadioButton3.Checked then //мужскойпол

dolm:=trunc(0.629*StrtoInt(Edit1.Text)+18.56);

if RadioButton4.Checked then //женскийпол

dolw:=trunc(0.581*StrtoInt(Edit16.Text)+17.24);

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

//мужчины

if RadioButton3.Checked then

if strtoint(Button4.Caption) - (dolm) <=3 then

Button2.Caption:=' Вы стареете в срок '

else

Button2.Caption:='Вам необходимо изменить образ жизни';

//женщины

if RadioButton4.Checked then

if strtoint(Button4.Caption) - (dolw) <=3 then

Button2.Caption:=' Вы стареете в срок '

else

Button2.Caption:='Вам необходимо изменить образ жизни' ;

end;

procedure TForm1.Button4Click(Sender: TObject);

var min,maxd,maxb:integer;

begin

//измерение фактического биологического возраста

//мужской пол

if RadioButton3.Checked then

begin

//наименьшее верхнее артериальное давление (min)

if StrtoInt(Edit2.Text) > StrtoInt(Edit3.Text) then

min:= StrtoInt(Edit3.Text)

else

min:= StrtoInt(Edit2.Text);

if StrtoInt(Edit4.Text)< min then min:= StrtoInt(Edit4.Text);

//наибольшаязадержкадыхания (maxd)

if StrtoInt(Edit5.Text) > StrtoInt(Edit6.Text) then

maxd:= StrtoInt(Edit5.Text)

else

maxd:= StrtoInt(Edit6.Text);

if StrtoInt(Edit7.Text)> maxd then maxd:= StrtoInt(Edit7.Text);

//наибольшаябалансировка(maxb)

if StrtoInt(Edit8.Text) > StrtoInt(Edit9.Text) then

maxb:= StrtoInt(Edit8.Text)

else

maxb:= StrtoInt(Edit9.Text);

if StrtoInt(Edit10.Text)> maxb then maxb:= StrtoInt(Edit10.Text);

Button4.Caption:=inttostr(trunc(26.985+0.215*min-0.149*maxd-0.151*maxb+0.723*bal));

end;

//женскийпол

if RadioButton4.Checked then

begin

//наибольшаябалансировка(maxb)

if StrtoInt(Edit13.Text) > StrtoInt(Edit14.Text) then

maxb:= StrtoInt(Edit13.Text)

else

maxb:= StrtoInt(Edit14.Text);

if StrtoInt(Edit15.Text)> maxb then maxb:= StrtoInt(Edit15.Text);

Button4.Caption:= inttostr(trunc(-1.463+0.415*StrtoInt(Edit12.Text)-0.14*maxb+0.248*StrtoInt(Edit11.Text)+0.694*bal));

end;

end;

procedure TForm1.CheckBox9Change(Sender: TObject);

begin

end;

procedure TForm1.Edit1Change(Sender: TObject);

begin

end;

procedure TForm1.Edit2Change(Sender: TObject);

begin

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

if Timer1.Enabled then

begin

Timer1.Enabled:=false;

Button3.Caption:='Пуск'

end

else

begin

n:=0;

Timer1.Enabled:=true;

Button3.Caption:='Стоп';

end;

end;

end.

Просмотров работы: 28