Пространство имен уже содержит определение для класса - C#
Формулировка задачи:
Привет всем!
Опишу свою проблему. Пишу дипломную работу, и в практической части мне нужно написать программную реализацию неокогнитрона. Решил взять эту тему, хотя, конечно, сомневался, смогу ли я написать программу...
Решил писать на C#. На данный момент создана форма, описаны интерфейсы нейронов и плоскостей. Интерфейсы нейронов реализовал с помощью наследования - класс-потомок Neuron и от него производные классы "SCell", "C", "Brake", "Lateral"(изначально назвал SNeuron, CNeuron, BrakeNeuron, LateralNeuron, но выдавало ошибку, которая в сабже, для первых трех классов). С плоскостями так же.
Однако, после переименования классов ошибка "Пространство имен уже содержит определение для класса" осталась. Что я не так делаю?
Вот список ошибок:
1>f:\landik\документы\visual studio 2012\Projects\Неокогнитрон\Неокогнитрон\Neuron.cs(124,18,124,19): error CS0101: Пространство имен "Неокогнитрон" уже содержит определение для "C"
1>f:\landik\документы\visual studio 2012\Projects\Неокогнитрон\Неокогнитрон\Neuron.cs(156,18,156,23): error CS0101: Пространство имен "Неокогнитрон" уже содержит определение для "Brake"
1>f:\landik\документы\visual studio 2012\Projects\Неокогнитрон\Неокогнитрон\SNeuron.cs(9,11,9,16): error CS0101: Пространство имен "Неокогнитрон" уже содержит определение для "SCell"
Вот файл Neuron.cs, если что....правда, тут 260 строк:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Неокогнитрон
{
public class Neuron
{
protected double[,] inputs;
protected double synapse;
protected double output;
public Neuron()
{
inputs = new double[4, 4];
for (int i = 0; i < 4; i++)
for (int j = 0; j < 4; j++)
inputs[i, j] = 0;
synapse = 0;
output = 0;
}
public void setInputs(int a, int b, int c, int d, double[,] mas)
{
int k = 0;
int n = 0;
for (int i = a; i < b; i++)
{
for (int j = c; j < d; j++)
{
inputs[k, n] = mas[i, j];
n++;
}
k++;
n = 0;
}
}
public double[,] getInputs()
{
return inputs;
}
public double getSynapse()
{
return synapse;
}
};
public class SCell : Neuron
{
private double[,] SSynapses;
private double lateralSynapse;
public SCell()
{
lateralSynapse = 0;
SSynapses = new double[4, 4];
for (int i = 0; i < 4; i++)
for (int j = 0; j < 4; j++)
SSynapses[i, j] = 0;
}
public void setSSynapses(int a, int b, int c, int d, double[,] mas)
{
int k = 0;
int n = 0;
for (int i = a; i < b; i++)
{
for (int j = c; j < d; j++)
{
SSynapses[k, n] = mas[i, j];
n++;
}
k++;
n = 0;
}
}
public void setLateralSynapse(double num)
{
lateralSynapse = num;
}
public double getLateralSynapse()
{
return lateralSynapse;
}
public double getSOutput(double num1, double num2, double output1, double output2)
{
double E = 0;
double I = 0;
double NET = 0;
for (int i = 0; i < 4; i++)
for (int j = 0; j < 4; j++)
E += (SSynapses[i, j] * inputs[i, j]);
I = ((num1 * output1) + (num2 * output2));
NET = (((1 + E) / (1 + I)) - 1);
if (NET > 0)
output = NET;
else
output = 0;
return output;
}
}
public class C : Neuron
{
private double cSynapse;
public void setCSynapse(double num)
{
cSynapse = num;
}
public double getCOutput()
{
for (int i = 0; i < 4; i++)
for (int j = 0; j < 4; j++)
if (inputs[i, j] > 0)
{
output = 1;
break;
}
return output;
}
public void startChangeCSynapse(double q1, double syn, double outp)
{
synapse = (q1 * syn * outp);
}
public void ChangeCSynapse(double q, double syn, double outp)
{
synapse = (q * syn * outp);
}
}
public class Brake : Neuron
{
private double[,] BSynapses;
public Brake()
{
BSynapses = new double[4, 4];
for (int i = 0; i < 4; i++)
for (int j = 0; j < 4; j++)
BSynapses[i, j] = 0;
}
public void setBSynapses(int a, int b, int c, int d, double[,] mas)
{
int k = 0;
int n = 0;
for (int i = a; i < b; i++)
{
for (int j = c; j < d; j++)
{
BSynapses[k, n] = mas[i, j];
n++;
}
k++;
n = 0;
}
}
public double getBOutput()
{
for (int i = 0; i < 4; i++)
for (int j = 0; j < 4; j++)
output += Math.Pow((BSynapses[i, j] * inputs[i, j]), 2);
return Math.Sqrt(output);
}
public void startChangeBSynapse(double q)
{
synapse = (q * output);
}
public void changeBSynapse(double q)
{
double sum = 0;
for (int i = 0; i < 4; i++)
for (int j = 0; j < 4; j++)
sum += (BSynapses[i, j] * inputs[i, j]);
synapse = ((q * sum) / (2 * output));
}
}
public class Lateral : Neuron
{
private double[,] LSynapses;
private double lInhib;
public Lateral()
{
lInhib = 0;
LSynapses = new double[4, 4];
for (int i = 0; i < 4; i++)
for (int j = 0; j < 4; j++)
LSynapses[i, j] = 0;
}
public void setLSynapses(int a, int b, int c, int d, double[,] mas)
{
int k = 0;
int n = 0;
for (int i = a; i < b; i++)
{
for (int j = c; j < d; j++)
{
LSynapses[k, n] = mas[i, j];
n++;
}
k++;
n = 0;
}
}
public void setLInhib()
{
for (int i = 0; i < 4; i++)
for (int j = 0; j < 4; j++)
lInhib += (LSynapses[i, j] * inputs[i, j]);
}
public double getLOutput(double num)
{
output = (((1 + num) / (1 + lInhib)) - 1);
return output;
}
}
}Решение задачи: «Пространство имен уже содержит определение для класса»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Неокогнитрон
{
public partial class Form1 : Form
{
Bitmap image;
public double[,] pixels;
public void printing()
{
int var;
int n = image.Width;
int m = image.Height;
pixels = new double[n, m];
for (int k = 0; k <= 11; k++)
listBox1.Items.Add(" ");
for (int i = 0; i <= 11; i++)
for (int j = 0; j <= 11; j++)
{
var = image.GetPixel(i, j).R;
if (var >= 250)
var = 0;
else
var = 1;
pixels[i, j] = var;
listBox1.Items[j] = listBox1.Items[j] + " " + Convert.ToString(var);
}
}
public void Neocognitron(double[,] array)
{
Simple[,] splanes;
Complex[,] cplanes;
double[,] sOutputs;
double[,] lOutputs;
double[,] cOutputs;
double[,] bOutputs;
double[,] lSynapses;
double[,] cSynapses;
double[,] bSynapses;
double q = 10;
double q1 = 5;
int layers = 4;
int epochs = 100;
int i, j;
splanes = new Simple[4, 12];
cplanes = new Complex[4, 12];
sOutputs = new double[12, 12];
lOutputs = new double[12, 12];
cOutputs = new double[12, 12];
bOutputs = new double[12, 12];
lSynapses = new double[12, 12];
cSynapses = new double[12, 12];
bSynapses = new double[12, 12];
}
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
listBox1.Items.Clear();
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
image = new Bitmap(openFileDialog1.FileName);
pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
pictureBox1.Image = image;
pictureBox1.Invalidate();
}
printing();
}
}
}