|
0 / 0 / 0
Регистрация: 14.04.2014
Сообщений: 6
|
|
нужно нарисовать блок-схему01.06.2014, 21:16. Показов 546. Ответов 0
Метки нет (Все метки)
Помогите пожалуйста нарисовать хотя бы примерную блок-схему для данной программы
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.IO; using System.Text; using System.Windows.Forms; namespace binpic { public partial class Form1 : Form { const int w0 = 7; const int h0 = 8; //размер рисунка const int LO = -1; const int HI = 1; const int T0 = 100; const int maxIT = 1000; const int nRis = 8;//максимальное число эталонов, не более 0,15*SL0 const int SL0 = w0 * h0; //длина вектора данных int[,] bv = new int[nRis, SL0]; double[,] w = new double[SL0, SL0]; double[] s = new double[SL0]; int[] mark = new int[SL0]; double[] en = new double[SL0]; int[] v0 = new int[SL0]; int[] v0n = new int[SL0]; string[] otvet = new string[nRis]; double T; int pixel_value(int x, int y) { Color clr; int pp; clr = (pictureBox1.Image as Bitmap).GetPixel(x, y); if((clr.R.Equals(0))&&(clr.G.Equals(0))& &(clr.B.Equals(0))) pp=HI; else pp=LO; return pp; } void get_energy() { int j; for (j = 0; j < SL0; j++) { en[j] = get_neuron_energy(j); } } double get_neuron_energy(int num) { double e = 0.0; int j; for (j = 0; j < SL0; j++) { e += w[j, num] * v0[j] * v0[num]; } e = -0.5 * e; e -= v0n[num] * v0[num]; return e; } double get_probability_change(double d_en) { return 1.0 / (1.0 + Math.Exp(d_en / T)); } int get_probability_answer(double p) { var rnd = new Random(); double pp = 1.0 * rnd.Next(100) / 100; return ((p <= 0.0) ? 0 : (p >= 1.0) ? 1 : (pp < p) ? 1 : 0); } void neuron_change_output(int num) { double de = 0.0; double e = 0.0; double p = 0.0; v0[num] = (get_probability_answer(0.5) > 0) ? HI : LO; e = get_neuron_energy(num); de = e - en[num]; if (de >= 0) { p = get_probability_change(de); if (get_probability_answer(1 - p) == 1) { v0[num] = v0n[num]; } } } void temperature_change(int t) { T = T0 / (1.0 + Math.Log(t)); } private void button1_Click(object sender, EventArgs e) { T = T0; int shag = 0; for (int i = 0; i < SL0; i++) for (int j = 0; j < SL0; j++) w[i, j] = 0; for (int j = 0; j < SL0; j++) { for (int i = 0; i < SL0; i++) { if (i == j) { w[i, i] = 0; } else { w[j, i] += v0[i] * v0[j]; } } } int stab = 0; for (int i = 0; (i < maxIT) && (stab == 0); i++) { for (int j = 0; j < SL0; j++) v0n[j] = v0[j]; get_energy(); for (int j = 0; j < SL0; j++) mark[j] = 0; for (int nomark = SL0; nomark > 0; ) { for (int j = 0; j < SL0; j++) { if (mark[j] == 0) { if (get_probability_answer(1.0 / nomark) == 1) { nomark--; mark[j] = 0; neuron_change_output(j); } } } } stab = 1; for (int j = 0; j < SL0; j++) stab *= ((v0[j] - v0n[j] == 0) ? 1 : 0); T = T0 / (1.0 + Math.Log(i)); shag++; } string s = ""; for (int i = 0; i < SL0; i++) s += (v0[i]).ToString(); label1.Text = s; label3.Text = "Выполнено " + shag.ToString() + " шагов"; } public Form1() { InitializeComponent(); } private void button1_Click_1(object sender, EventArgs e) { folderBrowserDialog1.Description = "Выбор каталога шаблонов"; string folderName = ""; if (folderBrowserDialog1.ShowDialog() == DialogResult.OK) { folderName = folderBrowserDialog1.SelectedPath; string[] folds=Directory.GetFiles(@folderName,"*. bmp",SearchOption.AllDirectories); Bitmap[] bmpArr = new Bitmap[folds.Length]; for (int i = 0; i < bmpArr.Length; i++) { if (i < nRis) { bmpArr[i] = new Bitmap(folds[i]); pictureBox1.Image = bmpArr[i]; int ii = 0; for (int j = 0; j < w0; j++) for (int k = 0; k < h0; k++) { bv[i, ii] = pixel_value(j, k); ii++; } int start=folds[i].LastIndexOf("\\"); int end = folds[i].LastIndexOf("."); otvet[i] = folds[i].Substring(start + 1, end - start); } else break; } } label1.Text = "Шаблоны считаны"; button1.Enabled = false; button2.Enabled = true; } int poiskRis(int k) { int p = 0; for (int i = 0; i < SL0; i++) if (v0[i] != bv[k, i]) p++; if (p < 6) p = 1; else p = 0; return p; } private void button3_Click(object sender, EventArgs e) { T = T0; int ii = 0; for (int j = 0; j < w0; j++) for (int k = 0; k < h0; k++) { v0[ii] = pixel_value(j, k); ii++; } int shag = 0; for (int i = 0; i < SL0; i++) for (int j = 0; j < SL0; j++) w[i, j] = 0; for (int j = 0; j < SL0; j++) { for (int i = 0; i < SL0; i++) { if (i == j) { w[i, i] = 0; } else { w[j, i] += v0[i] * v0[j]; } } } int stab = 0; for (int i = 0; (i < maxIT) && (stab == 0); i++) { for (int j = 0; j < SL0; j++) v0n[j] = v0[j]; get_energy(); for (int j = 0; j < SL0; j++) mark[j] = 0; for (int nomark = SL0; nomark > 0; ) { for (int j = 0; j < SL0; j++) { if (mark[j] == 0) { if (get_probability_answer(1.0 / nomark) == 1) { nomark--; mark[j] = 0; neuron_change_output(j); } } } } stab = 1; for (int j = 0; j < SL0; j++) stab *= ((v0[j] - v0n[j] == 0) ? 1 : 0); T = T0 / (1.0 + Math.Log(i)); shag++; } string s = ""; int poisk=-1; for (int i = 0; i < nRis; i++) if(poiskRis(i)==1) poisk=i; if(poisk==-1) s="не знаю"; else s=otvet[poisk]; label3.Text = s; label4.Text = "Выполнено " + shag.ToString() + " шагов"; } private void button2_Click(object sender, EventArgs e) { openFileDialog1.Filter = "Только BMP|*.bmp"; if (openFileDialog1.ShowDialog() == DialogResult.OK) { pictureBox1.Image = Image.FromFile(openFileDialog1.FileName) ; button3.Enabled = true; label3.Text = ""; label4.Text = ""; } } } }
0
|
|
| 01.06.2014, 21:16 | |
|
Ответы с готовыми решениями:
0
Как лучше нарисовать граф (блок-схему) Нарисовать блок-схему по коду на C# Нарисовать блок схему к программе и расставить комментарии |
| 01.06.2014, 21:16 | |
|
Помогаю со студенческими работами здесь
1
Нарисовать блок-схему (Сумма всех цифр) Нужно составить блок-схему к программе с массивом (программа написана) Нужно нарисовать блок-схему !! Нужно нарисовать блок схему по коду
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|