Ответы пользователя по тегу Программирование
  • Как процессор ''понимает'' машинный код?

    @Elsper
    Мне кажется комментаторы только запутали человека. Одни пишут, что нет аналогового сигнала и всё нули и единицы, другие пишут, что нули и единицы - это абстракция (а значит всё работает на аналоговых сигналах)

    Вполне можно рассуждать что есть 1 и 0. Единица - наличие определенного напряжения. 0 - его отсутствие (или слишком слабое напряжение)
    Как на это смотреть, как на аналоговый или логический сигнал чисто дело вкуса.
    Главное - надо понимать, что компьютер (как и всякая схема), будет делать то, таким методом и с такими результатами, как это предусмотрели инженеры этой схемы.

    На базе транзисторов, диодов и резисторов создаются логические элементы, это которые НЕ, И, ИЛИ
    Оперируя этими логическими элементами (из физических транзисторов, диодов и резисторов), создаем уже более сложные микросхемы, отвечающие уже за конкретные операции (побитовое суммирование например)

    Мне по запросу "логические элементы на транзисторах" гугл первой же ссылкой достаточно понятный материал выдал.
    studref.com/532624/tehnika/logicheskie_elementy_logicheskie_shemy_tranzistorah

    Элемент памяти это "тригер" (можно в вики прочитать) тоже просто микросхема, состояние которой можно определять и которое она будет продолжать выдавать на выходе даже без входного сигнала.

    Я в детстве увлекался этим.
    В техникуме часы спроектировал для диплома.
    __
    Кстати автор, если какой-то ответ вам помог, не забудьте пометить его(их), как решение.
    Ответ написан
    1 комментарий
  • Как решить задачу на c++?

    @Elsper
    Если код не важен, а нужно именно решение, то вот на привычном для меня C#
    Идея в том, что мы просто симулируем поворот замка и смотрим что происходит.

    int A = 2;
    int B = 3;
    int N = 3;
    int K = 1;
    
    int maxPos = N;
    int currentPos = 1;
    
    int countReachK = 0;
    int countPairs = 0;
    
    while (countReachK < K)
    {
        //Если надо приводим к нулю чтобы не считать пересечение два раза.
        if ((currentPos == maxPos) && (A>0)) 
        currentPos = 0;
    
        currentPos += A;
    
        //Проверка на пересечение или остановку.
        while (currentPos >= maxPos)
        {
            currentPos -= maxPos;
            countReachK++;
        }
    
        //Если надо приводим к максимуму чтобы не считать пересечение два раза.
        if ((currentPos == 0) && (B>0)) 
        currentPos = maxPos;
    
        currentPos -= B;
    
        //Проверка на пересечение или остановку.
        while (currentPos <=0)
        {
            currentPos += maxPos;
            countReachK++;
        }
    
        countPairs++;
    }
    if (countReachK != K)
        countPairs = -1;
    
    // countPairs и есть искомый результат.
    Ответ написан
    Комментировать
  • Как должен выглядеть алгоритм цикла с таким условием?

    @Elsper
    В общих чертах как-то так.
    Основная идея создать простой булевый массив из двух значений, чтобы собственно можно было с помощью его индекса "перебирать" любые величины A B и C
    bool check = true;
     bool[] b = new bool[2] { true, false };
     for (int i1 = 0; i1 < 2; i1++)
     for (int i2 = 0; i2 < 2; i2++)
     for (int i3 = 0; i3 < 2; i3++)
     {
         //Подставить тут требуемые сравнения.
         bool result1 = (b[i1] || b[i2]);
         bool result2 = (b[i2] || b[i1]);
    
         if (result1 != result2) check = false;
     }

    Где на выходе смотреть на check. Если он осталься true значит пары эквиваленты

    Закодировать сравнения для result1 и result2 конечно придется самому.
    Ответ написан
    Комментировать
  • Почему персонаж проваливается под текстуры?

    @Elsper
    Очевидно дело в сортировка или глубине. Чтобы лучше понять причины тщательно сравни в инспекторе параметры темной клетки, на которой он стоит и красной клетки, которая его перекрывает.
    То, в чем они отличаются и укажет на причину.

    Так же сравнивай параметры позиционирования у персонажа, когда он стоит и когда начинается анимация.

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