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

Поделиться
HTML-код
  • Опубликовано: 2 фев 2025

Комментарии • 459

  • @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т полностью согласен, работать не будет

  • @НастяМарятова-ф9п
    @НастяМарятова-ф9п Год назад +27

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

  • @Mi_Nare
    @Mi_Nare 2 года назад +34

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

  • @gerasimnotfound8438
    @gerasimnotfound8438 11 месяцев назад +8

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

  • @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 года назад

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

  • @ЗандаБукаева
    @ЗандаБукаева 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 да, я проверил, оказалось просто задача попалась такая, что просто удачно сошлось. А на деле всё не так. Плюсом я нашёл видос который рассматривает эту тему. Как оказывается это всё бред и работает только если повезёт с задачей. Сами попробуйте очень много таких задач порешать и убедитесь. Так ещё к минусам данного способа, что нельзя почитать точки на линиях.

  • @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 месяцев назад

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

  • @АндрейДенисов-б3н
    @АндрейДенисов-б3н Год назад +14

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

    • @kozanuch4405
      @kozanuch4405 Год назад

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

    • @fasfq1862
      @fasfq1862 Год назад

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

    • @PROCODING
      @PROCODING 11 месяцев назад

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

  • @Richard_255
    @Richard_255 Год назад +2

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

  • @Vincent._.
    @Vincent._. Год назад +6

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

  • @redtroll2830
    @redtroll2830 Год назад +12

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

    • @dinarik0647
      @dinarik0647 8 месяцев назад

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

  • @neksol1541
    @neksol1541 2 года назад +6

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

  • @evgenyland4448
    @evgenyland4448 2 года назад +25

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

    • @Megadown-x6n
      @Megadown-x6n Год назад +6

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

    • @fasfq1862
      @fasfq1862 Год назад

      ​@@Megadown-x6n😂😂😂

  • @ArtemTimofeev-iw5cl
    @ArtemTimofeev-iw5cl Год назад +3

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

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

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

  • @Dmitrii-Zhinzhilov
    @Dmitrii-Zhinzhilov 2 года назад +5

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

  • @thefall1673
    @thefall1673 Год назад +3

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

  • @Куепро-ч7э
    @Куепро-ч7э 2 года назад +4

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

  • @Random_Thought_Generator
    @Random_Thought_Generator Год назад +4

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

    • @voice_power_yt
      @voice_power_yt Год назад

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

    • @vasily2dndn
      @vasily2dndn Год назад

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

    • @sunny_reflection
      @sunny_reflection 9 месяцев назад

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

    • @voice_power_yt
      @voice_power_yt 9 месяцев назад

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

  • @ksulive3510
    @ksulive3510 2 года назад +4

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

  • @ukrop6731
    @ukrop6731 11 месяцев назад +1

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

  • @MrAndrew005
    @MrAndrew005 2 года назад +3

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

    • @inf99ballov
      @inf99ballov  2 года назад +2

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

  • @_bongo_cat9965
    @_bongo_cat9965 11 месяцев назад

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

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

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

  • @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 2 года назад

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

    • @qpjlekcep7592
      @qpjlekcep7592 2 года назад

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

    • @inf99ballov
      @inf99ballov  2 года назад +6

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

    • @shinratensei580
      @shinratensei580 2 года назад

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

  • @HPplay1802
    @HPplay1802 Год назад +2

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

  • @quorti3278
    @quorti3278 Год назад +4

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

  • @shawtyfromnorthside4887
    @shawtyfromnorthside4887 Год назад +3

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

  • @iformatics
    @iformatics Год назад

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

  • @arslansimchit1176
    @arslansimchit1176 Год назад +2

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

  • @c0ld_ddd
    @c0ld_ddd 2 года назад +1

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

  • @men_epto
    @men_epto Год назад +1

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

  • @shanydess
    @shanydess Год назад

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

    • @Gandaruxa
      @Gandaruxa Год назад

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

    • @Gandaruxa
      @Gandaruxa Год назад +1

      лучше speed(0)

  • @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 построить эту фигуру по командам в кумире например или на листочке нарисовать

  • @chensarmletom
    @chensarmletom Год назад

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

  • @AlexAksenenko-rk6mz
    @AlexAksenenko-rk6mz 2 года назад +2

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

    • @inf99ballov
      @inf99ballov  2 года назад

      Да согласен

    • @Pup_of_Earth
      @Pup_of_Earth Год назад

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

    • @dronremov5346
      @dronremov5346 3 месяца назад

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

  • @что-ф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 месяцев назад

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

  • @psychoINF
    @psychoINF Год назад +1

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

  • @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 года назад

      Нод?

  • @alexbelyakov8845
    @alexbelyakov8845 2 месяца назад

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

  • @GeyOrgi
    @GeyOrgi Год назад

    парни как понятно сколько ставить на 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 11 месяцев назад

      Ставь 15000000

  • @rebellion255
    @rebellion255 2 года назад +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 2 года назад +1

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

    • @chlen_tvoi
      @chlen_tvoi 2 года назад +1

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

    • @rebellion255
      @rebellion255 2 года назад

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

    • @chlen_tvoi
      @chlen_tvoi 2 года назад

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

    • @rebellion255
      @rebellion255 2 года назад

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

  • @олег-и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 Спасибо, обязательно прочту.

  • @mr.bigbro4199
    @mr.bigbro4199 8 месяцев назад

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

  • @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

  • @Gandaruxa
    @Gandaruxa Год назад

    from turtle import *
    color("black", "red")
    m = 100
    begin_fill()
    left(90)
    for i in range(2):
    forward(10*m)
    right(90)
    forward(18*m)
    right(90)
    penup()
    forward(5*m)
    right(90)
    forward(7*m)
    left(90)
    pendown()
    for i in range(2):
    forward(10*m)
    right(90)
    forward(7*m)
    right(90)
    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()
    привет,скорее всего ты не ответишь,но не знаешь почему задача выдает неправильный ответ,нужно найти точки внутри объединения фигур включая точки на линиях
    должно быть 249 у меня 196 или 197

  • @часовщик-ю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 это корень из трех

  • @teizi5660
    @teizi5660 2 года назад +4

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

    • @inf99ballov
      @inf99ballov  2 года назад +1

      с масштабом 10 тоже можно, но 100 для уверенности)

    • @Ксю-р6ш
      @Ксю-р6ш 2 года назад +1

      Подскажите пожалуйста зачем мы увеличиваем масштаб?

    • @inf99ballov
      @inf99ballov  2 года назад +1

      @@Ксю-р6ш уже ответил на такой вопрос)

    • @Dmitrii-Zhinzhilov
      @Dmitrii-Zhinzhilov 2 года назад +3

      @@inf99ballov c масштабом 10 у меня 6 точек недостаёт !!! так что надо брать 100

  • @CHELSEAprod
    @CHELSEAprod 11 месяцев назад +1

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

    • @loco9312
      @loco9312 11 месяцев назад

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

    • @Ilya-ju1jg
      @Ilya-ju1jg 10 месяцев назад

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

    • @Ilya-ju1jg
      @Ilya-ju1jg 10 месяцев назад

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

    • @Ilya-ju1jg
      @Ilya-ju1jg 10 месяцев назад

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

  • @wolk463
    @wolk463 Год назад +1

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

  • @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 спасибо за отклик, попробую сделать 🤝

  • @Sanya_Nub_voin
    @Sanya_Nub_voin 2 года назад +3

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

    • @Raito_404
      @Raito_404 2 года назад

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

  • @DJBraT100
    @DJBraT100 Год назад +1

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

    • @zombikiller201
      @zombikiller201 9 месяцев назад

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

  • @Олег-т3н9б
    @Олег-т3н9б Год назад

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

  • @ИринаЧупракова-м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 Спасибо!

  • @ruslan8988
    @ruslan8988 2 года назад +6

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

    • @hylk5395
      @hylk5395 2 года назад

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

  • @sefka_of
    @sefka_of 8 месяцев назад

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

  • @Itachi143Uchiha
    @Itachi143Uchiha 7 месяцев назад

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

  • @samuraiFinty
    @samuraiFinty 9 месяцев назад

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

  • @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 Спасибо, думала всё, тупик)

  • @br1se
    @br1se Год назад +1

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

  • @fasfq1862
    @fasfq1862 Год назад

    В 6ом номере и цапля и кузнечик и кролик есть, там нужны уже мозги, а не только шаблон)

  • @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 назад

  • @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п да, там все по хитрому

  • @blobick2264
    @blobick2264 11 месяцев назад

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

  • @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 Год назад

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

  • @МихаилЛепетков-щ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 11 месяцев назад

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

  • @kozanuch4405
    @kozanuch4405 Год назад

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

  • @Zlexe
    @Zlexe 2 года назад

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

  • @BratIShkao
    @BratIShkao Год назад

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

  • @KiriArt1
    @KiriArt1 Год назад

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

  • @exald401
    @exald401 Год назад

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

  • @nastyar01
    @nastyar01 2 года назад +3

    Даня лучший!

  • @qwertysalo8665
    @qwertysalo8665 Год назад

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

  • @ТихонПо
    @ТихонПо 11 месяцев назад

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

  • @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()

  • @samuraiFinty
    @samuraiFinty 9 месяцев назад +1

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

  • @AspiringToTheBest
    @AspiringToTheBest Год назад +1

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

  • @Хутава2.0
    @Хутава2.0 2 года назад +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()
    питон выдает ошибку, что я не так написал?

  • @k_o_l_d_iplay9360
    @k_o_l_d_iplay9360 2 года назад +1

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

    • @inf99ballov
      @inf99ballov  2 года назад

      на все фигуры

    • @k_o_l_d_iplay9360
      @k_o_l_d_iplay9360 2 года назад +2

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

  • @miyasaiko
    @miyasaiko 11 месяцев назад +1

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

  • @ВладАдеев-н1с
    @ВладАдеев-н1с 2 года назад +2

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

    • @inf99ballov
      @inf99ballov  2 года назад

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

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

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

  • @ЛоговоГика
    @ЛоговоГика 2 года назад

    tracer(0) в начале и прога работает мгновенно

    • @inf99ballov
      @inf99ballov  2 года назад

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

  • @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.Что-то мы делаем не так в жизни

  • @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 как в условии

  • @Raito_404
    @Raito_404 Год назад +2

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

  • @elementalrabel
    @elementalrabel Год назад

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

    • @inf99ballov
      @inf99ballov  Год назад

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

  • @nikzan5918
    @nikzan5918 2 года назад

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

    • @inf99ballov
      @inf99ballov  2 года назад

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

    • @annax3163
      @annax3163 Год назад +1

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

  • @tvink8452
    @tvink8452 Год назад

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

  • @ГеоргийКислов-р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)

  • @АланХаитов-ы6г
    @АланХаитов-ы6г 2 года назад +2

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

    • @inf99ballov
      @inf99ballov  2 года назад +1

      Мне кажется в таком случае ее легче построить в кумире и просто посчитать

    • @АланХаитов-ы6г
      @АланХаитов-ы6г 2 года назад +1

      @@inf99ballovокей спасибо

  • @kizirayukio281
    @kizirayukio281 2 года назад +8

    всё шикарно, осталось запомнить код

    • @einshtein2184
      @einshtein2184 2 года назад +1

      не стоит зубрить код , нужно понимать как он работает )

    • @kizirayukio281
      @kizirayukio281 2 года назад +2

      @@einshtein2184 ну у меня не настолько высокий уровень в программировании, так что хотя бы запомнить

    • @shadowdragon5185
      @shadowdragon5185 2 года назад

      @@kizirayukio281 абсолютно каждый может понять программирование (тем более питон, который является самым лёгким языком)

  • @veronikakovalchuk9954
    @veronikakovalchuk9954 2 года назад +2

    Спасибо!

  • @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так в условии прикрепленной задачи написано НЕ УЧИТЫВАТЬ точки на линии, поэтому я так и написал)

  • @asari6326
    @asari6326 2 года назад +1

    Спасибо, бро.