Інтелектуальна система діагностики онкопатологій

Комп’ютеризовані діагностичні системи в медицині. Аналітичний огляд методів розпізнавання зображень. Інформаційне та програмне забезпечення інтелектуальної комп’ютеризованої системи діагностування онкопатологій, оцінка її функціональної ефективності.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык украинский
Дата добавления 05.10.2013
Размер файла 2,3 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Моделювання ієрархічного алгоритму екзамену підтвердило правильність та коректність функціонування інтелектуальної КСД онкопатологій.

ВИСНОВКИ

1. В роботі створено математичну модель та алгоритм навчання інтелектуальної КСД онкопатологій за інформаційно-екстремальною інтелектуальною технологією. В процесі проектування використано парадигму ООП, що дозволяє гнучко модифікувати програмний код при зміні алгоритму навчання.

2. Введення в контур навчання СППР алгоритму паралельно-послідовної оптимізації дозволило підвищити значення узагальненого критерію функціональної ефективності і для лінійного, і для ієрархічного вирішального правила, що є оцінкою достовірності правильного функціонування системи на етапі екзамену. Використання ієрархічного вирішального правила дозволило уникнути проблеми багато вимірності шляхом навчання узагальнення групи класів.

3. Отримане значення усередненого критерію функціональної ефективності не досягає безпомилкового, проте для бінарного ієрархічного вирішального правила в 4 рази вища за КФЕ лінійного вирішального правила . Використання ієрархічного вирішального правила зменшує перетин областей локалізації ознак, асоційованих з класами розпізнавання. Для підвищення достовірності функціонування СППР введено також додаткові контури оптимізації параметрів функціонування, такі як вибір базового класу на кожному рівні ієрархії, необхідного для розрахунку СКД на ОР Введення контуру оптимізації словника ознак повинно зменшити кількість неінформативних ознак та збільшити різноманітність між реалізаціями класів розпізнавання, що дозволить підвищити достовірність функціонування СППР.

СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ

1. Краснопоясовський А.С. Інформаційний синтез інтелектуальних систем керування: підхід, що грунтується на методі функціонально-статистичних випробувань.- Суми: Видавництво СумДУ, 2004.- 261 с.

2. Васильев В. И. Распознающие системы. Справочник. 2-е изд., перераб. и доп.Киев: Наукова думка, 1983. 422 с.

3. Анисимов Б. В., Курганов В. Д., Злобин В. К. Распознавание и цифровая обработка изображений.М.: Высшая школа, 1983.-256 с.

4. Прикладная статистика: Классификация и снижение размерности. Справ. изд./ С.А. Айвазян, В.М. Бухштабер, И.С. Енюков, Л.Д. Мешалкин / Под ред. С.А. Айвазяна. М.: Финансы и статистика, 1989 607 с.

5. Власов В.В. Введение в доказательную медицину. - М.: Медиа Сфера, 2001. - 392 с.

6. Флетчер Р., Флетчер С., Вагнер Э. Клиническая эпидемиология. Основы доказательной медицины / Пер. с англ. - М.: Изд-во Медиа Сфера, 1998. - 352 с.

7. Эшби У.Р. Конструкция мозга. Происхождение адаптивного поведения: Пер. с англ./ Под ред. П.К.Анохина и В.А.Шидловского. - М.:ИИЛ, 1965. -480 с.

8. Довбиш А.С. Основи проектування інтелектуальних систем: Навчальний посібник.- Суми: Видавництво Сум ДУ, 2009.- 171 с.

9. Краснопоясовський А. С. Оптимізація контейнерів класів розпізнаванняза методом функціонально-статистичних випробувань//Автоматизированные системы управления и приборы автоматики, 2002. Вып. 119. С. 6976.

10. Анохин П.К. Биология и нейрофизиология условного рефлекса. -М.: Медицина, 1968. - 547 с.

11. Путятин Е.П., Аверин С.И. Обработка изображений в робототехнике. - М.:Машиностроение, 1990. - 320 с.

12. Brazzi L., Bertolini G., Minelli C. Meta-analysis versus randomised controlled trials in intensive care medicine // Intens. Care Med. - 2000. - Vol. 26. - P. 239-241.

13. Cook D.J., Mulrow C.D. Haynes R.B. Systematic reviews: Synthesis of best evidence for clinical decisions. Ann Intern Med 1997; 126:376 - 380.

14. Isaacs D., Fitzgerald D. Seven alternatives to evidence based medicine: a questionnaire survey // BMJ. - 1998. - Vol. 316. - P. 361 - 365.

15. Краснопоясовський А. С., Черниш А.В., Сластушевський О.Ю. Про вибір критерію функціональної ефективності системи розпізнавання, що навчається // Радиоэлектроника и информатика, 2001. №4.

16. Кульбак С. Теория информации и статистика: Пер. с англ.М.: Наука, 1967.

ДОДАТОК

комп'ютерний діагностика онкопатологія

ТЕКСТ ПРОГРАМИ

Unit1;

interface

uses

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

Dialogs, ExtCtrls, StdCtrls, Buttons, ExtDlgs, ComCtrls,math, Grids,

TeEngine, Series, TeeProcs, Chart, jpeg;

type

TForm1 = class(TForm)

PageControl1: TPageControl;

TabSheet1: TTabSheet;

TabSheet2: TTabSheet;

TabSheet3: TTabSheet;

TabSheet4: TTabSheet;

Panel2: TPanel;

Button2: TButton;

Button3: TButton;

OpenPictureDialog1: TOpenPictureDialog;

Label4: TLabel;

Bevel5: TBevel;

Edit2: TEdit;

Label5: TLabel;

Label6: TLabel;

Edit3: TEdit;

Edit4: TEdit;

Image2: TImage;

Button1: TButton;

UpDown1: TUpDown;

Edit5: TEdit;

Image3: TImage;

Label7: TLabel;

Button4: TButton;

Panel5: TPanel;

Label10: TLabel;

ProgressBar2: TProgressBar;

ProgressBar4: TProgressBar;

ProgressBar5: TProgressBar;

Label12: TLabel;

Label14: TLabel;

TabSheet5: TTabSheet;

SpeedButton4: TSpeedButton;

SpeedButton5: TSpeedButton;

SpeedButton6: TSpeedButton;

Edit6: TEdit;

Image4: TImage;

Label17: TLabel;

Image5: TImage;

Label18: TLabel;

Edit7: TEdit;

