Студопедия
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Завдання: Створити програму, що демонструє роботу двонаправленої асоціативної пам’яті.

Читайте также:
  1. Виконати письмово контрольну роботу.
  2. Для студентів які не вчасно виконали самостійну роботу
  3. Для студентів які не вчасно виконали самостійну роботу
  4. Для студентів які не вчасно виконали самостійну роботу
  5. За роки війни якісний склад кадрів ВТУ різко погіршав. Це пояснюється залученням на роботу осіб, що не підлягають призову в армію за станом здоров'я і зросту, а також жінок.
  6. Завдання на лабораторну роботу
  7. ЗАВДАННЯ НА ЛАБОРАТОРНУ РОБОТУ
  8. Завдання на практичну роботу
  9. Завдання що виносяться на самостійну роботу студента
  10. Завдання що виносяться на самостійну роботу студента

 

Двонаправлена асоціативна пам’ять – нейронна мережа, в якій зображення можуть подаватися як на шар Х, так і на шар Y елементів. При цьому не передбачається, що зображення подаються одночасно.

 

Якщо подано зображення SP на шар Х, то на виході у-нейронів з’являється ТР зображення і навпаки.

 

Текст програми:

#include <vcl.h>

#pragma hdrstop

#include "Unit1_r3.h"

#include "Unit1.h"

#include "Unit2.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

int S1m[42];

int S2m[42];

int S3m[42];

int t1m[30];

int t2m[30];

int t3m[30];

int W[30][20];

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

for(int i=1; i<43; i++)

{

S1m[i]=-1; S2m[i]=-1; S3m[i]=-1;

t1m[i]=-1; t2m[i]=-1; t3m[i]=-1;

}

}

//---------------------------------------------------------------------------

void __fastcall TForm1::N6Click(TObject *Sender)

{ Form1->Close();}

//---------------------------------------------------------------------------

void __fastcall TForm1::N2Click(TObject *Sender)

{

int M1[42] = { 1,-1,-1,-1,1,1,-1,-1,-1,1,1,-1,-1,-1,1,1,-1,-1,-1,1,-1,1,-1,1,-1,-1,-1,1,-1,-1};

int M2[42] = {1,1,1,1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1,-1,-1,1,-1,-1,-1,-1,1,-1,-1,1,1,1,1,1};

int Mt1[30] = {-1,1,-1,-1,-1,-1,1,-1,1,1,1,1,-1,-1,1,-1,-1,1,-1,-1};

int Mt2[30] = {-1,-1,1,-1,-1,1,-1,-1,1,1,1,1, -1,1,-1,-1, -1,-1,1,-1};

int j=0,k=1;

for(int i=1; i<43; i++)

{

j++;

if(j>5)

{ j=1; k++; }

S1m[i] = M1[i-1];

if(S1m[i]==1) StringGrid1->Cells[j][k] = "$";

else StringGrid1->Cells[j][k] = " ";

 

S2m[i] = M2[i-1];

if(S2m[i]==1) StringGrid3->Cells[j][k] = "$";

else StringGrid3->Cells[j][k] = " ";

}

j=0;k=1;

for(int i=1; i<31; i++)

{

j++;

if(j>4)

{ j=1; k++; }

t1m[i] = Mt1[i-1];

if(t1m[i]==1) StringGrid2->Cells[j][k] = "$";

else StringGrid2->Cells[j][k] = " ";

t2m[i] = Mt2[i-1];

if(t2m[i]==1) StringGrid4->Cells[j][k] = "$";

else StringGrid4->Cells[j][k] = " ";

}

}

//---------------------------------------------------------------------------

void __fastcall TForm1::N3Click(TObject *Sender)

{

for(int j=1; j<31; j++)

for(int i=1; i<21; i++)

{ W[j][i]=t1m[i]*S1m[j]+t2m[i]*S2m[j];

ІtringGrid5->Cells[i][j]=W[j][i]; }

}

//---------------------------------------------------------------------------

void __fastcall TForm1::FormCreate(TObject *Sender)

{

for(int i=1; i<31; i++)

{ StringGrid5->Cells[i][0] = i;

StringGrid5->Cells[0][i] = i;}

}

//---------------------------------------------------------------------------

void __fastcall TForm1::StringGrid1SelectCell(TObject *Sender, int ACol,

int ARow, bool &CanSelect)

{

if(StringGrid1->Cells[ACol][ARow]=="")

{ StringGrid1->Cells[ACol][ARow]="$";

S1m[(ARow-1)*5+ACol]=1; }

else

{ StringGrid1->Cells[ACol][ARow]="";

S1m[(ARow-1)*5+ACol]= -1; }

}

//---------------------------------------------------------------------------

void __fastcall TForm1::StringGrid3SelectCell(TObject *Sender, int ACol,

int ARow, bool &CanSelect)

{

if(StringGrid3->Cells[ACol][ARow]=="")

{ StringGrid3->Cells[ACol][ARow]="$";

S2m[(ARow-1)*5+ACol]=1; }

else

{ StringGrid3->Cells[ACol][ARow]="";

S2m[(ARow-1)*5+ACol]= -1; }

}

//---------------------------------------------------------------------------

void __fastcall TForm1::StringGrid2SelectCell(TObject *Sender, int ACol,

int ARow, bool &CanSelect)

{

if(StringGrid2->Cells[ACol][ARow]=="")

{ StringGrid2->Cells[ACol][ARow]="$";

t1m[(ARow-1)*4+ACol]=1; }

else

{ StringGrid2->Cells[ACol][ARow]="";

t1m[(ARow-1)*4+ACol]= -1; }

}

//---------------------------------------------------------------------------

void __fastcall TForm1::S1Click(TObject *Sender)

{

int dopmas[21];

int l=0,k=1;

for(int i=0; i<22;i++)

dopmas[i]=0;

for(int j=1; j<21; j++)

{

for(int i=1; i<31; i++)

{

dopmas[j] = dopmas[j]+ W[i][j]*S3m[i];

}

l++;

if(l>4)

{ l=1; k++; }

if(dopmas[j]>0) StringGrid7->Cells[l][k]="$";

else StringGrid7->Cells[l][k]="";

}

}

//---------------------------------------------------------------------------

void __fastcall TForm1::StringGrid7SelectCell(TObject *Sender, int ACol,

int ARow, bool &CanSelect)

{

if(StringGrid7->Cells[ACol][ARow]=="") { StringGrid7->Cells[ACol][ARow]="$";

t3m[(ARow-1)*4+ACol]=1; }

else { StringGrid7->Cells[ACol][ARow]=""; t3m[(ARow-1)*4+ACol]= -1; }

}

//---------------------------------------------------------------------------

void __fastcall TForm1::N9Click(TObject *Sender)

{ Form1->Close();}

//---------------------------------------------------------------------------

void __fastcall TForm1::N5Click(TObject *Sender)

{

int dopmas[31];

int l=0,k=1;

for(int i=0; i<32;i++)

dopmas[i]=0;

for(int j=1; j<31; j++)

{

for(int i=1; i<21; i++)

{ dopmas[j] = dopmas[j]+ W[j][i]*t3m[i]; }

l++;

if(l>5) { l=1; k++; }

if(dopmas[j]>0) StringGrid6->Cells[l][k]="$";

else StringGrid6->Cells[l][k]="";

}

}

//---------------------------------------------------------------------------

void __fastcall TForm1::N8Click(TObject *Sender)

{ AboutBox->ShowModal();}

//---------------------------------------------------------------------------

void __fastcall TForm1::N7Click(TObject *Sender)

{ Form2->ShowModal(); }

//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)

{ Form1->Close(); }

//---------------------------------------------------------------------------


Результат роботи програми:

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




Дата добавления: 2014-12-18; просмотров: 118 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2025 год. (0.012 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав