Практические занятия по курсу ОиМП/Группа 106 1 — различия между версиями
(→C++) |
(→22.11.2014) |
||
| (не показаны 2 промежуточные версии этого же участника) | |||
| Строка 2: | Строка 2: | ||
Сдача домашнего задания №2 заканчивается в полночь с 7 на 8 ноября. При выставлении оценки за задание будет учитываться сдача задач в контестах 736(от 9 задач), 738 (от 7 задач), 765(от 16 задач), 798 (от 4 из первой половины + 4 из второй). | Сдача домашнего задания №2 заканчивается в полночь с 7 на 8 ноября. При выставлении оценки за задание будет учитываться сдача задач в контестах 736(от 9 задач), 738 (от 7 задач), 765(от 16 задач), 798 (от 4 из первой половины + 4 из второй). | ||
| − | Сдача домашнего задания №3 заканчивается в полночь с на декабря. При выставлении оценки за задание будет учитываться сдача задач в контестах 948 (от 1 задачи), 947(от 5 задач), .... | + | Сдача домашнего задания №3 заканчивается в полночь с на декабря. При выставлении оценки за задание будет учитываться сдача задач в контестах 948 (от 1 задачи), 947(от 5 задач), 952(от 3 задач).... |
| + | |||
| + | === 02.12.2014 === | ||
| + | Реализуйте интерактивную игру "Быки и коровы". [http://www.dcc.fc.up.pt/~sssousa/RM09101.pdf] | ||
| + | Исходная комбинация генерируется случайно, всего 4 позиции и 6 цветов (параметры могут потом меняться). | ||
| + | Программа выводит приглашение для ввода, вводит строку и выводит два числа - "black hits" "white hits". В программе запрещается использовать циклы, рекомендуется пользоваться generate, accumulate, inner_product, copy, ... | ||
=== 22.11.2014 === | === 22.11.2014 === | ||
| + | |||
| + | Класс mystring [https://yadi.sk/d/pn5aN4HLd2QRd] | ||
Класс инициализируется корректным арифметическим выражением, которое состоит из цифр и знаков сложения и вычитания (вычисление при инициализации проводиться не должно) | Класс инициализируется корректным арифметическим выражением, которое состоит из цифр и знаков сложения и вычитания (вычисление при инициализации проводиться не должно) | ||
Текущая версия на 16:09, 2 декабря 2014
Содержание
C++
Сдача домашнего задания №2 заканчивается в полночь с 7 на 8 ноября. При выставлении оценки за задание будет учитываться сдача задач в контестах 736(от 9 задач), 738 (от 7 задач), 765(от 16 задач), 798 (от 4 из первой половины + 4 из второй).
Сдача домашнего задания №3 заканчивается в полночь с на декабря. При выставлении оценки за задание будет учитываться сдача задач в контестах 948 (от 1 задачи), 947(от 5 задач), 952(от 3 задач)....
02.12.2014
Реализуйте интерактивную игру "Быки и коровы". [1] Исходная комбинация генерируется случайно, всего 4 позиции и 6 цветов (параметры могут потом меняться). Программа выводит приглашение для ввода, вводит строку и выводит два числа - "black hits" "white hits". В программе запрещается использовать циклы, рекомендуется пользоваться generate, accumulate, inner_product, copy, ...
22.11.2014
Класс mystring [2]
Класс инициализируется корректным арифметическим выражением, которое состоит из цифр и знаков сложения и вычитания (вычисление при инициализации проводиться не должно)
Класс должен иметь метод int calc(), который возвращает результат вычисления выражения. Результат метода должен кешироваться и при повторном вызове для того же выражения повторное вычисление не происходит
Должен корректно работать следующий фрагмент
{
Exp e = "1+2+3";
cout << e.calc();
}
MyString
Реализовать класс строк, таким образом, чтобы поддерживались основные операции (сложение, доступ к символу, присваивание и т.д.) и в случае коротких строк, данные хранились в самом объекте.
15.11.2014
Реализовать пользовательский тип «Рациональные числа» (Rational).
Внутреннее представление типа:
int a, b;
должно отвечать следующим требованиям: Число a/b должно представлять собой несократимую дробь.
Данный тип должен быть описан таким образом, чтобы были корректны следующие инструкции:
// Создание объектов
Rational q = Rational(1, 3), w(1, 3);
Rational s = 4;
Rational z = q;
// Арифметические операции
s.Add(q); // значение s увеличивается на значение q
// (значение s меняется)
s.Substract(q); // значение s изменяется путем вычитания q
s.Multiply(q); // значение s изменяется путем домножения на q
s.Divide(q); // значение s изменяется путем деления на q
s.Add(q).Multiply(w); // значение s меняется путем инкрементирования q
// с последующим домножением на w
// Логические операции
s.EqualTo(w); // возращает булево значение, равно ли значение s значению w
s.CompareTo(w); // возвращает целое > 0, если s > w,
// иначе возвращает целое < 0, если s < w,
// иначе возвращает 0
s.IsInteger() // возвращает булево значение, является ли s целым числом
// Строковое представление в формате a:b
string str = w.ToString(); // вернет 1:3
// Создание массивов
Rational arr[10];