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

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

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

Поможем написать учебную работу

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

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 5.4.2025

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

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

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

«ЛЭТИ»

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

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

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

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

                              

Ст.гр.

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. Становление абсолютной монархии в России конец XVII первая четверть XVIII вв
3. Лекція 3 Високомолекулярні сполуки ВМС та їх розчини Класифікац
4. Шина расширения ISA
5. Тема уроку- Цінності та перспективи християнської моралі 11кл
6. Петроку долго снились какието черви целый клубок 5 16; Петрок увидел дурной сон.
7. это процесс сохранения и развития регуляторных свойств организма его физического психического и социальн
8. Миссия русской эмиграции
9. тема изучения морфемного состава
10. Формат входных данных В первой строке входных данных содержатся числа N и K 0NK100001