оформление (1017078), страница 2

Файл №1017078 оформление (Курсовая по теме реография (для КМ)) 2 страницаоформление (1017078) страница 22017-07-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 2)

1.3 Формальное описание программы

Данные сигналов и информация о пациенте располагается в типизированных *.dat файлах (тип запись).

Поля записи

RegNumber: smallint - регистрационный номер;

Da_ta, Name: shortstring - дата записи, ФИО;

Distance, Perimetr: smallint – расстояние между электродами, обхват грудной

клетки;

Leng_s, Weight: smallint – рост, вес;

Sist_BP, Diast_BP: smallint – систолическое давление, диастолическое давление;

B: array[1..4,1..Predel] of smallint – массивы сигналов ЭКГ, реограммы, ФКГ,

опорный сигнал;

Kalibr_Z0, Kalibr_DZ: Real48 – значения калибровки;

Константа

Predel=7000 (количество точек в массиве).

Процедуры и функции:

procedure Action1Execute(Sender: TObject); - процедура при нажатии на кнопке Открыть

(п.1.4)

procedure Action2Execute(Sender: TObject); - процедура при нажатии на кнопке Данные -

ввод информации в поля TEdit и

построение графика (п.1.8)

procedure Action3Execute(Sender: TObject); - процедура при нажатии на кнопке Разместить

(п.1.9, 1.10)

procedure Action4Execute(Sender: TObject); - процедура при нажатии на кнопке Печать

(п.1.11)

procedure MaxR; - процедура поиска R-зубцов (п.1.9)

procedure MaxM; - процедура поиска максимумов дифференцированной реограммы

(п.1.9)

procedure GelZ; - процедура поиска точек выброса крови из левого желудочка сердца

(п.1.10)

procedure PrintGrafik; - печать графиков (ФКГ, Рео, ЭКГ) (п.1.11)

procedure PrintZ; - обозначение точек выброса крови из левого желудочка сердца при

печати (п.1.10, 1.11)

procedure PrintR; - обозначение R-зубцов при печати (п.1.9, 1.11)

procedure PrintM; - обозначение максимумов дифференцированной реограммы при печати

(п.1.9, 1.11)

function WidthX: Integer; - получение ширины страницы в пикселях для перевода координат при печати (п.1.7, 1.11)

function HeightY: Integer; - получение высоты страницы в пикселях для перевода координат при печати (п.1.7, 1.11)

function II(x: smallint):integer; - функция пересчёта координат по оси Х (п.1.7)

function JJ(y,y1,y2: smallint):integer; - функция пересчёта координат по оси Y (п.1.7)

function MinEKG: smallint; - нахождение минимального значения ЭКГ (п.1.6)

function MaxEKG: smallint; - нахождение максимального значения ЭКГ (п.1.6)

function MinReo: smallint; - нахождение минимального значения дифференцированной

реограммы (п.1.6)

function MaxReo: smallint; - нахождение максимального значения

дифференцированной реограммы (п.1.6)

function MinFKG: smallint; - нахождение минимального значения ФКГ (п.1.6)

function MaxFKG: smallint; - нахождение максимального значения ФКГ (п.1.6)

function PorogR: smallint; - нахождение порогового значения (для поиска R-зубцов) (п.1.9)

function PorogM: smallint; - нахождение порогового значения (для поиска максимумов

дифференцированной реограммы) (п.1.9)

Тип:

TReo=record

RegNumber: smallint - регистрационный номер;

Da_ta, Name: shortstring - дата записи, ФИО;

Distance, Perimetr: smallint – расстояние между электродами, обхват грудной

клетки;

Leng_s, Weight: smallint – рост, вес;

Sist_BP, Diast_BP: smallint – систолическое давление, диастолическое давление;

B: array[1..4,1..Predel] of smallint – массивы сигналов ЭКГ, реограммы, ФКГ,

опорный сигнал;

Kalibr_Z0, Kalibr_DZ: Real48 – значения калибровки;

Глобальные переменные:

Reo1: TReo; – переменная, в которую заносятся данные из файла

F: file of TReo; – файловая переменная (п.1.4.)

I1, I2: integer – размеры изображения по горизонтальной оси. Эти параметры необходимы для пересчёта координат. |I2-I1| - ширина изображения. (п.1.6.)

J1, J2: integer – размеры изображения по вертикальной оси. Эти параметры необходимы для пересчёта координат. |J2-J1| - высота изображения. (п.1.6.)

ARR: array[1..80] of smallint; - массив, в который вносятся абсциссы максимумов

дифференцированной реограммы (п.1.10.)

h

Необходимы для правильного расположения графиков по вертикали (п.1.7.)

1: smallint; - сумма модулей глобального максимума и минимума графиков ЭКГ, РЕО и ФКГ

h2: smallint; - сумма модулей глобальных минимумов графиков ЭКГ, РЕО и глобального максимума ЭКГ

h2: smallint; - сумма модулей глобальных минимумов графиков ЭКГ, РЕО, ФКГ и глобальных максимумов РЕО и ЭКГ

Константа:

Predel=7000 - количество точек в массиве.

    1. Работа с файлами

В типизированных файлах данные хранятся в виде структуры, представляющие какой-либо тип. В данном случае - запись. Для начала работы с файлом необходимо инициализировать файловую переменную этого типа (в данной программе она обозначается как F). Файловая переменная задаётся c помощью структуры file of.

F:=file of TReo.

Связывание файловой переменной с именем файла происходит при помощи процедуры AssignFile(<файловая переменная>,<название файла>). Файл открывается с помощью процедуры Reset(<файловая переменная>).

Считывание данных из файла переменной в переменную для сохранения прочитанных данных происходит с помощью переменной Read(<файловая переменная>,<переменная для сохранения непрочитанных данных>).

После считывания данных из файла в независимую переменную файл нужно закрыть с помощью метода CloseFile(<файловая переменная>).

    1. Обработка исключительных ситуаций при открытии файла

Исключительные ситуации в среде программирования Delphi управляются с помощью нескольких операторов. В данной программе использовался оператор try…except.

Так как при открытии файла могут возникать различные исключительные ситуации, то был применён базовый класс исключений Exception.

try

AssignFile(F,OpenDialog1.FileName); ////Открытие файла

Reset(F);

Read(F,Reo1); ////Чтение данных из файла в переменную

CloseFile(F); ////Закрытие файла

except

on E:Exception do ShowMessage(E.Message); /// вызов сообщения об ошибке

end;

end;

Сообщение об ошибке изображено на рис.3

Рис.3. Уведомление об ошибке

При нажатии на кнопку ОК, окошко ошибки закрывается и основная программа снова становится доступна.

    1. Функции нахождения глобального максимума и минимума сигналов

Глобальные максимумы понадобятся для пересчёта координат графиков в файле в координаты компонента Изображение (TImage).

Алгоритм работает по принципу последовательного сравнивания каждого значения из массива с некоторым максимальным (минимальным) значением. Если текущее значение больше(меньше) максимального(минимального), то это значение становится максимальным(минимальным).

нет да

Рис.4 Блок-схема (для нахождения максимума):

A[i] – массив, в котором находится максимальное значение.

    1. Функция пересчёта координат.

II и JJ – функция пересчёта координат (абсциссу и ординату, соответственно) к координатам на экране. Формула для преобразования координат получается с помощью свойства подобия. Необходимо также учитывать, что на экране ось ординат направлена вниз. На нижерасположенных рисунках показано, как необходимо делать преобразование координат для построения графиков зоне изображения Image1.

I1:=0; I2:=Image1.Width (ширина) – размеры изображения по горизонтальной оси

J1:=0; J2:=Image1.Height (высота) – размеры изображения по вертикальной оси.

Рис.5. Координатные оси компонента TImage

x1:=0; x2:=Predel – количество элементов массива

y1:=0; y2:=|Max(Reo)|+|Min(Reo)|+|Max(FKG)|+|Min(FKG)|+|Max(EKG)|+|Min(EKG)| - сумма модулей глобальных максимумов и минимумов трёх графиков.

Рис.6. Координаты графиков в массиве

Из формулы подобия получаются следующие преобразования координат:

;

;

    1. Построение графиков по данным из массива

Если функция для построения графика задана в массиве (т.е. поточечно), то необходимо соединять последовательно пары точек i и i+1. Каждая точка имеет координаты: по оси абсцисс – порядковый номер точки в массиве, а по оси ординат – значение в массиве этой точки.

Рис.7. Принцип построения графика по точкам

В программе это можно сделать с помощью методов MoveTo(X,Y:integer) и LineTo(X,Y:integer). Метод MoveTo(X,Y:integer) устанавливает курсор на канву компонента TImage в точку с координатами X,Y. Метод LineTo(X,Y:integer) проводит линию от исходной точки к точке с координатами, указанными в LineTo.

Рис.8. Блок-схема для алгоритма построения графика.

    1. Нахождение R-зубцов на ЭКГ

Определить R-зубцы на ЭКГ или соответствующие им зуб­цы на дифференцированной ЭКГ можно с помощью следующего алгоритма. Вычисляется некий порог, и среди значений, которые его превышают, ищется локальный максимум.

Порог может вычисляться, например, как сумма среднего значения ЭКГ и половины максимального значения ЭКГ. Далее ищется первое значение, которое больше порога. От этого значения до первого значения меньшего, чем порог, ищется максимальное значение, которое и определяется как R-зубец (рис. 9, 10, 11). [1]

Рис. 9. Блок-схема для алгоритма нахождения порога

нет да

нет да

нет да

нет да

Рис. 10. Блок-схема для алгоритма нахождения R-зубцов

Рис.11 . Иллюстрация к алгоритму нахождения R-зубца.

Нахождение максимумов дифференцированной реограммы происходит аналогичным образом.

1.10 Определение точек начала изгнания крови из левого желудочка сердца

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

Для нахождения этих точек на графике необходимо рассматривать каждый период в отдельности. Поэтому предварительно необходимо разбить график на периодичные части. Точками разделения этих периодов могут служить максимумы дифференцированной реограммы. Их координаты абсцисс заносятся в статический массив на стадии нахождения максимумов дифференцированной реограммы. После нахождения координат происходит анализ реограммы на каждом отдельном периоде (рис. 12).

Рис. 12. Периодичность реограммы

Характеристики

Тип файла
Документ
Размер
592 Kb
Тип материала
Высшее учебное заведение

Список файлов домашнего задания

Курсовая по теме реография (для КМ)
ALAX_20.DAT
program.exe
Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6353
Авторов
на СтудИзбе
311
Средний доход
с одного платного файла
Обучение Подробнее