ПРОГА для 6 ЗАДАНИЯ на PYTHON, которая сама СЧИТАЕТ ТОЧКИ! | ЕГЭ по информатике 2023

Поділитися
Вставка
  • Опубліковано 12 січ 2025

КОМЕНТАРІ • 458

  • @makarGon
    @makarGon 2 роки тому +354

    Касаемо скорости выполнения, если вы не хотите ждать, то можно прописать speed(1000) и она не будет уже не черепашкой, а зайчиком :)

    • @inf99ballov
      @inf99ballov  2 роки тому +33

      ахах, спасибо)

    • @a3ldi
      @a3ldi 2 роки тому +81

      Или tracer(False), тогда анимация отключается вообще

    • @ДмитрийМаков-ы6т
      @ДмитрийМаков-ы6т 2 роки тому +37

      А еще лучше прописать speed(0). Это самая быстрая скорость по дефолту)

    • @彩清-o1k
      @彩清-o1k 2 роки тому +9

      @@ДмитрийМаков-ы6т а еще лучше на c++ / c# написать

    • @Deus_EG
      @Deus_EG 2 роки тому +7

      @@ДмитрийМаков-ы6т полностью согласен, работать не будет

  • @gerasimnotfound8438
    @gerasimnotfound8438 10 місяців тому +8

    стоит отметить то, чтобы найти нужное кол-во повторений в for i in range(x) можно прибегнуть к формуле 360/(угол поворота), например для треугольника угол поворота по условию 120, значит 360/120 = 3 - то, что нужно записать в range(x) вместо x

  • @НастяМарятова-ф9п

    Классная подача материала. Как раз не понимала, как решать задания с большими числами. Теперь все ясно

  • @inf99ballov
    @inf99ballov  2 роки тому +120

    Дописываем в начале строчку speed(1000) и программа работает практически мгновенно!
    p.s. за комментарий спасибо makar on
    Также выражаю благодарность каналу /dev/inf (кстати, не забудьте подписаться) за оперативность и креативность! Признаю, похоже в создании этого кода меня опередили 😅

    • @setqbyte
      @setqbyte 2 роки тому +3

      так speed(0) это же максимальная скорость, разве нет?

    • @Deus_EG
      @Deus_EG 2 роки тому +4

      @@setqbyte да там чел где-то увидел прогу, записал, а документацию к модулю даже не пробовал изучить

    • @n1ce644
      @n1ce644 2 роки тому +6

      tracer(0) и update()
      шутка?

    • @ob0-china
      @ob0-china 2 роки тому +3

      hideturtle() еще можно

    • @the_byte.
      @the_byte. 2 роки тому

      есть вопрос касаемо неправильного ответа, куда можно написать?

  • @Mi_Nare
    @Mi_Nare 2 роки тому +34

    Спасибо огромное! Долго тупила, как можно сделать автоподсчёт точек. Ваше видео просто спасло)

  • @ЗандаБукаева
    @ЗандаБукаева 2 роки тому +9

    классное объяснение, не понимала как написать прогу, сейчас кажется все легко, спасибо большое!!!!

  • @tatey9379
    @tatey9379 2 роки тому +18

    Можно ещё проще сделать. В начале перед begin_still пишем "tracer(0)", затем в конце перед done пишем "update()"

    • @annax3163
      @annax3163 Рік тому +1

      почему-то ответ получается другой

  • @keyplaygame2482
    @keyplaygame2482 Рік тому +12

    Забавный факт, если для ускорения отрисовки использовать tracer(0) и не использовать update() перед циклом подсчёта точек, то получится близкое значение, но неверное. Но если обновить экран перед проверкой, то результат будет такой же, как и без использования
    tracer().

  • @bmxnoobas1367
    @bmxnoobas1367 Рік тому +11

    Прошу заметить, что для нахождения всех точек внутри стоит написать item >= 1

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

      Нет, код и без этого работает как надо

    • @merka239
      @merka239 Рік тому +6

      СПАСИБО!
      Объясняю чем помогло:
      Стираем item[0] == 5
      И len(item) == 1 исправляем на item >= 1
      Профит: теперь прога считает И точки НА ЛИНИИ, т.е. на границе

    • @kozanuch4405
      @kozanuch4405 Рік тому +1

      @@merka239 ? он говорит про все точки внутри, точки на линии НЕ считаются за точки внутри фигуры.
      К тому же твой коммент не имеет смысла, автор писал как считать с точками на линии. К тому же до этого можно и додуматься если умеешь хоть чу-чуть думать головой.

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

      @@kozanuch4405 да, я проверил, оказалось просто задача попалась такая, что просто удачно сошлось. А на деле всё не так. Плюсом я нашёл видос который рассматривает эту тему. Как оказывается это всё бред и работает только если повезёт с задачей. Сами попробуйте очень много таких задач порешать и убедитесь. Так ещё к минусам данного способа, что нельзя почитать точки на линиях.

  • @_bongo_cat9965
    @_bongo_cat9965 10 місяців тому

    Не знаю, упоминалось ли где-то про 5:10, но это не так. Если построить желтую фигуру, то она все равно будет выдавать тот ответ. Насколько я понял, если в item у нас есть 6 - это означает, что мы на границе фигуры, и только из-за len(item) == 1 ваша программа работает. P.s не отсекайте эту 6,и получите программу, которая считает еще точки по краям

  • @АндрейДенисов-б3н

    Отличное решение, но советую вместо item[0] == 5 использовать canvas.itemcget(item[0], 'fill') == 'red', это избавит от непредвиденных ошибок)

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

      Каких ошибок?Все итак работает

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

      ​@@kozanuch4405вы видимо не знаете питон😅

    • @PROCODING
      @PROCODING 10 місяців тому

      спасибо, помогло

  • @redtroll2830
    @redtroll2830 Рік тому +12

    Подскажите пожалуйста а как сделать чтобы считало не только точки внутри фигуры но и точки на границе?

    • @dinarik0647
      @dinarik0647 7 місяців тому

      Убрать and item[0] == 5

  • @Richard_255
    @Richard_255 Рік тому +2

    Во втором номере, где был квадрат, можно было воспользоваться формулой по нахождении площади, по сути 25*25=625.

  • @DEMON-eh1sp
    @DEMON-eh1sp 2 роки тому +3

    Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует две команды: Вперёд n (где n  - целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова, и Направо m (где m  - целое число), вызывающая изменение направления движения на m градусов по часовой стрелке. Запись
    Повтори k [Команда1 Команда2 … КомандаS]
    означает, что последовательность из S команд повторится k раз. Черепахе был дан для исполнения следующий алгоритм:
    Повтори 4 [Вперёд 12 Направо 90]
    Повтори 3 [Вперёд 12 Направо 120]
    Определите, сколько точек с целочисленными координатами будут находиться внутри области, ограниченной линией, заданной данным алгоритмом: Повтори 4 [Вперёд 12 Направо 90]
    и находиться вне области, ограниченной линией, заданной данным алгоритмом: Повтори 3 [Вперёд 12 Направо 120]. Точки на линии учитывать не следует
    КАК СЛЕЛАТЬ

    • @haha4un
      @haha4un 8 місяців тому

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

  • @Vincent._.
    @Vincent._. Рік тому +6

    Здравствуйте, подскажите пожалуйста что делать если фигуры две, они пересекаются и нужно найти точки на их объединении?

  • @thefall1673
    @thefall1673 Рік тому +3

    что необходимо добавить, чтобы посчитать кол-во точек и на линии помимо внутренней части? Просто увеличить шаг на один?

  • @neksol1541
    @neksol1541 Рік тому +6

    большое спасибо, теперь 6 задание не кажется таким сложным)

  • @MrAndrew005
    @MrAndrew005 2 роки тому +3

    Если вершины многоугольника имеют целочисленные координаты, то зная площадь данного многоугольника можно посчитать количество точек с целочисленными координатами через формулу Пика.

    • @inf99ballov
      @inf99ballov  2 роки тому +2

      согласен, но не во всех задачах, к сожалению, вершины в целочисленных координатах лежат🥲

  • @ukrop6731
    @ukrop6731 10 місяців тому +1

    братан, твой канал просто лучший, спасибо

  • @shawtyfromnorthside4887
    @shawtyfromnorthside4887 Рік тому +3

    а как найти точки на контуре пересечения??

  • @Куепро-ч7э
    @Куепро-ч7э 2 роки тому +4

    Спасибо большое. Прям выручил

  • @quorti3278
    @quorti3278 Рік тому +4

    А что нужно прописать если всё же нужно посчитать точки на линии фигуры?

  • @НикитаЕрмаков-т1г
    @НикитаЕрмаков-т1г 2 роки тому +3

    Хорош, никогда в тебе не сомневался, объяснил 🔥🔥🔥🔥🔥🔥

  • @Александр-м4х9ц

    Спасибо, Даня! Способ крутой👍🏻

  • @Dmitrii-Zhinzhilov
    @Dmitrii-Zhinzhilov 2 роки тому +5

    Благодарю! Отличная работа !!! 👍💯 🔥🔥🔥 🧠

  • @GeyOrgi
    @GeyOrgi 11 місяців тому

    парни как понятно сколько ставить на for x in range(?) Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен.
    При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует две команды: Вперёд n (где n - целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова; Направо m (где m - целое число), вызывающая изменение направления движения на m градусов по часовой стрелке.
    Запись Повтори k [Команда1 Команда2 … КомандаS] означает, что последовательность из S команд повторится k раз (где k - целое число).

    Черепахе был дан для исполнения следующий алгоритм:
    Направо 315 Повтори 7 [Вперёд 16 Направо 45 Вперёд 8 Направо 135].
    Определите, сколько точек с целочисленными координатами будут находиться внутри области, которая ограничена линией, заданной алгоритмом. Точки на линии учитывать не следует.

    • @vasily2dndn
      @vasily2dndn 10 місяців тому

      Ставь 15000000

  • @c0ld_ddd
    @c0ld_ddd 2 роки тому +1

    спасибо, хорошее объяснение!

  • @skinlink4224
    @skinlink4224 2 роки тому +2

    Здравствуйте. Возникла проблема с 6 заданием. Пример из демоверсии ФИПИ 2023 года. Черепахе был дан для исполнения следующий алгоритм:
    Повтори 2 [Вперёд 10 Направо 90 Вперёд 20 Направо 90]
    Поднять хвост
    Вперёд 3 Направо 90 Вперёд 5 Налево 90
    Опустить хвост
    Повтори 2 [Вперёд 70 Направо 90 Вперёд 80 Направо 90]
    Определите, сколько точек с целочисленными координатами будут
    находиться внутри пересечения фигур, ограниченных заданными
    алгоритмом линиями, ВКЛЮЧАЯ точки на границах этого пересечения.
    from turtle import *
    color('black', 'red')
    m = 100
    speed(1000)
    begin_fill()
    left(90)
    for i in range(2):
    forward(10*m)
    right(90)
    forward(20*m)
    right(90)
    pu()
    forward(3*m)
    right(90)
    forward(5*m)
    left(90)
    pd()
    for i in range(2):
    forward(70*m)
    right(90)
    forward(80*m)
    right(90)
    end_fill()
    canvas = getcanvas()
    cnt = 0
    for y in range(-100*m, 100*m, m):
    for x in range(-100*m, 100*m, m):
    item = canvas.find_overlapping(x, y, x, y)
    if len(item) == 1: # and item[0] == 5:
    cnt += 1
    print(cnt)
    done()
    exit()
    У меня получается 5521, в ответе 128

    • @inf99ballov
      @inf99ballov  2 роки тому

      тут нужно сначала понять что за область будет получаться при пересечении фигур, а потом уже построить ее в программу: это будет прямоугольник 7 на 15:
      from turtle import *
      color('black', 'red')
      m = 100
      speed(1000)
      begin_fill()
      left(90)
      for i in range(2):
      forward(7*m)
      right(90)
      forward(15*m)
      right(90)
      end_fill()
      canvas = getcanvas()
      cnt = 0
      for y in range(-100*m, 100*m, m):
      for x in range(-100*m, 100*m, m):
      item = canvas.find_overlapping(x, y, x, y)
      if len(item) >= 1:
      cnt += 1
      print(cnt)
      done()
      exit()
      Ответ 128

    • @skinlink4224
      @skinlink4224 2 роки тому +1

      @@inf99ballov Спасибо большое, понял, просто невнимательно читал условие)

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

      @@inf99ballov как получить 7 и 15?

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

      @@artzef построить эту фигуру по командам в кумире например или на листочке нарисовать

  • @evgenyland4448
    @evgenyland4448 2 роки тому +25

    революционно. утерли нос разработчикам. спасибо 🔥🔥🔥

    • @Совет_силы
      @Совет_силы Рік тому +6

      Утерли нос разработчикам?
      А ты думаешь, что они так и хотели, чтобы мы точки считали 30 минут?

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

      ​@@Совет_силы😂😂😂

  • @что-ф3п
    @что-ф3п 10 місяців тому

    Как насчет того, чтобы треугольник обозначить через три прямые и прогой проверять удовлетворяет ли точка трем неравенствам.
    Только что попробовал и этот способ очень простой по крайней мере если с профилем у вас хорошо и написать уравнение прямой не вызывает трудностей, первая прямая x=0, вторая y = 111-tg30x, третья y=tg30x
    k = 0
    for x in range(120):
    for y in range(120):
    if x>0 and ytg30x
    k +=1
    print(k)
    Ответ 5280 и париться над тем, какая точка принадлежит, а какая нет, не нужно

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

      как насчет посрать верх ногами

    • @AndrewPetrov-ri
      @AndrewPetrov-ri 9 місяців тому

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

  • @Random_Thought_Generator
    @Random_Thought_Generator Рік тому +4

    Спасибо! Прога работает как часы, осталось только её не забыть

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

      можно распечатать или написать на тетрадном листе и с собой на экзамен взять, я в принципе так русский написал и матешу

    • @vasily2dndn
      @vasily2dndn 11 місяців тому

      ​@@voice_power_yt и потом в армейке Eifersucht сделать

    • @sunny_reflection
      @sunny_reflection 8 місяців тому

      @@voice_power_yt так это шпора и лишний нервяк

    • @voice_power_yt
      @voice_power_yt 8 місяців тому

      @@sunny_reflection скажу честно, это ни капли не лишний нервяк, нам сами учителя говорили, чтобы мы шпоры с собой взяли. У меня вообще шпоры были размером с лист А4 (в принципе я и писал всё на этих листах) и просто сворачивал лист до размера носового плотного плотка и ложил туда же и брал с собой на ЕГЭ. Спокойно сдал все три экзамена. Сейчас я понятное дело уже учусь в университете и заканчиваю 1 курс

  • @HPplay1802
    @HPplay1802 Рік тому +2

    Оригинально поставить корги на фон

  • @rebellion255
    @rebellion255 Рік тому +2

    from turtle import *
    color("black","red")
    m = 100
    begin_fill()
    speed(0)
    left(90)
    for i in range(4):
    forward(9*m)
    right(90)
    forward(7*m)
    right(90)
    end_fill()
    canvas = getcanvas()
    ccount = 0
    for x in range(-120*m, 120*m, m):
    for y in range(-120*m, 120*m, m):
    item = canvas.find_overlapping(x,y,x,y)
    if len(item)==1 and item == 0:
    ccount = ccount + 1
    print(ccount)
    done()
    exit()
    В чем может быть проблема?

    • @chlen_tvoi
      @chlen_tvoi Рік тому +1

      Проблема почти в самом конце. В строке if len(item)==1....

    • @chlen_tvoi
      @chlen_tvoi Рік тому +1

      if len(item)==1 and item[0]==5: (вот так должно быть) или так if len(item)>=1: (если нужно посчитать точки еще и на контуре фигуры )

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

      @@chlen_tvoi Все равно в консоли выводится 0

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

      @@rebellion255 Скинь условие задачи если есть

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

      ​@@chlen_tvoi Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует две команды: Вперёд n (где n  - целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова, и Направо m (где m  - целое число), вызывающая изменение направления движения на m градусов по часовой стрелке. Запись
      Повтори k [Команда1 Команда2 … КомандаS]
      означает, что последовательность из S команд повторится k раз. Черепахе был дан для исполнения следующий алгоритм:
      Повтори 4 [Вперёд 9 Направо 90 Вперёд 7 Направо 90]
      Определите, сколько точек с целочисленными координатами будут находиться внутри области, ограниченной линией, заданной данным алгоритмом. Точки на линии учитывать не следует.

  • @Teacher_inf
    @Teacher_inf 2 роки тому +11

    Доброго времени суток! Отличный код, спасибо, по вариантам Крылова спасал, пока не дошел до 6.
    вроде максимально просто по условию . Повтори 10[вперед 123 направо 120] точки внутри области.
    Мой код:
    from turtle import *
    color('black','red')
    speed(100)
    m = 200
    begin_fill()
    left(90)
    for i in range(10):
    forward(123*m)
    right(120)
    end_fill()
    canvas = getcanvas()
    cnt = 0
    for y in range(-200*m, 200*m, m):
    for x in range(-200*m, 200*m, m):
    item = canvas.find_overlapping(x, y, x, y)
    if len(item) == 1 and item[0] == 5:
    cnt += 1
    print(cnt)
    done()
    exit()
    P.S. Я знаю, что за фигура и лишний диапазон(range) убирал, но как не крути ответ не подходит...
    Вывод: 6488
    А должен быть по ответам Крылова: 7156
    Прошу помочь разобраться.

    • @inf99ballov
      @inf99ballov  2 роки тому +9

      проверил вторым способом, ответ 6488 правильный
      в сбонике опечатка

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

      @@inf99ballov меня тоже беспокоит именно эта задача. уж слишком громко звучит то, что в сборнике опечатка. сборник то официальный, вряд ли там так накосячить могли. где можно убедиться в том, что там и правда ошибка?

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

      у тебя в цикле цифра десять, но он рисует треугольник. Он же сказал, что лучше новые линии поверх фигуры лучше не печатать. Там 3 должно быть в fot i in range(3):

    • @inf99ballov
      @inf99ballov  Рік тому +6

      @@shinratensei580 я считал другими способами через уравнение прямых. Не доверяйте официальным сборникам на 100 процентов - говорю по своему опыту . В сборниках за 21 и за 22 год тоже были опечатки. А в этом году опечатки в 6 задачах мы нашли уже штуки 4 а то и больше

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

      @@qpjlekcep7592 делал этот же алгоритм, но с цифрой 3. Ответ не поменялся

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

    Большое спасибо, очень полезное и информативное видео

  • @ksulive3510
    @ksulive3510 2 роки тому +4

    Данил, спасибо огромное👍💥💥💥ты лучший!

  • @arslansimchit1176
    @arslansimchit1176 Рік тому +2

    огромное спасибо за универсальное решение

  • @fernandooberhauser9017
    @fernandooberhauser9017 2 роки тому +4

    Повтори 6 [Вперёд 10 Направо 60]
    Определите количество точек с целочисленными координатами, лежащих внутри или на границе области, которую ограничивает заданная алгоритмом линия.
    как посчитать количество точек на линии?

    • @МихаилМитник
      @МихаилМитник 2 роки тому +1

      ручками

    • @Дучич-ы6ч
      @Дучич-ы6ч Рік тому

      @@МихаилМитник там получается 268 точек, а прога выдает 267, посчитаешь ручками?

  • @Ринат-в1д
    @Ринат-в1д 2 роки тому +1

    Здравствуйте, решал задача и по условию надо найти все точки и внутри фигуры , и на линии: Повтори 5 [Вперёд 7 Направо 90 Вперёд 4 Направо 90]
    Определите количество точек с целочисленными координатами, лежащих внутри или на границе области, которую ограничивает заданная алгоритмом линия.
    Мой код:
    from turtle import *
    color('black','red')
    m=100
    begin_fill()
    left(90)
    for i in range(2):
    forward(7*m)
    right(90)
    forward(4*m)
    right(90)
    end_fill()
    canvas=getcanvas()
    c=0
    for x in range(-100*m,100*m,m):
    for y in range(-100 * m, 100 * m, m):
    item=canvas.find_overlapping(x,y,x,y)
    if len(item)==1 and item[0]==5 :
    c+=1
    print(c)
    done()
    exit()
    Выводит 18, должно быть 40. Буду благодарен за помощь

    • @inf99ballov
      @inf99ballov  2 роки тому +5

      легче легкого, дружище) Чтобы считать точки на границе фигуры достаточно условие в if сделать len(item)>=1
      from turtle import *
      color('black','red')
      m=100
      speed(1000)
      begin_fill()
      left(90)
      for i in range(2):
      forward(7*m)
      right(90)
      forward(4*m)
      right(90)
      end_fill()
      canvas=getcanvas()
      c=0
      for x in range(-100*m,100*m,m):
      for y in range(-100*m, 100*m, m):
      item=canvas.find_overlapping(x,y,x,y)
      if len(item)>=1:
      c+=1
      print(c)
      done()
      exit()

    • @DEMON-eh1sp
      @DEMON-eh1sp 2 роки тому +1

      @@inf99ballov А ПОЧЕМУ 2 А НЕ 4 for i in range(2):

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

      @@inf99ballov Спасибо, думала всё, тупик)

  • @psychoINF
    @psychoINF Рік тому +1

    Есть задания где нужно учитывать точки на границе, что делать в этом случае? И ещё есть задания где 2 фигуры, как с ними?

  • @kamiloid11
    @kamiloid11 2 роки тому +2

    Скажите пожалуйста, вот вы объясняли на 5:20 что красный цвет имеет код "5", а как узнать код черного цвета? И вообще, можете пожалуйста подсказать, где вы взяли информацию об этих кодах

    • @inf99ballov
      @inf99ballov  2 роки тому

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

  • @олег-и7я6з
    @олег-и7я6з 2 роки тому

    (№ 5600) (А. Минак) Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси абсцисс, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует три команды: Вперёд n (где n - целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова, Направо m (где m - целое число), вызывающая изменение направления движения на m градусов по часовой стрелке, и Налево m (где m - целое число), вызывающая изменение направления движения на m градусов против часовой стрелки. Запись
    Повтори k [Команда1 Команда2 … КомандаS]
    означает, что последовательность из S команд повторится k раз. Черепахе был дан для исполнения следующий алгоритм:
    Повтори 40 [Налево 45 Вперёд 400 Направо 90]
    Определите, сколько точек с целыми положительными координатами (x, y) будут находиться внутри области, ограниченной линией, заданной данным алгоритмом. Точки на линии учитывать не следует.
    Что я делаю не так?
    from turtle import *
    color("black", "red")
    speed(1000)
    m=100
    begin_fill()
    for i in range(8):
    left(45)
    forward(400*m)
    right(90)
    end_fill()
    canvas=getcanvas()
    cnt=0
    for x in range(1*m,1000*m,m):
    for y in range(1*m,1000*m,m):
    item=canvas.find_overlapping(x,y,x,y)
    if len(item)==1 and item[0]==5:
    cnt+=1
    print(cnt)
    done()
    exit()

    • @inf99ballov
      @inf99ballov  2 роки тому

      Координаты инвертированы, вот так верно:
      from turtle import *
      color("black", "red")
      speed(1000)
      m=50
      begin_fill()
      left(90)
      for i in range(8):
      left(45)
      forward(400*m)
      right(90)
      end_fill()
      canvas=getcanvas()
      cnt=0
      for x in range(-1200*m,0,m):
      for y in range(-1200*m,0,m):
      item=canvas.find_overlapping(x,y,x,y)
      if len(item)==1 and item[0]==5:
      cnt+=1
      print(cnt)
      done()
      exit()

    • @olgapiv
      @olgapiv 2 роки тому

      @@inf99ballov Не могли бы Вы пояснить, почему for x in range(-1200*m,0,m): ? И почему черепаха сначала делает команду left(90), если по условию она смотрит вдоль оси абцисс?

    • @inf99ballov
      @inf99ballov  2 роки тому +1

      @@olgapiv ахх, дико извиняюсь, не увидал, что вдоль оси абсцисс смотрит🥲
      Тогда вот так будет выглядеть прога
      from turtle import *
      color("black", "red")
      speed(1000)
      m=50
      begin_fill()
      for i in range(8):
      left(45)
      forward(400*m)
      right(90)
      end_fill()
      canvas=getcanvas()
      cnt=0
      for x in range(0,1200*m,m):
      for y in range(-1200*m,0,m):
      item=canvas.find_overlapping(x,y,x,y)
      if len(item)==1 and item[0]==5:
      cnt+=1
      print(cnt)
      done()
      exit()
      Просто нумерация координат немного по-другому работает в turtle,а не как мы привыкли что первая четверть оба положительные, на словах в комментарии будет сложно объяснить, поэтому рекомендую вам прочитать документацию к модулю

    • @olgapiv
      @olgapiv 2 роки тому +1

      @@inf99ballov Спасибо, обязательно прочту.

  • @artzef
    @artzef Рік тому +1

    Направо 300, повтори 6 раз, [вперед 5 направо 120 вперед 5 направо 330]
    from turtle import*
    color ("black", "red")
    m=100
    begin fill()
    right (300)
    for i in range (4):
    forward (10)
    right (120)
    forward (10)
    right (330)
    end fill ()
    canvas=getcanvas ()
    cnt=0
    for x in range (-1000*m, 1000*m, m):
    for y in range (-1000*m, 1000*m, m):
    item=canvas.find_overlapping (x, y, x, y)
    if len(item)==1 and item[0]==5:
    cnt+ 1
    print (cnt)
    done ()
    exit()
    Получается 0, а должно 269

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

      а почему у тебя вместо знаков равенства стоят минусы? и пропущены некоторые знаки умножения?

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

      @@inf99ballov ой, я просто копировал с фотографии и текст распознался не так как надо. Так то у меня всё как в шаблоне, но ответ 0

  • @AlexAksenenko-rk6mz
    @AlexAksenenko-rk6mz 2 роки тому +2

    В второй задаче про квадрат можно посчитать ведь без программы.Нам ведь не важно повернут он или нет,просто перемножаем 25 на 25 и получаем ответ - 625

    • @inf99ballov
      @inf99ballov  2 роки тому

      Да согласен

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

      Так нам не над учитывать точки, лежащие на границе

    • @dronremov5346
      @dronremov5346 2 місяці тому

      Это подходит, если фигура нарисована под углом 30 градусов, а если 45 или другой угол?

  • @ArtemTimofeev-iw5cl
    @ArtemTimofeev-iw5cl Рік тому +3

    из-за тебя ошибка в 6 задании! Не верьте ему, спаси и сохрани ваши баллы

  • @alexbelyakov8845
    @alexbelyakov8845 Місяць тому

    Направо 135
    Повтори 25 [Вперёд 250 Направо 90]
    Определите, сколько точек с целочисленными координатами будут находиться внутри области, ограниченной линией, заданной данным алгоритмом. Точки на линии не следует учитывать.

  • @samuraiFinty
    @samuraiFinty 8 місяців тому

    А что надо изучать для этой программы?

  • @abracadabra18
    @abracadabra18 2 роки тому

    Что не так с кодом,выводит 0,Крылов 2023,4 вариант
    from turtle import *
    color("black", "red")
    m=100
    begin_fill()
    right(30)
    for i in range(4):
    forward(20*m)
    right(90)
    forward(30*m)
    right(90)
    end_fill()
    canvas=getcanvas()
    cnt=0
    for y in range(-100*m, 100*m, m):
    for x in range(-100*m, 100*m, m):
    item=canvas.find_overlapping(x, y, x, y)
    if len(item)==1 and item[0]==5:
    cnt+=1
    print(cnt)
    done()
    exit()

    • @rerediska6268
      @rerediska6268 2 роки тому

      for i in range(4):
      forward(20*m)
      right(90)
      forward(30*m)
      right(90)
      В этом месте необходимо брать такое количество повторений , чтобы фигура замыкалась лишь один раз, точка начала и конца цикла должны совпадать(было 4, а нужно брать 2).Получается ответ - 598

    • @abracadabra18
      @abracadabra18 2 роки тому

      @@rerediska6268 for i in range(2)? Если да, то я пробовал вышло 600, а правильный ответ 588

    • @rerediska6268
      @rerediska6268 2 роки тому

      @@abracadabra18 у меня получается 598

    • @rerediska6268
      @rerediska6268 2 роки тому

      @@abracadabra18
      from turtle import *
      color("black", "red")
      m=100
      begin_fill()
      right(30)
      for i in range(4):
      forward(20*m)
      right(90)
      forward(30*m)
      right(90)
      end_fill()
      canvas=getcanvas()
      cnt=0
      for y in range(-100*m, 100*m, m):
      for x in range(-100*m, 100*m, m):
      item=canvas.find_overlapping(x, y, x, y)
      if len(item)==1 and item[0]==5:
      cnt+=1
      print(cnt)
      done()
      exit()
      У меня ответ получается 598

    • @abracadabra18
      @abracadabra18 2 роки тому +2

      @@rerediska6268 с range(2) выводит 600, у тебя 598, ответ 588.Что-то мы делаем не так в жизни

  • @men_epto
    @men_epto Рік тому +1

    Осталось выучить код перед егэ, спасибо)

  • @user-ee5jz3pq7d
    @user-ee5jz3pq7d 2 роки тому

    Из-за чего код может не работать?
    from turtle import *
    color("black", "red")
    m = 100
    tracer(0)
    begin_fill()
    left(90)
    forward(10*m)
    right(120)
    forward(10*m)
    right(120)
    forward(10*m)
    right(120)
    end_fill()
    cnt = 0
    canvas = getcanvas()
    for y in range(-20*m, 20*m, 1*m):
    for x in range(-20*m, -20*m, 1*m):
    abc = canvas.find_overlapping(x,y,x,y)
    print(x,y)
    if len(abc) == 1 and abc[0] == 5:
    cnt += 1
    print(cnt)
    done()
    exit()

    • @inf99ballov
      @inf99ballov  2 роки тому

      у тебя во втором форе стоит диапазон от -20 до -20
      ошибка
      поставь от -20 до +20 и все будет окей

    • @user-ee5jz3pq7d
      @user-ee5jz3pq7d 2 роки тому +1

      ​@@inf99ballov спасибо

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

      from turtle import *
      color("black", "red")
      m = 100
      tracer(0)
      begin_fill()
      left(90)
      forward(10*m)
      right(120)
      forward(10*m)
      right(120)
      forward(10*m)
      right(120)
      end_fill()
      cnt = 0
      canvas = getcanvas()
      for y in range(-20*m, 20*m, 1*m):
      for x in range(-20*m, 20*m, 1*m): # исправлено здесь
      abc = canvas.find_overlapping(x, y, x, y)
      if len(abc) == 1 and abc[0] == 5:
      cnt += 1
      print(cnt)
      done()

  • @МихаилЛепетков-щ9м

    from turtle import *
    color("black", "red")
    m = 50
    begin_fill()
    left(45)
    for i in range(4):
    forward(8*m)
    right(135)
    forward(9*m)
    right(45)
    speed(100)
    end_fill()
    canvas = getcanvas()
    cnt = 0
    for y in range(-100*m, 100*m, m):
    for x in range(-100 * m, 100 * m, m):
    item = canvas.find_overlapping(x, y, x, y)
    if len(item) == 1 and item[0] == 5:
    cnt += 1
    print(cnt)
    done()
    exit()
    Какая ошибка тут и почему при выполнение программы не происходит закраска фигуры?

    • @crasava2766
      @crasava2766 10 місяців тому

      Фигура закрашивается, но выводится 0 это значит что заливка была сделана неправильно , чтобы это исправить в for i in range(4) 2 надо поставить, тогда выведет ответ 40. Надо ставить 2, так как данная программа нарисует фигуру за два цикла.

  • @capybarar
    @capybarar 2 роки тому +2

    Привет, возник вопрос с задачами с дугами. Пример из сборника Крылова 2023 16 вариант: Направо 180 Вперед 3 Направо 90 Вперед 48 Направо 90 Вперед 3 Повтори 6 [Дуга 4, 4, 0, 180] . Точки на линии не учитываем. Найти количество точек внутри фигуры.
    Мой код:
    from turtle import *
    color("black","red")
    m =1000
    speed(1000)
    begin_fill()
    left(90)
    right(180)
    forward(3*m)
    right(90)
    forward(48*m)
    right(90)
    forward(3*m)
    for i in range(6):
    circle(-4*m,180)
    right(180)
    end_fill()
    canvas = getcanvas()
    cnt = 0
    for x in range(-500*m,500*m,m):
    for y in range(-500*m,500*m,m):
    item = canvas.find_overlapping(x,y,x,y)
    if len(item) == 1 and item[0] == 5:
    cnt += 1
    print(cnt)
    done()
    exit()
    Мой код выдает: 250
    Правильный ответ: 136
    Что не так с кодом?
    Заранее благодарен за ответ

    • @inf99ballov
      @inf99ballov  2 роки тому +1

      проверил ручным способом - тоже получил 250, вывод - код верный, а вот в сборнике очередная ошибка

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

      @@inf99ballov почему в 14 строке -4*m?

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

      @@artzef потому что нам нужно именно такое направление радиуса, попробуй написать без минуса и увидишь в чем отличие

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

      На листочке всё получилось, но я никак не пойму как в кумире и пайтоне изобразить такую фигуру, какие команды(

  • @wolk463
    @wolk463 Рік тому +1

    Спасибо большое, реально полезно

  • @mr.fridmak_play4680
    @mr.fridmak_play4680 2 роки тому +11

    Ага) но формула есть волшебная, что S(площадь) = K(кол-во цел точек внутри) + M/2(кол-во цел точек на сторонах/2) - 1 . М это просто НОД от разницы координат точек)

    • @mr.fridmak_play4680
      @mr.fridmak_play4680 2 роки тому

      Работает для любого многоугольника

    • @jekeha
      @jekeha 2 роки тому

      @@mr.fridmak_play4680 координаты как найти?

    • @mr.fridmak_play4680
      @mr.fridmak_play4680 2 роки тому

      @@jekeha ну ты просто представь что из нуля рисуешь, добавляй шаги эти к x и y

    • @inf99ballov
      @inf99ballov  2 роки тому +3

      хороший вариант, формула пика если я не ошибаюсь, но это тоже неавтоматизированный вариант, хотя довольно неплохо ускоряет решение)

    • @bewin8578
      @bewin8578 2 роки тому

      Нод?

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

    А вы не знаете как посчитать этот идентификатор объекта, проведя некоторое количество тестов я так и не выявил закономерности в идентификаторах?

  • @DJBraT100
    @DJBraT100 Рік тому +1

    Интересно если я color не прописываю и все заливается черным цветом, то программа все равно работает не взирая на item[0]==5 как это объяснить?

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

      потому что чел в видео не понимает как она работает, а просто скопипастил код и повторил объяснения :)

  • @CHELSEAprod
    @CHELSEAprod 10 місяців тому +1

    А что делать в случае, когда можно считать точки на линии? Какой код у черного цвета?

    • @loco9312
      @loco9312 10 місяців тому

      пни как ответят, я придумал величивать шаг форвард на 2 еденицы тогда будет считать правильно

    • @Ilya-ju1jg
      @Ilya-ju1jg 9 місяців тому

      вместо len(item) == 1 and item[0] == 5: надо писать len(item) >= 1: и все

    • @Ilya-ju1jg
      @Ilya-ju1jg 9 місяців тому

      @@loco9312 пинаю, на 2 единицы увеличивать нельзя, не правильно это

    • @Ilya-ju1jg
      @Ilya-ju1jg 9 місяців тому

      еще лучше придумал:
      if len(item)>=1 and (canvas.itemcget(item[0], 'fill') == 'red' or canvas.itemcget(item[0], 'fill') == 'black'):

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

    Используйте в самом начале tracer(0) - это функция завершит работу черепахи сразу без ожидания

    • @Gandaruxa
      @Gandaruxa 11 місяців тому

      может ответ неправильно выдать

    • @Gandaruxa
      @Gandaruxa 11 місяців тому +1

      лучше speed(0)

  • @k_o_l_d_iplay9360
    @k_o_l_d_iplay9360 Рік тому +1

    Возник такой вопрос насчёт этой программы: в сборнике Крылова 9-10 вариант даны такие условия: направо 30 повтори 10(9 вариант) и почему черепаха может крутиться на одном месте и выдавать в итоге 0?

    • @inf99ballov
      @inf99ballov  Рік тому +1

      Пришли пожалуйста свой код, наверняка ошибочка там

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

      @@inf99ballov Момент: условие из 9 варианта (Направо 30 [Вперёд 30 Направо 60 Вперёд 30 Направо 120] и условие из 10 варианта: (Повтори 10 [Направо 120 Вперёд 12 Направо 60 Вперёд 12]
      Код для 10 варианта:
      from turtle import *
      color('black', 'red')
      m = 100
      begin_fill()
      left(90)
      for i in range(4):
      right(120)
      forward(12*m)
      right(60)
      forward(12*m)
      end_fill()
      canvas = getcanvas()
      cnt = 0
      for x in range(-130*m, 130*m, m):
      for y in range(-130*m, 130*m, m):
      item = canvas.find_overlapping(x,y,x,y)
      if len(item) == 1 and item[0] == 5:
      cnt += 1
      print(cnt)
      done()
      ext()
      Код для 9 варианта:
      from turtle import *
      color('black' 'red')
      m = 100
      begin_fill()
      right(30)
      left(60)
      for i in range(4):
      forward(30*m)
      right(60)
      forward(30*m)
      right(120)
      end_fill()
      canvas = getcanvas()
      cnt = 0
      for x in range(-130*m, 130*m, m):
      for y in range(-130*m, 130*m, m):
      item = canvas.find_overlapping(x,y,x,y)
      if len(item) == 1 and item[0] == 5:
      cnt += 1
      print(cnt)
      done()
      ext()

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

      @@inf99ballov в ожидании ответа 🙃

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

      ​​​​@@k_o_l_d_iplay9360 в коде для 9в. у тебя в color нет запятой между цветами,
      left должно быть 90, а не 60,
      в for достаточно range(2) для полной фигуры, так как с 4 у тебя черепашка дважды рисует фигуру,
      ещё в конце ext() вместо exit() написано.
      ответ вроде 750.
      в 10в. также вместо range(4) нужно range(2) и вместо ext() нужно exit(), но второе особо на программу не влияет.
      ответ 120 вроде.
      п.с. и ещё это не обязательно, но рекомендую добавить speed(1000), чтобы быстрее работало

    • @k_o_l_d_iplay9360
      @k_o_l_d_iplay9360 Рік тому +1

      @@kimine2270 спасибо за отклик, попробую сделать 🤝

  • @ИринаЧупракова-м9ф
    @ИринаЧупракова-м9ф 2 роки тому +2

    При повороте на 45 градусов программа считает точки некорректно, кто-то сталкивался с такой проблемой?

    • @inf99ballov
      @inf99ballov  2 роки тому

      Отправь пожалуйста задачу и свой код. Наверняка ошибка в чем-то другом

    • @ИринаЧупракова-м9ф
      @ИринаЧупракова-м9ф 2 роки тому +1

      @@inf99ballov Голова направлена вдоль положительного направления оси ординат. Алгоритм: Вперед 100 Направо 90 Вперед 100 Направо 45 Опусти Повтори 10 [ Вперед 30 Направо 90].
      Ответ 882, получается 924.
      Эту часть пропускаю (Вперед 100 Направо 90 Вперед 100 ), т.к если сделать left(90) forward(100*m) right (90) forward(100*m) черепашка все равно будет стоять в положении Направо 90.
      from turtle import *
      color ("black", "red")
      m = 100
      tracer(0)
      begin_fill()
      right(45)
      for i in range(4):
      forward(30*m)
      right(90)
      end_fill()
      canvas = getcanvas()
      count = 0
      for y in range(-100*m, 100*m, m):
      for x in range(-100*m, 100*m, m):
      item = canvas.find_overlapping(x,y,x,y)
      if len(item) == 1 and item[0] == 5:
      count +=1
      print(count)
      update()
      done()
      exit()

    • @inf99ballov
      @inf99ballov  2 роки тому +2

      @@ИринаЧупракова-м9ф забавно, я нашел ошибку в операции tracer(0)! дело в том, что если не отслеживать путь черепашки, то она не будет рисовать линию черного цвета, чтобы эти точки мы не считали раз они лежат на границе фигуры, поэтому заменяем строчку tracer(0) на speed(1000) и все окей
      from turtle import *
      color ("black", "red")
      m = 100
      speed(1000)
      begin_fill()
      right(45)
      for i in range(4):
      forward(30*m)
      right(90)
      end_fill()
      canvas = getcanvas()
      count = 0
      for y in range(-100*m, 100*m, m):
      for x in range(-100*m, 100*m, m):
      item = canvas.find_overlapping(x,y,x,y)
      if len(item) == 1 and item[0] == 5:
      count +=1
      print(count)
      done()
      exit()

    • @ИринаЧупракова-м9ф
      @ИринаЧупракова-м9ф 2 роки тому +1

      @@inf99ballov Спасибо!

  • @br1se
    @br1se Рік тому +1

    А что делать в заданиях с дугами? Мне вот попалась в варианте дуга, не знаю что делать

  • @AspiringToTheBest
    @AspiringToTheBest Рік тому +1

    А где ты рисуешь? Скинь прогу плиз))

  • @Олег-т3н9б
    @Олег-т3н9б Рік тому

    Интересно, как сделать, чтобы после рисования ёлки, секунд через 5 графическое окно с ёлкой закрылось или вовсе питон закрыл сам себя?

  • @Zlexe
    @Zlexe 2 роки тому

    А что если взять 54 номер задания 6 у Полякова, шдн используется чертёжник?
    Попробуй его решить таким же способом, потому что там ответ получается 62305 точек
    Чертёжнику был дан для исполнения следующий алгоритм:
    Повтори 10 раз
    Сместиться на (200, 100)
    Сместиться на (-50, -150)
    Сместиться на (-150, 50)
    конец
    Определите, сколько точек с целочисленными координатами будут находиться внутри области, ограниченной линией, заданной данным алгоритмом. Точки на линии следует учитывать.

  • @samuraiFinty
    @samuraiFinty 8 місяців тому +1

    А какой номер у черного цвета??

  • @Itachi143Uchiha
    @Itachi143Uchiha 6 місяців тому

    а если фигур несколько и нужно посчитать точки пересечения или же точки, которые не пересекаются

  • @Raito_404
    @Raito_404 Рік тому +2

    а если точки на линии тоже надо считать?

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

    Спасибо большое!

  • @Хутава2.0
    @Хутава2.0 Рік тому +1

    from turtle import *
    color("blak", "red")
    m = 100
    begin_fill()
    left(90)
    for i in range(3):
    forward(111 * m)
    right(120)
    end_fill()
    canvas = getcanvas()
    cnt = 0
    for x in range(-120 * m, 120 * m, m):
    for y in range(-120 * m, 120 * m, m):
    item = canvas.find_overlapping(x, y, x, y)
    if len(item) == 1 and item[0] == 5:
    cnt += 1
    print(cnt)
    done()
    exit()
    питон выдает ошибку, что я не так написал?

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

    а что делать если в задаче цапля?
    Цапле был дан для ис­пол­не­ния сле­ду­ю­щий ал­го­ритм:
    По­вто­ри 5 [Дуга 5, 0, 10, 180 Дуга 10, 0, 0, 180 Дуга 5, -5, -5, 180].
    какие нужно использовать команды?

  • @SkxrdyStickers
    @SkxrdyStickers 2 роки тому +1

    Подскажите, а как с помощью этого шаблона решать подобные задачи: Повтори k [Команда1 Команда2 … КомандаS]
    означает, что последовательность из S команд повторится k раз. Черепахе был дан для исполнения следующий алгоритм:
    Повтори 4 [Вперёд 10 Направо 90]
    Направо 30
    Повтори 5 [Вперёд 6 Направо 60 Вперёд 6 Направо 120]
    Определите, сколько точек с целочисленными координатами будут находиться внутри области, ограниченной линией, заданной данным алгоритмом: Повтори 4 [Вперёд 10 Направо 90] и находиться вне области, ограниченной линией, заданной данным алгоритмом: Повтори 5 [Вперёд 6 Направо 60 Вперёд 6 Направо 120]. Точки на линии учитывать не следует.

    • @inf99ballov
      @inf99ballov  2 роки тому

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

  • @blobick2264
    @blobick2264 10 місяців тому

    Вопрос, а что если в задании просят учитывать точки на линиях, как посчитать их количество в таком случае?

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

    Ох блин ненавижу что-то заучивать шаблонно, хотелось бы чтоб в школах реально изучали пайтон, а не шаблоны под ЕГЭ. Можете подсказать где можно брать нормальную информацию по пайтону?

  • @sefka_of
    @sefka_of 7 місяців тому

    привет, а как решать таким шаблоном задачи где пересечение фигур?

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

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

  • @ВалерийПерелыгин-ц1п

    Приветствую! Столкнулся с вот такой задачей, ответ не сходится, должен быть 85. Возможно, ошибка в сборнике?
    Направо 45
    Повтори 9 [Вперёд 9 Направо 90]
    from turtle import *
    color('black','red')
    speed(100)
    m = 200
    begin_fill()
    right(45)
    for i in range(9):
    forward(9*m)
    right(45)
    end_fill()
    canvas = getcanvas()
    cnt = 0
    for y in range(-200*m, 200*m, m):
    for x in range(-200*m, 200*m, m):
    item = canvas.find_overlapping(x, y, x, y)
    if len(item) == 1 and item[0] == 5:
    cnt += 1
    print(cnt)
    done()
    exit()

    • @inf99ballov
      @inf99ballov  2 роки тому

      А можно целиком вопрос, там точки только внутри фигуры считать нужно или на границе тоже?
      И куда изначально смотрит Черепашка, вдоль оси x или y?
      Во вторых уже сразу видно опечатку у вас. В условии написано направо 90
      а в вашей программе right(45) в цикле

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

    Классная программа, вот только вопрос есть, как ей считать задания, где нужно поднять хвост черепахи, сделать что-то, опустить хвост и снова что-то сделать? это возможно?

  • @chlen_tvoi
    @chlen_tvoi Рік тому +1

    ПОДСКАЖИТЕ ПОЖАЛУЙСТА КАК МОЖНО ОПРЕДЕЛИТЬ ОБЛАСТЬ ПЕРЕСЕЧЕНИЯ ФИГУР
    Черепахе был дан для исполнения следующий алгоритм:
    Повтори 3 [Вперёд 10 Направо 120]
    Поднять хвост
    Вперёд 10 Направо 90 Вперёд 3
    Опустить хвост
    Повтори 4 [Вперёд 10 Направо 90]
    Определите, сколько точек с целочисленными координатами будут находиться внутри пересечения фигур, ограниченных заданными алгоритмом линиями, не включая точки на границах этого пересечения.
    мой код:
    from turtle import *
    color ('black','yellow')
    m=15
    speed(1)
    begin_fill()
    left(90)
    for z in range (3):
    forward (10*m)
    right(120)
    pu()
    forward(10*m)
    right (90)
    forward (3*m)
    pd()
    for s in range (4):
    forward (10*m)
    right (90)
    end_fill()
    canvas=getcanvas()
    cnt=0
    for y in range (-200*m,200*m,m):
    for x in range (-200*m,200*m,m):
    item=canvas.find_overlapping(x,y,x,y)
    if len(item)==1 and item[0]==5:
    cnt+=1
    print (cnt)
    done ()
    exit ()

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

      я такие задачи решаю по отдельности: в кумире или на листочке сначала строишь область пересечения а потом уже задаешь полученную фигуры в прогу и считаешь точки

  • @lizamag6951
    @lizamag6951 2 роки тому +1

    Проверьте, пожалуйста, что не так:
    задание:
    Повтори 4 [Вперёд 5 Направо 90 Вперёд 10 Направо 90]
    Определите, сколько точек с целочисленными координатами будут находиться внутри области, ограниченной линией, заданной данным алгоритмом. Точки на линии учитывать не следует.
    код:
    from turtle import*
    color('black', 'red')
    m=100
    speed(1000)
    begin_fill()
    left(90)
    for i in range(4):
    forward(5*m)
    right(90)
    forward(10*m)
    right(90)
    end_fill()
    canvas=getcanvas()
    cnt=0
    for y in range(-100*m, 100*m,m):
    for x in range(-100*m, 100*m, m):
    item=canvas.find_overlapping(x, y, x, y)
    if len(item)==1 and item[0]==5:
    cnt+=1
    print(cnt)
    done()
    exit()
    вообще не понимаю, где ошибка(

    • @inf99ballov
      @inf99ballov  2 роки тому +1

      неправильно выбрано количество повторений в цикле. Для того, чтобы отрисовался прямоугольник нужно выполнить команды отрисовки всего 2 раза, а не 4 как в условии, поэтому программа должна выглядеть так:
      from turtle import*
      color('black', 'red')
      m=100
      speed(1000)
      begin_fill()
      left(90)
      for i in range(2):
      forward(5*m)
      right(90)
      forward(10*m)
      right(90)
      end_fill()
      canvas=getcanvas()
      cnt=0
      for y in range(-100*m, 100*m,m):
      for x in range(-100*m, 100*m, m):
      item=canvas.find_overlapping(x, y, x, y)
      if len(item)==1 and item[0]==5:
      cnt+=1
      print(cnt)
      done()
      exit()

    • @SkxrdyStickers
      @SkxrdyStickers 2 роки тому

      @@inf99ballov Не сходится, питон выдает 36 точек, а в ответах 66

    • @inf99ballov
      @inf99ballov  2 роки тому

      @@SkxrdyStickers значит ошибка в ответах
      попробуй нарисуй эту фигуру в тетрадке и посчитать - получится 36, это прямоугольник со сторонами 5 на 10, там не может быть 66 точек

    • @gifi5844
      @gifi5844 2 роки тому

      @@inf99ballov вы отчасти не правы. Если учитывать границы, как раз 66 точек (5+1=6 точек в длину и 10+1=11 точек в высоту 6*11=66)
      Для подсчета же без границы должно выйти 66-30=36, как вы и сказали.

    • @inf99ballov
      @inf99ballov  2 роки тому +1

      @@gifi5844так в условии прикрепленной задачи написано НЕ УЧИТЫВАТЬ точки на линии, поэтому я так и написал)

  • @ТихонПо
    @ТихонПо 10 місяців тому

    код хороший работает почти всегда, он в сборнике Крылова 2024 года в 15 варианте фигура очень странная, я ,вроде, все учел , но ответ прога выдаёт не верный.

  • @svatg
    @svatg 2 роки тому +6

    Можно ли как-то считать точки, которые на линии тоже учитываются???????❤❤❤

    • @inf99ballov
      @inf99ballov  2 роки тому +4

      конечно, просто в условном операторе пропиши if len(item) >= 1:
      и готово

    • @МихаилПавлов-я5п
      @МихаилПавлов-я5п 2 роки тому +1

      @@inf99ballov как len(item) может быть больше единицы, Если пересечений точки и точки больше 1 быть никак не может? Разве в таком случае не нужно убирать второе условие, которое проверяет цвет завивки?

    • @inf99ballov
      @inf99ballov  2 роки тому +1

      @@МихаилПавлов-я5п Он ищет пересечения всех объектов, прямых, заливочной части и тд. и как понятно по условию, наша точка пересечется и с заливкой и с черной границей поверх нее, поэтому длина множества будет больше 1

    • @МихаилПавлов-я5п
      @МихаилПавлов-я5п 2 роки тому +1

      @@inf99ballov то есть при таком построении заливка так же накладывается на (или под, неважно) линию?

    • @inf99ballov
      @inf99ballov  2 роки тому +1

      @@МихаилПавлов-я5п да, там все по хитрому

  • @ВладАдеев-н1с
    @ВладАдеев-н1с 2 роки тому +2

    А что делать если просят посчитать и точки лежащие на линии?

    • @inf99ballov
      @inf99ballov  2 роки тому

      Почитай в комментах других ребят, уже задавали такой вопрос))

  • @ГеоргийКислов-р2ю
    @ГеоргийКислов-р2ю 2 роки тому

    приветствую, вопрос всё ещё по решению через turtle(старый комментарий так и не получил ответа, плюс инфа новая есть). Есть вопрос, почему мы проверяем точку через число 5? Повторюсь, мы проверяем не цвет объекта, так как при изменении фона программа всё ещё находит нужные точки, значит мы считаем какой то другой параметр. И я заметил странность: если мы начнём выводить точки, которые входят в фигуру, мы будем получать кортежи, причём их длина будет чаще всего 1-2 элемента. Но первая же точка имеет 5 элементов! Есть конечно идея, что каждая точка возвращает кол-во объектов, которые проходят через неё, но тогда почему один объект называется 5,4, и т.д., и почему в 1 точке целых 5 объектов, хотя мы используем только линии и площадь? Было бы неплохо, что бы вы прояснили этот момент. Заранее спасибо

    • @inf99ballov
      @inf99ballov  2 роки тому +1

      Георгий, здравствуйте! я уже отвечал на этот вопрос кому-то в комментариях: список item наполняется не кодами цветов, а кодами самих элементов пересечения, поэтому цвета можно менять, в видео я этого еще не знал)
      В документации сказано так:
      find_overlapping ( x1 , y1 , x2 , y2 ) -
      Возвращает каждый элемент, перекрывающий прямоугольную область, заданную x1 , y1 , x2 и y2 . должен быть верхний левый угол области и нижний правый угол. Элементы возвращаются в порядке укладки, начиная с самого нижнего элемента.(x1, y1)(x2, y2)

  • @nastyar01
    @nastyar01 2 роки тому +3

    Даня лучший!

  • @mr.bigbro4199
    @mr.bigbro4199 8 місяців тому

    нужно было еще дописать внчале tracer(0), чтобы не ждать отрисовки

  • @АлексейПасечников-ш8б

    А для того чтобы посчитать точки на обводке есть код а желательно видео?

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

    Повтори 4 [Вперёд 9 Направо 90 Вперёд 7 Направо 90]
    Почему тут, если range(4) ставлю, то выдает ноль, а если range(2) то верное число?
    for i in range(4):
    forward(9*m)
    right(90)
    forward(7 * m)
    right(90)

    • @inf99ballov
      @inf99ballov  Рік тому +1

      потому что это прямоугольник и за один проход ты рисуешь сразу две его стороны. Значит для замыкания фигуры нужно всего 2 повторения, а не 4 как в условии

  • @ruslan8988
    @ruslan8988 2 роки тому +6

    Рекомендую нормальный масштаб использовать, чтобы фигура полностью на экран помещалась. Чтобы проверить, что фигура адекватная получилась, без ошибок. И точки тоже на экран выводить нужно для дополнительной проверки, чтобы убедиться, что диапазон верно задан, нет пустых дырок и т.д. Для этого goto (x,y) и dot(5,'blue') используйте. У вас программа сейчас просто какое-то число выводит и не понятно откуда и как оно берётся. А как проверить что вы не ошиблись нигде? Нет никакой визуализации. Визуализацию делайте. Вы должны видеть и понимать что всё правильно нарисовалось. У вас на егэ не будет возможности "сверить" ответ. Найти ошибку в программе и пересчитать вам не разрешат. А ваша программа в таком в виде сейчас не имеет защиты от ошибок.

    • @hylk5395
      @hylk5395 2 роки тому

      Я сейчас прорешал задачу без масштабирования и получил неверный ответ. После этого я взял масштаб за 10, и ответ неожиданно стал верным. Думаю, что из-за маленького масштаба некоторые точки с целочисленными координатами как бы пропадают из-за нехватки пикселей на экране, иначе я это объяснить не могу

  • @kirilllizunov9751
    @kirilllizunov9751 2 роки тому

    Помогите пж...
    пишет, что name 'canvas' is not defined
    Код (вторая задача из ролика):
    from turtle import *
    color('black','red')
    m=100
    begin_fill()
    right(30)
    for i in range(4):
    forward(25*m)
    right(90)
    end_fill()
    cnt=0
    for y in range(-100*m, 100*m, m):
    for x in range(-100*m, 100*m, m):
    item = canvas.find_overlapping(x, y, x, y)
    if len(item)==1 and item[0]==5:
    cnt+=1
    print(cnt)
    done()
    exit()
    Запускал и в питоне 3.9.6, и в онлайн компиляторе, везде выводит одну и ту же ошибку

    • @inf99ballov
      @inf99ballov  2 роки тому

      ты пропустил строчку canvas = getcanvas()
      вот код:
      from turtle import *
      color('black','red')
      m=100
      speed(1000)
      begin_fill()
      right(30)
      for i in range(4):
      forward(25*m)
      right(90)
      end_fill()
      canvas = getcanvas()
      cnt=0
      for y in range(-100*m, 100*m, m):
      for x in range(-100*m, 100*m, m):
      item = canvas.find_overlapping(x, y, x, y)
      if len(item)==1 and item[0]==5:
      cnt+=1
      print(cnt)
      done()
      exit()

  • @Sanya_Nub_voin
    @Sanya_Nub_voin 2 роки тому +3

    Кстати, заливка у черепашки адекватная. Если фигура не замкнутая, то черепашка соединит конец и начало фигуры. И даже если там будет 10 повторений, все равно должно работать)

    • @Raito_404
      @Raito_404 2 роки тому

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

  • @devinf74
    @devinf74 2 роки тому +2

    Хочется уточнить: данный код - это полностью Ваша оригинальная идея, придуманная с нуля без опоры на что-либо?

    • @inf99ballov
      @inf99ballov  2 роки тому

      Я эту программу показывал еще с месяц назад, на вебинаре по решению 6 задач, но всвязи с выходом сборника, решил продублировать. Придумана прога не без помощи Вани (наш преподаватель 10 класса) огромное ему спасибо, ну а что касается ютуба, я такого кода пока что ни у кого не видал.

    • @inf99ballov
      @inf99ballov  2 роки тому +3

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

    • @ИльнарЮсупов-р2г
      @ИльнарЮсупов-р2г 2 роки тому +1

      @@inf99ballov можно было просто извиниться, что код был позаимствован)
      Видно же, что точь в точь все совпадает практически, а на видео говорите, что это вы придумали)
      Не очень красиво получается)

    • @inf99ballov
      @inf99ballov  2 роки тому

      @@ИльнарЮсупов-р2г я не заимствовал этот код. Совпадения хоть и редки, но случаются. Я никогда за все время преподавания не стеснялся говорить об авторах способов решения на своем канале, да и стал бы я записывать видео с похожим кодом, даже не изменив его? я тоже узнал об этом только после этого комментария

    • @inf99ballov
      @inf99ballov  2 роки тому

      @@ИльнарЮсупов-р2г можете также посмотреть мой вебинар "все способы решения нового 6 задания", там я тоже решал его этим кодом в конце и все это почти месяц или уже 2 назад

  • @nikzan5918
    @nikzan5918 2 роки тому

    Подскажите, в IDE Pycharm на Mac apple silicon программа не работает, ответ не выводится в консоль даже спустя час. В среде Thonny все работает замечательно. Проблема именно с IDE или с операционкой? Знаю точно, что на ППЭ будут машины с этой средой, не возникут ли подобные проблемы там?

    • @inf99ballov
      @inf99ballov  2 роки тому

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

    • @annax3163
      @annax3163 Рік тому +1

      Пишите в голеньком IDLE (найти поиском во "все программы")

  • @--6960
    @--6960 2 роки тому +2

    привет! очень странно программа зависит от переменной m, если её поменять - получается другой ответ. всегда получается такие значения брать? или это только для вариантов Крылова? =D

    • @inf99ballov
      @inf99ballov  2 роки тому +1

      m - масштаб, чем он больше чем точнее рисунок, поэтому ответы и будут разными получается, масштаба в 100 достаточно для всех заданий

  • @miyasaiko
    @miyasaiko 10 місяців тому +1

    Какой пушистик на фоне🥺🥺🥺

  • @k_o_l_d_iplay9360
    @k_o_l_d_iplay9360 Рік тому +1

    А эта программа будет действовать только на треугольники или на все фигуры?

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

      на все фигуры

    • @k_o_l_d_iplay9360
      @k_o_l_d_iplay9360 Рік тому +2

      @@inf99ballov понял, спасибо за уточнение. Хорошечная программа ✌️🤝

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

    Кажется, алгоритм не рабочий. Я заметил что с квадратными фигурами, где 4 рисующие команды, ответ неверный. Иногда приходится менять местами размер движения, а иногда даже это не помогает.
    Для примера:
    Вперед 5
    Направо 90
    Вперёд 7
    Направо 90
    (учитывать точки на границе)
    Ответ: 48
    Показывает: 42

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

      Так тебе показали шаблон решения с задачами где точки нужно находить ТОЛЬКО ВНУТРИ фигуры, БЕЗ точек на границе. Можешь посчитать их отдельно и сложить вместе с ответом шаблона, либо просто посчитать вручную. Ведь гораздо проще просто перемножить два числа нежели строчить этот код.

  • @часовщик-ю8ш
    @часовщик-ю8ш 2 роки тому +10

    k=0
    for x in range(1,14):
    for y in range(1,14):
    if -x/(3**0.5)+14>y>x/(3**0.5):
    k+=1
    print(k)
    14 - сторона треугольника вариант 10 6 задание ответ 78 сразу выходит Решу ЕГЭ через графики ...ставишь вместо 14 любое число...

    • @tatarskiy_ejik6836
      @tatarskiy_ejik6836 2 роки тому

      работает онли на треугольник

    • @shadowdragon5185
      @shadowdragon5185 2 роки тому

      @@tatarskiy_ejik6836 это дело можно поместить в функцию и передать параметром количество углов (Те "3" Это ведь количество углов? )

    • @tatarskiy_ejik6836
      @tatarskiy_ejik6836 2 роки тому

      @@shadowdragon5185 не ко мне вопрос

    • @shadowdragon5185
      @shadowdragon5185 2 роки тому

      @@tatarskiy_ejik6836 по коду это и не было вопросом. Вопрос только с этой цифрой 3

    • @the_byte.
      @the_byte. 2 роки тому

      @@shadowdragon5185 нет, 3**0.5 это корень из трех

  • @СергейРуденко-п3д
    @СергейРуденко-п3д 2 роки тому

    не пойму в чем ошибка, выдает ответ 5190
    from turtle import *
    speed(1000)
    color("black","red")
    m=100
    begin_fill()
    left(90)
    for i in range(3):
    forward(111*m)
    right(120)
    end_fill()
    canvas=getcanvas()
    cnt=0
    for y in range(-100*m,100*m,m):
    for x in range(-100*m,100*m,m):
    item=canvas.find_overlapping(x,y,x,y)
    if len(item)==1 and item[0]==5:
    cnt+=1
    print(cnt)
    done()
    exit()

    • @inf99ballov
      @inf99ballov  2 роки тому

      перебор маленький
      ты идешь от -100 до 100, но треугольник рисуешь со стороной 111
      поставь в обоих циклах -120 до 120

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

    Зачем возвращать холст tkinter?

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

    В некоторых заданиях просят поднять хвост, если в кумире это сделать элементарно, то вот как сделать на питоне на видео не показано. Если это возможно сделать, то пожалуйста ответьте мне как.