|
Логический оператор и остатки
|
|||
---|---|---|---|
#18+
Добрый день!Я решал задачу(которая ниже),но сомневаюсь в правильности моего решения. Трассировка и по шаговый разбор особой ситуации не дал точной информации. Код рабочий,компилируется,считает.Но у меня сомнения. Может профессионалы проверят и скажут?Правильно ли я всё сделал? Сразу скажу что оба критерия я связал логическим И,и задание надо сделать с помощью тернарного оператора(без классических if=else операторов работаем) Напишите программу,которая проверяет,удовлетворяет ли введённое пользователем число следующим критериям: -при делении на 5 в остатке получается 2 -при делении на 7 в остатке получается 1 Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.01.2022, 21:10 |
|
Логический оператор и остатки
|
|||
---|---|---|---|
#18+
Правильно. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2022, 08:30 |
|
Логический оператор и остатки
|
|||
---|---|---|---|
#18+
otars, когда сомневаешся - пиши модульные тесты. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2022, 11:10 |
|
Логический оператор и остатки
|
|||
---|---|---|---|
#18+
otars Сразу скажу что оба критерия я связал логическим И Из условия это никак не следует. Может быть, нужно "или". Или даже каждый из критериев проверять независимо и по каждому выносить отдельный вердикт. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2022, 14:44 |
|
Логический оператор и остатки
|
|||
---|---|---|---|
#18+
Я тоже об этом думал. Но в этом ТЗ - как в договоре. Все что мелким шрифтом в требованиях - обязательно. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2022, 14:46 |
|
Логический оператор и остатки
|
|||
---|---|---|---|
#18+
Вроде однозначно написано otars Напишите программу,которая проверяет, удовлетворяет ли введённое пользователем число следующим критериям : -при делении на 5 в остатке получается 2 -при делении на 7 в остатке получается 1 Одно число удовлетворяет всем критериям, т.е. И без вариантов. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2022, 14:59 |
|
Логический оператор и остатки
|
|||
---|---|---|---|
#18+
Помните задачу FizzBuzz? https://www.geeksforgeeks.org/fizz-buzz-implementation/ Она тупая и прямая. Но тот кто ее придумал - создал пищу для размышлений. Я вот размышлял о том что считать остаток от деления на 15 не надо. Он уже учтен. Надо только корректно отформатировать результат чтобы "FizzBuzz" выглядело как в оригинальном ТЗ ? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2022, 15:03 |
|
Логический оператор и остатки
|
|||
---|---|---|---|
#18+
Когда сомневаешься, нужно вспомнить, чему тебя учили ранее. Можно написать тест (прилагательное перед словом тест не имеет значения). Да, тестирование может помочь найти ошибку, если она есть, но доказать, что ошибок нет оно не может. Еще нужно написать тест без ошибок. Как только мы написали тест, нужно будет думать о том, как протестировать связку "объект тестирования - тест", ... Гораздо практичнее спроектировать правильную программу, используя ранее полученные знания, в данном случае математическую логику. Есть два условия, сделаем их высказываниями: x = "остаток от деления числа на 5 равен 2", y = "остаток от деления числа на 7 равен 1". Каждое из этих высказываний может быть истинным (T) или ложным (F). Нас будет интересовать случай, когда оба эти высказывания будут истинными. Составим таблицу истинности: Код: plaintext 1. 2. 3. 4. 5.
Осталось записать полученную логическую функцию через операторы заданного языка программирования. Пример для двух разных языков программирования: "остаток от деления числа на 5 равен 2" -> val%5==2; val mod 5 = 2, "остаток от деления числа на 7 равен 1" -> val%7==1; val mod 7 = 1, /\ -> &&; and Для одного языка: (val%5==2)&&(val%7==1) Для другого языка: (val mod 5 = 2)and(val mod 7 = 1) Конечно, это очень простой случай. Чем сложнее условие, тем труднее получить правильный результат, основываясь только на интуиции, и тем больше могут помочь формальные метода. Осталось подумать, что будет, если пользователь введет строку "двадцать два". Ему сказали: "Введите число" и он ввел число, а может быть просто не попал на цифровую клавишу и нажал клавишу "Enter". ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2022, 15:08 |
|
Логический оператор и остатки
|
|||
---|---|---|---|
#18+
mayton Помните задачу FizzBuzz? https://www.geeksforgeeks.org/fizz-buzz-implementation/ Она тупая и прямая. Но тот кто ее придумал - создал пищу для размышлений. Я вот размышлял о том что считать остаток от деления на 15 не надо. Он уже учтен. Надо только корректно отформатировать результат чтобы "FizzBuzz" выглядело как в оригинальном ТЗ ? Можно наоборот, использовать только остаток деления на 15 и switch(). ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2022, 15:20 |
|
Логический оператор и остатки
|
|||
---|---|---|---|
#18+
Моя идея была в том что допустим операция % - дорогая. А if-elsе-switch - дешевые. Тоесть лучше жонглировать печатью на экран чем решать целочисленное деление там где не надо. Разумеется для современных CPU расчет остатка - это быстро но я просто рассуждаю на тему как оно было-бы если-бы у нас был decimal тип данных или просто 512 битные регистры всегда или просто жлобский CPU вроде старого мобильного телефона. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2022, 15:33 |
|
Логический оператор и остатки
|
|||
---|---|---|---|
#18+
mayton Моя идея была в том что допустим операция % - дорогая. А if-elsе-switch - дешевые. Тоесть лучше жонглировать печатью на экран чем решать целочисленное деление там где не надо. А ничего, что вычисление цифр требует этого самого целочисленного деления??? Или что вывод даже в /dev/null заметно накладнее операций процессора??? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2022, 15:39 |
|
Логический оператор и остатки
|
|||
---|---|---|---|
#18+
С наступившим, Василий. Чего "не в духе" ? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2022, 15:54 |
|
Логический оператор и остатки
|
|||
---|---|---|---|
#18+
otars Код: c# 1. 2.
Таки в одном из вариантов ответа не хватает пробела в начале. Любая автопроверка объявит задачу не решенной. P.S. вообще без ветвлений можно было бы обойтись если сделать 2d массив строк, адрес в котором - [val % 7, val % 5], а значения - те самый "удовлетворяют"/"нет...". ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2022, 18:16 |
|
|
start [/forum/topic.php?fid=16&msg=40124662&tid=1339600]: |
0ms |
get settings: |
4ms |
get forum list: |
5ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
34ms |
get topic data: |
2ms |
get forum data: |
1ms |
get page messages: |
241ms |
get tp. blocked users: |
0ms |
others: | 7ms |
total: | 296ms |
0 / 0 |