<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wikicshse.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%9F%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%B7%D0%B0%D0%BD%D1%8F%D1%82%D0%B8%D1%8F_%D0%BF%D0%BE_%D0%BA%D1%83%D1%80%D1%81%D1%83_%D0%9E%D0%B8%D0%9C%D0%9F</id>
	<title>Практические занятия по курсу ОиМП - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://wikicshse.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%9F%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%B7%D0%B0%D0%BD%D1%8F%D1%82%D0%B8%D1%8F_%D0%BF%D0%BE_%D0%BA%D1%83%D1%80%D1%81%D1%83_%D0%9E%D0%B8%D0%9C%D0%9F"/>
	<link rel="alternate" type="text/html" href="https://wikicshse.ru/index.php?title=%D0%9F%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%B7%D0%B0%D0%BD%D1%8F%D1%82%D0%B8%D1%8F_%D0%BF%D0%BE_%D0%BA%D1%83%D1%80%D1%81%D1%83_%D0%9E%D0%B8%D0%9C%D0%9F&amp;action=history"/>
	<updated>2026-06-06T17:03:14Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://wikicshse.ru/index.php?title=%D0%9F%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%B7%D0%B0%D0%BD%D1%8F%D1%82%D0%B8%D1%8F_%D0%BF%D0%BE_%D0%BA%D1%83%D1%80%D1%81%D1%83_%D0%9E%D0%B8%D0%9C%D0%9F&amp;diff=1963&amp;oldid=prev</id>
		<title>imported&gt;Kassalanche: /* Примеры программ */</title>
		<link rel="alternate" type="text/html" href="https://wikicshse.ru/index.php?title=%D0%9F%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%B7%D0%B0%D0%BD%D1%8F%D1%82%D0%B8%D1%8F_%D0%BF%D0%BE_%D0%BA%D1%83%D1%80%D1%81%D1%83_%D0%9E%D0%B8%D0%9C%D0%9F&amp;diff=1963&amp;oldid=prev"/>
		<updated>2015-01-15T20:48:46Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Примеры программ&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==О курсе==&lt;br /&gt;
