Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.65/20: Рейтинг темы: голосов - 20, средняя оценка - 4.65
8 / 8 / 2
Регистрация: 20.02.2009
Сообщений: 139

Расчет Величины Гамма по закону распределения СВ Фишера

24.04.2009, 23:35. Показов 4100. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.

Я ниже создавал тему про нахождение дробной части числа. Это мне нужно было для закона распределения СВ Фишера. Я уже где-то неделю немогу решить во такую проблему:

Выполненные условия:

-Есть СВ распределенная по закону Фишера (распределение сделано правильно и соответствует почти теории)
-Есть такая рассчитываемая величина, называемая частотой попадание в заданные интервалы (Расчитывается правильно и их сумма равна 1); кол.интервалов задаются (изначально > 10).

-Проблема:

1. Рассчитана частота попаданий (практическая). Чтобы ее проверить нужно сделать почти такуюжу, но теоретическую.
-Эта величина (ЧастТеоретическая), рассчитывается по формуле:

https://www.cyberforum.ru/cgi-bin/latex.cgi?f\left(F \right)=\frac{\Gamma \left(\frac{K1+K2}{2} \right)}{\Gamma \left(\frac{K1}{2}+\Gamma \frac{K2}{2} \right)}\cdot\left(\frac{K1}{K2} \right)^{\frac{K1}{2}}\cdot\frac{F^{\frac{R1-2}{2}}}{\left(1+\frac{K1+F}{K2} \right)^{\frac{K1+K2}{2}}}

Параметры К1 и К2 задаются пользователем. С формулой проблем нет при условии что К1 и К2 кратны двум.

Проблема в следующем:
Вот те буковки Г и есть Гамма которую я не могу правильно рассчитать при условии что К1 и К2 не кратны двум.
В коде я решил рассчитать Гаммы(3 штуки нужно) так:
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
public void Funcf_F()
        {
            //
            //Этот метод предназначен для рассчета величины Гамма с параметрами
            //К1 и К2
            //
            arG_a = new double[3];
            arG = new double[3];
            //Параметры Гаммы, та величина что в скобке в формуле
            arG_a[0] = (K1 + K2) / 2; //G1_a
            arG_a[1] = K1 / 2; //G2_a
            arG_a[2] = K2 / 2; //G3_a
            //Унивирсальный метод рассчета Гаммы
            for (int i = 0; i < 3; i++)
            {
                arG[i] = 1;
                int G_shag = 1; // Изначальный шаг фактариала
                double G_fakt = 1; //Величина фактариала
                if ((arG_a[i] - Math.Floor(arG_a[i])) == 0)
                    //услови, что если крато двум
                {
                    for (int G_i = 1; G_i < (int)Math.Floor(arG_a[i]); G_i++)
                    {
                        arG[i] *= G_i;
                    }
                }
                else
                {
                    //если нет, то:
                    for (int G_i = 1; G_i < (int)(2 * Math.Floor(arG_a[i])); G_i++)
                    {
                        G_shag += 2;
                        G_fakt *= G_shag;
                    }
                    arG[i] = (Math.Sqrt(Math.PI) * G_fakt) / Math.Pow(2, Math.Floor(arG_a[i]));
                }
            }
        }
Вот.
Формула для расчета фактариала, если не крато двум следующая (вот с ней то у меня проблемы походу):

-Допустим К1=3, К2=5, то

https://www.cyberforum.ru/cgi-bin/latex.cgi?\Gamma1 \left(\frac{3}{2} \right)=\Gamma \left(1+\frac{1}{2} \right)\\\Gamma \left(a+\frac{1}{2} \right)=\frac{\left(2a+1 \right)!! \cdot \sqrt{\pi}}{2^a}

а двойной фактариал (2a-1)!! равен - 1*3*5*7......(2a-1)

Вот такая проблема.

Если, кто-то с этим уже сталкивался, помогите пжста.

Спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.04.2009, 23:35
Ответы с готовыми решениями:

