воскресенье, 25 января 2026 г.

Домашнее задание для 11 тех (группа 2) класса по информатике на среду 28.01.26:

1. Прочитайте §34 к теме "Доказательство правильности программ" учебника. Ответьте на вопросы 3, 4, 5, 6 к §34.

2. Решите писмьменно на отдельном листе задачи на определение инварианта алгоритма и доказательство корректности/некорректности алгоритма.

  • докажите в общем виде, что операторы c = (L + R) // 2 и c = L + (R - L) // 2 (где c, L, R - целые числа, // - оператор выделения целой части деления одного целого числа на другое) дают одинаковый результат при любых значениях L и R (рассмотрите в качестве примера чётные и нечётные значения обеих переменных);
  • докажите или опровергните правильность программы для выбора максимального из трёх значений, записанных в переменных a, b, c
      • если a > b то M := a
      • иначе если b > c то M := b
      • иначе если c > a то M := c
      • все; все; все;
    • Если программа некорректная (в решение опишите почему), приведите контрпример. Может ли быть, что при каких-то входных данных значение переменной M будет неопределённым? Если да, то при каких?
  • В игре "ним" двое игроков по очереди берут камни из двух кучек. За один ход можно взять любое ненулевое количество камней, но только из одной кучки. Тот, кому камней не осталось, проигрывает. Опишите как определить, кто выиграет при правильной игре? Определите какой инвариант нужно соблюдать, чтобы обеспечить выигрыш?

Решение можно прислать в виде фотографий по электронной почте, либо сдать перед уроком.


К следующему уроку обязательно! возьмите с собой учебник. 

3. Тем, кто отсутствовал или не успел на уроке 21.01.26: Выполните задания практической работы на определение инвариантов цикла и описание спецификации программ. Документ отчёта можно скачать по ссылкам: документ в формате docдокумент в формате docx

К задаче №2 необходимо привести код алгоритма написанный на языке Python. В программе нужно создать массив случайных чисел (размер массива указывается с клавиатуры, искомый элемент также задаётся с клавиатуры), отсортировать массив и затем найти в отсортированном массиве искомый элемент двоичным поиском. На экран программа должна выводить искомый элемент или сообщение о отсутствии такового.

Файл отчёта (или письменное решение) можно прислать в виде фотографий по электронной почте, либо сдать перед уроком.

4. Напишите на языке Python программу поиска простых целых чисел в интервале от 2 до N (число N задаётся с клавиатуры) путём проверки каждого числа из интервала на простоту (используйте алгоритм с проверкой до квадратного корня числа (см. §58 электронного учебника за 10 класс, ссылка ниже).

Программа получает на вход границу диапазона N, на выходе нужно составить массив, заполненный простыми числами в диапазоне от 2 до N.

Основы языка Python можно освежить в памяти воспользовавшись онлайн учебником за 10 класс доступный для скачивания по ссылке: https://kpolyakov.spb.ru/loadstat.php?f=/download/ch10-8_python.pdf


5. Зайдите под своим аккаунтом (или создайте новый) на сайт https://informatics.msk.ru/ (сайт использовался в 10-м классе) или создайте новый. В поиске на сайте найдите курс "11 тех - Алгоритмизация и программирование" и зарегистрируйтесь на нём. Код регистрации:


Скачать интерпретатор языка Python на домашний компьютер можно с официального сайта: https://www.python.org/downloads/

Если нет возможности установить систему программирования на компьютер, нужно воспользоваться онлайн системами. Например: https://www.onlinegdb.com(язык можно выбрать в правом верхнем углу в выпадающем меню Language)

Программу можно скачать в вида файла на компьютер нажав кнопку "Download code":