Инструменты пользователя

Инструменты сайта


8it_pr_2026

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
8it_pr_2026 [2025/09/15 10:18]
super_admin создано
8it_pr_2026 [2026/03/26 13:41] (текущий)
super_admin [Российское сообщество разработчиков программного кода]
Строка 5: Строка 5:
   * У03300338 - код школы   * У03300338 - код школы
  
 +===== Российское сообщество разработчиков программного кода =====
 +
 +Ссылки на ресурсы:​
 +  * [[https://​hub.mos.ru]] Вход и регистрация
 +  * [[https://​hub.mos.ru/​mcpro87/​addinformatik]] Обучение по информатике. ID проекта:​ 56627
 +  * [[https://​hub.mos.ru/​yarburart/​webscraping-learn]] Наброски парсеров на python
 +==== ОГЭ программирование ====
 +
 +
 +  * [[https://​kpolyakov.spb.ru/​school/​oge/​gen.php?​action=viewTopic&​topicId=1042]]
 +  * [[https://​kpolyakov.spb.ru/​school/​oge/​gen.php?​action=viewTopic&​topicId=1038]]
 +  * [[https://​kpolyakov.spb.ru/​school/​oge/​gen.php?​action=viewTopic&​topicId=1037]]
 +  * [[https://​kpolyakov.spb.ru/​school/​oge/​gen.php?​action=viewTopic&​topicId=1013]]
 +  * [[https://​kpolyakov.spb.ru/​school/​oge/​gen.php?​action=viewTopic&​topicId=1012]]
 +
 +==== Проекты на CodinGame ====
 +
 +
 +  * https://​intepra.ru/​wiki/​doku.php?​id=cg
 +
 +==== Конечные автоматы PICOBOT ====
 +
 +  * https://​www.cs.hmc.edu/​picobot/​
 +===== Исполнитель Черепаха =====
 +
 +
 +===== Черепашка в Python =====
 +
 +
 +<code Python>
 +from turtle import *   # подключение всех методов (инструкций) библиотеки Turtle
 +bgcolor("​darkblue"​) ​   # цвет фона
 +shape("​turtle"​) ​       # форма черепашки
 +pencolor("​yellow"​) ​    # цвет пера
 +fillcolor("​yellow"​) ​   # цвет заливки ​
 +pensize(2) ​            # размер пера
 +lt(90) ​                # влево на 90 градусов
 +fd(100) ​               # вперёд на 100
 +bk(100) ​               # назад на 100
 +speed(3) ​             # скорость перемещения (1 - медленно,​ 10 - быстро,​ 0 - очень быстро )
 + 
 +for step in range(4): ​ # 4 шагов цикла
 +    fd(100) ​           # вперёд на 100
 +    rt(90) ​           # вправо 90
 +    ​
 +penup() ​               # поднять перо
 +rt(90) ​                # вправо на 90 градусов
 +fd(150) ​               # вперёд на 100               
 +lt(90) ​                # влево на 90 градусов
 +pendown() ​             # опустить перо
 +
 +begin_fill() ​          # готовность залить цветом фигуру,​ когда она будет нарисована
 +for step in range(5): ​ # повторить 5
 +    fd(100) ​           # вперёд на 100
 +    rt(144) ​           # вправо на 144
 +end_fill() ​            # когда контур фигуры замкнут (цикл завершён) залить цветом фигуру  ​
 +done() ​                # в конце программы
 +</​code>​
 +
 +Пример 2
 +
 +<code Python>
 +from turtle import *   # подключение всех методов (инструкций) библиотеки Turtle
 +shape("​turtle"​)
 +bgcolor("​darkblue"​) ​   # цвет фона
 +pencolor("​white"​)
 +pensize(3)
 +speed(1)
 +penup()
 +goto(-40, 40)
 +pendown()
 +goto(-40, 40)
 +goto(40, 40)
 +goto(40, -40)
 +goto(-40, -40)
 +goto(-40, 40)
 +penup()
 +goto(0, 0)
 +done() ​  
 +</​code>​
 +
 +
 +<code Python>
 +from turtle import *   # подключение всех методов (инструкций) библиотеки Turtle
 +shape("​turtle"​)
 +pensize(2)
 +penup()
 +lt(90)
 +write("​С НОВЫМ ГОДОМ!",​ font=('​Arial',​ 20, '​normal'​))
 +bk(30)
 +for pc in ["​pink",​ "​red",​ "​orange",​ "​darkblue",​ "​green",​ "#​FF00FF",​ "#​000000"​]:​
 +    pencolor(pc) # переменная pc последовательно передает в функцию pencolor() значения элементов списка
 +    write(pc, font=('​Arial',​ 20, '​normal'​)) ​   # напечатать значение переменной pc
 +    bk(30) ​      # сместиться назад на 20 пикселей
 +done()
 +</​code>​
 +
 +Круг
 +
 +<code Python>
 +import time
 +from turtle import *
 +shape("​turtle"​)
 +pencolor("​black"​)
 +fillcolor("​black"​)
 +pensize(3)
 +time.sleep(12)
 +r1 = 25
 +ext1 = 180
 +circle(r1, ext1)
 +r2 = -25
 +circle(r2, ext1)
 +r3 = -50
 +circle(r3)
 +rt(ext1)
 +begin_fill()
 +circle(r1, ext1)
 +r2 = -25
 +circle(r2, ext1)
 +r3 = -50
 +circle(r3, ext1)
 +end_fill()
 +
 +done()
 +</​code>​
 +
 +
 +  * [[https://​stepik.org/​lesson/​658417/​step/​4?​unit=655824]] Задания
 +
 +==== Задачи ====
 +**Написать программу,​ которая рисует фигуру,​ показанную на иллюстрации.**
 +
 +==== Задача 1: ====
 +
 +{{::​image1.png?​nolink|}}
 +
 +==== Задача 2: ====
 +
 +{{::​trt2_-1.png?​nolink|}}
 +
 +==== Задача 3: ====
 +
 +{{::​trt2_-2.png?​nolink|}}
 +
 +==== Задача 4: ====
 +
 +{{::​sqr_8_4.gif?​nolink|}}
 +
 +==== Задача 5: ====
 +
 +{{::​trt2_0.png?​nolink|}}
 +
 +{{::​trt2_0_1.png?​nolink|}}
 +==== Задача 1: ====
 +
 +{{::​image1.png?​nolink|}}
 +
 +==== Задача 2: ====
 +
 +{{::​trt2_-1.png?​nolink|}}
 +
 +==== Задача 3: ====
 +
 +{{::​trt2_-2.png?​nolink|}}
 +
 +==== Задача 4: ====
 +
 +{{::​sqr_8_4.gif?​nolink|}}
 +
 +
 +
 +==== Задача 5: ====
 +
 +{{::​trt2_0.png?​nolink|}}
 +
 +{{::​trt2_0_1.png?​nolink|}}
 +
 +<code Python>
 +from turtle import *   # подключение всех методов (инструкций) библиотеки Turtle
 +bgcolor("​darkblue"​) ​   # цвет фона
 +shape("​turtle"​) ​       # форма черепашки
 +pencolor("​yellow"​) ​    # цвет пера
 +    # цвет заливки ​
 +pensize(2) ​            # размер пера
 +
 +        # готовность залить цветом фигуру,​ когда она будет нарисована
 +n = 5
 +d = ["​red",​ "​green",​ "​blue",​ "​yellow",​ "​pink"​ ]
 +for i in range(n):
 +    begin_fill()
 +    fillcolor(d[i])
 +    for step in range(n): ​ # повторить 5
 +        fd(100) ​           # вперёд на 100
 +        rt(360//n)
 +    end_fill() ​
 +    rt(360//n)
 +            # когда контур фигуры замкнут (цикл завершён) залить цветом фигуру  ​
 +done() ​                # в конце программы
 +
 +</​code>​
 +
 +==== Задачи из ЕГЭ ====
 +
 +
 +  * [[https://​kpolyakov.spb.ru/​school/​ege/​gen.php?​action=viewTopic&​topicId=5559]]
 +  * [[https://​kpolyakov.spb.ru/​school/​ege/​gen.php?​action=viewTopic&​topicId=5555]]
 +  * [[https://​kpolyakov.spb.ru/​school/​ege/​gen.php?​action=viewTopic&​topicId=5554]]
 +
 +**Условие задачи:​**
 +
 +Исполнитель Черепаха действует на плоскости с декартовой (прямоугольной) системой координат. В начальный момент Черепаха находится в начале координат,​ её голова направлена вдоль положительного направления оси ординат (ось y), хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует две команды:​ **Вперёд n** (где n – целое число),​ вызывающая передвижение Черепахи на n единиц в том направлении,​ куда указывает её голова,​ и **Направо m** (где m – целое число),​ вызывающая изменение направления движения на m градусов по часовой стрелке. Запись
 +
 +Повтори k [Команда1 Команда2 … КомандаS]
 +
 +означает,​ что последовательность из S команд повторится k раз. ​
 +
 +Черепахе был дан для исполнения следующий алгоритм:​
 +
 +Повтори 7 [Вперёд 10 Направо 120]
 +
 +Определите,​ сколько точек с целочисленными координатами будут находиться внутри области,​ ограниченной линией,​ заданной данным алгоритмом. Точки на линии учитывать не следует.
 +
 +<code Python>
 +from turtle import *
 +#speed(0)
 +tracer(0)
 +m = 30
 +lt(90)
 +for i in range(7):
 +    fd(10 * m)
 +    rt(120)
 +
 +penup()
 +for y in range(-3, 11):
 +    for x in range(-3, 11):  ​
 +        goto(x * m, y * m)
 +        dot(size = 4)
 +
 +done()
 +</​code>​
 +
 +
 +==== НТО ====
 +[[https://​vk.com/​wall-187440231_8717 | «Технологии и среда обитания»]]
 +[[https://​junior.ntcontest.ru/​spheres#​environment]]
 +
 +Национальная технологическая олимпиада Junior·Автор
 +Информация о сфере на сайте: https://​junior.ntcontest.ru/​spheres#​environment
 +Образовательный курс «Технологии и среда обитания»:​ https://​orbita.education/​events/​94/​482
 +Группа сферы в ВК: https://​vk.com/​habitech
 +
 +
 +https://​school.mos.ru/​vrlabs/​robocompetitions/​app?​link=mqoWr1Gf4M6pXo66jMsE
 +
 +<code C++>
 +#include <​IRremote.h>​ // подключаем библиотеку для работы с ИК-приёмником
 +
 +
 +const byte IR_RECEIVE_PIN = 8; // указываем пин, к которому подключен ИК-приёмник
 +
 +#include <​Servo.h>​ //  подключаем библиотеку для работы с сервоприводом
 +Servo myservo7; ​ // создать объект myservo ​
 +Servo myservo12; ​ // создать объект myservo ​
 +Servo myservo3; ​ // создать объект myservo ​
 +
 +
 +const int LM_s1 = 10; // левый мотор вход 1
 +const int LM_s2 = 9; // левый мотор вход 2
 +const int RM_s1 = 5; // правый мотор вход 1
 +const int RM_s2 = 6; // правый мотор вход 2
 +
 +boolean hand_open = 1;  // ?
 +
 +void setup(){
 + ​Serial.begin(9600);​
 + ​IrReceiver.begin(IR_RECEIVE_PIN,​ ENABLE_LED_FEEDBACK);​
 + 
 + //​правый
 +    pinMode(RM_s1,​ OUTPUT);
 +    pinMode(RM_s2,​ OUTPUT);
 +    //​левый
 +    pinMode(LM_s1,​ OUTPUT);
 +    pinMode(LM_s2,​ OUTPUT);
 +
 +    myservo12.attach(12); ​ //​указать пин, к которому подключен сервпривод
 +    myservo7.attach(7); ​ //​указать пин, к которому подключен сервпривод
 +    myservo3.attach(3); ​ //​указать пин, к которому подключен сервпривод
 +    off_servo();​
 +    servo_take();​
 +}
 +
 +void loop() {
 +    if (IrReceiver.decode()) {
 +        Serial.println(IrReceiver.decodedIRData.decodedRawData);​ // выводим код нажатой кнопки в десятичном формате
 +
 +        switch (IrReceiver.decodedIRData.decodedRawData) {
 +            case 785449215: // Код кнопки "​вперед"​
 +                //​Serial.println("​up"​);​
 +                moveForward();​
 +                break;
 +            case 768737535: // Код кнопки "​назад"​
 +                moveBackward();​
 +                break;
 +            case 752025855: // Код кнопки "​влево"​
 +                turnLeft();
 +delay(3);
 +stopMotors();​
 +                break;
 +            case 735314175: // Код кнопки "​вправо"​
 +                turnRight();​
 +delay(1/3);
 +stopMotors();​
 +                break;
 +            case 1387069695: // Код кнопки "​остановка"​ (обычно это код повторного нажатия)
 +                stopMotors();​
 +                break;
 +            case 1437204735: // Код кнопки "​A" ​
 +                servo_state_A();​
 +                break;
 +            case 1420493055: // Код кнопки "​B" ​
 +                off_servo();​
 +                break;
 +            case 1403781375: // Код кнопки "​C" ​
 +                servo_take();​
 +                break;
 +
 +            default:
 +               ​stopMotors();​
 +               ​break;​
 +        }
 +
 +        IrReceiver.resume();​ // готовимся к следующему сигналу
 +    }
 +
 +}
 +
 +void moveForward() {
 +     ​Serial.println("​up"​);​
 +    digitalWrite(LM_s1,​ 1);
 +    digitalWrite(LM_s2,​ 0);
 +    digitalWrite(RM_s1,​ 1);
 +    digitalWrite(RM_s2,​ 0);
 + ​delay(6);​
 +}
 +
 +void moveBackward() {
 +    Serial.println("​down"​);​
 +
 +    digitalWrite(LM_s1,​ 0);
 +    digitalWrite(LM_s2,​ 1);
 +    digitalWrite(RM_s1,​ 0);
 +    digitalWrite(RM_s2,​ 1);
 + ​delay(6);​
 +}
 +
 +void turnLeft() {
 +    digitalWrite(LM_s1,​ LOW);
 +    digitalWrite(LM_s2,​ HIGH);
 +    digitalWrite(RM_s1,​ HIGH);
 +   ​digitalWrite(RM_s2,​ LOW);
 + ​delay(60);​
 +}
 +
 +void turnRight() {
 +    digitalWrite(LM_s1,​ HIGH);
 +    digitalWrite(LM_s2,​ LOW);
 +    digitalWrite(RM_s1,​ LOW);
 +   ​digitalWrite(RM_s2,​ HIGH);
 + ​delay(60);​
 +}
 +
 +void stopMotors() {
 +    digitalWrite(LM_s1,​ LOW);
 +    digitalWrite(LM_s2,​ LOW);
 +    digitalWrite(RM_s1,​ LOW);
 +   ​digitalWrite(RM_s2,​ LOW);
 + ​delay(6);​
 +}
 +
 +// **********************************
 +
 +void off_servo() {
 +  myservo7.write(180); ​  
 +  Serial.println("​check_servo7"​);​
 +  delay(5);
 +  myservo12.write(0); ​  
 +  Serial.println("​check_servo12"​);​
 +  delay(5); ​                    
 +}
 +
 +void servo_take() {
 +  if (hand_open == 1) {
 +  myservo3.write(0); ​  
 +  Serial.println("​check_servo3_open"​);​
 +  delay(10);
 +hand_open = 0;
 +  } else {
 +  myservo3.write(90); ​  
 +  Serial.println("​check_servo3_close"​);​
 +  delay(10);
 +hand_open = 1;
 +  }
 +                   
 +}
 +
 +void servo_state_A() {
 +  myservo7.write(180); ​  
 +  Serial.println("​check_servo7"​);​
 +  delay(5);
 +  myservo12.write(100); ​  
 +  Serial.println("​check_servo12"​);​
 +  delay(5); ​                    
 +}
 +</​code>​
 +
 +
 +<code C++>
 +
 +#include <​IRremote.h>​ // подключаем библиотеку для работы с ИК-приёмником
 +const byte IR_RECEIVE_PIN = 8; // указываем пин, к которому подключен ИК-приёмник
 +const int LM_s1 = 10; // левый мотор вход 1
 +const int LM_s2 = 9; // левый мотор вход 2
 +const int RM_s1 = 5; // правый мотор вход 1
 +const int RM_s2 = 6; // правый мотор вход 2
 +
 +void setup(){
 + ​Serial.begin(9600);​
 + ​IrReceiver.begin(IR_RECEIVE_PIN,​ ENABLE_LED_FEEDBACK);​
 + 
 + //​правый
 +    pinMode(RM_s1,​ OUTPUT);
 +    pinMode(RM_s2,​ OUTPUT);
 +    //​левый
 +    pinMode(LM_s1,​ OUTPUT);
 +    pinMode(LM_s2,​ OUTPUT);
 +}
 +
 +void loop() {
 +    if (IrReceiver.decode()) {
 +        Serial.println(IrReceiver.decodedIRData.decodedRawData);​ // выводим код нажатой кнопки в десятичном формате
 +
 +        switch (IrReceiver.decodedIRData.decodedRawData) {
 +            case 785449215: // Код кнопки "​вперед"​
 +                //​Serial.println("​up"​);​
 +                moveForward();​
 +                break;
 +            case 768737535: // Код кнопки "​назад"​
 +                moveBackward();​
 +                break;
 +            case 752025855: // Код кнопки "​влево"​
 +                turnLeft();
 +                break;
 +            case 735314175: // Код кнопки "​вправо"​
 +                turnRight();​
 +                break;
 +            case 1387069695: // Код кнопки "​остановка"​ (обычно это код повторного нажатия)
 +            default:
 +               ​stopMotors();​
 +               ​break;​
 +        }
 +
 +        IrReceiver.resume();​ // готовимся к следующему сигналу
 +    }
 +}
 +
 +void moveForward() {
 +     ​Serial.println("​up"​);​
 +    digitalWrite(LM_s1,​ 1);
 +    digitalWrite(LM_s2,​ 0);
 +    digitalWrite(RM_s1,​ 1);
 +    digitalWrite(RM_s2,​ 0);
 + ​delay(60);​
 +}
 +
 +void moveBackward() {
 +    Serial.println("​down"​);​
 +
 +    digitalWrite(LM_s1,​ 0);
 +    digitalWrite(LM_s2,​ 1);
 +    digitalWrite(RM_s1,​ 0);
 +    digitalWrite(RM_s2,​ 1);
 + ​delay(60);​
 +}
 +
 +void turnLeft() {
 +    digitalWrite(LM_s1,​ LOW);
 +    digitalWrite(LM_s2,​ HIGH);
 +    digitalWrite(RM_s1,​ HIGH);
 +   ​digitalWrite(RM_s2,​ LOW);
 + ​delay(60);​
 +}
 +
 +void turnRight() {
 +    digitalWrite(LM_s1,​ HIGH);
 +    digitalWrite(LM_s2,​ LOW);
 +    digitalWrite(RM_s1,​ LOW);
 +   ​digitalWrite(RM_s2,​ HIGH);
 + ​delay(60);​
 +}
 +
 +void stopMotors() {
 +    digitalWrite(LM_s1,​ LOW);
 +    digitalWrite(LM_s2,​ LOW);
 +    digitalWrite(RM_s1,​ LOW);
 +   ​digitalWrite(RM_s2,​ LOW);
 + ​delay(60);​
 +}
 +
 +</​code>​
8it_pr_2026.1757920682.txt.gz · Последние изменения: 2025/09/15 10:18 — super_admin