• Почему strcat перезаписывает переменные?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    почему так происходит?

    Потому что str и word -- это переменные размером в один символ, а в строке char delimeters[6] = " .,!?;" отсутствует 0-терминатор. Поэтому
    - scanf("%s", &str); вылезет за пределы str если ввести здесь что угодно.
    - strcat(&word, &c); вылезет за пределы word если в c будет не пустая строка. А в c будет неизвестно что, потому что c = getchar() не добавляет в эту строку 0-терминатор.
    - strchr(delimeters, c); может вернуть что угодно, если c не входит в delimiters.
    Ответ написан
    8 комментариев
  • Как найти координаты вершин повернутого прямоугольника в двумерном пространстве?

    @xidjex
    5b5481f04e365599950422.png
    К примеру- давайте повернем прямоугольник на 90градусов, ширина его будет 6, высота 4.
    Так как известно , что точка вращения в центре - легко находим координаты деля ширину и высоту пополам
    А(x, y) - Аx = 0(координата) - (6 / 2), Ау = 0 + (4 / 2) А(-3, 2)
    В(x, y) - Вx = 0(координата) + (6 / 2), Ву = 0 + (4 / 2) В(3, 2)
    С(x, y) - Сx = 0(координата) + (6 / 2), Су = 0 - (4 / 2) С(3, -2)
    D(x, y) - Dx = 0(координата) - (6 / 2), Dy = 0 - (4 / 2) D(-3, -2)

    Находим точку А после вращения
    по Вашей формуле
    Аx = -3 * cos90 - 2 * sin90 = -3 * 0 - 2 * 1 = -2
    Ay = -3 * sin90 + 2 *cos90 = -3 * 1 + 2 * 0 = -3

    A(x, y) = (-2, -3);

    Те же действия проделываем со всеми точками, а цифры по возможности округляем
    Ответ написан
    2 комментария
  • Какой вариант построения условий производительнее?

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

    Но это всё спички, а ты на них экономишь. Если ты выбрал питон, то про слово "производительность" забудь в 99% случаев. Да и вообще, (почти) любой код — про читаемость прежде всего. Да, есть места вроде ядра linux, драйверов, embed и т.п., где пишут нечитаемый код, лишь бы выполнялось быстрее. Но питон от этого настолько далеко, насколько можно представить, только ещё чуть дальше.

    P.S. операция in над списком обычно не выполнятся, т.к. очевидно, сложность будет O(n). Если элементов списка не три, а значительно больше, то стоит заменить на set. Так и читабельней и быстрее.
    Ответ написан
    Комментировать
  • Какой вариант построения условий производительнее?

    Vindicar
    @Vindicar
    RTFM!
    Если у тебя не миллионы элементов в коллекции - разница вряд ли будет.
    А если так, то достаточно создать коллекцию один раз и переиспользовать её, а не делать это внутри if - и разницы не будет.
    Ответ написан
    Комментировать
  • Как исправить ошибку при запуске Django сервера?

    tumbler
    @tumbler Куратор тега Django
    бекенд-разработчик на python
    JWTAuthentication класс зовется. Опечатка у вас.
    Ответ написан
    Комментировать