         <li>Бывают еще статусы "Зачтено" и "Проигнорировано", но они не ставятся автоматически, поэтому про них ниже.</li>
         </ul>
         
-        <p>Справа в таблице есть колонка ссылок "Подробнее". Если вы нажмете на такую ссылку, то откроется окошко с подробной информацией о посылке. Во-первых, там будет полный код вашей программы, поэтому вы всегда сможете проверить, отправили ли вы именно то, что хотели; если вы решали задачи из школы, то придя домой, вы сможете посмотреть коды всех ваших программ, и т.д.</p>
+        <p>На кажую строчку в таблице посылок можно нажать, после чего откроется окошко с подробной информацией о посылке. Во-первых, там будет полный код вашей программы, поэтому вы всегда сможете проверить, отправили ли вы именно то, что хотели; если вы решали задачи из школы, то придя домой, вы сможете посмотреть коды всех ваших программ, и т.д.</p>
         
         <p>Во-вторых, в открывшемся окне есть закладка "Протокол", где отображается протокол тестирования вашей программы. Если ваша программа не скомпилировалась (статус "Ошибка компиляции"), то там будет протокол компиляции: будут указаны ошибки, найденные в программе. Если же ваша программа скомпилировалась, то там будет протокол тестирования: по каждому тесту будет приведена информация о том, прошел этот тест (OK) или нет. В задаче "Дележ яблок - 1" всего 6 тестов, поэтому в таблице должно быть 6 строк. Если ваша посылка получила статус "ОК", то все 6 строк будут ОК; иначе какие-то тесты будут иметь другой статус (из названия статуса обычно понятно, что это значит).</p>
         

work_with_site = () ->
    page("\nРабота с сайтом, отправка решений и просмотр моих комментариев", String.raw"""
        <div class="box generalbox generalboxcontent boxaligncenter clearfix"><h2>Работа с сайтом</h2>
        <p>Основное, что вы будете делать на наших занятиях — это решать задачи. Большинство задач будут требовать написания программы, которая считывает (с клавиатуры или из файла) некоторые данные, по ним вычисляет новые данные, и результат выводит на экран или сохраняет в файл.</p>
        <p>Написанную вами программу вы можете (и должны) отправить на проверку. Этот сайт предоставляет возможность автоматической проверки ваших программ — вы сразу (в течение максимум одной-двух минут) получаете результат проверки: работает ваша программа корректно или нет. Кроме того, я буду видеть все ваши попытки, которые вы отправляете на сайт, и смогу их комментировать, писать замечания и т.д., а вы сможете эти комментарии видеть и по ним улучшать свои программы.</p>
        
        <h3>Пример задачи</h3>
        <p>Зайдите на уровень 1А (внутри уровня 1). Там есть ссылка "Задачи на арифметические операции". Зайдите туда. Вы увидите список задач: "Дележ яблок - 1", "Дележ яблок - 2", и т.д., до "Разность времен". Это и есть набор задач (коротко говорят "контест"), которые вам предлагается прорешать для закрепления знаний по первой теме курса — арифметическим операциям. 
        </p><p>Все названия задач — ссылки, по ним открывается собственно задача. Откройте задачу "Дележ яблок - 1". Вы видите ее условие: "N школьников делят K яблок поровну, неделящийся остаток остается в корзинке. Сколько яблок достанется каждому школьнику? Программа получает на вход числа N и K и должна вывести искомое количество яблок." Ниже идет пример: при вводе данных "3 14" программа должна вывести "4".</p>
        <p>Условие задачи четко описывает, что должна делать ваша программа: для любых значений N и K она должна вычислить и вывести ответ на задачу. В более серьезных задачах в условии всегда указываются ограничения на допустимые N и K, но в задачах для начинающих на этом сайте считается, что N и K "разумные" (в частности, помещаются в тип данных integer в паскале); в "разумность" в данном случае входит и то, что оба числа положительны.</p>
        <p>Пример нужен только для проверки того, что вы верно поняли условие, формат входных данных, и смогли проверить программу на простейшем тесте. Тем не менее, ваша программа должна работать не только на тесте из примера, но и на других допустимых тестах.</p>
        
        <h3>Написание решения</h3>
        Данная задача решается достаточно легко. Нам надо, конечно, завести две переменные, N и K, считать их с клавиатуры, и вывести неполное частное от деления K на N (обратите внимание, именно K на N, а не N на K!). Программа будет выглядеть так:
        <table>
        <tbody><tr><th>Паскаль</th><th>Питон</th></tr>
        <tr><td>
        <pre>{$mode delphi}
        var n,k:integer;
        begin
        read(n,k);
        writeln(k div n);
        end.</pre>
        </td><td>
        <pre>n = int(input())
        k = int(input())
        print(k // n)</pre>
        </td></tr></tbody></table>
        
        Обратите внимание на следующие особенности (в вашем учебнике может быть написано не так — надо делать так, как написано тут, а не в учебнике. Возможно, чего-то из описанного здесь вы не поймете — тогда просто пропускайте этот пункт). Часть из этих особенностей относятся только к паскалю, часть — к любому языку программирования.
        <ul>
        <li>(паскаль) Написано <code>{$mode delphi}</code>. Пока вы не знаете, какие разные режимы компилятора бывают, всегда пишите эту конструкцию. Потом, когда узнаете, сможете выбирать, какой режим компилятора вам нужен.</li>
        <li>(паскаль) Не используется конструкция <code>program ...;</code>. В современном программировании она не нужна вообще.</li>
        <li>(паскаль) Вся программа пишется маленькими буквами. Поскольку в Pascal все равно, использовать маленькие или заглавные буквы, то сейчас принято использовать маленькие.</li>
        <li>Мы не выводим никаких "приглашений" типа "введите N". В условии задачи четко написано, что именно наша программа должна выводить на экран, и там ничего не сказано про то, что надо выводить приглашения. Поэтому любой лишний вывод на экран будет рассмотрен как нарушение формата вывода.</li>
        <li>Нет никаких "проверок на дурака", например, нет проверки "а вдруг N=0?", или "а вдруг ввели не число?". Аналогично предыдущему, это в наших задачах не требуется. В более серьезных задачах в условии будут стоять ограничения на допустимые значения N, и никто не будет тестировать вашу программу с N, не удовлетворяющим этим ограничениям. В этой задаче считается, что N&gt;0 всегда.</li>
        <li>(паскаль) Мы не делаем <code>clrsrc;</code> в начале программы — это не требуется. И пользователь, и тестирующая система способны отличить вывод этой программы от того, что было выведено на экран раньше.</li>
        <li>Аналогично, мы не ставим в конце программы пустой <code>readln;</code> или <code>readkey;</code>, или <code>input()</code> в питоне, или <code>getch();</code> в c++ или другую задержку работы. Это тоже не требуется; информация, выведенная на экран, все равно сохраняется и ее все равно можно посмотреть.</li>
        <li>Мы посчитали и сразу вывели ответ, не сохраняя его в промежуточную переменную. Можно было сохранить:
        <pre>// паскаль
        ans:=k div n;
        writeln(ans);
        // питон
        ans = k / n
        print(ans)
        </pre>
        В этой простой программе проще вывести сразу, но если выражение будет сложнее, то можно и сохранить.</li>
        </ul>
        <p>Сохраните эту программу в какой-нибудь файл. Запомните как имя файла, так и ту директорию (папку), куда вы сохранили файл (в free pascal она отображается в нижней части диалога сохранения файла).</p>
        
        <p>Теперь протестируйте программу. Запустите ее и повводите разные тесты.</p>
        

        <p>Если к вашей программе у меня будут какие-либо замечания или комментарии, я их напишу, и вы сможете их увидеть. Во-первых, они появятся на сайте в правой колонке в разделе "Комментарии"; во-вторых, в каждой посылке, в окошке, открываемом по ссылке "подробнее", есть специальная закладка "комментарии". Соответственно, как только я прокомментирую вашу посылку, вы увидите комментарий. Обычно я стараюсь просматривать все посылки в течение суток, хотя иногда бывают и бОльшие задержки, до нескольких дней.</p>
        
        <p>Помимо собственно написания комментария, я по каждой вашей посылке принимаю решение — либо я принимаю это решение (пусть и с небольшими замечаниями), либо я потребую от вас это решение переписать с учетом моих замечаний. В первом случае я меняю статус посылки на "Зачтено" (т.е. вы будете видеть именно "Зачтено" вместо "ОК" в таблице с вашими посылками), во втором случае я меняю статус на "Проигнорировано". Соответственно, в первом случае просто примите к сведению замечания, которые я написал (а бывает так, что я и никаких замечаний не пишу), хотя можете и переписать решение, если хотите. Во втором случае обязательно перепишите решение с учетом этих замечаний.</p>
        <p>(<a href="https://blog.algoprog.ru/why-ignore/">Подробнее про то, за что я игнорирую решения</a>.)</p>
        
        <p>В сводной таблице решения "ОК" (т.е. которые я еще не посмотрел) отображаются с желтым фоном, решения "Зачтено" (т.е. которые я принял) — с зеленым фоном, проигнорированные решения не учитываются в общем количестве решенных вами задач, просто соответствующая задача в сводной таблице отображаются с синим фоном.</p>
        
        <p>Я буду стараться также писать комментарии по вашим неуспешным посылкам — указывать на ошибку или советовать, где ее поискать, и т.п. Я, конечно, не всегда буду писать их сразу как увижу вашу попытку, и не всегда буду полностью сообщать о найденной ошибке — ведь обычно вам полезно будет все-таки найти ошибку более-менее самостоятельно, я постараюсь вам давать наводящие советы (но, конечно, это зависит от ошибки). В общем, если вы пытались сделать задачу, но она не проходит тесты, то возможно в течение суток я вам напишу совет в комментарии к вашей посылке.</p>
        
