С Новым годом! Форум программистов, компьютерный форум, киберфорум
C#: ИИ, нейросети, ML, агенты
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/76: Рейтинг темы: голосов - 76, средняя оценка - 4.93
10 / 10 / 3
Регистрация: 19.03.2010
Сообщений: 679
Записей в блоге: 2

Нейронные сети: Выполнить прогнозирование на завтра. Обучить программу

18.12.2012, 09:16. Показов 14472. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем! Помогите с программой на C#, необходимо выполнить задание с помощью прогнозирование в нейронных сетях.

Входные данные:
Прогноз за 3 дня

Выход:
Прогноз на завтра получить

+ систему сделать обучаемую...

Есть у кого наработки? примеры? Пожалуйста!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.12.2012, 09:16
Ответы с готовыми решениями:

Прогнозирование курса гривны к 4 другим валютам методом скользящих окон, используя нейронные сети
Всем привет. Задача состоит в прогнозировании курса гривны к 4 другим валютам методом скользящих окон, используя нейронные сети. Все это...

Нейронные сети. Ошибка при обработке изоброжения для транировки сети
Здравствуйте, Работа над нейросетью в срде матлаб. На моменте с работой базой данных изображений возникла проблема. Исходый код: ...

Нейронные сети (адаптивные сети)
нужен исходник 3д или 2д адаптивной сетки для небольшого использования в своей работе (растягивалась что бы на какуюнить фигуру на...

18
36 / 19 / 1
Регистрация: 14.12.2012
Сообщений: 59
18.12.2012, 11:35
Наработки есть у Microsoft, называется Microsoft Analysis Service, ставится вместе с SQL Server. Реализованы всякие алгоритмы классификации, деревья решений, есть и нейронные сети. Есть плагин для Excel (Microsoft SQL Server 2012 Data Mining Add-ins for Microsoft Office 2010), в котором очень удобно экспериментировать со всем этим добром, даже код писать не нужно - под каждую задачу свой пошаговый мастер.
0
 Аватар для mikhail_g
192 / 147 / 27
Регистрация: 02.05.2011
Сообщений: 467
18.12.2012, 11:36
Почему именно C# ? Для решения таких задач имеются готовые библиотеки и даже UI компоненты в MatLab.

По теме: если нет предложений в принципе, то я предлагаю вам общий подход к таким задачам (сам я такие не решал, но в принципе это то что надо я думаю):
Если вам надо выбрать всё самому, то используйте многолосйный перцептрон с тремя входами и одним выходом (ссответсвенно если вам нужен прогноз на завтра, на входы подаёте прогноз на позавчера, на вчера, и на сегодня. Три слоя получится). Общий подход к обучению для решения подобных задач - метод обратной ошибки (гугл поможет найти инфу по нему), т.е. грубо говоря вы высчитываете зависимость между тремя значениями поданными на входы, а на выходе снимаете результат в виде прогноза на следующий день. Мат модели и алгоритмы обучения найдет Гугл)
1
10 / 10 / 3
Регистрация: 19.03.2010
Сообщений: 679
Записей в блоге: 2
18.12.2012, 11:42  [ТС]
Это просто лаба, ничего большего. Желательно исходники бы.

И как ее обучить? тоже непонятно...
0
 Аватар для mikhail_g
192 / 147 / 27
Регистрация: 02.05.2011
Сообщений: 467
18.12.2012, 12:33
http://habrahabr.ru/post/140495/

Всё что нашёл) Что у вас за прогнозы? В смысле что вы прогнозируете? Рост курса валюты, температуру на завтра?
1
10 / 10 / 3
Регистрация: 19.03.2010
Сообщений: 679
Записей в блоге: 2
18.12.2012, 12:38  [ТС]
Прогноз погоды желательно =))))) А что проще метода нет?Оо ппц, я ж не разберу его)
0
 Аватар для mikhail_g
192 / 147 / 27
Регистрация: 02.05.2011
Сообщений: 467
18.12.2012, 15:10
Если прогноз погоды содержит несколько факторов - например давление, температура, скорость ветра и они связаны между собой, то для этого нужно использовать более сложную модель сети, у которой как минимум столько же выходов сколько параметров. Например (t, p, V) - соответсвенно имеем три выхода. Почитать про прогнозирование погоды можно здесь (del).

Я лично не занимался никогда прогнозирование, но я так понимаю, что прогнозирование - это ничто иное как аппроксимация (сглаживание) по заданными точкам с учётом заданного метода (например аппроксимация сплайнами и т.п.). В процессе обучения нейронная сеть получает значения параметров в виде ряда (изменение темепературы влажности и т.п. за последние 3 дня с интервалом в один день).

P.S> я могу и ошибаться. Если вам надо будет распознать образ всегда пожалуйста)
1
10 / 10 / 3
Регистрация: 19.03.2010
Сообщений: 679
Записей в блоге: 2
18.12.2012, 17:30  [ТС]
Спасибо за ответ) более менее ясно стало про прогнозирование.

Кстати, образ нужно распознать! Можешь скинуть пример на C# распознование образа с помощью нейронной сети? и чтобы обучаема была)))))
0
10 / 10 / 3
Регистрация: 19.03.2010
Сообщений: 679
Записей в блоге: 2
18.12.2012, 18:26  [ТС]
Знаете нашел вот программку небольшую, по распознованию цифр! В ней не хватает только этапа обучения!( Точнее он там есть, но я не могу по коду понять как он работает... можете взглянуть и помочь? там всего 1 форма
Вложения
Тип файла: zip 214887.zip (772.1 Кб, 314 просмотров)
0
10 / 10 / 3
Регистрация: 19.03.2010
Сообщений: 679
Записей в блоге: 2
19.12.2012, 05:44  [ТС]
mikhail_g, помоги пожалуйста!))) Призываю тебя!)))
0
 Аватар для mikhail_g
192 / 147 / 27
Регистрация: 02.05.2011
Сообщений: 467
19.12.2012, 12:33
Я распознаю образы в матлабе) Просто могу подсказать с алгоритмами и т.п, по скольку знаком неплохо с ними. (не гугл конечно) Гляну прогу, займет некоторое время
1
 Аватар для mikhail_g
192 / 147 / 27
Регистрация: 02.05.2011
Сообщений: 467
19.12.2012, 12:55
Я глянул прогу, всё понятно. Обучение происходит из файла ideal.txt / Перцептрон состоит из 5 нейронов - каждый нейрон содержит цифру (1-5), соответственно распознать можно только цифру от одного до пяти. Каждый нейрон обозначен как массив X. С точки зрения математики правильнее назвать Х вектором - одномерный массив. Цифра задается/распознается с помощью поля 9х9, чтобы было понятно я немного изменил ваш файл (строчку представил в виде массивов 9на9) ideal.txt и приложил его. Для обучения вам необходимо класть все в строчку как в исходном файле ideal.txt, так написан алгоритм чтения из файла.
Далее я читать не стал, но процесс распознавания вам вроде бы ясен.
Вложения
Тип файла: txt ideal2.txt (500 байт, 115 просмотров)
1
10 / 10 / 3
Регистрация: 19.03.2010
Сообщений: 679
Записей в блоге: 2
19.12.2012, 13:45  [ТС]
Спасибо! Так, файл обновляю да?

Про обучение недогоняю.... ПРОГРАММИСТЫ C# Отзовитесь блин! Помогите доделать обучение!)

Так кстати, есть файл Input это ж по сути и есть файл обучения? или нет? т.е. входные данные
0
 Аватар для mikhail_g
192 / 147 / 27
Регистрация: 02.05.2011
Сообщений: 467
19.12.2012, 13:58
Нет, файл используйте ваш - ideal. Просто у вас жёсткая структура сети - 5 нейронов, поэтому всего пять цифр может быть. Они задаются в виде массива 9на9:

Добавлено через 5 минут
000000111
000000111
000001111
000011011
000110011
001100011
000000011
000000011
000000011
но она записана в файле ideal.txt в таком виде, а за ней ещё 4 цифры (2-5):

0000001110000001110000011110000110110001 1001100110001100000001100000001100000001 1
Поэтому файл это 81*5 цифр 1 или 0
файл input - это то что вы ввели с клавиатруы. output скорее всего выход.

Когда вы запускаете программу, у вас происходит чтение цифр(чтение файла ideal.txt и запись каждой цифры в соответсвующий массив Х). Это собсвенно и есть обучение. Цифре 1 соответсвует Х1... цифре 5 - Х5.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
       public Form1()
        {
            InitializeComponent();
            label1.Text = "";
            read(sr, X1);
            read(sr, X2);
            read(sr, X3);
            read(sr, X4);
            read(sr, X5);
            //read(sr, X6);
            //read(sr, X7);
            //read(sr, X8);
            //read(sr, X9);
            //read(sr1, Y);
            //train();
            //recognize();
            
        }
Функция train обучает перцептрон с соответсвующими весами.
1
10 / 10 / 3
Регистрация: 19.03.2010
Сообщений: 679
Записей в блоге: 2
19.12.2012, 14:10  [ТС]
Вот про объяснение подробней можно?)))
0
 Аватар для mikhail_g
192 / 147 / 27
Регистрация: 02.05.2011
Сообщений: 467
19.12.2012, 15:17
1) Вот этот event прожигается когда вы нажимаете кнопку распознать.
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
        
        private void button4_Click(object sender, EventArgs e)
        {
            label1.Text = "";
            for (int i = 0; i < size; i++)
            {
                if (draws[i] == 1)
                    Y[i] = 1;
                else Y[i] = -1;
            }
            if (train())
            {
                recognize();
            }
        }

посмотрим что здесь происходит: сначала в цикле "for" из массива draws* величины переписываются в массив Y.

*Массив draws заполняется в event hanlder panel1_MouseDown(т.е. когда вы нажимаете на панель и ставите на ней чёрный квадрат).
Вот здесь в соответсвующий элемент массива draws выставляется 1. На вашем месте я бы модифицировал этот метод, чтобы можно было ещё сбросить чёрный квадрат, т.е. поставить вместо 1 ноль:
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
   
        private void panel1_MouseDown(object sender, MouseEventArgs e)
        {
            int i = e.X / 20;
            int j = e.Y / 20;
            if(mode)
                draws[j * 9 + i] = 1;
            else draws[j * 9 + i] = -1;
            panel1.Refresh();
        }
 
//рисует черный квадрат на месте клика мыши
private void panel1_Paint(object sender, PaintEventArgs e)
        {
            Graphics g = e.Graphics;
            for (int i = 0; i < size; i++)
            {
                if (draws[i] == 1)
                {
                    int vert = i % 9;
                    int gor = i / 9;
                    g.FillRectangle(System.Drawing.Brushes.Black, vert * 20, gor * 20, 20, 20);
                }
            }
        }


Вернёмся к event_handler "void button4_Click(object sender, EventArgs e)". После того как мы заполнили массив Y вызывается функция train().

3) Рассмотрим функцию train():
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
 bool train()
        {
            
            // инициализация весов
            for (int i = 0; i < size; i++)
            {
                for (int j = 0; j < size; j++)
                {
                    if (i == j)
                        W[i, j] = 0;
                    else W[i, j] = X1[i] * X1[j] + X2[i] * X2[j] + X3[i] * X3[j] + X4[i] * X4[j] + X5[i] * X5[j];// +X6[i] * X6[j] + X7[i] * X7[j] + X8[i] * X8[j] + X9[i] * X9[j];
                }
            }
            // рассчитываем новое состояние нейронов y
            int count_iter = 0;
            while(count_iter < 300)
            {
                
                for (int i = 0; i < size; i++)
                {
                    if (Y[i] == -1)
                        sw.Write('0');
                    else sw.Write('1');
                    if ((i + 1) % 9 == 0)
                        sw.WriteLine();
                }
                sw.WriteLine();
                int s;
                int[] copy_Y = new int[size];
                for (int i = 0; i < size; i++)
                    copy_Y[i] = Y[i];
                for (int j = 0; j < size; j++)
                {
                    s = 0;
                    for (int i = 0; i < size; i++)
                    {
                        s += W[j, i] * Y[i];
                    }
                    Y[j] = f(s);
                }
                count_iter++;
                // изменились ли значения выходов Y?
                if (is_equal_exact(Y, copy_Y))
                {
                    //button2.Text = count_iter.ToString();
                    break;
                }
            }
            if (is_equal_exact(Y, X1))
            {
                view("один");
                return true;
            }
            if (is_equal(Y, X2))
            {
                view("два");
                return true;
            }
            if (is_equal(Y, X3))
            {
                view("три");
                return true;
            }
            if (is_equal(Y, X4))
            {
                view("четыре");
                return true;
            }
            if (is_equal(Y, X5))
            {
                view("пять");
                return true;
            }
            view("не знаю");
            return false;
 
        }


Эта функция собственно и есть обучение перцептрона. Сначала происходит инициализация весовых коэффицентов:
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
// инициализация весов
            for (int i = 0; i < size; i++)
            {
                for (int j = 0; j < size; j++)
                {
                    if (i == j)
                        W[i, j] = 0;
                    else W[i, j] = X1[i] * X1[j] + X2[i] * X2[j] + X3[i] * X3[j] + X4[i] * X4[j] + X5[i] * X5[j];// +X6[i] * X6[j] + X7[i] * X7[j] + X8[i] * X8[j] + X9[i] * X9[j];
                }
            }


Как только веса заданы, сеть может быть использована для получения запомненного выходного вектора по данному входному вектору, который может быть частично неправильным или неполным (нечётко введённая цифра). Для этого выходам сети сначала придают значения этого начального вектора(что ввели с интерфейса). Затем сеть последовательно меняет свои состояния согласно формуле:
X_{i+1}=W*X_i; // в коде: s += W[j, i] * Y[i]

где X_i и X_{i+1} — текущее и следующее состояния сети, до тех пор, пока состояния X_i и X_{i+1} не совпадут. Полученное устойчивое состояние X_i является ответом сети на данный входной образ. Учтите, что в вашем коде X_i это вектор Y_copy, X_{i+1} - вектор Y.
Соответственно, момент совпадения ветокров X_i и X_{i+1} в коде вот этот:
C#
1
if (is_equal_exact(Y, copy_Y))
Далее происходит сравнение полученного изображения с эталонными. Собственно процесс распознования, всё в той же функции train()
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 if (is_equal_exact(Y, X1))
            {
                view("один");
                return true;
            }
            if (is_equal(Y, X2))
            {
                view("два");
                return true;
            }
            if (is_equal(Y, X3))
            {
                view("три");
                return true;
            }
            if (is_equal(Y, X4))
            {
                view("четыре");
                return true;
            }
            if (is_equal(Y, X5))
            {
                view("пять");
                return true;
            }
            view("не знаю");
            return false;


4) Функция recognize пишет в выходной файл распознанный образ (вектор), не более того.

Подробнее описать уже не смогу, надеюсь вам поможет это разорбраться.

Добавлено через 4 минуты
Дополнение:
Как только веса заданы, сеть может быть использована для получения запомненного выходного вектора по данному входному вектору,
Входной вектор - то, что вы ввели на интерфейсе преобразованное в вектор.
Выходной вектор - ответ сети, т.е. вектор из базы знаний(у нас это файл ideal.txt). Или нулевой вектор если не удалось распознать
1
0 / 0 / 0
Регистрация: 01.02.2014
Сообщений: 23
01.02.2014, 10:33
mikhail_g, а что все-таки пишется в файле input.txt? какая бы цифра там ни была, она не влияет на исход((
0
0 / 0 / 0
Регистрация: 02.08.2017
Сообщений: 28
23.01.2019, 12:09
mikhail_g, Вы писали, правда давно, что можете помочь с прогнозированием в матлабе, когда на входе несколько факторов
0
1 / 1 / 0
Регистрация: 18.02.2014
Сообщений: 213
12.02.2022, 10:45
Решение на Python
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
import numpy as np,sys
np.random.seed(1)
masprognozov=np.zeros((0,3))  #прогнозы за последние 3 дня
 
masprognozov=np.vstack((masprognozov,np.array([-0.01,-0.07,-0.07])))
masprognozov=np.vstack((masprognozov,np.array([-0.07,-0.07,-0.06])))
masprognozov=np.vstack((masprognozov,np.array([-0.07,-0.06,-0.06])))
masprognozov=np.vstack((masprognozov,np.array([-0.06,-0.06,0.00])))
masprognozov=np.vstack((masprognozov,np.array([-0.06,0.00,-0.05])))
masprognozov=np.vstack((masprognozov,np.array([0.00,-0.05,-0.05])))
masprognozov=np.vstack((masprognozov,np.array([-0.05,-0.05,-0.04])))
masprognozov=np.vstack((masprognozov,np.array([-0.05,-0.04,-0.06])))
masprognozov=np.vstack((masprognozov,np.array([-0.04,-0.06,-0.13])))
masprognozov=np.vstack((masprognozov,np.array([-0.06,-0.13,-0.13])))
masprognozov=np.vstack((masprognozov,np.array([-0.13,-0.11,0.01])))
masprognozov=np.vstack((masprognozov,np.array([-0.11,0.01,-0.02])))
masprognozov=np.vstack((masprognozov,np.array([0.01,-0.02,-0.03])))
masprognozov=np.vstack((masprognozov,np.array([-0.02,-0.03,-0.03])))
masprognozov=np.vstack((masprognozov,np.array([-0.03,-0.03,-0.06])))
masprognozov=np.vstack((masprognozov,np.array([-0.03,-0.06,-0.04])))
masprognozov=np.vstack((masprognozov,np.array([-0.06,-0.04,-0.04])))
masprognozov=np.vstack((masprognozov,np.array([-0.04,-0.04,-0.06])))
masprognozov=np.vstack((masprognozov,np.array([-0.04,-0.06,-0.07])))
masprognozov=np.vstack((masprognozov,np.array([-0.06,-0.07,-0.04])))
masprognozov=np.vstack((masprognozov,np.array([-0.07,-0.04,-0.05])))
masprognozov=np.vstack((masprognozov,np.array([-0.04,-0.05,-0.06])))
masprognozov=np.vstack((masprognozov,np.array([-0.05,-0.06,-0.03])))
masprognozov=np.vstack((masprognozov,np.array([-0.06,-0.03,-0.03])))
 
pravrezult=np.zeros((1,24))
pravrezult[0][0]=-0.06
pravrezult[0][1]=-0.06
pravrezult[0][2]=0.00
pravrezult[0][3]=-0.05
pravrezult[0][4]=-0.05
pravrezult[0][5]=-0.04
pravrezult[0][6]=-0.06
pravrezult[0][7]=-0.13
pravrezult[0][8]=-0.13
pravrezult[0][9]=0.01
pravrezult[0][10]=-0.02
pravrezult[0][11]=-0.03
pravrezult[0][12]=-0.03
pravrezult[0][13]=-0.06
pravrezult[0][14]=-0.04
pravrezult[0][15]=-0.04
pravrezult[0][16]=-0.06
pravrezult[0][17]=-0.07
pravrezult[0][18]=-0.04
pravrezult[0][19]=-0.05
pravrezult[0][20]=-0.06
pravrezult[0][21]=-0.03
pravrezult[0][22]=-0.03
pravrezult[0][23]=-0.02
 
 
weights_0_1=0.2*np.random.random((3,5))-0.1
weights_1_2=0.2*np.random.random((5,1))-0.1
 
lstrerr=0
alpha=0.01
#errorsr=0
for epoch in range(20000):
    errorsr = 0
    for i,prognoztek in enumerate(masprognozov):
        layer0=np.reshape(prognoztek,(1,3))
        layer1=np.dot(layer0,weights_0_1) #прогноз скрытого слоя
        layer2=np.dot(layer1,weights_1_2)  #прогноз погоды на тек день
        trueprozn=pravrezult[0][i]
        errorsr+=(layer2-trueprozn)*(layer2-trueprozn)
        layer2_delta=layer2-trueprozn
        layer1_delta=layer2_delta.dot(weights_1_2.T)
        weigthdelta_1_2=layer1.T.dot(layer2_delta)
        weigthdelta_0_1=layer0.T.dot(layer1_delta)
        weights_0_1-=alpha*weigthdelta_0_1
        weights_1_2-=alpha*weigthdelta_1_2
    lstrerr=errorsr
    print("Эпоха: "+str(epoch)+" Ошибка:"+str(errorsr))
 
layer0=np.array([-0.06,-0.03,-0.05])
layer1=np.dot(layer0,weights_0_1) #прогноз скрытого слоя
layer2=np.dot(layer1,weights_1_2)  #прогноз погоды на тек день
print("Прогноз: "+str(round(layer2[0]*100,2)))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.02.2022, 10:45
Помогаю со студенческими работами здесь

Нейронные сети
Доброго времени суток! Есть ли тут люди которые занимаются/занимались нейронными сетями? Если конкретно то есть вопросы по алгоритму...

Нейронные сети - что это?
сколько гуглил - ничего путного не нашел. 1 - нейронная сеть эт че? (приблизительно понимаю но не доконца) 2 - на практике такое...

Нейронные сети
Здравствуйте. Вопрос обобщенный, не уверен, в тот ли форум написал. Решил я начать изучение нейронных сетей. Создал свой первый...

Нейронные сети
Помогите, пожалуйста!! Имеется некая выборка, нужно на ней обучить перцептрон, сооовсем не представляю , как это делать

Нейронные сети.
моя тема: применение Нейронной сети в вопросах ценообразования. мне надо написакть программу на делфи. в этой программе забиваешь...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru