Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
 Аватар для Melvil
58 / 55 / 28
Регистрация: 20.05.2015
Сообщений: 256

Определить, за сколько дней все деревья в лесу будут вырублены

31.08.2015, 18:47. Показов 2704. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет ещё раз, и это уже третья задача на бинарный поиск. И в этот раз я уже преуспел в решении, осталось лишь найти ошибку ( она точно есть ). Вот сама задачка:

Кликните здесь для просмотра всего текста
Фермер Николай нанял двух лесорубов: Дмитрия и Федора, чтобы вырубить лес, на месте которого должно быть кукурузное поле. В лесу растут X деревьев.

Дмитрий срубает по A деревьев в день, но каждый K-й день он отдыхает и не срубает ни одного дерева. Таким образом, Дмитрий отдыхает в K-й, 2K-й, 3K-й день, и т.д.

Федор срубает по B деревьев в день, но каждый M-й день он отдыхает и не срубает ни одного дерева. Таким образом, Федор отдыхает в M-й, 2M-й, 3M-й день, и т.д.

Лесорубы работают параллельно и, таким образом, в дни, когда никто из них не отдыхает, они срубают A + B деревьев, в дни, когда отдыхает только Федор – A деревьев, а в дни, когда отдыхает только Дмитрий – B деревьев. В дни, когда оба лесоруба отдыхают, ни одно дерево не срубается.

Фермер Николай хочет понять, за сколько дней лесорубы срубят все деревья, и он сможет засеять кукурузное поле.

Требуется написать программу, которая по заданным целым числам A, K, B, M и X определяет, за сколько дней все деревья в лесу будут вырублены.

Входные данные

Входной файл INPUT.TXT содержит пять целых чисел, разделенных пробелами: A, K, B, M и X (1 ≤ A, B ≤ 10^9, 2 ≤ K, M ≤ 10^18, 1 ≤ X ≤ 10^18).

Выходные данные

В выходной файл OUTPUT.TXT выведите искомое количество дней.


Есть только один пример:
2 4 3 3 25
Ответ: 7.

Собственно, мой код первый пример проходит а дальше ошибка, подскажите что не так:

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
#include <iostream>
using namespace std;
 
int f(_int64 A, _int64 K, _int64 B, _int64 M, _int64 X);
bool validNumber(_int64 N, _int64 A, _int64 K, _int64 B, _int64 M, _int64 X);
int main()
{
    _int64 A, B;
    _int64 K, M, X;
    cin >> A >> K >> B >> M >> X;
    f(A, K, B, M, X);
}
int f(_int64 A, _int64 K, _int64 B, _int64 M, _int64 X)
{
    _int64 N = 1;
    while (validNumber(N, A, K, B, M, X) == 0)
    {
        N *= 2;
    }
    _int64 left, right, mid;
    right = N;
    left = N / 2;
    while (right - left > 1)
    {
        mid = left + (right - left) / 2;
        if (validNumber(mid, A, K, B, M, X) == 1)
            right = mid;
        else
            left = mid;
    }
    cout << mid << endl;
    return 0;
}
bool validNumber(_int64 N, _int64 A, _int64 K, _int64 B, _int64 M, _int64 X)
{
    return ((N*A) - ((N / K) *A)) + ((N*B) - ((N / B) *B)) >= X;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.08.2015, 18:47
Ответы с готовыми решениями:

Определить, через сколько лет в бывшем лесу будут расти одни опята
Леспромхоз ведет заготовку древесины. Первоначальный объем ее на территории леспромхоза составлял P кубометров, а за год на территории...

Определить, через сколько лет в бывшем лесу будут расти одни опята?
Леспромхоз ведет заготовку древесины. Первоначальный объем ее на территории леспромхоза составлял P кубометров, а за год на территории...

Определить, через сколько минут все мандарины будут почищены
В пакете X мандаринов. Алина чистит A мандаринов в минуту, а Алена чистит B мандаринов. Каждую K-ю минуту Алина отдыхает и не чистит...

19
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,991
Записей в блоге: 32
31.08.2015, 19:23
Проще свой вариант написать, чем в чужом разбираться. Навскидку и без гарантии прохождения:
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
using namespace std;
 
typedef unsigned long long int ull;
 
typedef struct {ull a; ull k; ull b; ull m; ull x;} pars;
 
ull task(pars* p,ull l,ull r) {ull d = l+(r-l)/2;
    return l+1==r ? r : (p->a*(d-d/p->k) + p->b*(d-d/p->m) < p->x) ? task(p,d,r) : task(p,l,d);}
 
int main() {pars p; p.a=2; p.k=4; p.b=3; p.m=3; p.x=25; cout<<task(&p, 0, 2*p.x); return 0;}
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
31.08.2015, 20:45
Accepted
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
/*
 Фермер Николай нанял двух лесорубов: Дмитрия и Федора, чтобы вырубить лес, на месте 
 которого должно быть кукурузное поле. В лесу растут X деревьев.
Дмитрий срубает по A деревьев в день, но каждый K-й день он отдыхает и не срубает 
ни одного дерева. Таким образом, Дмитрий отдыхает в K-й, 2K-й, 3K-й день, и т.д.
Федор срубает по B деревьев в день, но каждый M-й день он отдыхает и не срубает 
ни одного дерева. Таким образом, Федор отдыхает в M-й, 2M-й, 3M-й день, и т.д.
Лесорубы работают параллельно и, таким образом, в дни, когда никто из них не отдыхает, 
они срубают A + B деревьев, в дни, когда отдыхает только Федор – A деревьев, а в дни, 
когда отдыхает только Дмитрий – B деревьев. В дни, когда оба лесоруба отдыхают, 
ни одно дерево не срубается.
Фермер Николай хочет понять, за сколько дней лесорубы срубят все деревья, и он 
сможет засеять кукурузное поле.
Требуется написать программу, которая по заданным целым числам A, K, B, M и X определяет, 
за сколько дней все деревья в лесу будут вырублены.
 
ВХОДНЫЕ ДАННЫЕ
Входной файл INPUT.TXT содержит пять целых чисел, разделенных пробелами: 
A, K, B, M и X (1 ≤ A, B ≤ 10^9, 2 ≤ K, M ≤ 10^18, 1 ≤ X ≤ 10^18).
 
ВЫХОДНЫЕ ДАННЫЕ
В выходной файл OUTPUT.TXT выведите искомое количество дней.
 
ЕСТЬ ТОЛЬКО ОДИН ПРИМЕР:
2 4 3 3 25
Ответ: 7.
*/
/////////////////////////////////////////////////////////////////////////////////////////
#include <iostream>
/////////////////////////////////////////////////////////////////////////////////////////
typedef long long   T_int;
/////////////////////////////////////////////////////////////////////////////////////////
bool    days_count_is_valid
    (
        T_int   d,
        T_int   A,
        T_int   K,
        T_int   B,
        T_int   M,
        T_int   X
    )
{
    return  A * ( d - d / K ) + B * ( d - d / M )     >=  X;
}
/////////////////////////////////////////////////////////////////////////////////////////
T_int   f
    (
        T_int   A,
        T_int   K,
        T_int   B,
        T_int   M,
        T_int   X
    )
{
    T_int   R   =   1;
 
    while   (
                !days_count_is_valid
                    (
                        R,
                        A,
                        K,
                        B,
                        M,
                        X
                    )
            )
    {
        R   *=  2;
    }
    
    T_int   L   =   R / 2;
 
    while( R - L > 1 )
    {
        T_int   middle   =   (L + R) / 2;
 
        if  (
                !days_count_is_valid
                    (
                        middle,
                        A,
                        K,
                        B,
                        M,
                        X
                    )
            )
        {
            L   =   middle;
        }
        else
        {
            R   =   middle;
        }
    }//while
 
    return  R;
}
/////////////////////////////////////////////////////////////////////////////////////////
int     main()
{
    T_int   A   =   0;
    T_int   K   =   0;
    T_int   B   =   0;
    T_int   M   =   0;
    T_int   X   =   0;
 
    std::cin    >>  A//Дмитрий срубает
                >>  K//Дмитрий каждый K-й день отдыхает.
                >>  B
                >>  M
                >>  X;//Количество деревьев.
 
    std::cout   <<  f   (
                            A,
                            K,
                            B,
                            M,
                            X
                        )
 
                <<  std::endl;
 
    system("pause");
}
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
31.08.2015, 20:48
Здесь, как бы, никаких бинарных поисков не нужно, задача для урока алгебры.
1) За time дней вырубается A*(time-time div K)+B*(time-time div M) деревьев, где "div" - операция целочисленного деления.
2) Сменим целочисленное деление на обычное. Тогда оценка из пункта 1 станет занижена на величину delta не превышающую A+B (насчитали лишний выходной каждому лесорубу).
3) Таким образом, нам нужно найти time удовлетворяющее уравнению A*(time-time/K)+B*(time-time/M)=X-delta.
4) delta мы не знаем. Ну и хрен с ним. Находим решение high для delta=0 и low для delta=A+B.
5) Теперь перебираем пару значений между high и low. Все, задача решена.
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
#include<iostream>
using namespace std;
 
const int A=2, K=4, B=3, M=3, X=25;
 
int real_chopping(int time)
{
    return A*(time-time/K)+B*(time-time/M);
}
 
int approximate_time(int X)
{
    //A*time*(1-1/K)+B*time*(1-1/M)=X;
    //time*(A*K-A)/K+time*(B*M-B)/M=X;
    //time*(A*K*M-A*M+B*M*K-B*K)/(K*M)=X;
    double div=double(A)*M*(K-1)+B*K*(M-1);
    double mul=double(K)*M;
    return X*mul/div;
}
 
int main()
{
    int low=approximate_time(X-A-B);
    int hight=approximate_time(X);
    for(int i=low;i<=hight+1;++i)
        if(real_chopping(i)>=X)
        {
            cout<<i<<endl;
            break;
        }
    return 0;
}
0
 Аватар для Melvil
58 / 55 / 28
Регистрация: 20.05.2015
Сообщений: 256
31.08.2015, 23:50  [ТС]
Mr.X, А чем отличается
C++
1
return ((N*A) - ((N / K) *A)) + ((N*B) - ((N / B) *B)) >= X;
От

C++
1
return  A * ( d - d / K ) + B * ( d - d / M )     >=  X;
Добавлено через 13 минут
Renji, Так тоже самое же, только с линейным поиском, я так понимаю.

Цитата Сообщение от Renji Посмотреть сообщение
int approximate_time(int X)
Не очень понял, что эта функция делает.
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
01.09.2015, 00:12
Цитата Сообщение от Melvil Посмотреть сообщение
А чем отличается
Ну, одну ошибку пока увидел:
Цитата Сообщение от Melvil Посмотреть сообщение
N / B
Надо N / M.
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
01.09.2015, 00:12
Цитата Сообщение от Melvil Посмотреть сообщение
Renji, Так тоже самое же, только с линейным поиском, я так понимаю.
Предварительно сузив область поиска до этак трех значений. То есть, константное (не зависящее от X) время.
Цитата Сообщение от Melvil Посмотреть сообщение
Не очень понял, что эта функция делает.
Решает уравнение A*(time-time/K)+B*(time-time/M)=X относительно time. Еще раз:
1) Лесорубы работают time дней, каждый N-й - выходной. Итого, рабочих дней time-time div N.
2) За time дней лесорубы рубят A*(time-time div K)+B*(time-time div M) деревьев.
3) Это приблизительно равно A*(time-time/K)+B*(time-time/M).
4) Значение выражения 2 отличается от значения выражения 3 не больше чем на A+B.
5) Примем это отличие за delta. Тогда лесорубы рубят A*(time-time/K)+B*(time-time/M)+delta деревьев.
6) Нужно узнать когда лесорубы срубят X деревьев. То есть, решить уравнение A*(time-time/K)+B*(time-time/M)=X-delta
Дальше тривиально - решаем уравнение 6 относительно delta=0 и delta=A+B. Истина где-то между этими результатами.
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
01.09.2015, 00:15
Чувствуется, что вы любите писать, но не любите читать свой код. После того как напишете - внимательно перечитывайте.

Добавлено через 2 минуты
Renji, у вас с Иваной на втором тесте неправильный ответ.
0
 Аватар для Melvil
58 / 55 / 28
Регистрация: 20.05.2015
Сообщений: 256
01.09.2015, 00:22  [ТС]
Mr.X, Сижу, меняю алгоритм бинарного поиска и подходит только ваш, почему вы возвращаете R? Ведь по идее же должна середина возвращаться и есть ли альтернативы?
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
01.09.2015, 00:51
Цитата Сообщение от Melvil Посмотреть сообщение
Ведь по идее же должна середина возвращаться и есть ли альтернативы?
Ну, для любого бинарного поиска задается необходимая точность, иначе он никогда не закончится.
А здесь у нас числа целые, так что минимальный отрезок не может быть меньше единицы. Да, ответ где-то посередине, но так как она уже дробная, то берем ближайшее правое целое.
0
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,991
Записей в блоге: 32
01.09.2015, 00:51
Цитата Сообщение от Mr.X Посмотреть сообщение
у вас с Иваной на втором тесте неправильный ответ.
Ну так без гарантий же Идея правильная, бинарный поиск. Надо граничные случаи проверять, > на >= где-то заменить, потестировать на разных данных... Второй тест - где его входные данные например?

ЗЫ И я категорически не согласен с методом Renji решать через плавучку целочисленные задачи. А будут там диапазоны до 10^100? В плавучке точность потеряется - и все, приплыли, неправильный ответ.
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
01.09.2015, 00:56
Цитата Сообщение от _Ivana Посмотреть сообщение
Второй тест - где его входные данные например?
Так они, черти, не говорят!
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
01.09.2015, 01:05
Цитата Сообщение от _Ivana Посмотреть сообщение
ЗЫ И я категорически не согласен с методом Renji решать через плавучку целочисленные задачи. А будут там диапазоны до 10^100? В плавучке точность потеряется - и все, приплыли, неправильный ответ.
Плавучка 10^100 прекрасно переварит, пусть и с ошибкой в пятнадцатом знаке после запятой. А вот целочисленная арифметика указанным в условии 10^18 запросто подавится. Собственно, на 32 битовой системе это 10^18 даже не прочитается правильно из входного файла, ибо 32 битовое целое хранит только девять с половиной знаков (от 0 до 4294967295).
0
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,991
Записей в блоге: 32
01.09.2015, 01:09
Renji, не хочется спорить, ибо думаю никто своего мнения не поменяет. Я знаю, что плавучка будет врать на больших интах и юзать ее в таких задачах - моветон. Ваши "аргументы" про 32 бита оставьте для детей. Или сами откройте для себя длинную арифметику.
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
01.09.2015, 07:49
Написал шаблон для всех этих задач бинарного поиска по предикату (проходит все тесты).
Чтобы настроить его на другую задачу, нужно поменять в коде всего две строчки.
Нужно заменить на другие
1) выражение предиката
C++
1
d['A'] * ( i - i / d['K'] ) + d['B'] * ( i - i / d['M'] )   >=  d['X'];
(строка 20), где каждый входной параметр с именем Q обозначен выражением d['Q'], а проверяемое значение - буквой i,
и
2) строковый литерал
C++
1
"AKBMX"
(строка 111), состоящий из имен-букв входных параметров в условии задачи.
Вот код шаблона:
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
/////////////////////////////////////////////////////////////////////////////////////////
#include <algorithm>
#include <iostream>
#include <map>
#include <string>
/////////////////////////////////////////////////////////////////////////////////////////
typedef std::string                         T_str;
typedef long long                           T_int;
typedef std::map    < char,     T_int   >   T_data;
/////////////////////////////////////////////////////////////////////////////////////////
struct  T_val_ia_valid_for_data
{
    //-----------------------------------------------------------------------------------
    bool    operator()
        (
            T_int       i,
            T_data  &   d
        )                                                                           const
    {
        return  d['A'] * ( i - i / d['K'] ) + d['B'] * ( i - i / d['M'] )   >=  d['X'];
    }
    //-----------------------------------------------------------------------------------
};
/////////////////////////////////////////////////////////////////////////////////////////
template< typename    TT_val_ia_valid_for_data >
class   T_binary_search
{
    //-----------------------------------------------------------------------------------
    T_str                       var_names_;
    T_int                       result_;
    T_data                      data_;
    TT_val_ia_valid_for_data    val_ia_valid_for_data_;
 
    //-----------------------------------------------------------------------------------
public:
    //-----------------------------------------------------------------------------------
    T_binary_search( T_str  const   &   var_names )
        :
        var_names_  ( var_names ),
        result_     ()
    {
        input_data_with_var_names   ();
        set_result                  ();
        print_result                ();
    }
    //-----------------------------------------------------------------------------------
private:
    //-----------------------------------------------------------------------------------
    void    input_data_with_var_names()
    {
        std::for_each
            (
                var_names_.begin     (),
                var_names_.end       (),
 
                [&]                 ( char  var_name )
                {
                    std::cin    >>  data_[ var_name ];
                }
            );
    }
    //-----------------------------------------------------------------------------------
    void    set_result()
    {
        T_int   R   =   1;
 
        while   (
                    !val_is_valid( R )
                )
        {
            R   *=  2;
        }
    
        T_int   L   =   R / 2;
 
        while( R - L > 1 )
        {
            T_int   middle   =   (L + R) / 2;
 
                (
                    val_is_valid( middle )
                        ?   R
                        :   L
                )
 
            =   middle;
        }//while
 
        result_     =   R;
    }
    //-----------------------------------------------------------------------------------
    bool    val_is_valid( T_int     i )
    {
        return  val_ia_valid_for_data_
                    (
                        i,
                        data_
                    );
    }
    //-----------------------------------------------------------------------------------
    void    print_result()
    {
        std::cout   <<  result_
                    <<  std::endl;
    }
    //-----------------------------------------------------------------------------------
};
/////////////////////////////////////////////////////////////////////////////////////////
int     main()
{
    T_binary_search< T_val_ia_valid_for_data >  binary_search( "AKBMX" );
    system("pause");
}
1
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,991
Записей в блоге: 32
01.09.2015, 08:00
Про форматирование не будем , но за идею и (надеюсь, рабочую) реализацию конечно плюс.
0
 Аватар для Melvil
58 / 55 / 28
Регистрация: 20.05.2015
Сообщений: 256
01.09.2015, 09:26  [ТС]
Mr.X, Как только изучу структуры, классы и предикат - обязательно прочту. А пока что всем спасибо!
0
01.09.2015, 09:34

Не по теме:

Цитата Сообщение от Melvil Посмотреть сообщение
Всем привет ещё раз, и это уже третья задача на бинарный поиск.
Олимпиадные задачи пишутся не для того, чтобы ответы с форумов копипастить.

0
 Аватар для Melvil
58 / 55 / 28
Регистрация: 20.05.2015
Сообщений: 256
01.09.2015, 14:38  [ТС]
zer0mail,

Не по теме:

Вообще, мы в школе ещё не изучали программирование, а если что-то не понятно - то, как мне кажется, лучший способ - это спросить.

0
01.09.2015, 15:18

Не по теме:

Бери учебники - там полно задач, ориентированных на обучение. А олимпиадные задачи ориентированы на поиск тех, кто может их самостоятельно решить. Выкладывание решений таких задач обесценивает труд их создателей. А те, кто их списывает, лишают себя возможности развить программистское мышление. Прочитать ответ и найти ответ самому - несопоставимые по пользе вещи. Знал одного "вумника", который копировал ответы с форума (не с этого) и "блистал" в школе. Правда, на городских олимпиадах лажался по-полной (подводил и своего учителя и свою школу). Если у него и были задатки, он их успешно засушил на корню.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.09.2015, 15:18
Помогаю со студенческими работами здесь

Определить сколько дней в году (всего 12 месяцев, в каждом есть определенное количество дней)
Помогите решить задачу пожалуйста

определить сколько дней в году
Помогите написать программу на с++ в цикле for, используя одномерный массив определить сколько дней в году (всего 12 месяцев в каждом...

определить сколько дней в году
Ввести номер года (положительное целое число). Определить количество дней в этом году, учитывая, что обычный год насчитывает 365 дней, а...

Определить сколько дней до конца года С
При помощи стандартной программы С(не С++) решить задачу Даны натуральные числа a b c обозначающие число месяц и год. Определить: а)...

Определить, за сколько дней спортсмен пробежит Х км
В первый день спортсмен пробежал М километров, а затем он каждый день увеличивал пробег на 8% от предыдущего значения. За сколько дней он...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru