Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Тема Создание программы для статистических расчетов в фармакологии и токсикологии

Работа добавлена на сайт samzan.net:


Министерство Образования и профессионального обучения РФ.

Санкт-Петербургский Государственный Электротехнический

Университет им. В.И.Ульянова (Ленина)

«ЛЭТИ»

                                                       Кафедра Биомедицинской электроники и охраны  среды.

Отчет по курсовой работе.

Раздел «Программирование».

Тема: «Создание программы для статистических расчетов в фармакологии и токсикологии».

                              

Ст.гр.

4541

23.05

Ковалевская Д.В.

Преподаватель

К.т.н.

2005

Бельтюков М.В.

                              

                                                                С-Пб

                                                                2005г.

Введение      

  Курсовая работа по программированию выполнена в среде Borland Delphi 7  и предназначена для статистических расчетов в токсикологии ( показатели, определяющиеся в работе  соответствуют также фармакологическим ).

           

         При анализе действия различных препаратов необходимо рассчитывать эффективные дозы, действующие в 50% случаев (ЕД-50), а также токсические дозы: ЛД-16, ЛД-50, ЛД-84 и ЛД-100. Кроме того, принято для ЛД-50 находить стандартную ошибку показателя –SЛД-50. С помощью данной программы можно производить расчет вышеуказанных параметров.

        

         Вычисление ЛД-16, ЛД-50, ЛД-84 и ЛД-100.

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

y = ax+b.                   (1)

При пробит-анализе доза ЛД-16 соответствует пробите 4, доза ЛД-50 -  пробите  5, а доза ЛД-84 – пробите 6. Эти числа подставляют вместо х в формуле (1), а показатели a и b находятся по формуле:

                         

                         a= 

                         

                         b=

Параметры y и z – входные данные, которые автоматически определяются программой, и зависящие от тех величин, которые пользователь вводит непосредственно при работе с помощью двух элементов SpinEdit: число животных в группе и количество особей, у которых наблюдается эффект от препарата.

 

Показатель ЛД-100 находят по формуле:

ЛД-100 = ЛД-84 + 0.5 (ЛД-84 – ЛД-50)   (4)

Вычисление стандартной ошибки ЛД-50.

Этот показатель находят по следующей формуле:

                      

                          SЛД-50 =

             

Вычисление коэффициента кумуляции.

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

К=

Работа программы

  1.  После запуска программы пользователь указывает с помощью   элементов SpinEdit: число животных в группе и количество особей, у которых наблюдается эффект от препарата.
  2.  При нажатии кнопки «Вывод ЛД» в табличке появляются рассчитанные значения токсических доз.
  3.  При нажатии кнопки «SЛД-50» можно получить стандартную ошибку ЛД-50; результат будет выведен через элемент Edit.
  4.  Для расчета  коэффициента кумуляции пользователь вводит через элемент SpinEdit количество введенного токсического препарата. При нажатии кнопки «Коэффициент кумуляции» через элемент Edit выводится соответственное значение К. Если К>1, то выводится сообщение «Доза препарата вызывает привыкание».

Текст программы.

   unit Statistika;

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, Grids, Buttons, StdCtrls, Spin, Menus;

type

 TForm1 = class(TForm)

   StringGrid1: TStringGrid;

   BitBtn1: TBitBtn;

   SEAll: TSpinEdit;

   SEOne: TSpinEdit;

   Label1: TLabel;

   Label2: TLabel;

   Button2: TButton;

   Button3: TButton;

   Button4: TButton;

   Label3: TLabel;

   Label4: TLabel;

   ESLD: TEdit;

   MainMenu1: TMainMenu;

   N1: TMenuItem;

   N2: TMenuItem;

   N3: TMenuItem;

   N4: TMenuItem;

   N5: TMenuItem;

   N6: TMenuItem;

   N7: TMenuItem;

   N8: TMenuItem;

   N9: TMenuItem;

   N10: TMenuItem;

   koef: TLabel;

   Ekoef: TEdit;

   SEN: TSpinEdit;

   Label5: TLabel;

   LResalt: TLabel;

  procedure Button2Click(Sender: TObject);

   procedure BitBtn1Click(Sender: TObject);

   procedure Button3Click(Sender: TObject);

   procedure StringGrid1Click(Sender: TObject);

   procedure N5Click(Sender: TObject);

   procedure Button4Click(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

 var

    Form1: TForm1;

    F1, F2, F3, s, c : Real;

    y, z             : Real;

    I, J             : Integer;

    SEAll, SEOne     : Integer;

    T: array [0..5,0..5] of real;

    K, P ,W          : Real;

    a1, a2, a3       : Real;

    b1, b2, b3       : Real;

    m, n             : Integer ;

    H1, Hn           : real;

    d,v              : real;

    SEN              : Integer;

    Q : array [0..9,0..6] of real;

                  

 const

    x1= 4; x2= 5; x3= 6; {çíà÷åíèå ïðîáèòû ñîîòâåòñòâåííî ËÄ}

     e1= 600;

    e2= 700;

    e3= 850;

 implementation

{$R *.dfm}

   uses math;

procedure TForm1.Button2Click(Sender: TObject);

begin

    J:= SEOne.Value;

    I:= SEAll.Value;

      T[3,0]:= 3.62;

      T[3,1]:= 4.57;

      T[3,2]:= 5.43;

      T[3,3]:= 6.38;

      T[3,4]:= 0 ; // конец первой строки

      T[4,0]:= 3.47;

      T[4,1]:= 4.33;

      T[4,2]:= 5.00;

      T[4,3]:= 5.67;

      T[4,4]:= 6.53;

      T[4,5]:= 0;     // конец второй строки

 

      T[5,0]:= 3.36;

      T[5,1]:= 4.16;

      T[5,2]:= 4.75;

      T[5,3]:= 5.25;

      T[5,4]:= 5.84;

      T[5,5]:= 6.64;// конец третьей строки

      y:= T[I,J];

      n:= Trunc(y);

      m:= trunc((y-trunc(y))*10);

      Q[0,3]:=1.0;

      Q[0,4]:=3.5;

      Q[0,5]:=5.0;

      Q[0,6]:=3.5; // конец первого столбца

      Q[1,3]:=1.2;

      Q[1,4]:=3.7;

      Q[1,5]:=4.9;

      Q[1,6]:=3.2; // конец второго столбца

      Q[2,3]:=1.4;

      Q[2,4]:=3.9;

      Q[2,5]:=4.8;

      Q[2,6]:=2.9; // конец третьего столбца

      Q[3,3]:=1.6;

      Q[3,4]:=4.1;

      Q[3,5]:=4.7;

      Q[3,6]:=2.6; // конец первого столбца

      Q[4,3]:=1.8;

      Q[4,4]:=4.3;

      Q[4,5]:=4.6;

      Q[4,6]:=2.3; //êîíåö ïÿòîãî ñòîëáöà

      Q[5,3]:=2.0;

      Q[5,4]:=4.5;

      Q[5,5]:=4.5;

      Q[5,6]:=2.0; // êîíåö øåñòîãî ñòîëáöà

      Q[6,3]:=2.3;

      Q[6,4]:=4.6;

      Q[6,5]:=4.3;

      Q[6,6]:=1.8; // êîíåö ñåäüìîãî ñòîëáöà

      Q[7,3]:=2.6;

      Q[7,4]:=4.7;

      Q[7,5]:=4.1;

      Q[7,6]:=1.6; // êîíåö âîñüìîãî ñòîëáöà

      Q[8,3]:=2.9;

      Q[8,4]:=4.8;

      Q[8,5]:=3.9;

      Q[8,6]:=1.4; // êîíåö äåâÿòîãî ñòîëáöà

      Q[9,3]:=3.2;

      Q[9,4]:=4.9;

      Q[9,5]:=3.7;

      Q[9,6]:=1.2; // êîíåö äåñÿòîãî ñòîëáöà

      z:=Q[m,n];

     {ðåçóëüòàò äëÿ ËÄ-16}

 b1:=((z*e1*y)-(e1*Y))/((z*(sqr(e1)))-(sqr(e1)));

 a1:=((y-e1)*b1)/(z);

 F1:=a1*x1+b1;

   {ðåçóëüòàò äëÿ ËÄ-50}

 b2:=((z*e2*y)-(e2*Y))/((z*(sqr(e2)))-(sqr(e2)));

 a2:=((y-e2)*b2)/(z);

  F2:=a2*x2+b2;

   {ðåçóëüòàò äëÿ ËÄ-84}

 b3:=((z*e3*y)-(e3*Y))/((z*(sqr(e3)))-(sqr(e3)));

 a3:=((y-e3)*b3)/(z);

  F3:=a3*x3+b3;

 c:=F3+(F3-F2)/2;       {ðåçóëüòàò äëÿ ËÄ-100}

{Âûâîä ðåç-îâ â òàáëèöó}

StringGrid1.Cells[1,1]:=FloatToStr(f1);

StringGrid1.Cells[2,1]:=FloatToStr(f2);

StringGrid1.Cells[3,1]:=FloatToStr(f3);

StringGrid1.Cells[4,1]:=FloatToStr(c);

end;

procedure TForm1.BitBtn1Click(Sender: TObject);

begin

close;

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

      s:=(F3-F1)/sqrt(2*(SEAll.Value)); {âû÷èñëåíèå ñòàíäàðòíîé îøèáêè ËÄ-50}

      ESLD.text:=FloatToStr(s);

end;

procedure TForm1.StringGrid1Click(Sender: TObject);

begin

//óñòàíîâêà ñâîéñòâ òàáëèöû

SEOne.MaxValue := SEAll.Value;

StringGrid1.Cells[1,0]:='ËÄ-16';

StringGrid1.Cells[2,0]:='ËÄ-50';

StringGrid1.Cells[3,0]:='ËÄ-84';

StringGrid1.Cells[4,0]:='ËÄ-100';

StringGrid1.Options:=[goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine,

goRangeSelect, goAlwaysShowEditor, goEditing];

end;

procedure TForm1.N5Click(Sender: TObject);

begin

close;

if closeQuery then close;

end;

procedure TForm1.Button4Click(Sender: TObject);

begin

       {ðåçóëüòàò äëÿ ËÄ-16}

 b1:=((z*e1*y)-(e1*Y))/((z*(sqr(e1)))-(sqr(e1)));

 a1:=((y-e1)*b1)/(z);

 F1:=a1*x1+b1;

   {ðåçóëüòàò äëÿ ËÄ-50}

 b2:=((z*e2*y)-(e2*Y))/((z*(sqr(e2)))-(sqr(e2)));

 a2:=((y-e2)*b2)/(z);

  F2:=a2*x2+b2;

   {ðåçóëüòàò äëÿ ËÄ-84}

 b3:=((z*e3*y)-(e3*Y))/((z*(sqr(e3)))-(sqr(e3)));

 a3:=((y-e3)*b3)/(z);

  F3:=a3*x3+b3;

 c:=F3+(F3-F2)/2;       {ðåçóëüòàò äëÿ ËÄ-100}

H1:=((F3/F2)+(F2/F1))/2;

Hn:= (IntPower(d,SEN.Value)+IntPower(v,SEN.Value))/2;

K:=(F2-H1)/(IntPower(F2,SEN.Value)-Hn);

  Begin

W:=K;

If (W<=1) then

LResalt.Visible := true

LResalt.Caption:='Äîçà ïðåïàðàòà âûçûâàåò ïðèâûêàíèå ó æèâîòíûõ'

else

LResalt.Caption:= 'Äîçà ïðåïàðàòà ñîîòâåòñòâóåò íîðìå';

  end;

   Ekoef.text:=FloatToStr(K);

end;

end.




1. Статья Ребята Бросайте курить
2. Генералы МакКлеллан и Фремонт
3.  Жизненный путь Вавилова И
4. Реферат- О мягком и жестком бюджетировании
5. На тему- Российские судебные ораторы второй половины XIX начала XX века Студента гр
6. ЛЬВІВСЬКА ПОЛІТЕХНІКА ЗАТВЕРДЖУЮ Проректор з науковопедагогічної роботи та соціального
7. Становление и неизбежность принципата в Римской республике III-I вв до н
8. введение ресурсов- доля расходов на НИОКР его финансирование; соотношение со среднем уровнем затрат на НИОК
9. Терско-гребенское казачество
10. Тематический план Тематический план специальности Педагогика и психология бакалавры направление Педа
11. Развитие общества и его структура
12. Суспензии
13. Реферат- Химия, элементы таблицы Менделеева
14. Прошлое, настоящее и будущее российской национальной валюты
15. Основы естествознания1
16. Реферат Влияние христианства на развитие древнеримской культуры
17. по теме Рентгеновское излучение
18. Тема- Законодательное регулирование и международноправовая охрана окружающей природной среды экологопольз
19. Создание эталона выполнения техники скользящего шага
20. задолбала и зачастую даже такого рода напоминания мы не читаем вовсе или не обращаем на них внимания