UpDown2: TUpDown;

Button6: TButton;

StringGrid1: TStringGrid;

Label19: TLabel;

PageControl2: TPageControl;

TabSheet6: TTabSheet;

TabSheet7: TTabSheet;

TabSheet8: TTabSheet;

TabSheet9: TTabSheet;

StringGrid2: TStringGrid;

Label20: TLabel;

Edit8: TEdit;

Label21: TLabel;

Label22: TLabel;

Label23: TLabel;

StringGrid3: TStringGrid;

StringGrid4: TStringGrid;

StringGrid5: TStringGrid;

Chart3: TChart;

Series3: TLineSeries;

Series4: TLineSeries;

Series5: TLineSeries;

Label24: TLabel;

StringGrid6: TStringGrid;

Panel6: TPanel;

Label25: TLabel;

Edit9: TEdit;

UpDown3: TUpDown;

Image6: TImage;

Image7: TImage;

Label26: TLabel;

Label27: TLabel;

Label28: TLabel;

Edit10: TEdit;

GroupBox5: TGroupBox;

Chart4: TChart;

BarSeries2: TBarSeries;

Label29: TLabel;

Edit11: TEdit;

UpDown4: TUpDown;

StringGrid7: TStringGrid;

Label30: TLabel;

Series6: TBarSeries;

Label1: TLabel;

Edit1: TEdit;

Image1: TImage;

SpeedButton3: TSpeedButton;

SpeedButton2: TSpeedButton;

SpeedButton1: TSpeedButton;

GroupBox2: TGroupBox;

RadioButton3: TRadioButton;

RadioButton4: TRadioButton;

GroupBox1: TGroupBox;

RadioButton1: TRadioButton;

RadioButton2: TRadioButton;

Image8: TImage;

Label2: TLabel;

Chart1: TChart;

Series1: TBarSeries;

Chart2: TChart;

BarSeries1: TBarSeries;

Series2: TBarSeries;

TabSheet10: TTabSheet;

Bevel1: TBevel;

Button5: TButton;

Edit13: TEdit;

UpDown6: TUpDown;

Button7: TButton;

Label3: TLabel;

Label8: TLabel;

ProgressBar1: TProgressBar;

Button8: TButton;

Bevel2: TBevel;

Label9: TLabel;

Edit12: TEdit;

Label11: TLabel;

Label13: TLabel;

Label15: TLabel;

Edit14: TEdit;

Edit15: TEdit;

Label16: TLabel;

procedure SpeedButton3Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure SpeedButton2Click(Sender: TObject);

procedure SpeedButton1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Edit5Change(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure SpeedButton4Click(Sender: TObject);

procedure SpeedButton5Click(Sender: TObject);

procedure SpeedButton6Click(Sender: TObject);

procedure Button6Click(Sender: TObject);

procedure Edit9Change(Sender: TObject);

procedure Button5Click(Sender: TObject);

procedure Edit11Change(Sender: TObject);

procedure Edit12Change(Sender: TObject);

procedure Button7Click(Sender: TObject);

procedure Button8Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

type ai=object

private

n_str:word;//кол-во реализаций

n_stolb:word;//кол-во признаков

m:byte;//кол-во классов распознавания

Y:array of array of array of byte;

BM:array of array of array of byte;

EV:array of array of byte;

name:array of string;

vdk,ndk,mid:array of byte;

EM:array of real;

EM_opt:array of real;

SK:array of array of array of word;

PARA:array of word;

delta:byte;

base:byte;

base_opt:byte;

delta_opt:byte;

delta_opt_mas:array of byte;

delta_opt_m2:array of byte;

E_opt:real;

D_opt:array of word;

d_:array of word;

public

procedure create(var a:ai);

procedure add(path:string);

procedure clean;

procedure make_Y;

procedure show(number:byte; var image:timage);

//procedure make_ev;

//procedure show(param:byte);

//procedure exp;

procedure make_SKD(var a:ai);

procedure make_SKD2(var a:ai);

procedure make_SK(var a:ai);

procedure TEACH(var zt:ai);

procedure TEACH2(var a:ai);

procedure make_EV(var a:ai);

procedure make_X(var a:ai);

procedure make_PARA(var a:ai);

procedure make_D(var a:ai);

procedure make_D2(var a:ai;num:byte);

procedure reliz(var a:ai);

//procedure binary;

//procedure opt;

end;

type ier=object

count:byte;

strata:array of ai;

descr:array of array of array of byte;//str_count,clust_count,class_count

procedure make_strata(var a:ier);

procedure make_Y(var a:ier);

end;

var

Form1: TForm1;

data,ex:ai;tree:ier;

b_x:array of array of tbitmap;

i_count:integer;

ie:boolean;

implementation

{$R *.dfm}

procedure ier.make_Y(var a:ier);

var i,j,k,c,c1,c2,c3:integer;

begin

setlength(a.strata,count);//кол-во классификаторов

for i:=0 to count -1 do begin

a.strata[i].m:=length(a.descr[i]);

setlength(a.strata[i].Y,a.strata[i].m);

setlength(a.strata[i].BM,a.strata[i].m);

setlength(a.strata[i].EV,a.strata[i].m);

setlength(a.strata[i].name,a.strata[i].m);

setlength(a.strata[i].EM,a.strata[i].m);

setlength(a.strata[i].EM_opt,a.strata[i].m);

setlength(a.strata[i].SK,a.strata[i].m);

setlength(a.strata[i].PARA,a.strata[i].m);

setlength(a.strata[i].D_opt,a.strata[i].m);

setlength(a.strata[i].d_,a.strata[i].m);

for j:=0 to a.strata[i].m-1 do begin

k:=length(a.descr[i,j])*data.n_str;

setlength(a.strata[i].Y[j],k,data.n_stolb);

setlength(a.strata[i].BM[j],k,data.n_stolb);

c:=0;

for k:=0 to length (a.descr[i,j])-1 do

for c1:=0 to data.n_str-1 do begin

a.strata[i].Y[j,c]:=data.Y[(a.descr[i,j,k]),c1];

inc(c);

end;

end;

end;

//showmessage('ok!');

end;

procedure ier.make_strata(var a:ier);

begin

count:=5;

form1.UpDown6.Min:=0;

form1.UpDown6.Max:=count-1;

setlength(a.descr,count);

setlength(a.strata,count);

setlength(a.descr[0],3);

setlength(a.descr[1],2);

setlength(a.descr[2],2);

setlength(a.descr[3],2);

setlength(a.descr[4],2);

{}

setlength(a.descr[0,0],3);

setlength(a.descr[0,1],1);

setlength(a.descr[0,2],3);

a.descr[0,0,0]:=0;

a.descr[0,0,1]:=1;

a.descr[0,0,2]:=2;

a.descr[0,1,0]:=3;

a.descr[0,2,0]:=4;

a.descr[0,2,1]:=5;

a.descr[0,2,2]:=6;

{}

setlength(a.descr[1,0],2);

setlength(a.descr[1,1],1);

a.descr[1,0,0]:=0;

a.descr[1,0,1]:=1;

a.descr[1,1,0]:=2;

{}

setlength(a.descr[2,0],1);

setlength(a.descr[2,1],1);

a.descr[2,0,0]:=0;

a.descr[2,1,0]:=1;

{}

setlength(a.descr[3,0],2);

setlength(a.descr[3,1],1);

a.descr[3,0,0]:=5;

a.descr[3,0,1]:=6;

a.descr[3,1,0]:=4;

{}

setlength(a.descr[4,0],1);

setlength(a.descr[4,1],1);

a.descr[4,0,0]:=5;

a.descr[4,1,0]:=6;

{}

end;

procedure ai.make_D2(var a:ai;num:byte);

var d,i,j,k:integer;

G:array of integer;

E,D1,D2,alpha,beta:real;

function Shennon(k1,k2,k3,k4:integer):real;

var sl1,sl2,sl3,sl4:real;

begin

if (k1=0)then sl1:=0 else sl1:=k1/(k1+k3)*Log2(k1/(k1+k3));

if (k2=0)then sl2:=0 else sl2:=k2/(k2+k4)*Log2(k2/(k2+k4));

if (k3=0)then sl3:=0 else sl3:=k3/(k1+k3)*Log2(k3/(k1+k3));

if (k4=0)then sl4:=0 else sl4:=k4/(k2+k4)*Log2(k4/(k2+k4));

result:=1+(1/2)*(sl1+sl2+sl3+sl4);

end;

function Kulbak(k2,k3,n:integer):real;

var sl1,sl2,sl3,sl4:real;

begin

try

sl1:=2*n+0.0000000000001-(k2+k3);

sl2:=k2+k3+0.0000000000001;

sl3:=(1/n)*Log2(sl1/sl2);

sl4:=sl3*(n-(k2+k3));

result:=sl4;

except

result:=0;

end;

end;

procedure K1(n,d:integer;var a1,a2,a3,a4:integer);// кол-во своих реализаций в n_str классе

var i,j:integer;

s:byte;

begin

a1:=0;

a2:=0;

a3:=0;

a4:=0;

for i:=0 to length(a.SK[n,0])-1 do begin

if a.SK[n,0,i]<=d then inc(a1)else inc(a2);

if a.SK[n,1,i]<=d then inc(a3)else inc(a4);

end;

end;

begin

form1.StringGrid7.Cells[0,0]:='радіус';

form1.StringGrid7.Cells[1,0]:='D1';

form1.StringGrid7.Cells[2,0]:='alpha';

form1.StringGrid7.Cells[3,0]:='D2';

form1.StringGrid7.Cells[4,0]:='beta';

form1.StringGrid7.Cells[5,0]:='KFE';

form1.StringGrid7.RowCount:=data.n_stolb;

form1.Series6.Clear;

setlength(a.EM,a.m);

// setlength(data.D_opt,data.m);

setlength(G,4);

k:=num;

for d:=1 to a.n_stolb do begin // обходим все радиусы

K1(k,d,G[0],G[1],G[2],G[3]);

// K1(k,d,obj.para[k],G[3],G[4]);

alpha:=G[1]/length(a.SK[k,0]);

D1:=G[0]/length(a.SK[k,0]);

beta:=G[2]/length(a.SK[k,0]);

D2:=G[3]/length(a.SK[k,0]);

if form1.RadioButton1.Checked=true then E:=Shennon(G[0],G[1],G[2],G[3])

else if form1.RadioButton2.Checked=true then E:=Kulbak(G[1],G[2],length(a.SK[k,0]));

{ if E>obj.EM[k]then begin}

if ((D1>0.5)and(D2>0.5))then

form1.Series6.AddXY(d,E,'',clblack) else form1.Series6.AddXY(d,E,'',clwhite);

form1.StringGrid7.Cells[0,d]:=inttostr(d);

form1.StringGrid7.Cells[1,d]:=floattostr(d1);

form1.StringGrid7.Cells[2,d]:=floattostr(alpha);

form1.StringGrid7.Cells[3,d]:=floattostr(d2);

form1.StringGrid7.Cells[4,d]:=floattostr(beta);

form1.StringGrid7.Cells[5,d]:=floattostr(E);

end;

end;

procedure ai.reliz(var a:ai);

var

bin:array of byte;

i,j,k,sum:integer;

i1,j1,k1,l1:integer;

begin

form1.Edit10.Text:=floattostr(a.E_opt);

setlength(b_x,a.m,2);

form1.Series3.Clear;

form1.Series4.Clear;

form1.Series5.Clear;

form1.Edit8.Text:=inttostr(a.base_opt);

setlength(a.delta_opt_m2,a.n_stolb);

setlength(bin,a.n_stolb);

form1.StringGrid2.RowCount:=a.m+1;

form1.StringGrid3.ColCount:=a.n_stolb;

form1.StringGrid4.ColCount:=a.n_stolb;

form1.StringGrid5.ColCount:=a.n_stolb;

form1.StringGrid2.Cells[0,0]:='№ Класу';

form1.StringGrid2.Cells[1,0]:='КФЕ';

form1.StringGrid2.Cells[2,0]:='Оптим. рад.';

for i:=1 to a.m do begin

form1.StringGrid2.Cells[0,i]:=inttostr(i);

form1.StringGrid2.Cells[1,i]:=floattostr(a.em_opt[i-1]);

form1.StringGrid2.Cells[2,i]:=inttostr(a.d_opt[i-1]);

end;

for i:=0 to data.n_stolb-1 do

form1.StringGrid3.Cells[i,0]:=inttostr(a.delta_opt_mas[i]);

a.base:=a.base_opt;

for i:=0 to a.n_stolb-1 do

a.delta_opt_m2[i]:=a.delta_opt_mas[i];

a.make_SKD2(a); //!!!

for i:=0 to a.n_stolb-1 do begin

form1.StringGrid4.Cells[i,0]:=inttostr(a.ndk[i]);

form1.StringGrid5.Cells[i,0]:=inttostr(a.vdk[i]);

form1.Series3.AddXY(i+1,a.mid[i]);

form1.Series4.AddXY(i+1,a.ndk[i]);

form1.Series5.AddXY(i+1,a.vdk[i]);

end;

a.make_X(a);

a.make_EV(a);

{}

for i:=0 to a.m-1 do begin

b_x[i,0]:=tbitmap.Create;

b_x[i,0].Width:=a.n_stolb;

b_x[i,0].Height:=Length(a.Y);

for j:=0 to Length(a.Y)-1 do

for k:=0 to a.n_stolb-1 do

if a.BM[i,j,k]=1 then

b_x[i,0].Canvas.Pixels[k,j]:=clblack else b_x[i,0].Canvas.Pixels[k,j]:=clwhite;

//Image6.Picture.Bitmap.Assign(b);

b_x[i,1]:=tbitmap.Create;

b_x[i,1].Width:=a.n_stolb;

b_x[i,1].Height:=20;

for j:=0 to 20-1 do

for k:=0 to a.n_stolb-1 do

if a.EV[i,k]=1 then

b_x[i,1].Canvas.Pixels[k,j]:=clblack else b_x[i,1].Canvas.Pixels[k,j]:=clwhite;

//Image7.Picture.Bitmap.Assign(b);

end;

{}

a.make_SK(a);

form1.UpDown3.Max:=a.m-1;

form1.UpDown4.Max:=a.m-1;

a.make_PARA(a);

form1.StringGrid6.Cells[0,1]:='Клас-сусід';

form1.StringGrid6.Cells[1,0]:='№ Класу';

for i:=0 to a.m-1 do begin

form1.StringGrid6.Cells[i+1,0]:=inttostr(i+1);

form1.StringGrid6.Cells[i+1,1]:=inttostr(a.para[i]+1);

end;

{}

{}

end;

procedure ai.make_D(var a:ai);

var d,i,j,k:integer;

G:array of integer;

E,D1,D2,alpha,beta:real;

function Shennon(k1,k2,k3,k4:integer):real;

var sl1,sl2,sl3,sl4:real;

begin

if (k1=0)then sl1:=0 else sl1:=k1/(k1+k3)*Log2(k1/(k1+k3));

if (k2=0)then sl2:=0 else sl2:=k2/(k2+k4)*Log2(k2/(k2+k4));

if (k3=0)then sl3:=0 else sl3:=k3/(k1+k3)*Log2(k3/(k1+k3));

if (k4=0)then sl4:=0 else sl4:=k4/(k2+k4)*Log2(k4/(k2+k4));

result:=1+(1/2)*(sl1+sl2+sl3+sl4);

end;

function Kulbak(k2,k3,n:integer):real;

var sl1,sl2,sl3,sl4:real;

begin

try

sl1:=2*n+0.0000000000001-(k2+k3);

sl2:=k2+k3+0.0000000000001;

sl3:=(1/n)*Log2(sl1/sl2);

sl4:=sl3*(n-(k2+k3));

result:=sl4;

except

result:=0;

end;

end;

procedure K1(n,d:integer;var a1,a2,a3,a4:integer);// кол-во своих реализаций в n_str классе

var i,j:integer;

s:byte;

begin

a1:=0;

a2:=0;

a3:=0;

a4:=0;

for i:=0 to length(a.SK[n,0])-1 do begin

if a.SK[n,0,i]<=d then inc(a1)else inc(a2);

if a.SK[n,1,i]<=d then inc(a3)else inc(a4);

end;

end;

begin

setlength(a.EM,a.m);

// setlength(data.D_opt,data.m);

setlength(G,4);

form1.ProgressBar4.Min:=0;

form1.ProgressBar4.Max:=25*data.m;

form1.ProgressBar4.Position:=0;

for k:=0 to a.m-1 do begin// оптимизация для к-того класса

E:=0;

form1.ProgressBar4.Position:=(k+1)*25;

a.EM[k]:=0;

a.d_[k]:=0;

for d:=1 to data.n_stolb do begin // обходим все радиусы

K1(k,d,G[0],G[1],G[2],G[3]);

// K1(k,d,obj.para[k],G[3],G[4]);

alpha:=G[1]/length(a.SK[k,0]);

D1:=G[0]/length(a.SK[k,0]);

beta:=G[2]/length(a.SK[k,0]);

D2:=G[3]/length(a.SK[k,0]);

if form1.RadioButton1.Checked=true then E:=Shennon(G[0],G[1],G[2],G[3])

else if form1.RadioButton2.Checked=true then E:=Kulbak(G[1],G[2],length(a.SK[k,0]));

{ if E>obj.EM[k]then begin}

if ((D1>0.5)and(D2>0.5))then begin

if E>a.EM[k]then begin

a.D_[k]:=d;

a.EM[k]:=E;

{obj.A[k]:=alpha;

obj.B[k]:=beta;

obj.D1[k]:=D1;

obj.D2[k]:=D2;}

end;

end;

{begin}

{ obj.D[k]:=-1;

end;}

{obj.EM[k]:=E;

obj.A[k]:=alpha;

obj.B[k]:=beta;

obj.D1[k]:=D1;

obj.D2[k]:=D2;}

// if k=1 then chart3.Series[0].AddXY(d,obj.em[k],'',kolor);

{end;}

end;

end;

end;

procedure ai.make_SK(var a:ai);

var i,j,k,sum1,sum2:integer;gamma:integer;

c1,c2,c3,temp:integer;

begin

setlength(a.SK,a.m,2);

//setlength(data.SK,data.m,2,data.n_str);

for k:=0 to a.m-1 do begin//массив SK для к-того класса

setlength(a.SK[k,0],length(a.Y[k]));

setlength(a.SK[k,1],length(a.Y[a.para[k]]));

for i:=0 to length(a.Y[k])-1 do begin

sum1:=0;

for j:=0 to a.n_stolb-1 do

if a.EV[k,j]<>a.BM[k,i,j] then inc(sum1);

a.SK[k,0,i]:=sum1;

end;

for i:=0 to length(a.Y[a.PARA[k]])-1 do begin

sum2:=0;

for j:=0 to a.n_stolb-1 do

if a.EV[k,j]<>a.BM[a.PARA[k],i,j] then inc(sum2);

a.SK[k,1,i]:=sum2;

end;

gamma:=min(length(a.Y[k]),length(a.Y[a.para[k]]));

// сортировка по возрастанию.

for c1 :=1 to length(a.SK[k,1])-1 do begin

c2:=a.sk[k,1,c1];

c3:=c1-1;

while((c3>=0)and(a.sk[k,1,c3]>c2)) do begin

a.sk[k,1,c3+1]:=a.sk[k,1,c3];

dec(c3);//dec(i);

a.sk[k,1,c3+1]:=c2;

end;

end;

//

setlength(a.sk[k,1],gamma);

// сортировка по возрастанию.

for c1 :=1 to length(a.SK[k,0])-1 do begin

c2:=a.sk[k,0,c1];

c3:=c1-1;

while((c3>=0)and(a.sk[k,0,c3]>c2)) do begin

a.sk[k,0,c3+1]:=a.sk[k,0,c3];

dec(c3);//dec(i);

a.sk[k,0,c3+1]:=c2;

end;

end;

//

if length(a.SK[k,0])>gamma then begin

for c1:=0 to gamma-1 do

a.SK[k,0,c1]:=a.SK[k,0,length(a.SK[k,0])-1-c1];

setlength(a.sk[k,0],gamma);

end;

end;

end;

procedure ai.make_PARA(var a:ai);

var i,j,k,d,d1:integer;

begin

setlength(a.PARA,a.m);

d1:=maxint;

for k:=0 to a.m-1 do begin //анализ для к-того класса

d:=0;

d1:=maxint;

for i:=0 to a.m-1 do begin //выбор класса для анализа расстояния

if i<>k then begin // не считать расстояние до самого себя

d:=0;

for j:=0 to a.n_stolb-1 do

if a.EV[k,j]<>a.EV[i,j]then inc(d);

if d<d1 then begin

d1:=d;

a.PARA[k]:=i;// номера классов нумер с нуля (по м-1)

end;

end;

end;

end;

end;

procedure ai.make_EV(var a:ai);

var i,j,k:integer;

sum:integer;

begin

setlength(a.EV,a.m,a.n_stolb);

for k:=0 to a.m-1 do

for i:=0 to a.n_stolb-1 do begin

a.EV[k,i]:=0;

sum:=0;

for j:=0 to length(a.Y[k])-1 do

sum:=sum+a.BM[k,j,i];

if sum/(length(a.Y[k]))<=0.5 then a.EV[k,i]:=0

else a.EV[k,i]:=1;

end;

end;

procedure ai.make_X(var a:ai);

var i,j,k:integer;

begin

for k:=0 to a.m-1 do

for i:=0 to length(a.Y[k])-1 do

for j:=0 to data.n_stolb-1 do

if ((a.Y[k,i,j]>=a.ndk[j])and(a.Y[k,i,j]<=a.vdk[j]))then

a.BM[k,i,j]:=1 else a.BM[k,i,j]:=0;

end;

procedure ai.make_SKD(var a:ai);

var i,j:integer;sum:longint;

s:string;

begin

setlength(a.mid,a.n_stolb);

setlength(a.ndk,a.n_stolb);

setlength(a.vdk,a.n_stolb);

for i:=0 to a.n_stolb-1 do begin

sum:=0;

for j:=0 to length(a.Y[a.base])-1 do

sum:=sum+Y[a.base,j,i];

a.mid[i]:=round(sum/length(a.Y[a.base]));

if (a.mid[i]+delta>255) then a.vdk[i]:=255 else

a.vdk[i]:=a.mid[i]+delta;

if (a.mid[i]-delta<0) then a.ndk[i]:=0 else

a.ndk[i]:=a.mid[i]-delta;

end;

end;

procedure ai.make_SKD2(var a:ai);

var i,j:integer;sum:integer;

s:string;

begin

setlength(a.mid,a.n_stolb);

setlength(a.ndk,a.n_stolb);

setlength(a.vdk,a.n_stolb);

for i:=0 to a.n_stolb-1 do begin

sum:=0;

for j:=0 to length(a.Y[a.base])-1 do

sum:=sum+a.Y[a.base,j,i];

a.mid[i]:=round(sum/length(a.Y[a.base]));

if (a.mid[i]+a.delta_opt_m2[i]>255) then a.vdk[i]:=255 else

a.vdk[i]:=a.mid[i]+a.delta_opt_m2[i];

if (a.mid[i]-a.delta_opt_m2[i]<0) then a.ndk[i]:=0 else

a.ndk[i]:=a.mid[i]-a.delta_opt_m2[i];

end;

end;

function distantion(m1,m2:array of byte;num:integer):word;//results: 1-continue;o-stop;

var i,j:word;

begin

j:=0;

for i:=0 to num-1 do

if (m1[i]<>m2[i]) then j:=1;

result:=j;

end;

{}{}{}{}{}{}{}{}{}

procedure ai.TEACH2(var a:ai);

var i,j,k:integer;

E:array of real;

bs,dl:integer;

E1:real;

mas1,mas2:array of byte;

s:word;

temp:byte;

E_bs:real;

rr:byte;

sst:integer;

begin

setlength(a.EM_opt,data.m);

setlength(mas1,a.n_stolb);

setlength(a.delta_opt_m2,a.n_stolb);

form1.Series2.Clear;

//data.E_opt:=0;

E1:=0;

E_bs:=0;

form1.ProgressBar2.Min:=0;

form1.ProgressBar2.Max:=25*150;

form1.ProgressBar2.Position:=0;

{}

for i:=0 to a.n_stolb-1 do begin

mas1[i]:=1;

//mas2[i]:=1;

a.delta_opt_m2[i]:=a.delta_opt_mas[i];

end;

{}

a.base:=a.base_opt;

sst:=strtoint(form1.Edit15.text)+1;

while (sst>0) do begin

dec(sst);

// while (distantion(mas1,a.delta_opt_m2,a.n_stolb)=1)do begin

for i:=0 to a.n_stolb-1 do

mas1[i]:=a.delta_opt_m2[i];

for s:=0 to a.n_stolb-1 do begin

temp:=a.delta_opt_m2[s];

for dl:=0 to 150 do begin

form1.ProgressBar2.Position:=(dl+1)*25;

a.delta_opt_m2[s]:=dl;

// for i:=0 to data.n_stolb-1 do

// data.delta_opt_m2[i]:=mas1[i];

a.make_SKD2(a); //!!!!!!make_skd2!!!!!

a.make_X(a);

a.make_EV(a);

a.make_PARA(a);

a.make_SK(a);

a.make_D(a);

E1:=0;

rr:=1;

for i:=0 to a.m-1 do begin

E1:=E1+a.EM[i];

if a.EM[i]=0 then rr:=0;

end;

E1:=E1/a.m;

if ((E1>a.E_opt)and(rr=1)) then begin

form1.Series2.AddY(E1,'',clgreen);

for i:=0 to a.m-1 do

a.EM_opt[i]:=a.em[i];

for i:=0 to a.m-1 do

a.D_opt[i]:=a.D_[i];

a.E_opt:=E1;

temp:=dl;

a.delta_opt_mas[s]:=dl;

// mas1[s]:=dl;

//data.delta_opt:=data.delta;

end else a.delta_opt_m2[s]:=temp;

end;

end;

for i:=0 to a.n_stolb-1 do

a.delta_opt_m2[i]:=a.delta_opt_mas[i];

end;

//showmessage('E_maks= '+floattostr(data.E_opt));

end;

{}{}{}{}{}{}{}{}{}

procedure ai.TEACH(var zt:ai);

var i,j,k:integer;

E:array of real;

bs,dl:integer;

E1:real;

rr:byte;

begin

zt.n_stolb:=data.n_stolb;

setlength(zt.EM_opt,zt.m);

setlength(zt.d_,zt.m);

setlength(zt.D_opt,zt.m);

setlength(zt.delta_opt_mas,zt.n_stolb);

form1.Series1.Clear;

zt.E_opt:=0;

E1:=0;

{}

form1.ProgressBar2.Min:=0;

form1.ProgressBar2.Max:=25*150;

form1.ProgressBar2.Position:=0;

{}

for bs:=0 to zt.m-1 do begin

zt.base:=bs;

for dl:=0 to 150 do begin

zt.delta:=dl;

zt.make_SKD(zt);

zt.make_X(zt);

zt.make_EV(zt);

zt.make_PARA(zt);

zt.make_SK(zt);

zt.make_D(zt);

E1:=0;

rr:=1;

for i:=0 to zt.m-1 do begin

E1:=E1+zt.EM[i];

if zt.EM[i]=0 then rr:=0;

end;

E1:=E1/zt.m;

form1.Series1.AddXY(dl,E1);

if ((E1>zt.E_opt)and(rr=1)) then begin

zt.E_opt:=E1;

zt.delta_opt:=zt.delta;

zt.base_opt:=zt.base;

for i:=0 to zt.m-1 do

zt.EM_opt[i]:=zt.em[i];

for i:=0 to zt.m-1 do

zt.D_opt[i]:=zt.d_[i];

end;

end;

for i:=0 to zt.n_stolb-1 do

zt.delta_opt_mas[i]:=zt.delta_opt;

end;

//showmessage('E_maks= '+floattostr(data.E_opt));

end;

procedure ai.show(number:byte; var image:timage);

var i,j,k:integer;b:tbitmap;

begin

i:=number;

b:=tbitmap.Create;

b.Width:=n_stolb;

b.Height:=n_str;

for j:=0 to n_str-1 do

for k:=0 to n_stolb-1 do

b.Canvas.Pixels[k,j]:=rgb(Y[i-1,j,k],Y[i-1,j,k],Y[i-1,j,k]);

Image.Picture.Bitmap.Assign(b);

b.Destroy;

end;

procedure ai.make_Y;

var b:tbitmap;i,j,k:integer;

begin

//data.n_stolb:=3;

//data.n_str:=3;

form1.Button2.Enabled:=false;

setlength(Y,m,n_str,n_stolb);

setlength(BM,m,n_str,n_stolb);

b:=tbitmap.Create;

for i:=0 to m-1 do begin

b.LoadFromFile(name[i]);

for j:=0 to n_str-1 do

for k:=0 to n_stolb-1 do

Y[i,j,k]:=getrvalue(b.Canvas.Pixels[k,j]);

end;

b.Destroy;

end;

procedure ai.clean;

begin

m:=0;

n_str:=0;

n_stolb:=0;

setlength(name,0);

form1.Edit2.Text:='0';

form1.Edit3.Text:='0';

form1.Edit4.Text:='0';

form1.SpeedButton2.Click;

end;

procedure ai.create(var a:ai);

begin

a.m:=0;

end;

procedure ai.add(path:string);

begin

if length(path)=0 then exit;

if((n_str=0)or(n_stolb=0))then begin

n_str:=form1.Image1.Picture.Bitmap.Height;

n_stolb:=form1.Image1.Picture.Bitmap.width;

end;

inc(m);

setlength(name,m);

name[m-1]:=path;

form1.Edit2.Text:=inttostr(m);

form1.Edit3.Text:=inttostr(n_str);

form1.Edit4.Text:=inttostr(n_stolb);

end;

procedure TForm1.SpeedButton3Click(Sender: TObject);

var s:string;

begin

if form1.OpenPictureDialog1.Execute then s:=form1.OpenPictureDialog1.FileName;

if length(s)=0 then exit else begin

form1.Edit1.Text:=s;

form1.Image1.Picture.LoadFromFile(s);

end;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

form1.Image1.Picture.Bitmap.Assign(form1.Image2.Picture.Bitmap);

form1.Image3.Picture.Bitmap.Assign(form1.Image2.Picture.Bitmap);

form1.Image4.Picture.Bitmap.Assign(form1.Image2.Picture.Bitmap);

form1.Image5.Picture.Bitmap.Assign(form1.Image2.Picture.Bitmap);

data.create(data);

data.create(ex);

form1.Edit2.Text:='0';

form1.Edit3.Text:='0';

form1.Edit4.Text:='0';

end;

procedure TForm1.SpeedButton2Click(Sender: TObject);

begin

form1.Image1.Picture.Bitmap.Assign(form1.Image2.Picture.Bitmap);

form1.Edit1.Text:='';

end;

procedure TForm1.SpeedButton1Click(Sender: TObject);

begin

data.add(form1.Edit1.Text);

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

data.clean;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

form1.Image3.Picture.Bitmap.Assign(form1.Image2.Picture.Bitmap);

form1.Button2.Enabled:=true;

form1.UpDown1.Min:=2;

form1.UpDown1.Max:=2;

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

if (data.m<2) then begin

showmessage('Вхідний мат. опис СППР повинен містити щонайменше два класи');

exit;

end;

data.make_Y;

form1.UpDown1.Min:=1;

form1.UpDown1.Max:=data.m;

end;

procedure TForm1.Edit5Change(Sender: TObject);

begin

data.show(strtoint(form1.Edit5.text),form1.image3);

end;

procedure TForm1.Button4Click(Sender: TObject);

begin

ie:=false;

form1.Label2.Caption:='';

if form1.RadioButton3.Checked=true then begin

data.TEACH(data);

form1.Label2.Caption:='НАВЧАННЯ ЗАВЕРШЕНО';

end

else begin

data.TEACH(data);

data.TEACH2(data);

end;

data.reliz(data);

form1.Label2.Caption:='НАВЧАННЯ ЗАВЕРШЕНО';

form1.Edit12.Text:=floattostr(data.E_opt);

end;

procedure TForm1.SpeedButton4Click(Sender: TObject);

var s:string;

begin

if form1.OpenPictureDialog1.Execute then s:=form1.OpenPictureDialog1.FileName;

if length(s)=0 then exit else begin

form1.Edit6.Text:=s;

form1.Image4.Picture.LoadFromFile(s);

end;

end;

procedure TForm1.SpeedButton5Click(Sender: TObject);

begin

form1.Image4.Picture.Bitmap.Assign(form1.Image2.Picture.Bitmap);

form1.Edit6.Text:='';

end;

procedure TForm1.SpeedButton6Click(Sender: TObject);

begin

if length(form1.Edit6.Text)=0 then exit;

if((ex.n_str=0)or(ex.n_stolb=0))then begin

ex.n_str:=form1.Image4.Picture.Bitmap.Height;

ex.n_stolb:=form1.Image4.Picture.Bitmap.width;

end;

ex.m:=1;

setlength(ex.name,ex.m);

ex.name[ex.m-1]:=form1.Edit6.Text;

ex.make_Y;

form1.UpDown2.Min:=1;

form1.UpDown2.Max:=ex.n_str;

ex.show(1,form1.image5);

end;

procedure TForm1.Button6Click(Sender: TObject);

var

numb:integer;

bin:array of byte;

i,j,k,sum:integer;

fp:array of real;

begin

setlength(fp,data.m);

setlength(data.delta_opt_m2,data.n_stolb);

setlength(bin,data.n_stolb);

numb:=strtoint(form1.Edit7.Text)-1;

form1.StringGrid1.Cells[0,0]:='№ Класу';

form1.StringGrid1.Cells[1,0]:='Ф-ція належності';

for i:=1 to data.m do

form1.StringGrid1.Cells[0,i]:=inttostr(i);

{make mid}

data.base:=data.base_opt;

for i:=0 to data.n_stolb-1 do

data.delta_opt_m2[i]:=data.delta_opt_mas[i];

data.make_SKD2(data);

data.make_X(data);

data.make_EV(data);

for i:=0 to data.n_stolb-1 do

if ((ex.Y[0,numb,i]>=data.ndk[i])and(ex.Y[0,numb,i]<=data.vdk[i]))

then bin[i]:=1 else bin[i]:=0;

for i:=0 to data.m-1 do begin

sum:=0;

for j:=0 to data.n_stolb-1 do

if bin[j]<>data.EV[i,j]then inc(sum);

fp[i]:=1-(sum/data.d_opt[i]);

form1.StringGrid1.Cells[1,i+1]:=floattostr(fp[i]);

end;

end;

procedure TForm1.Edit9Change(Sender: TObject);

var i,j,k:integer;b:tbitmap;numb:word;

begin

numb:=strtoint(form1.Edit9.text);

try

Image6.Picture.Bitmap.Assign(b_x[numb,0]);

Image7.Picture.Bitmap.Assign(b_x[numb,1]);

except

end;

end;

procedure TForm1.Button5Click(Sender: TObject);

begin

ie:=true;

tree.make_strata(tree);

tree.make_Y(tree);

tree.strata[0].TEACH(tree.strata[0]);

showmessage('jk!!!!!!!!!!!!!!');

tree.strata[0].reliz(tree.strata[0]);

end;

procedure TForm1.Edit11Change(Sender: TObject);

var num:byte;

begin

num:=strtoint(form1.Edit11.text);

if ie=false then

data.make_d2(data,num)

else tree.strata[i_count].make_D2(tree.strata[i_count],num);

end;

procedure TForm1.Edit12Change(Sender: TObject);

var num:integer;

begin

num:=strtoint(form1.Edit11.text);

data.make_d2(data,num);

end;

procedure TForm1.Button7Click(Sender: TObject);

begin

i_count:=strtoint(form1.Edit13.text);

form1.UpDown4.min:=0;

form1.UpDown4.max:=tree.strata[i_count].m;

tree.strata[i_count].reliz(tree.strata[i_count]);

end;

procedure TForm1.Button8Click(Sender: TObject);

var i:integer;

opt:real;

begin

ie:=true;

tree.make_strata(tree);

tree.make_Y(tree);

form1.ProgressBar1.Min:=0;

form1.ProgressBar1.Max:=25*tree.count;

form1.ProgressBar1.Position:=0;

opt:=0;

//tree.strata[0].TEACH(tree.strata[0]);

//showmessage('jk!!!!!!!!!!!!!!');

//tree.strata[0].reliz(tree.strata[0]);

form1.Label2.Caption:='';

if form1.RadioButton3.Checked=true then begin

for i:=0 to tree.count-1 do begin

form1.ProgressBar1.Position:=(i+1)*25;

tree.strata[i].TEACH(tree.strata[i]);

opt:=opt+tree.strata[i].E_opt;

end;

form1.Label2.Caption:='НАВЧАННЯ ЗАВЕРШЕНО';

end

else begin

for i:=0 to tree.count-1 do begin

form1.ProgressBar1.Position:=(i+1)*25;

tree.strata[i].TEACH(tree.strata[i]);

tree.strata[i].TEACH2(tree.strata[i]);

opt:=opt+tree.strata[i].E_opt;

end;

end;

opt:=opt/tree.count;

form1.Edit14.Text:=floattostr(opt);

form1.Label2.Caption:='НАВЧАННЯ ЗАВЕРШЕНО';

end;

end.

Размещено на Allbest.ru

...

Подобные документы

  • Огляд методів розпізнавання образів. Основні ідеї інформаційно-екстремального методу розпізнавання рукописних символів. Критерій оптимізації параметрів функціонування даної системи. Інформаційне та програмне забезпечення обробки рукописних символів.

    дипломная работа [291,0 K], добавлен 14.10.2010

  • Комп’ютерне моделювання системи сегментації та розпізнавання облич на зображеннях. Підвищення швидкодії моделювання за кольором шкіри та покращення якості розпізнавання при застосуванні робастних boosting-методів. Розробка алгоритмів функціонування.

    дипломная работа [1,6 M], добавлен 02.07.2014

  • Апаратна організація Web-серверу гнучкої комп’ютеризованої системи в середовищі Linux Debian. Забезпечення обміну даними між персональним комп’ютером і зовнішніми вимірювальними приладами, прийом/передача даних крізь USB-інтерфейс в системи обміну даними.

    дипломная работа [3,3 M], добавлен 25.10.2012

  • Огляд інтелектуальних принципів організації процесу розпізнавання символів. Розробка системи безклавіатурного введення документів у комп’ютер. Опис і обґрунтування проектних рішень; розрахунки і експериментальні дані; впровадження системи в експлуатацію.

    дипломная работа [182,5 K], добавлен 07.05.2012

  • Класифікація програмного забезпечення, системне та прикладне забезпечення, інструментальні системи. Програмна складова комп'ютерної системи, опис алгоритмів розв'язання певної задачі. Класифікація операційних систем, основні групи прикладних програм.

    презентация [945,0 K], добавлен 01.04.2013

  • Класифікація об'єктно-орієнтованих мов програмування. Розробка алгоритмічного та програмного забезпечення комп'ютерної системи управління процесом випалювання будівельних матеріалів. Тестування програмного забезпечення, оцінка його ефективності.

    курсовая работа [1,6 M], добавлен 25.04.2015

  • Економічна інформація, її види та властивості. Апаратне і програмне забезпечення ПК. Програмне забезпечення стаціонарних комп’ютерів. Комп’ютерні мережі, загальна характеристика глобальної мережі Інтернет. Напрямки використання комп’ютерної техніки.

    контрольная работа [28,0 K], добавлен 06.10.2011

  • Визначення функціонального профілю захищеності комп’ютеризованої системи від несанкціонованого доступу і вимог до захищеності інформації від витоку технічними каналами. Вибір та обґрунтування необхідних фізичних та організаційних засобів захисту.

    курсовая работа [2,4 M], добавлен 22.11.2014

  • Функціонально розподілені системи. Паралельні комп’ютери та їх продуктивність. Методи розподілення доступу до спільної пам’яті в багатопроцесорних системах. Системи з розподіленою пам’яттю. Класичні матричні системи, метакомп’ютери та трансп’ютери.

    курсовая работа [485,9 K], добавлен 20.06.2010

  • Аналіз системних вимог та обґрунтування методу проектування системи. Алгоритм розв'язання задачі. Інформаційне, технічне, програмне та організаційне забезпечення. Вибір методу проектування архітектури та моделі функціонування системи "клієнт-банк".

    дипломная работа [3,1 M], добавлен 12.05.2017

  • Роль комп'ютерної техніки в різних сферах сучасного суспільства, необхідність його комп’ютеризації. Поняття про програмне забезпечення, складові, коротка характеристика його основних типів. Опис, призначення і можливості електронних таблиць MS Excel.

    реферат [2,3 M], добавлен 10.10.2009

  • Структура сучасних систем виявлення вторгнень (СВВ), аналіз її методів і моделей. Характеристика основних напрямків розпізнавання порушень безпеки захищених систем в сучасних СВВ. Перелік недоліків існуючих СВВ та обґрунтування напрямків їх вдосконалення.

    реферат [467,9 K], добавлен 12.03.2010

  • Розробка навчального курсу в системі дистанційного навчання Moodle для спеціальності "Гнучкі комп'ютеризовані системи та робототехніка". Складання логіко-функціональної схеми роботи програмного забезпечення: структура, функціональні модулі, інтерфейс.

    дипломная работа [3,2 M], добавлен 22.10.2012

  • Настільні видавничі системи як програмне забезпечення для персональних комп'ютерів, аналіз основних функцій. Аналіз діяльності компанії Ventura. Особливості верстки Adobe Page Maker. Знайомство з тенденціями розвитку настільних видавничих систем.

    контрольная работа [26,8 K], добавлен 12.02.2014

  • Актуальність сучасної системи оптичного розпізнавання символів. Призначення даних систем для автоматичного введення друкованих документів в комп'ютер. Послідовність стадій процесу введення документу в комп'ютер. Нові можливості програми FineReader 5.0.

    курсовая работа [4,5 M], добавлен 29.09.2010

  • Класифікація комп’ютерних мереж і топологій. Побудова функціональної схеми локальної мережі. Організація каналів зв’язку. Вибір способу керування мережею. Вибір конфігурації робочих станцій. Програмне забезпечення локальної мережі та захист інформації.

    курсовая работа [2,7 M], добавлен 15.06.2015

  • Поняття та характеритсики комп'ютерних мереж. Огляд існуючих варіантів побудови інформаційної системи для торгівельного підприємства. Побудова локальної мережі, загальної структури інформаційної системи, бази даних. Аналіз санітарно-гігієнічних умов.

    курсовая работа [624,4 K], добавлен 19.05.2015

  • Вивчення настільної видавничої системи, комплексу комп'ютерних апаратних і програмних засобів, які слугують для друкарської підготовки оригінал-макетів продукції. Аналіз кольороподілу і сканування зображень, корекції з елементами комп'ютерної графіки.

    реферат [404,2 K], добавлен 13.05.2011

  • База даних як складова частина інформаційної системи. Загальні принципи створення контролерів автоматизації MS Office. Розробка гнучкої комп'ютеризованої системи, призначеної для автоматизації розрахунку учбового навантаження. Моделі представлення даних.

    дипломная работа [4,7 M], добавлен 26.10.2012

  • Характеристика програмної взаємодії людини з комп'ютером. Визначення функціональних та експлуатаційних потреб при голосовому управлінні. Реалізація програмного забезпечення. Розробка тестів та тестування системи. Аналіз ефективності даної програми.

    курсовая работа [2,8 M], добавлен 15.10.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.