[https://groups.google.com/forum/?hl=ru#!forum/amcs105-1 Форум.]&lt;br /&gt;
&lt;br /&gt;
=== Алгоритм подсчёта итоговой оценки по курсу ===&lt;br /&gt;
В курсе предусмотрены следующие виды работ: четыре домашние работы, контрольная и экзамен. За каждую из шести работ выставляется оценка от 0 до 10 включительно. При этом 20% от оценки за домашнюю работу составляет оценка за текущие работы:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;оценка за текущую работу&amp;gt; = 10*(&amp;lt;количество выполненных обязательных заданий&amp;gt; + 0.3 * &amp;lt;количество выполненных необязательных заданий&amp;gt;) / &amp;lt;количество обязательных заданий&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;итоговая оценка за текущую работу&amp;gt; = min(&amp;lt;оценка за текущую работу&amp;gt;, 10)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;итоговая оценка за домашнюю работу (ИОДР)&amp;gt; = 0.8 * &amp;lt;оценка за домашнюю работу&amp;gt; + 0.2 * &amp;lt;итоговая оценка за текущие работы&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;итоговая оценка по курсу&amp;gt; = 0.6 * (&amp;lt;ИОДР 1&amp;gt; + &amp;lt;ИОДР 2&amp;gt; + &amp;lt;ИОДР 3&amp;gt; + &amp;lt;ИОДР 4&amp;gt;)/4 + 0.15 * &amp;lt;оценка по контрольной работе&amp;gt; + 0.25 * &amp;lt;оценка за экзамен&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==C++==&lt;br /&gt;
[[Практические занятия по курсу ОиМП/C++ check|C++ styleguide.]]&lt;br /&gt;
&lt;br /&gt;
===Среда разработки===&lt;br /&gt;
Лучше всего использовать Eclipse. [http://hightech.in.ua/content/art-eclipse-c-cpp-ide Инструкция по созданию проекта Eclipse.]&lt;br /&gt;
&lt;br /&gt;
Если не получится установить или запустить, то можно:&lt;br /&gt;
# Использовать Visual Studio (только для тех, кто в ней уже работал).&lt;br /&gt;
# Использовать онлайн компилятор: [http://www.compileonline.com/compile_cpp11_online.php compileonline] или [http://ideone.com/ ideone]. В ideone требуется поменять язык с Java на C++11. В обоих компиляторах требуется в поле ввода stdin вписать значения, которые подаются программе на вход. Например, для первой программы из примера ниже, можно написать &amp;quot;24&amp;quot; (без кавычек), для второй &amp;quot;0.2 1.1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Примеры программ===&lt;br /&gt;
Требуется спросить у пользователя его возраст, а затем вывести возраст и 1, если он больше 20, и 0, если меньше или равен.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;How old are you?&amp;quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;
    int age; // объявление целочисленной переменной в которой будет храниться возраст&lt;br /&gt;
    cin &amp;gt;&amp;gt; age; // чтение с консоли&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;Your age: &amp;quot; &amp;lt;&amp;lt; age &amp;lt;&amp;lt; &amp;quot;, it&amp;#039;s more than 20: &amp;quot; &amp;lt;&amp;lt; (age &amp;gt; 20) &amp;lt;&amp;lt; endl;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пользователь вводит два вещественных числа step и bound. Требуется вывести вещественные все числа через пробел, начиная с 0 с шагом step и не превосходящие bound.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
    double step;&lt;br /&gt;
    double bound;&lt;br /&gt;
    cin &amp;gt;&amp;gt; step &amp;gt;&amp;gt; bound;&lt;br /&gt;
    for (double d=0; d &amp;lt; bound; d += step) {&lt;br /&gt;
        cout &amp;lt;&amp;lt; d &amp;lt;&amp;lt; &amp;quot; &amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Задание 1 Основные конструкции С++ (08.10 - 22.10)===&lt;br /&gt;
[http://official.contest.yandex.ru/contest/723/enter/ Введение в C++.] Нужно сделать 9 любых задач из 10.&lt;br /&gt;
&lt;br /&gt;
===Задание 2. Функции (11.10 - 21.10)===&lt;br /&gt;
[http://official.contest.yandex.ru/contest/732/enter/ Функции в C++.] Нужно сделать 7 любых задач из 8.&lt;br /&gt;
&lt;br /&gt;
===Задание 3. Контейнеры. vector и list (18.10 - 1.11)===&lt;br /&gt;
[http://official.contest.yandex.ru/contest/762/enter/ Обработка последовательностей.] Нужно решить 15 (из 18) любых задач. Перед выполнением обязательно прочитайте требования к решениям:&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Важно!&amp;#039;&amp;#039;&amp;#039; В каждой задаче используйте vector или list даже если задачу можно решить без использования контейнера. Половину задач решите, используя список, половину используя вектор.&lt;br /&gt;
# Давайте функциям и переменным понятные имена. Такие, чтобы по имени можно было понять что они делают.&lt;br /&gt;
# Не используйте однобуквенных имён переменных, кроме имён для счётчиков цикла (i, j, k, ...).&lt;br /&gt;
# Не используйте транслит при именовании переменных.&lt;br /&gt;
# Старайтесь вынести логические блоки в отдельные функции. Подсказка: чтение вектора (списка) должно быть оформлено как отдельная функция.&lt;br /&gt;
# Решение каждого задания должно быть оформлено в отдельной функции.&lt;br /&gt;
# Для каждой функции пишите комментарий с пояснением что делает эта функция. В комментарии можно описать входные и выходные значения.&lt;br /&gt;
# При передаче параметров в функции пишите const везде, где это возможно; передавайте по ссылке везде, где это уместно.&lt;br /&gt;
# Везде, где это уместно, пишите &amp;#039;&amp;#039;шаблоны функций&amp;#039;&amp;#039;.&lt;br /&gt;
Требования обязательны, но проверяться они не будут. То есть, за программу не удовлетворяющую требованиям выше, я не снижу оценку. Этот контест --- это возможность попрактиковаться в написании красивого кода (и поспрашивать что красиво, а что нет) перед второй домашней работой в которой, скорее всего, оценки за некрасоту кода будут снижаться. Я не буду прицельно смотреть сданные вами решения, ибо предполагаю, что когда вам что-то непонятно, вы сами покажите код и спросите какие есть замечания.&lt;br /&gt;
&lt;br /&gt;
====Полезные ссылки====&lt;br /&gt;
# [http://ru.cppreference.com/w/cpp/container/vector Функции vector-a.]&lt;br /&gt;
# [http://ru.cppreference.com/w/cpp/container/list Функции list-a.]&lt;br /&gt;
&lt;br /&gt;
====Необязательное задание====&lt;br /&gt;
Задачи можно решать в любом порядке и можно решить не все. Старайтесь использовать понятные имена функций и переменных. Избегайте транслит.&lt;br /&gt;
# Напишите функцию, которая заполняет вектор случайными элементами.&lt;br /&gt;
# Напишите функцию, которая принимает на вход два вектора и возвращает true, если они равны, и false в противном случае.&lt;br /&gt;
# Напишите функцию, которая принимает на вход вектор и сортирует его пузырьком.&lt;br /&gt;
# Напишите функцию, которая принимает на вход вектор и сортирует его поиском максимума.&lt;br /&gt;
# Напишите функцию, которая принимает на вход вектор и сортирует его слиянием.&lt;br /&gt;
# Напишите функцию, которая принимает на вход вектор и сортирует его быстрой сортировкой.&lt;br /&gt;
# Выведите время работы каждой из функций сортировки для векторов разной длины.&lt;br /&gt;
&lt;br /&gt;
===Домашнее задание 2 (21.10 - 7.11)===&lt;br /&gt;
[http://official.contest.yandex.ru/contest/788/enter/ Второе большое домашнее задание.] Каждому студенту требуется сделать пять задач из 20. Список обязательных задач [https://docs.google.com/spreadsheets/d/1LqW4k7heilZ8i1B7NCMGcr41kd5Pz1gIyD5rrOyGZjI/edit#gid=2906427757 здесь] (не ошибитесь вкладкой!).&lt;br /&gt;
&lt;br /&gt;
При оценке домашнего задания будут учитываться оценки за задания 1-3.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Внимание!&amp;#039;&amp;#039;&amp;#039; За некрасивый код и плохие неэффективные решения оценка будет снижаться!&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Внимание!&amp;#039;&amp;#039;&amp;#039; После 7.11 задания 1-3 и вторая домашняя работа не принимаются.&lt;br /&gt;
&lt;br /&gt;
===Контрольная работа (8.11)===&lt;br /&gt;
[http://official.contest.yandex.ru/contest/827/enter/ Контрольная работа.]&lt;br /&gt;
&lt;br /&gt;
===Задание 4. Шаблонные функции и классы (13.11)===&lt;br /&gt;
[http://official.contest.yandex.ru/contest/871/enter/ Шаблоны в C++.] Нужно сделать 5 задач из 5.&lt;br /&gt;
&lt;br /&gt;
===Задание 6. Работа с классами (19.11)===&lt;br /&gt;
[http://edu.mmcs.sfedu.ru/mod/assign/view.php?id=5469 Проект Книжный магазин.] Каждый пункт считается отдельной задачей. Требуется запрограммировать всё, кроме дополнительных заданий. Работа каждой публичной функции должна быть продемонстрирована в main.&lt;br /&gt;
&lt;br /&gt;
===Задание 7. Алгоритмы STL (27.11)===&lt;br /&gt;
[http://official.contest.yandex.ru/contest/940/enter/ Алгоритмы STL.] Обязательны 3 из 5.&lt;br /&gt;
&lt;br /&gt;
===Домашние задания 3 и 4 (4.12 - 17.12)===&lt;br /&gt;
[http://official.contest.yandex.ru/contest/955/enter/ Домашнее задание] будет оцениваться по 20-бальной системе. [https://docs.google.com/spreadsheets/d/1LqW4k7heilZ8i1B7NCMGcr41kd5Pz1gIyD5rrOyGZjI/edit?usp=sharing Список обязательных задач] (не ошибитесь вкладкой!).&lt;br /&gt;
&lt;br /&gt;
===Задание 8. Наследование (18.12 - 24.12)===&lt;br /&gt;
Реализуйте один из трёх проектов: [http://edu.mmcs.sfedu.ru/mod/assign/view.php?id=5641 Книги со скидкой], [http://edu.mmcs.sfedu.ru/mod/assign/view.php?id=5641 Иерархия многоугольников] или [http://edu.mmcs.sfedu.ru/mod/assign/view.php?id=8320 РостовЛифтМонтаж]. Каждый из проектов стоит 10 баллов. Задание является обязательным.&lt;br /&gt;
&lt;br /&gt;
===Пробный вариант экзамена===&lt;br /&gt;
[http://official.contest.yandex.ru/contest/965/enter/ Пробный вариант экзамена.] За задание баллы начисляться не будут.&lt;br /&gt;
&lt;br /&gt;
==Питон==&lt;br /&gt;
&lt;br /&gt;
===Полезные ссылки===&lt;br /&gt;
Для выполнения заданий необходимо [https://www.python.org/download установить интерпретатор Python].&lt;br /&gt;
&lt;br /&gt;
[http://legacy.python.org/dev/peps/pep-0008 Style guide].&lt;br /&gt;
&lt;br /&gt;
[https://yadi.sk/i/FBgNvf4nbQ4Jq Задачи, которые точно нужно уметь решать.] &lt;br /&gt;
&lt;br /&gt;
===Рекомендации по выполнению===&lt;br /&gt;
# Не используйте wildcard imports (from &amp;lt;module&amp;gt; import *), см. [http://legacy.python.org/dev/peps/pep-0008/#imports PEP8].&lt;br /&gt;
# Знак присваивания обособляйте пробелами с двух сторон. Плохо: a=b. Хорошо: a = b.&lt;br /&gt;
# Если требуется сравнить два числа с плавающей точкой (float) на равенство, то сравнивайте модуль их разницы с некоторым eps: |d1 - d2| &amp;lt; 0.0000001.&lt;br /&gt;
&lt;br /&gt;
===Задание 1. Ввод-вывод (4.09 - 20.09)===&lt;br /&gt;
[http://official.contest.yandex.ru/contest/642/ Задачи.]&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/spreadsheets/d/1LqW4k7heilZ8i1B7NCMGcr41kd5Pz1gIyD5rrOyGZjI/edit?usp=sharing Список обязательных задач для каждого студента.]&lt;br /&gt;
&lt;br /&gt;
===Задание 2 (6.09 - 20.09)===&lt;br /&gt;
Перед выполнением задания нужно установить библиотеку [http://pillow.readthedocs.org/en/latest/ Pillow].&lt;br /&gt;
&lt;br /&gt;
[https://yadi.sk/d/AS6_eEzyb7aHH Задачи.]&lt;br /&gt;
&lt;br /&gt;
Замечание. Доступ к элементам pixels осуществляется так: pixels[i,j].&lt;br /&gt;
&lt;br /&gt;
====Бонусные задачи====&lt;br /&gt;
# Реализуйте масштабирование.&lt;br /&gt;
# Реализуйте отражение.&lt;br /&gt;
# Реализуйте размытие.&lt;br /&gt;
# Напишите свой фильтр для обработки изображений.&lt;br /&gt;
&lt;br /&gt;
===Задание 3 (13.09 - 27.09)===&lt;br /&gt;
Решите 20 любых задач из [http://official.contest.yandex.ru/contest/642/ контеста Ввод-вывод].&lt;br /&gt;
&lt;br /&gt;
====Бонусное задание. Шифрование RSA====&lt;br /&gt;
# Реализуйте [https://ru.wikipedia.org/wiki/RSA#.D0.90.D0.BB.D0.B3.D0.BE.D1.80.D0.B8.D1.82.D0.BC_.D1.81.D0.BE.D0.B7.D0.B4.D0.B0.D0.BD.D0.B8.D1.8F_.D0.BE.D1.82.D0.BA.D1.80.D1.8B.D1.82.D0.BE.D0.B3.D0.BE_.D0.B8_.D1.81.D0.B5.D0.BA.D1.80.D0.B5.D1.82.D0.BD.D0.BE.D0.B3.D0.BE_.D0.BA.D0.BB.D1.8E.D1.87.D0.B5.D0.B9 алгоритм создания открытого и секретного ключей].&lt;br /&gt;
# Реализуйте [https://ru.wikipedia.org/wiki/RSA#.D0.A8.D0.B8.D1.84.D1.80.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5_.D0.B8_.D1.80.D0.B0.D1.81.D1.88.D0.B8.D1.84.D1.80.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5 алгоритмы шифрования и дешифрования]. Проверьте, что они работают.&lt;br /&gt;
# Реализуйте алгоритм взлома. Функция должна принимать аргументы c, n и m (см. обозначения в Википедии) и возвращать d, приватный ключ, такое что m == c^d mod n.&lt;br /&gt;
# Научитесь замерять время выполнения каждой из четырёх функций (функции генерации ключей, шифрования, дешифрования и взлома).&lt;br /&gt;
# Выберите некоторое значение m, например, m=100. Выведите таблицу:&lt;br /&gt;
{|border=&amp;quot;1&amp;quot;&lt;br /&gt;
!&lt;br /&gt;
!n=11*13=143&lt;br /&gt;
!n=17*31=527&lt;br /&gt;
!n=109*157=17113&lt;br /&gt;
!n=3557*2579=9173505&lt;br /&gt;
!n=3533*3571=12616343&lt;br /&gt;
|-&lt;br /&gt;
!e=3&lt;br /&gt;
|||||||||&lt;br /&gt;
|-&lt;br /&gt;
!e=17&lt;br /&gt;
|||||||||&lt;br /&gt;
|-&lt;br /&gt;
!e=257&lt;br /&gt;
|||||||||&lt;br /&gt;
|-&lt;br /&gt;
!e=65537&lt;br /&gt;
|||||||||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
На пересечении i-ой строки и j-ого столбца должно стоять четыре неотрицательных числа --- время работы каждого из четырёх алгоритмов при заданных e и n. Если данное e не взаимно просто с n, поставить прочерк.&lt;br /&gt;
&lt;br /&gt;
===Задание 4 (18.09 - 2.10)===&lt;br /&gt;
Если в вашей фамилии чётное число букв, то решите все чётные задачи из [http://official.contest.yandex.ru/contest/672/ контеста Обработка текста], иначе все нечётные.&lt;br /&gt;
&lt;br /&gt;
===Домашнее задание 1 (26.09 - 6.10)===&lt;br /&gt;
[http://official.contest.yandex.ru/contest/689/enter/ Первое большое домашнее задание.] Каждому студенту требуется сделать пять задач из 20. Список обязательных задач [https://docs.google.com/spreadsheets/d/1LqW4k7heilZ8i1B7NCMGcr41kd5Pz1gIyD5rrOyGZjI/edit#gid=1902700687 здесь].&lt;br /&gt;
&lt;br /&gt;
При оценке домашнего задания будут учитываться оценки за задания 1-4.&lt;br /&gt;
&lt;br /&gt;
[http://official.contest.yandex.ru/contest/716/enter/ Копия домашней работы.] Если вы что-то решили/нашли ошибку после окончания срока сдачи домашней работы, вы можете отправить решения туда, чтобы проверить их. Эти результаты не будут учтены при оценке домашней работы.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Внимание!&amp;#039;&amp;#039;&amp;#039; После 6.10 задания 1-4 и первая домашняя работа не принимаются.&lt;/div&gt;</summary>
		<author><name>imported&gt;Kassalanche</name></author>
	</entry>
</feed>