Реализовать алгоритм генерации случайной величины распределенной по нормальному закону Гаусса
Здравствуйте. Хотелось бы узнать как можно на visual c# реализовать алгоритм генерации случайной...

Как подключить Accord.Statistics.Distributions для получения случайной величины распределенной по нормальному закону?
Здравствуйте, помогите пожалуйста. В коде нужно получать случайную величину распределенную по...

Генератор случайных величин, подчиняющийся закону распределения Гаусса
ребят есть к вам просьба.Я написал программу всё работает всё отлично но недостаёт одной детали в...

12
11 / 11 / 1
Регистрация: 20.04.2009
Сообщений: 26
25.04.2009, 02:25
С такой задачей не сталкивался, но...
K1 и K2 - int? Если да, то arG_a[0] = (K1 + K2) / 2 - всегда целое число.
Надо:
C#
1
arG_a[0] = (double)(K1 + K2) / 2
Ну и в остальных случаях то же самое.

Добавлено через 1 час 21 минуту 24 секунды
Ещё подозрительно выглядит вычисление двойного факториала.
C#
1
for (int G_i = 1; G_i < (int)(2 * Math.Floor(arG_a[i])); G_i++) {}
Может быть правильнее так (тут точно сказать не могу - возможно выполнится 1 лишний раз или на 1 раз меньше нужного):
C#
1
for (; G_shag < (int)(2 * Math.Floor(arG_a[i])); G_shag+=2)  G_fakt *= G_shag;
1
8 / 8 / 2
Регистрация: 20.02.2009
Сообщений: 139
25.04.2009, 23:54  [ТС]
Цитата Сообщение от KoppeKTop Посмотреть сообщение
С такой задачей не сталкивался, но...
K1 и K2 - int? Если да, то arG_a[0] = (K1 + K2) / 2 - всегда целое число.
Надо:
C#
1
arG_a[0] = (double)(K1 + K2) / 2
Ну и в остальных случаях то же самое.

Добавлено через 1 час 21 минуту 24 секунды
Ещё подозрительно выглядит вычисление двойного факториала.
C#
1
for (int G_i = 1; G_i < (int)(2 * Math.Floor(arG_a[i])); G_i++) {}
Может быть правильнее так (тут точно сказать не могу - возможно выполнится 1 лишний раз или на 1 раз меньше нужного):
C#
1
for (; G_shag < (int)(2 * Math.Floor(arG_a[i])); G_shag+=2)  G_fakt *= G_shag;
К1 и К2 я выставил float (они еще кое-где нужны). Дело в том, что если Какой-то параметр не кратен то условия как раз выполняется и он считает по двойному фактариалу его, НО значение очень и очень значительно не сходятся у нужным и их сумма (все теоретические частоты) не равна 1 (а должна).
А это
C#
1
for (; G_shag < (int)(2 * Math.Floor(arG_a[i])); G_shag+=2)  G_fakt *= G_shag;
и это :
for (int G_i = 1; G_i < (int)(2 * Math.Floor(arG_a[i])); G_i++)
{
G_shag += 2;
G_fakt *= G_shag;
}
Впринцыпе аналоги.

Кстати, спасибо, что подсказали, как альтернативно выставлять шаг. Очень полезно.
0
11 / 11 / 1
Регистрация: 20.04.2009
Сообщений: 26
26.04.2009, 02:27
Цитата Сообщение от KIMka Посмотреть сообщение
А это
C#
1
for (; G_shag < (int)(2 * Math.Floor(arG_a[i])); G_shag+=2)  G_fakt *= G_shag;
и это :
C#
1
2
3
4
5
for (int G_i = 1; G_i < (int)(2 * Math.Floor(arG_a[i])); G_i++)
{
G_shag += 2;
G_fakt *= G_shag;
}
Впринцыпе аналоги.
Аналоги, конечно, но твой код выполняется в 2 раза больше раз. От 1 до 2*а ты идешь с шагом 1, а я - с шагом 2.

Добавлено через 12 минут 26 секунд
Цитата Сообщение от KIMka Посмотреть сообщение
Кстати, спасибо, что подсказали, как альтернативно выставлять шаг. Очень полезно
Просто привычка избавляться от скобок... Можно еще сократить/запутать код:
C#
1
for (int G_i = 0; G_i < (int)Math.Floor(arG_a[i]); G_fakt *= (1+2 * G_i++));
Вот и весь цикл)).
1
8 / 8 / 2
Регистрация: 20.02.2009
Сообщений: 139
26.04.2009, 17:23  [ТС]
Я думаю остановлюсь вот на этом варианте записи
C#
1
2
3
4
                    for (; G_shag < (int)(2 * Math.Floor(arG_a[i]) - 1); G_shag += 2)
                    {
                        G_fakt *= G_shag;
                    }
А разве так можнео делать, не открываю тела цыкла?
C#
1
for (; G_shag < (int)(2 * Math.Floor(arG_a[i])); G_shag+=2)  G_fakt *= G_shag;
Добавлено через 34 минуты 51 секунду
Я хотел бы еще спросить кое о чем.
Вот у меня есть рассчитываемые величины:
C#
1
2
3
4
            //Расчет теоретических велечин
            MatOT_F = K2 / (K2 - 2); //Мат ожидание по Фишеру
            DispT_F = 2 * (Math.Pow(K2, 2) * (K1 + K2 - 2)) / (K1 * Math.Pow((K2 - 2), 2) * (K2 - 4)); //Дисперсия по фишеру
            SkoT_F = Math.Sqrt(DispT_F);
Вот. Если К1 и К2 выставить как (int) то величины которые (double) или (float) считаются не верно зачастую. Величина К1 и К2 всегда вводится как целое, я ее Конвертирую как (float). Можно ли как то решить такую прблему, кроме того что возле каждой "К" выставлять "(float)K1"?
-Величины MatOT_F, DispT_F, SkoT_F стоят как (double).

Добавлено через 2 часа 18 минут 17 секунд

---забыл сказать. Для рассчета всего этого и еще 3-х функций которые вызываются в главной форме выделил отдельный класс с переменными, функциями и расчетами. Конвертирую я К1 и К2 в главной форме где они и вводятся. В классе оня являются конвентируемыми величинами (float). Вот, если это конечно добавлио ясности...
0
11 / 11 / 1
Регистрация: 20.04.2009
Сообщений: 26
26.04.2009, 18:51
Цитата Сообщение от KIMka Посмотреть сообщение
Я думаю остановлюсь вот на этом варианте записи
C#
1
2
3
4
                    for (; G_shag < (int)(2 * Math.Floor(arG_a[i]) - 1); G_shag += 2)
                    {
                        G_fakt *= G_shag;
                    }
А разве так можнео делать, не открываю тела цыкла?
Если ты про такую конструкцию:
C#
1
2
for (int G_i = 0; G_i < (int)Math.Floor(arG_a[i]); G_fakt *= (1+2 * G_i++))
;
Можно, конечно. Просто тело цикла пустое) Все действия происходят в секции приращения счетчика.
А здесь:
C#
1
2
for (; G_shag < (int)(2 * Math.Floor(arG_a[i])); G_shag+=2)
    G_fakt *= G_shag;
Просто нет инициализации счетчика. А так как тело цикла - одна строчка, то скобки не нужны.

Цитата Сообщение от KIMka Посмотреть сообщение
Я хотел бы еще спросить кое о чем.
Вот у меня есть рассчитываемые величины:
C#
1
2
3
4
            //Расчет теоретических велечин
            MatOT_F = K2 / (K2 - 2); //Мат ожидание по Фишеру
            DispT_F = 2 * (Math.Pow(K2, 2) * (K1 + K2 - 2)) / (K1 * Math.Pow((K2 - 2), 2) * (K2 - 4)); //Дисперсия по фишеру
            SkoT_F = Math.Sqrt(DispT_F);
Вот. Если К1 и К2 выставить как (int) то величины которые (double) или (float) считаются не верно зачастую. Величина К1 и К2 всегда вводится как целое, я ее Конвертирую как (float). Можно ли как то решить такую прблему, кроме того что возле каждой "К" выставлять "(float)K1"?
-Величины MatOT_F, DispT_F, SkoT_F стоят как (double).

Добавлено через 2 часа 18 минут 17 секунд

---забыл сказать. Для рассчета всего этого и еще 3-х функций которые вызываются в главной форме выделил отдельный класс с переменными, функциями и расчетами. Конвертирую я К1 и К2 в главной форме где они и вводятся. В классе оня являются конвентируемыми величинами (float). Вот, если это конечно добавлио ясности...
Правило очень простое: если в выражении есть хотя бы одна величина с плавающей точкой, то и результат выражения будет с плавающей точкой. Если все величины - целые, то и результат целый.
C#
1
2
3
4
5
int K1 = 3;
int K2 = 4;
double res = (K1+K2) / 2; // res == 3
res = (K1+K2) / 2.0; // res == 3.5
res = (double)(K1+K2) / 2; // res == 3.5
K1 и K2 ты конвертируешь из чего во что? Из string в int? Что ты подразумеваешь под конвертируемой величиной?
1
8 / 8 / 2
Регистрация: 20.02.2009
Сообщений: 139
27.04.2009, 00:33  [ТС]
KoppeKTop
Да, я конвертирую К1 и К2 из (string) в (int).

Спасибо, за разъяснения. Теперь все сделаю, как надо, ток с этим фактариалом всеравно запарка. Считается верно все, но результат совсем не тот который нужен (

Добавлено через 1 час 8 минут 14 секунд
Вот теперь я думаю, создавать новую тему на вопрос такой:

Вот эта СВ Фишера рассчитывается довольно быстро, если параметры К1 и К2 меньше 10 и нужно рассчитать < 100 СВ. А вот, если значения допустим повысить до : 3, 5, 1000 (К1,K2, СВ); то мой ПК рассчитывает их довольно долго (1 прогон - ~25сек-....), а с большим К1 и К2 и того вдвойне дольше . Это СВ ведь непрерывная, т.е мне ее нужно постоянно считать будет (думаю потом таймер пихну). В данный момент мне нужо помощь с быстродействием, а то это не дело ждать по 30сек, если повезет.
0
11 / 11 / 1
Регистрация: 20.04.2009
Сообщений: 26
27.04.2009, 15:06
Цитата Сообщение от KIMka Посмотреть сообщение
KoppeKTop
Да, я конвертирую К1 и К2 из (string) в (int).

Спасибо, за разъяснения. Теперь все сделаю, как надо, ток с этим фактариалом всеравно запарка. Считается верно все, но результат совсем не тот который нужен (
Попробуй 1 раз посчитать на бумажке и проследить в пошаговом режиме за ходом вычислений. Быстро вычислишь ошибку.

Цитата Сообщение от KIMka Посмотреть сообщение
Вот теперь я думаю, создавать новую тему на вопрос такой:

Вот эта СВ Фишера рассчитывается довольно быстро, если параметры К1 и К2 меньше 10 и нужно рассчитать < 100 СВ. А вот, если значения допустим повысить до : 3, 5, 1000 (К1,K2, СВ); то мой ПК рассчитывает их довольно долго (1 прогон - ~25сек-....), а с большим К1 и К2 и того вдвойне дольше . Это СВ ведь непрерывная, т.е мне ее нужно постоянно считать будет (думаю потом таймер пихну). В данный момент мне нужо помощь с быстродействием, а то это не дело ждать по 30сек, если повезет.
Тут нужно искать слабые места в алгоритме вычислений. Оптимизация - дело большое.
0
8 / 8 / 2
Регистрация: 20.02.2009
Сообщений: 139
27.04.2009, 22:20  [ТС]
Цитата Сообщение от KoppeKTop Посмотреть сообщение
Попробуй 1 раз посчитать на бумажке и проследить в пошаговом режиме за ходом вычислений. Быстро вычислишь ошибку.
Делал так уже и не раз, всеравно косяк, как я тока уже не крутил вычисления в коде, все бестолку.

Оптимизация конечно хорошо, но как мне найти узкое место? Можете дать пару советов?
0
11 / 11 / 1
Регистрация: 20.04.2009
Сообщений: 26
27.04.2009, 23:39
Цитата Сообщение от KIMka Посмотреть сообщение
Оптимизация конечно хорошо, но как мне найти узкое место?
Тут несколько путей:
1. Воспользоваться профилировщиком - программа выдаст подробный результат и можно будет увидеть где она проводит больше всего времени.
2. Воспользоваться здравым смыслом. Тут нужно проверить:
- алгоритм. Оптимизированный алгоритм, взятый из проверенного учебника может сильно прибавить производительности. Чаще всего в учебниках алгоритмы привдятся на более других языках типа Fortran, Basic, псевдокода и т.д., но если понимаешь, что такое for, if и =, то проблем не будет;
- циклы. Все что выполняется 1000 раз должно привлекать наибольшее внимание. Если что-то можно вынести за пределы цикла (инициализация, создание переменных, предварительные вычисления и т.д.) - это должно быть вынесено;
- операции с медленными интерфейсами. Чтение/запись в различные интерфейсы могут занимать значительное время. Например, вывод в файл или на видео. Если такие операции выполняются в цикле - это 100% тормоз. Количество таких операций должно быть минимально и обязательно вынесено из циклов;
- операции с памятью. Это уже более низкоуровневая штука. Выделение памяти + инициализация - очень медленная операция. Если какая-нить процедура вызывается по 100500 раз и в ней каждый раз выделяется массив из большого числа элементов - на это уходит много времени. В таких случаях лучше передавать в функцию один раз созданный массив в качестве аргумента. Тогда он не будет выделяться 100500 раз.

Вот, если вкратце, то основные направления такие.
1
8 / 8 / 2
Регистрация: 20.02.2009
Сообщений: 139
28.04.2009, 01:08  [ТС]
Понятно. Проглядел еще раз все вычисления, вроде ничего особо лишнего. Запустил Анализатор, он выдал 204 предупреждения. Почти ни одно я не понимаю. Единственное, что я понял, это то, что половина этого всего относится к созданию графиков (приминил методы из книги), остальное он говорит, что что-то с переменными.
Вот, пример часто встречающийся:
---Warning 131 CA1709 : Microsoft.Naming : Correct the casing of member name '_sumXi'.
---Warning 132 CA1707 : Microsoft.Naming : Remove all underscores from member '_sumXi'.
---Warning 173 CA1817 : Microsoft.Performance : Within Form1.Result():Void, consider getting the value of 'DataGridViewRowCollection.get_Item(Int3 2)ataGridViewRow' once and caching it inside a local variable before entering the loop.

Кто-нить может сказать, что это все значит?

Спасибо.
0
11 / 11 / 1
Регистрация: 20.04.2009
Сообщений: 26
28.04.2009, 12:49
Цитата Сообщение от KIMka Посмотреть сообщение
---Warning 131 CA1709 : Microsoft.Naming : Correct the casing of member name '_sumXi'.
---Warning 132 CA1707 : Microsoft.Naming : Remove all underscores from member '_sumXi'.
Существует конвенция имен в C# и её следует придерживаться. Например, типы значений и имена методов должны называться с заглавной буквы и записываться так:
C#
1
2
3
4
5
6
class MyCoolClassName 
{
    public void PrintHelloWorld() {Console.WriteLine("Hello World!");}
    // Свойства тоже должны обозначаться также:
    public bool MyBoolProperty { get; set; }
}
Т.е. в "верблюжьем" стиле. Исключение составляют примитивные типы: int, string, double... Они обозначаются как в C.
Названия переменных типов должны начинаться со строчной буквы и также записаны в "верблюжьем" стиле.
C#
1
int counterInForLoop;
Заметь, никаких нижних подчеркиваний ни в начале, ни в середине названий. Сравни с другой конвенцией:
C#
1
int get_value();
Это вопрос стиля программирования. Если хочешь, чтобы твой код был читабельным - пиши в одном стиле (и соблюдай конвенции в том числе).

Цитата Сообщение от KIMka Посмотреть сообщение
---Warning 173 CA1817 : Microsoft.Performance : Within Form1.Result():Void, consider getting the value of 'DataGridViewRowCollection.get_Item(Int3 2)ataGridViewRow' once and caching it inside a local variable before entering the loop.
А вот здесь похоже на то, о чем я и говорил. Ты в ЦИКЛЕ обращаешься к данным таблицы на форме (раз студия ругается, то скорее всего даже к одной и той же ячейке...). Это долго. Необходимо вынести обращение к таблице за пределы цикла и сохранить значение в переменной.
Типичный пример плохого с точки зрения произваодительности кода (пишу на С, ибо лень придумывать пример на C#, но суть должна быть ясна):
C
1
2
3
// Печатаем на консоль каждый символ строки s
for (int i = 0; i < strlen(s); i++)
    putchar(s[i]);
Казалось бы, всё ОК. Но. На каждой итерации цикла мы будем измерять длину строки s, чтобы проверить условие окончания цикла. А если у нас строка s имеет длину под 1000 символов, то операция измерения её (кстати, совсем не быстрая операция для длинных строк) будет происходить 1001 раз... А теперь представь, что мы считываем файл и печатаем его на консоль построчно. Тогда такая процедура будет сильно тормозить весь процесс. Надо так:
C
1
2
3
4
int len = strlen(s);
// Печатаем на консоль каждый символ строки s
for (int i = 0; i < len; i++)
    putchar(s[i]);
0
8 / 8 / 2
Регистрация: 20.02.2009
Сообщений: 139
28.04.2009, 17:33  [ТС]
Что-то совсем не айс. Ну вот пример из кода на тему DataGridView:
C#
1
2
3
4
5
6
7
8
9
10
for (int a = 0; a < fF._Ntb; a++)
                {
                    this.datResult.Rows[a].Cells[0].Value = fF._arTable[a, 0]; //N
                    this.datResult.Rows[a].Cells[1].Value = Math.Round(fF._arTable[a, 1], 4); //интервалы
                    this.datResult.Rows[a].Cells[2].Value = fF._arTable[a, 2]; //попадания
                    this.datResult.Rows[a].Cells[3].Value = Math.Round(fF._arTable[a, 3], 2); //теор попадания
                    this.datResult.Rows[a].Cells[4].Value = Math.Round(fF._arTable[a, 4], 4); //хи2
                    this.datResult.Rows[a].Cells[5].Value = Math.Round(fF._arTable[a, 5], 4); //частота
                    this.datResult.Rows[a].Cells[6].Value = Math.Round(fF._arTable[a, 6], 4); //вероятность
}
Все это вывел в ней, и еще несколько textbox.
fF - fFisher, класс со всеми переменными для вывода. к fFisher'у обращаемся один раз на каждый раз составления таблицы.

А вот с подчеркиваниями мне гораздо удобнее читать свой же код чтобы искать ошибку.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.04.2009, 17:33
Помогаю со студенческими работами здесь

Численный метод решения задачи генерации случайных чисел по нормальному закону распределения на одномерное и двумерное пространство
Приветствую! Собственно суть вопроса в заголовке. Требуется такой генератор. Есть ли какие-то...

Законы распределения случайной величины
Здравствуйте. Возник вопрос: есть ли стандартные методы генерации нормального, логнормального,...

Гамма-распределение (или ошибка в написании формулы)
Добрый день, товарищи! Возникла необходимость реализовать формулу для определения...

Найти сумму, закончив расчет, как только абсолютная величина слагаемого станет меньше величины переменной E
помогите пожалуйста

Критические значения Фишера и Стьюдента
Здравствуйте! Есть ли в C# функция, которая выводит критические значения Фишера или Стьюдента с...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru