From 94338a5ac3d60f89f67bda7443590b8193239ec1 Mon Sep 17 00:00:00 2001 From: Vadim Date: Sun, 10 Nov 2024 14:08:58 +0300 Subject: [PATCH 1/4] =?UTF-8?q?=D0=9E=D1=82=D1=80=D0=B5=D0=B4=D0=B0=D0=BA?= =?UTF-8?q?=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BB=20=D0=BE=D0=BF=D0=B8?= =?UTF-8?q?=D1=81=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=B7=D0=B0=D0=B4=D0=B0=D1=87?= =?UTF-8?q?=D0=B8=20Time?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tasks/05/README.md | 206 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 200 insertions(+), 6 deletions(-) diff --git a/tasks/05/README.md b/tasks/05/README.md index 14ff3a48..d2ff3845 100644 --- a/tasks/05/README.md +++ b/tasks/05/README.md @@ -539,7 +539,7 @@ public: 4 - + - @@ -605,18 +605,212 @@ public: -Результат выполнения арифметических операций, в которых один из аргументов является невалидным значением, должен также давать невалидное значение времени (см. примечание). +Результат выполнения арифметических операций, в которых один из аргументов является невалидным значением, +должен также давать невалидное значение времени (см. примечание). -При выходе результата после выполнения операций за пределы диапазона 00:00:00 – 23:59:59 приводить результат к этому диапазону. Например: +При выходе результата после выполнения операций за пределы диапазона 00:00:00 – 23:59:59 приводить результат к этому диапазону. +Например: - 23:59:59 + 00:00:03 = 00:00:02 - 00:00:05 – 00:00:10 = 23:59:55 -**Подсказка**: данный класс будет проще реализовать, если вместо трех приватных переменных (часы, минуты и секунды) вы будете использовать только одну единственную переменную для хранения секунд после полуночи и все операции производить над нею. +**Подсказка**: данный класс будет проще реализовать, если вместо трех приватных переменных (часы, минуты и секунды) +вы будете использовать только одну единственную переменную для хранения секунд после полуночи и +все операции производить над нею. -**Примечание**: если проводить валидацию параметров в конструкторе и выбрасывать исключение в случае ошибки, то метод IsValid реализовывать не нужно. Автоматически решится проблема с выполнением арифметических операций, в которых участвуют невалидные значения времени. +**Примечание**: если проводить валидацию параметров в конструкторе и выбрасывать исключение в случае ошибки, +то метод IsValid реализовывать не нужно. Автоматически решится проблема с выполнением арифметических операций, +в которых участвуют невалидные значения времени. -В процессе разработки класса использование подхода TDD обязательно. Без автоматических тестов работа будет принята с коэффициентом 0.5. +Разработайте программу, использующую разработанный Вами класс `CTime`, +которая обрабатывает команды пользователя, вводимые им со стандартного потока ввода: + +Инкремент и декремент времени: + +- `++prefix `. Увеличивает время на 1 секунду, префиксная форма. +- `++postfix `. Увеличивает время на 1 секунду, постфиксная форма. +В случае постфиксной формы сначала выводится значение времени до инкрементации, а затем - после. +- `--prefix `. Уменьшает время на 1 секунду, префиксная форма. +- `--postfix `. Уменьшает время на 1 секунду, постфиксная форма. +В случае постфиксной формы сначала выводится значение времени до декрементации, а затем - после. + +Арифметические операции над временем: + +- `+ `. Выполняет сложение двух времён. +- `- `. Вычитание одного времени из другого. +- `+= `. Добавление времени к текущему. +- `-= `. Вычитание времени из текущего. +- `* `. Умножает время на целое число. +- `* `. Умножает целое число на время. +- `/ `. Делит время на целое число. +- `/ `. Выполняет целочисленное деление одного времени на другое. +- `*= `. Умножение текущего времени на целое число. +- `/= `. Деление текущего времени на целое число. + +Ввод и вывод времени: + +- `>> `. Устанавливает время в формате HH:MM:SS и выводит его в формате HH:MM:SS. +- `>> `. Устанавливает время как количество секунд от полуночи, и выводит его в формате HH:MM:SS. + +Операторы сравнения времени: + +- `== `. Проверяет равенство двух временных значений. +- `!= `. Проверяет неравенство двух временных значений. +- `< `. Проверяет, является ли первое значение времени меньше второго. +- `> `. Проверяет, является ли первое значение времени больше второго. +- `<= `. Проверяет, является ли первое значение времени меньше или равно второму. +- `>= `. Проверяет, является ли первое значение времени больше или равно второму. + +##### Формат входных данных + +Входные данные представляют собой команды, вводимые пользователем через стандартный поток ввода (stdin). +Каждая строка ввода содержит одну команду и соответствующие параметры, разделенные пробелами. +Форматы для каждой команды приведены выше. + +##### Формат выходных данных + +Результаты выполнения команд выводятся в стандартный поток вывода (stdout). Формат зависит от команды: + +Инкремент и декремент времени: + +- Для префиксных форм (`++prefix,` `--prefix`) выводится значение времени после изменения в формате `HH:MM:SS`. +- Для постфиксных форм (`++postfix`, `--postfix`) сначала выводится значение времени до изменения, +затем - значение после изменения, оба в формате `HH:MM:SS`. + +Арифметические операции над временем: + +- Результат операций сложения, вычитания, умножения и деления на число выводится в формате `HH:MM:SS`. +- Результат целочисленного деления одного времени на другое выводится в виде целого числа. + +Ввод и вывод времени: + +- `>> HH:MM:SS` и `>> SECONDS` - Устанавливают время и выводят его в формате `HH:MM:SS`. + +Операторы сравнения времени: + +- Результатом является `true` или `false`. + +Обработка ошибок: + +- Если входные данные некорректны (например, содержат нечисловые значения или неверный формат времени), +программа должна выводить в стандартный поток вывода «**INVALID**» и продолжать выполнение. + +##### Примеры входных и выходных данных + +###### Пример 1 + +Ввод: + +```txt +++prefix 12:30:45 +--postfix 01:00:00 +``` + +Вывод: + +```txt +12:30:46 +01:00:00 +00:59:59 +``` + +Объяснение: + +- `++prefix 12:30:45` увеличивает время на 1 секунду и выводит результат `12:30:46`. +- `--postfix 01:00:00` сначала выводит `01:00:00` (до декрементации), затем `00:59:59` (после декрементации). + +###### Пример 2 + +Ввод: + +```txt ++ 12:30:45 03:29:15 +- 23:59:59 23:00:00 +* 02:00:00 3 +/ 6:00:00 3 +/ 6:00:00 0 +``` + +Вывод: + +```txt +16:00:00 +00:59:59 +06:00:00 +02:00:00 +INVALID +``` + +Объяснение: + +- `+ 12:30:45 03:29:15` складывает два времени. 12:30:45 + 03:29:15, результат - 16:00:00. +- `- 23:59:59 23:00:00` вычитает 23:00:00 из 23:59:59, результат - 00:59:59. +- `* 02:00:00 3` умножает время 02:00:00 на 3, результат - 06:00:00. +- `/ 6:00:00 3` делит время 6:00:00 на 3, результат - 02:00:00. +- `/ 6:00:00 0` пытается делить на ноль, что недопустимо, поэтому выводится INVALID. + +###### Пример 3 + +Ввод: + +```txt +>> 12:45:30 +>> 86399 +>> 24:00:00 +>> 90000 +``` + +Вывод: + +```txt +12:45:30 +23:59:59 +INVALID +INVALID +``` + +Объяснение: + +- `>> 12:45:30` устанавливает время на 12:45:30 и выводит его. +- `>> 86399` устанавливает время на 86399 секунд после полуночи, что соответствует 23:59:59, и выводит его. +- `>> 24:00:00` пытается установить время 24:00:00, но значение часов 24 недопустимо, поэтому выводится INVALID. +- `>> 90000` пытается установить время на 90000 секунд после полуночи, что выходит за пределы суток, +поэтому также выводится INVALID. + +###### Пример 4 + +Ввод: + +```txt +== 12:30:45 12:30:45 +!= 12:30:45 13:30:45 +< 11:00:00 12:00:00 +<= 09:00:00 09:00:00 +== 00:00:90 09:00:00 +``` + +Вывод: + +```txt +true +true +true +true +INVALID +``` + +Объяснение: + +- `== 12:30:45 12:30:45` проверяет равенство двух временных значений. Они равны, поэтому результат — true. +- `!= 12:30:45 13:30:45` проверяет неравенство двух временных значений. Они различны, поэтому результат — true. +- `< 11:00:00 12:00:00` проверяет, является ли 11:00:00 меньше 12:00:00. Это верно, поэтому результат — true. +- `<= 09:00:00 09:00:00` проверяет, является ли 09:00:00 меньше или равно 09:00:00. Они равны, поэтому результат — true. +- `== 00:00:90 09:00:00` пытается проверить равенство двух временных значений, +но первое значение 00:00:90 некорректно (значение секунд 90 выходит за пределы допустимого диапазона 0-59). +Поэтому результат — INVALID. + +В процессе разработки класса использование подхода TDD обязательно. +Без автоматических тестов работа будет принята с коэффициентом 0.5. #### Вариант 5. До 220 баллов From 1b5c80aee5d9a4a3ec862d7c8b61c7633afa1557 Mon Sep 17 00:00:00 2001 From: Vadim Date: Fri, 15 Nov 2024 22:59:13 +0300 Subject: [PATCH 2/4] =?UTF-8?q?=D0=9F=D0=BE=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=B7=D0=B0=D0=BC=D0=B5=D1=87=D0=B0=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tasks/05/README.md | 382 +++++++++++++++++++++++++++++++++++---------- 1 file changed, 297 insertions(+), 85 deletions(-) diff --git a/tasks/05/README.md b/tasks/05/README.md index d2ff3845..94037059 100644 --- a/tasks/05/README.md +++ b/tasks/05/README.md @@ -622,44 +622,41 @@ public: то метод IsValid реализовывать не нужно. Автоматически решится проблема с выполнением арифметических операций, в которых участвуют невалидные значения времени. +В процессе разработки класса использование подхода TDD обязательно. +Без автоматических тестов работа будет принята с коэффициентом 0.5. + Разработайте программу, использующую разработанный Вами класс `CTime`, которая обрабатывает команды пользователя, вводимые им со стандартного потока ввода: Инкремент и декремент времени: -- `++prefix `. Увеличивает время на 1 секунду, префиксная форма. -- `++postfix `. Увеличивает время на 1 секунду, постфиксная форма. -В случае постфиксной формы сначала выводится значение времени до инкрементации, а затем - после. -- `--prefix `. Уменьшает время на 1 секунду, префиксная форма. -- `--postfix `. Уменьшает время на 1 секунду, постфиксная форма. -В случае постфиксной формы сначала выводится значение времени до декрементации, а затем - после. +- `++ HH:MM:SS`. Увеличивает время на 1 секунду. +- `-- HH:MM:SS`. Уменьшает время на 1 секунду. Арифметические операции над временем: -- `+ `. Выполняет сложение двух времён. -- `- `. Вычитание одного времени из другого. -- `+= `. Добавление времени к текущему. -- `-= `. Вычитание времени из текущего. -- `* `. Умножает время на целое число. -- `* `. Умножает целое число на время. -- `/ `. Делит время на целое число. -- `/ `. Выполняет целочисленное деление одного времени на другое. -- `*= `. Умножение текущего времени на целое число. -- `/= `. Деление текущего времени на целое число. +- `+ HH:MM:SS HH:MM:SS`. Выполняет сложение двух времён. +- `- HH:MM:SS HH:MM:SS`. Вычитание одного времени из другого. +- `+= HH:MM:SS HH:MM:SS`. Добавление времени к текущему. +- `-= HH:MM:SS HH:MM:SS`. Вычитание времени из текущего. +- `* HH:MM:SS N`. Умножает время на целое число и наоборот. +- `/ HH:MM:SS N`. Делит время на целое число. +- `/ HH:MM:SS HH:MM:SS`. Выполняет целочисленное деление одного времени на другое. +- `*= HH:MM:SS N`. Умножение текущего времени на целое число. +- `/= HH:MM:SS N`. Деление текущего времени на целое число. Ввод и вывод времени: -- `>> `. Устанавливает время в формате HH:MM:SS и выводит его в формате HH:MM:SS. -- `>> `. Устанавливает время как количество секунд от полуночи, и выводит его в формате HH:MM:SS. +- `fromSeconds SECONDS`. Устанавливает время как количество секунд от полуночи и выводит его в формате HH:MM:SS. Операторы сравнения времени: -- `== `. Проверяет равенство двух временных значений. -- `!= `. Проверяет неравенство двух временных значений. -- `< `. Проверяет, является ли первое значение времени меньше второго. -- `> `. Проверяет, является ли первое значение времени больше второго. -- `<= `. Проверяет, является ли первое значение времени меньше или равно второму. -- `>= `. Проверяет, является ли первое значение времени больше или равно второму. +- `== HH:MM:SS HH:MM:SS`. Проверяет равенство двух временных значений. +- `!= HH:MM:SS HH:MM:SS`. Проверяет неравенство двух временных значений. +- `< HH:MM:SS HH:MM:SS`. Проверяет, является ли первое значение времени меньше второго. +- `> HH:MM:SS HH:MM:SS`. Проверяет, является ли первое значение времени больше второго. +- `<= HH:MM:SS HH:MM:SS`. Проверяет, является ли первое значение времени меньше или равно второму. +- `>= HH:MM:SS HH:MM:SS`. Проверяет, является ли первое значение времени больше или равно второму. ##### Формат входных данных @@ -673,22 +670,40 @@ public: Инкремент и декремент времени: -- Для префиксных форм (`++prefix,` `--prefix`) выводится значение времени после изменения в формате `HH:MM:SS`. -- Для постфиксных форм (`++postfix`, `--postfix`) сначала выводится значение времени до изменения, -затем - значение после изменения, оба в формате `HH:MM:SS`. +- Для команды `++ HH:MM:SS` выводится **4** значения: + 1. Значение, возвращённое префиксной операцией (до увеличения) в формате `HH:MM:SS`. + 2. Значение объекта после префиксной операции (после увеличения) в формате `HH:MM:SS`. + 3. Значение, возвращённое постфиксной операцией (до увеличения) в формате `HH:MM:SS`. + 4. Значение объекта после постфиксной операции (после увеличения) в формате `HH:MM:SS`. + +- Для команды `-- HH:MM:SS` выводится **4** значения: + 1. Значение, возвращённое префиксной операцией (до уменьшения) в формате `HH:MM:SS`. + 2. Значение объекта после префиксной операции (после уменьшения) в формате `HH:MM:SS`. + 3. Значение, возвращённое постфиксной операцией (до уменьшения) в формате `HH:MM:SS`. + 4. Значение объекта после постфиксной операции (после уменьшения) в формате `HH:MM:SS`. Арифметические операции над временем: -- Результат операций сложения, вычитания, умножения и деления на число выводится в формате `HH:MM:SS`. -- Результат целочисленного деления одного времени на другое выводится в виде целого числа. +- Для операций сложения и вычитания (`+ HH:MM:SS HH:MM:SS`, `- HH:MM:SS HH:MM:SS`), результат выводится в формате `HH:MM:SS`. +- Для операций добавления и вычитания времени из текущего значения (`+= HH:MM:SS HH:MM:SS`, `-= HH:MM:SS HH:MM:SS`), +результат выводится в формате `HH:MM:SS`. + +- Для умножения на целое число (`* HH:MM:SS N`) выводится **2** значения: + 1. Результат умножения числа на время (`N * HH:MM:SS`) в формате `HH:MM:SS`. + 2. Результат умножения времени на число (`HH:MM:SS * N`) в формате `HH:MM:SS`. + +- Для деления времени на целое число (`/ HH:MM:SS N`), результат выводится в формате `HH:MM:SS`. +- Для целочисленного деления одного времени на другое (`/ HH:MM:SS HH:MM:SS`), результат выводится в виде **целого числа**. +- Для операций умножения и деления текущего времени на число (`*= HH:MM:SS N`, `/= HH:MM:SS N`), результат +выводится в формате `HH:MM:SS`. Ввод и вывод времени: -- `>> HH:MM:SS` и `>> SECONDS` - Устанавливают время и выводят его в формате `HH:MM:SS`. +- Для команды `fromSeconds SECONDS` время выводится в формате `HH:MM:SS`. Операторы сравнения времени: -- Результатом является `true` или `false`. +- Для всех операций сравнения между двумя временами, результат выводится в виде одного из двух значений: `true` или `false`. Обработка ошибок: @@ -702,115 +717,312 @@ public: Ввод: ```txt -++prefix 12:30:45 ---postfix 01:00:00 +++ 23:59:59 +++ 25:00:00 ``` Вывод: ```txt -12:30:46 -01:00:00 -00:59:59 +23:59:59 +00:00:00 +23:59:59 +00:00:00 +INVALID ``` -Объяснение: - -- `++prefix 12:30:45` увеличивает время на 1 секунду и выводит результат `12:30:46`. -- `--postfix 01:00:00` сначала выводит `01:00:00` (до декрементации), затем `00:59:59` (после декрементации). +Объяснение: Время увеличивается на 1 секунду, переходя через полночь. Второй ввод некорректен, +так как часы не могут быть больше 24. ###### Пример 2 Ввод: ```txt -+ 12:30:45 03:29:15 -- 23:59:59 23:00:00 -* 02:00:00 3 -/ 6:00:00 3 -/ 6:00:00 0 +-- 00:00:00 +-- 00:60:00 ``` Вывод: ```txt -16:00:00 -00:59:59 -06:00:00 -02:00:00 +00:00:00 +23:59:59 +00:00:00 +23:59:59 INVALID ``` -Объяснение: - -- `+ 12:30:45 03:29:15` складывает два времени. 12:30:45 + 03:29:15, результат - 16:00:00. -- `- 23:59:59 23:00:00` вычитает 23:00:00 из 23:59:59, результат - 00:59:59. -- `* 02:00:00 3` умножает время 02:00:00 на 3, результат - 06:00:00. -- `/ 6:00:00 3` делит время 6:00:00 на 3, результат - 02:00:00. -- `/ 6:00:00 0` пытается делить на ноль, что недопустимо, поэтому выводится INVALID. +Объяснение: Время уменьшается на 1 секунду, переходя через полночь. Второй ввод некорректен, +так как минуты не могут быть больше 59. ###### Пример 3 Ввод: ```txt ->> 12:45:30 ->> 86399 ->> 24:00:00 ->> 90000 ++ 14:30:25 03:18:44 ++ 14:30:25 invalid_time ``` Вывод: ```txt -12:45:30 -23:59:59 +17:49:09 INVALID +``` + +Объяснение: Время складывается, получая новый результат. Второй ввод некорректен, +так как одно из времён имеет неправильный формат. + +###### Пример 4 + +Ввод: + +```txt +- 14:30:25 03:18:44 +``` + +Вывод: + +```txt +11:11:41 +``` + +Объяснение: Одно время вычитается из другого. + +###### Пример 5 + +Ввод: + +```txt ++= 14:30:25 03:18:44 +``` + +Вывод: + +```txt +17:49:09 +``` + +Объяснение: К текущему времени добавляется указанное. + +###### Пример 6 + +Ввод: + +```txt +-= 14:30:25 03:18:44 +``` + +Вывод: + +```txt +11:11:41 +``` + +Объяснение: Из текущего времени вычитается указанное. + +###### Пример 7 + +Ввод: + +```txt +* 03:05:15 3 +``` + +Вывод: + +```txt +09:15:45 +09:15:45 +``` + +Объяснение: Время умножается на число в обеих формах. + +###### Пример 8 + +Ввод: + +```txt +/ 09:15:40 3 +/ 10:00:00 0 +``` + +Вывод: + +```txt +03:05:13 INVALID ``` -Объяснение: +Объяснение: Время делится на число. Второй ввод некорректен, так как деление на ноль невозможно. -- `>> 12:45:30` устанавливает время на 12:45:30 и выводит его. -- `>> 86399` устанавливает время на 86399 секунд после полуночи, что соответствует 23:59:59, и выводит его. -- `>> 24:00:00` пытается установить время 24:00:00, но значение часов 24 недопустимо, поэтому выводится INVALID. -- `>> 90000` пытается установить время на 90000 секунд после полуночи, что выходит за пределы суток, -поэтому также выводится INVALID. +###### Пример 9 -###### Пример 4 +Ввод: + +```txt +/ 09:15:40 03:05:13 +``` + +Вывод: + +```txt +3 +``` + +Объяснение: Выполняется целочисленное деление времени на время. + +###### Пример 10 Ввод: ```txt -== 12:30:45 12:30:45 -!= 12:30:45 13:30:45 -< 11:00:00 12:00:00 -<= 09:00:00 09:00:00 -== 00:00:90 09:00:00 +*= 03:05:15 3 +``` + +Вывод: + +```txt +09:15:45 +``` + +Объяснение: Текущее время умножается на число. + +###### Пример 11 + +Ввод: + +```txt +/= 09:15:45 3 +``` + +Вывод: + +```txt +03:05:15 +``` + +Объяснение: Текущее время делится на число. + +###### Пример 12 + +Ввод: + +```txt +fromSeconds 3661 +fromSeconds -100 +``` + +Вывод: + +```txt +01:01:01 +INVALID +``` + +Объяснение: Время задается количеством секунд от полуночи. Второй ввод некорректен, +так как количество секунд не может быть отрицательным. + +###### Пример 13 + +Ввод: + +```txt +== 14:30:25 14:30:25 +== 14:30:25 14:30:60 ``` Вывод: ```txt true +INVALID +``` + +Объяснение: Время одинаковое, поэтому результат - true. Второй ввод некорректен, +так как 60 секунд в минуте - недопустимое значение. + +###### Пример 14 + +Ввод: + +```txt +!= 14:30:25 15:30:25 +``` + +Вывод: + +```txt true +``` + +Объяснение: Время не одинаковое , поэтому результат - true. + +###### Пример 15 + +Ввод: + +```txt +< 14:30:25 15:30:25 +``` + +Вывод: + +```txt true +``` + +Объяснение: Первое время меньше второго, поэтому результат - true. + +###### Пример 16 + +Ввод: + +```txt +> 14:30:25 15:30:25 +``` + +Вывод: + +```txt +false +``` + +Объяснение: Первое время меньше второго, поэтому результат - false. + +###### Пример 17 + +Ввод: + +```txt +<= 14:30:25 15:30:25 +``` + +Вывод: + +```txt true -INVALID ``` -Объяснение: +Объяснение: Первое время меньше или равно второму, результат - true. -- `== 12:30:45 12:30:45` проверяет равенство двух временных значений. Они равны, поэтому результат — true. -- `!= 12:30:45 13:30:45` проверяет неравенство двух временных значений. Они различны, поэтому результат — true. -- `< 11:00:00 12:00:00` проверяет, является ли 11:00:00 меньше 12:00:00. Это верно, поэтому результат — true. -- `<= 09:00:00 09:00:00` проверяет, является ли 09:00:00 меньше или равно 09:00:00. Они равны, поэтому результат — true. -- `== 00:00:90 09:00:00` пытается проверить равенство двух временных значений, -но первое значение 00:00:90 некорректно (значение секунд 90 выходит за пределы допустимого диапазона 0-59). -Поэтому результат — INVALID. +###### Пример 18 -В процессе разработки класса использование подхода TDD обязательно. -Без автоматических тестов работа будет принята с коэффициентом 0.5. +Ввод: + +```txt +>= 15:30:25 15:30:25 +``` + +Вывод: + +```txt +true +``` + +Объяснение: Первое время больше или равно второму, результат - true. #### Вариант 5. До 220 баллов From 555956b41755bcc421190bc15c2e3cfd4f73591d Mon Sep 17 00:00:00 2001 From: Vadim Date: Sat, 16 Nov 2024 14:51:47 +0300 Subject: [PATCH 3/4] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA=D1=83=20=D0=B2=20=D0=B8?= =?UTF-8?q?=D0=BD=D0=BA=D1=80=D0=B5=D0=BC=D0=B5=D0=BD=D1=82=D0=B5=20=D0=B8?= =?UTF-8?q?=20=D0=B4=D0=B5=D0=BA=D1=80=D0=B5=D0=BC=D0=B5=D0=BD=D1=82=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tasks/05/README.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/tasks/05/README.md b/tasks/05/README.md index 94037059..d23e7b80 100644 --- a/tasks/05/README.md +++ b/tasks/05/README.md @@ -671,16 +671,16 @@ public: Инкремент и декремент времени: - Для команды `++ HH:MM:SS` выводится **4** значения: - 1. Значение, возвращённое префиксной операцией (до увеличения) в формате `HH:MM:SS`. - 2. Значение объекта после префиксной операции (после увеличения) в формате `HH:MM:SS`. - 3. Значение, возвращённое постфиксной операцией (до увеличения) в формате `HH:MM:SS`. - 4. Значение объекта после постфиксной операции (после увеличения) в формате `HH:MM:SS`. + 1. Значение, возвращённое префиксной операцией в формате `HH:MM:SS`. + 2. Значение объекта после префиксной операции в формате `HH:MM:SS`. + 3. Значение, возвращённое постфиксной операцией в формате `HH:MM:SS`. + 4. Значение объекта после постфиксной операции в формате `HH:MM:SS`. - Для команды `-- HH:MM:SS` выводится **4** значения: - 1. Значение, возвращённое префиксной операцией (до уменьшения) в формате `HH:MM:SS`. - 2. Значение объекта после префиксной операции (после уменьшения) в формате `HH:MM:SS`. - 3. Значение, возвращённое постфиксной операцией (до уменьшения) в формате `HH:MM:SS`. - 4. Значение объекта после постфиксной операции (после уменьшения) в формате `HH:MM:SS`. + 1. Значение, возвращённое префиксной операцией в формате `HH:MM:SS`. + 2. Значение объекта после префиксной операции в формате `HH:MM:SS`. + 3. Значение, возвращённое постфиксной операцией в формате `HH:MM:SS`. + 4. Значение объекта после постфиксной операции в формате `HH:MM:SS`. Арифметические операции над временем: @@ -724,10 +724,10 @@ public: Вывод: ```txt -23:59:59 00:00:00 -23:59:59 00:00:00 +00:00:00 +00:00:01 INVALID ``` @@ -746,10 +746,10 @@ INVALID Вывод: ```txt -00:00:00 23:59:59 -00:00:00 23:59:59 +23:59:59 +23:59:58 INVALID ``` From f68cc1c807fdbd5deb17e0eb644eb7f1fee12f92 Mon Sep 17 00:00:00 2001 From: Vadim Date: Sat, 16 Nov 2024 15:48:13 +0300 Subject: [PATCH 4/4] =?UTF-8?q?=D0=A0=D0=B0=D0=B7=D0=B4=D0=B5=D0=BB=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=BE=D0=BF=D0=B5=D1=80=D0=B0=D1=86=D0=B8=D1=8E=20?= =?UTF-8?q?=D0=B4=D0=B5=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=BD=D0=B0=20?= =?UTF-8?q?=D0=B4=D0=B2=D0=B5=20=D1=80=D0=B0=D0=B7=D0=BD=D1=8B=D0=B5=20?= =?UTF-8?q?=D0=BA=D0=BE=D0=BC=D0=B0=D0=BD=D0=B4=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tasks/05/README.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/tasks/05/README.md b/tasks/05/README.md index d23e7b80..c31ba5f5 100644 --- a/tasks/05/README.md +++ b/tasks/05/README.md @@ -640,8 +640,8 @@ public: - `+= HH:MM:SS HH:MM:SS`. Добавление времени к текущему. - `-= HH:MM:SS HH:MM:SS`. Вычитание времени из текущего. - `* HH:MM:SS N`. Умножает время на целое число и наоборот. -- `/ HH:MM:SS N`. Делит время на целое число. -- `/ HH:MM:SS HH:MM:SS`. Выполняет целочисленное деление одного времени на другое. +- `divByNumber HH:MM:SS N`. Делит время на целое число. +- `divByTime HH:MM:SS HH:MM:SS`. Выполняет целочисленное деление одного времени на другое. - `*= HH:MM:SS N`. Умножение текущего времени на целое число. - `/= HH:MM:SS N`. Деление текущего времени на целое число. @@ -692,8 +692,9 @@ public: 1. Результат умножения числа на время (`N * HH:MM:SS`) в формате `HH:MM:SS`. 2. Результат умножения времени на число (`HH:MM:SS * N`) в формате `HH:MM:SS`. -- Для деления времени на целое число (`/ HH:MM:SS N`), результат выводится в формате `HH:MM:SS`. -- Для целочисленного деления одного времени на другое (`/ HH:MM:SS HH:MM:SS`), результат выводится в виде **целого числа**. +- Для деления времени на целое число (`divByNumber HH:MM:SS N`), результат выводится в формате `HH:MM:SS`. +- Для целочисленного деления одного времени на другое (`divByTime HH:MM:SS HH:MM:SS`), +результат выводится в виде **целого числа**. - Для операций умножения и деления текущего времени на число (`*= HH:MM:SS N`, `/= HH:MM:SS N`), результат выводится в формате `HH:MM:SS`. @@ -845,8 +846,8 @@ INVALID Ввод: ```txt -/ 09:15:40 3 -/ 10:00:00 0 +divByNumber 09:15:40 3 +divByNumber 10:00:00 0 ``` Вывод: @@ -863,7 +864,7 @@ INVALID Ввод: ```txt -/ 09:15:40 03:05:13 +divByTime 09:15:40 03:05:13 ``` Вывод: