Деление нацело и взятие остатка

Поділитися
Вставка
  • Опубліковано 19 гру 2024

КОМЕНТАРІ • 28

  • @iphilstudio
    @iphilstudio 6 років тому +6

    Благодарю Вас, Тимофей! Всё лаконично, доходчиво, качественно!

  • @pro100SOm
    @pro100SOm 6 років тому +20

    лучше не приучаться к фокусу:
    1. / 2.
    или:
    1. * a / b (где a, b - int)
    Можно попасться на не очень приятную ловушку. При некоторых настройках оптимизации компилятора, на этапе прекомпиляции проверяются числовые константы и эти 1. и 2. могут быть заменены на целые числа (для ускорения вычислений). В итоге результат будет не совсем ожидаемым.
    Правильней всегда явно указывать преобразование:
    (double)1 / 2
    (double)a / b
    или еще лучше:
    (double)a / (double)b

    • @RobotN001
      @RobotN001 Рік тому

      чую clang ) там много багов с оптимизацией

    • @Jesiksss
      @Jesiksss 5 місяців тому

      1. / 2. это скорее как просто забавный фокус)

  • @smthsmth111
    @smthsmth111 6 років тому +9

    Очень классный курс. Большое спасибо!

  • @homo.errantium
    @homo.errantium 2 роки тому

    Тимофей, я Вас искренне полюбил как преподавателя: во-первых, я просто восхищаюсь тем, как Вы увлечены своей работой/объяснением: к черту тряпочка для стирания! Когда идет поток мыслей, не до этих мелочей.
    Во-вторых, Вы меня просто "убили" на 5:45... когда максимально сконцентрирован и следишь Вашей мыслью и Вы говорите "получается забавная мордочка"... я не смог не оставить и не улыбнуться (читать "арнуть"). Вы очень искренний и непосредственный преподаватель. Огромное Вам спасибо за Ваш труд)).
    p.s. может я очень субъективен, но мне кажется, что курс "cs 50" от преподавателей гарвардской школы не идёт ни в какое сравнение с Вашим курсом, у Вас огромная концентрация мысли и она живая, что не может не очаровывать))

    • @homo.errantium
      @homo.errantium 2 роки тому +2

      "а иногда быть параноиком - полезно". Надо запомнить))

  • @ВасилийШалашов-п2й
    @ВасилийШалашов-п2й 4 роки тому +2

    А что будет если попытаться взять остаток от деления меньшего числа на большее, например 2%5 так? Также ноль?

    • @ddura4ok
      @ddura4ok 9 місяців тому

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

  • @ЕвгенийВасильев-щ7в

    А почему компилятор 0.5 не округляет до 1?

    • @ГригорийСёмкин-и3с
      @ГригорийСёмкин-и3с 3 роки тому +2

      Отбрасывает верхушку, не дотягивающую до целого. Он и 0.9 округлит до 0

  • @dmitriykonopinskiy3793
    @dmitriykonopinskiy3793 4 роки тому

    вы в уроке "Переполнение и ошибки при работе с целыми типами в Си" говорили, что компилятор приводит вещественные числа к целым, а сейчас уже одного вещественного достаточно, где правда? Или присваивание и математические операции это две разных оперы?

  • @grom3
    @grom3 3 роки тому

    хОРОШЕЕ ВИДЕО

  • @sergeystal15
    @sergeystal15 5 років тому +2

    я не понял в чем проблема с отрицательными числами.

    • @MenteruOloma
      @MenteruOloma 3 роки тому

      Разберёшься раскажешь

    • @ИгорьЗмеев-м1ш
      @ИгорьЗмеев-м1ш 2 роки тому

      @@MenteruOloma Так никакой проблемы нет, всё фиксится дополнительной проверкой x > 0, если число будет отрицательным цикл даже не запуститься

  • @dimalink4486
    @dimalink4486 Рік тому

    Оказывается параноиком быть полезно!!!!!! Главное психом не стать!!!! double x = 1/2. ; Достаточно один раз точку поставить! один раз!!!!! один раз!!!!!один раз!!!!!один раз!!!!!один раз!!!!!один раз!!!!!один раз!!!!!один раз!!!!!один раз!!!!!один раз!!!!!один раз!!!!!

  • @reberontoy1108
    @reberontoy1108 5 років тому +1

    Был бы у меня такой препод, я бы не сваливал с универа

  • @АндрейСобченко-в9э

    мужик

  • @Sergey-Primak
    @Sergey-Primak 5 років тому +1

    НЕ ВВОДИТЕ В ЗАБЛУЖДЕНИЕ
    Во втором видео пишу, что знак остатка должен соответствовать знаку частного!!! ЭТО МОЁ УБЕЖДЕНИЕ!
    a=q*b+r, где r - это остаток, вроде все правильно, НО почему остаток всегда положителен?!?!?!
    q - частичное частное
    a - делимое, b - делитель
    a=c*b, a - делимое, b - делитель, c - частное, действительные числа
    то есть 10/3 = 3,(3)
    q = int(c)
    r = ( c - q )*b = c - int(c)*b, где int(c) - целая часть частного, соответствует частичному частному q
    r = [ a/b - int(a/b) ] * b, а значит, при отрицательном делимом 'a' и положительном 'b' целая часть от частного всегда будет меньше по модулю, чем вещественное деление, а разница будет соответствовать знаку делимого 'a'

    • @dowellkin
      @dowellkin 5 років тому +6

      Когда дело касается математики, не может быть субъективных убеждений. А остаток, с точки зрения математики, всегда положителен (информации в интернете достаточно, та же википедия). Не вводите в заблуждение читателей комментариев.

    • @Sergey-Primak
      @Sergey-Primak 5 років тому

      @@dowellkin ОСТАТОК всегда ПОЛОЖИТЕЛЕН только, только и только В НАТУРАЛЬНЫХ ЧИСЛАХ, а не в целых.
      в целых числах математика не рассматривает остаток. И поэтому в школе остатки учат до отрицательной абстракции

    • @dowellkin
      @dowellkin 5 років тому +1

      @@Sergey-Primak есть вопрос, есть интернет, в чем проблема?

    • @Sergey-Primak
      @Sergey-Primak 5 років тому

      @@dowellkin интернет ошибается чаще всего. а вы можете искать истину в нем

    • @dowellkin
      @dowellkin 5 років тому +6

      @@Sergey-Primak этого ответа мне достаточно, чтобы оценить Вашу ограниченность. Нам больше не о чем говорить