📄 main.cpp
字号:
// Program wykonali:
// Szot Karol
// Suchenia Karol
// gr.503A
#include <iostream>
#include <conio.h>
#include <fstream>
#include "CHopfield.h"
#include <cstdlib>
#define int2bool(x) (x==0) ? 0 : 1
using namespace std;
static int Rysuj(int, int);
void Rys_Figure(int, bool = false);
bool Pobierz(char *, CHopfield *);
int ind = 0;
bool bData[NUMDATA][RESY][RESX];
static int Rysuj(int x, int y) {
bData[ind][y][x] = !(bData[ind][y][x]);
Rys_Figure(ind, true);
return 1;
}
void Rys_Figure(int ind, bool pause) {
for (int i=0;i<RESY;i++) {
for (int j=0;j<RESX;j++) {
cout << ((bData[ind][i][j]) ? '.' : ' ');
}
cout << endl;
}
cout << endl;
if (pause) _getch();
}
bool Pobierz(char *filename, CHopfield *net) {
// sprawdzanie czy isnieja dane
ifstream data(filename);
if (!data) {
cout << "Blad czytania pliku..." << endl;
return false;
} else cout << "Wczytanie danych...";
// Zezwolenie sieci czytania danych
net->ReadData(filename);
// teraz czyta dane dla siebie
for (int i=0;i<NUMDATA;i++) {
for (int j=0;j<RESY;j++) {
for (int k=0;k<RESX;k++) {
int temp;
data >> temp;
bData[i][j][k] = int2bool(temp);
}
}
}
cout << "Koniec" << endl;
for(int i=0;i<NUMDATA;i++) Rys_Figure(i, true);
return true;
}
int main() {
CHopfield net;
// Wywolanie funkcji
net.SetCallback(Rysuj);
if (!Pobierz("wzory.txt", &net)) return 0;
cout << "Trenowanie sieci...";
net.Train();
cout << "Koniec\n";
if (!Pobierz("zaklocenia.txt", &net)) return 0;
cout << "Wybierz obraz do testowania [1-3]: ";
cin >> ind;
if (ind > NUMDATA) {
cout << "Bledne wczytanie danych 1" << endl;
ind = 0;
} else ind -= 1;
net.Run(ind);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -