ОБГОВОРЕННЯ:
2013-01-25 18:56 Адміністратор:
Доброго вечора, учасникам! За декілька хвилин розпочнеться довгоочікуваний онлайн конкурс з С++ . Сподіваюсь ми побачимо цікаве змагання. Бажаю усім успіхів!
2013-01-25 18:57 Адміністратор:
ОСНОВНІ ІНСТРУКЦІЇ - для того, щоб прикріпити роботу до завдання, необхідно на сторінці свого проекту перейти в режим редагування (натиснути на олівець в правому верхньому кутку). Після цього під кожним завданням з`являться олівчики для завантаження файлів. Після того, як файл завантажився, рекомендується перевірити коректність завантаження - для цього збережіть його назад на свій комп`ютер та перегляньте зміст.
2013-01-25 19:14 Євген Задорожній:
Что значит "встановлений біт" и с какой стороны он считается?
2013-01-25 19:18 Адміністратор:
Євгене, це запитання до судді. Чекаємо на його відповідь.
2013-01-25 19:21 Николай Сергеев:
0000 0001 1-й бит 0000 0010 2-й
2013-01-25 19:21 Николай Сергеев:
Справа налево отсчет битов
2013-01-25 19:24 Николай Сергеев:
Задание сводиться к тому, чтобы проверить конкретный бит он установленый, то есть в значении "1" или не установленый, то есть в значении "0".
2013-01-25 19:24 Євген Задорожній:
С отсчётом понятно, но тогда почему в примере написано, что "Біт в позиції 4 не встановлений" ?=) Спасибо.
2013-01-25 19:28 Николай Сергеев:
Да там ошибка
2013-01-25 19:46 Євген Задорожній:
Що має містити опис результатів?)
2013-01-25 19:51 Николай Сергеев:
Если вы про задание 2 то там к результатам отностися собственно двоичное представление числа
2013-01-25 19:53 Євген Задорожній:
Не, я про то что для каждой программы отведено: "Опис результатів та файл з програмою:". Вот в этот "Опис результатів" нужно что-нибудь писать?
2013-01-25 19:55 Адміністратор:
Якщо є що додати, то можна змінити, інакше можна залишати.
2013-01-25 19:57 Николай Сергеев:
Главное загружайте именно исходник *.cpp, а не исполняемый файл программы
2013-01-25 20:04 Pavel Remygailo:
Там не ошибка, просто отсчёт ведётся слева направо. Пример считается правильным.
2013-01-25 20:17 Николай Сергеев:
Нет там и справа и слева 4-й бит - "1"
2013-01-25 20:17 Николай Сергеев:
Я когда резудльтат вывода программы переводил скопировал не ту строку
2013-01-25 20:18 Николай Сергеев:
Пожалуйста ввдеите целое число: 23423 Пожалуйста ввдеите битовую позицию: 4 Бит в позиции 4 установлен Двоичное представление числа 23423 : 101101101111111 Для продолжения нажмите любую клавишу . . .
2013-01-25 20:19 Николай Сергеев:
Это результат работы программы
2013-01-25 20:19 Николай Сергеев:
А отчет идет от младшего бита к старшему
2013-01-25 20:21 Николай Сергеев:
А младшая цифра во всех совремнных системах исчисления находится справа. Самая старшая цифра - слева. Например десятичное число 456 - младшая цифра 6, потом цифра 5, потом цифра 4.
2013-01-25 20:27 Олександр Громовий:
До завдання 5 іде додаток - текстовий файл із таблицею фраз. завантажити його можна із сторінки ЗАВДАННЯ. В особистих проектах учасників лінк на завантаження додатку не відображається.
2013-01-25 20:27 Євген Задорожній:
А в первом задании, если число отрицательное, выводить его как 32-битное? Дополнительный код же...
2013-01-25 20:30 Євген Задорожній:
А ладно, не важно это=)
2013-01-25 20:31 Николай Сергеев:
Правильно но размер все равно тот же. самый старший бит - последний справа первый слева устанавливается в единицу
2013-01-25 20:33 Pavel Remygailo:
Николай Сергеев, а отсчёт разве не с нулевого бита?
2013-01-25 20:34 Pavel Remygailo:
Значит, считать всё-таки справа, как у нормальных людей?
2013-01-25 20:36 Николай Сергеев:
поэтому и диапазон возможных значений у unsigned int от 0 до 4 294 967 296, а у int - 2 147 483 648 до 2 147 483 647
2013-01-25 20:37 Pavel Remygailo:
І як вводиться матриця? З клавіатури, рандомом, з файлу?
2013-01-25 20:38 Николай Сергеев:
Еще раз принцип адресации младший бит по младшему адресу, младший байт по младшему адресу именно так, за исключением особіх случаев. Адрес младшего бита, байта 0-й. Почему ві решили что єто не так я не знаю.
2013-01-25 20:40 Николай Сергеев:
Матрицу можно рандомом, можно с клавиатуры, можно из файла - как вам будет удобнее
2013-01-25 20:41 Николай Сергеев:
Насчет особенностей адресации еще раз повторяю отсчет справа - налево!
2013-01-25 20:43 Николай Сергеев:
Кто не верит пусть сделает побитовый сдвиг единицы влево несколько раз и каждый раз выведет на экран значение переменной куда эта единица была занесена.
2013-01-25 20:48 Євген Задорожній:
В общем, я готов. Можете проверять=)
2013-01-25 20:50 Адміністратор:
Євгене, конкурс ще не закінчився :) . Результати будуть опубліковані у понеділок о шостій.
2013-01-25 21:00 Микола Красан:
Завантажив те, що встиг зробити за 40 хвилин. P. S. Реалізація другого не відповідає завданню
2013-01-25 21:03 Адміністратор:
Вітаю із завершенням конкурсу! Які враження? Як завдання конкурсу?
2013-01-25 21:08 Євген Задорожній:
Давать в заданиях кирилицу - жестоко. Ибо сделать её тем, кто ни разу с ней дела в консоли с++ не имел - геморой ещё тот=) Ещё в пятой задаче мне понравилось: "у якусь структуру даних". Я вот всё думал, что же выбрать: массив или самобалансируемое двоичное дерево поиска=)
2013-01-25 21:16 Олександр Громовий:
Євгене, уточни будь-ласка дату народження на особистій сторінці, а то будеш йти в режимі "Поза конкурсом".
2013-01-25 21:17 Олександр Громовий:
А також усім цікаво знати де вчишся :)
2013-01-25 21:43 Євген Задорожній:
Вказав.
2013-01-25 21:50 Олександр Громовий:
О, виявляється, Євгене, ти не з Київа, а з славетного Запоріжжя :)
2013-01-28 23:10 Pavel Remygailo:
" Pavel Remygailo Задача 1. Сделана. Но есть комбинации при которых программа работает некорректно. При числе например 4 (0100) если поставить проверку бита № 0 и №1. Нужно либо сделать для таких ситуаций отдельную обработку с помощью if, либо сдвигать маску, а не число, либо вести отчет битов с 1-го по 8-й в этом случае сдвиг осуществлять не на position а на (position-1)." Пробачте, але Ви, здається, перевіряли не мій код. Перевірка значення біта працює бездоганно для всіх варіантів. 4,0 - не встановлено 4,1 - не встановлено 4,2 - встановлено (нумерація від 0 до 63 з права наліво). Інша проблема, що сьогодні зловив переповнення буфера при перетворенні, хоча при здачі його ніби не було - проблема в неініціалізованому буфері, в котрому останній байт за задумкою мав бути термінуючим нулем, з. №2 static_cast - стандартний оператор С++, він не входить в STL. С-подібне перетворення (type-id)value зводиться до static_cast, або, якщо це неможливо, то reinterpret_cast, після чого, при необхідності(якщо змінюються кваліфікатори const і/або volatile) виконується const_cast. №3 Згоден, переплутав result[i][j] з matrix[i][j] :) №5 включено, все працює. Для розробки використовував Microsoft Visual Studio 2008 Professional (Version 9.0.21022.8 RTM) Компілятор відповідний.
2013-01-28 23:11 Pavel Remygailo:
*№5 включено
2013-01-28 23:12 Pavel Remygailo:
Ох уже цей парсер. < time.h > включено.
2013-01-28 23:31 Pavel Remygailo:
Як я розумію, останні 3 рядки відповіді також адресовані мені. Про using namespace - це не дуже хороша практика, особливо, якщо в коді буде кілька просторів імен - можлива колізія, а простори імен як-раз і вигадані для того, щоб уникати колізії. Хоч в даному проекті цього і не може статися, але звички погано впливають. Більш прийнятним варіантом є using std::cout.
2013-01-28 23:40 Pavel Remygailo:
Ще хочу зазначити особливість коду рішення 5-ого завдання від Євгена Задорожнього - метода написання коду copy&paste - можна помітити по зміні стилю виклику звернення до елементів простору std - в заголовку написано using nmespace std, а при перевантаженні оператора використовується повне ім`я зі специфікацією простору імен. Крім того, скопійований випадково метод "split" хоч і використовує вектор із STL, але не використовується взагалі. Мертвий код. Крім того, якщо в інших рішеннях успішно використовувалася функція setlocale, то тут навіщось використано непотрібне перевантаження(навіть два) оператора. А рішення зроблено через масиви, і можливості STL не використано взагалі.
2013-01-29 00:51 Олександр Громовий:
Павле, спасибі за коментарі, суддя через деякий час дасть на них відповідь. Просимо вас вказати коректну дату народження, місто, а також місце навчання.
2013-01-29 00:53 Олександр Громовий:
Також для усіх учасників прохання - додайте якусь аватарку собі на особисту сторінку, - набагато приємніше та легше іншим користувачам переглядати списки та рейтинги.
2013-01-29 22:40 Євген Задорожній:
Pavel Remygailo.П 1) Щодо "рішення зроблено через масиви, і можливості STL не використано взагалі" мені здається, що у відгуку про мою роботу суддя переплутав номера 4 і 5. Дійсно, в 5-ій задачі можливості STL не використовуються, а ось 4-а задача повністю на них (stringstream, vector, string). 2) Усі 5 задач я робив у одному проекті, і через це при переході з 4-ої задачі на 5-у забув стерти зайве, яке і залишилось "мертвим кодом" ( це відноситься і до split, і до перевантажених операторів). 3) Перевантажені оператори та функція SetConsoleCP(1251) дозволяють працювати з кирилицею у консолі і при виводі, і при вводі, тоді як setlocale, якщо не помиляюсь, лише при виводі. Саме через це я і використав їх у задачі №4. 4) Дійсно, ці перевантажені оператори я використовував раніше, і узяв готовий код, який був під рукою. Та я не бачу правила, яке б забороняло використовувати prewritten code. Тим паче, не варто забувати, що це - заочне змагання.
2013-01-30 00:29 Pavel Remygailo:
Євген Задорожній, почитав код. Вірю.
2013-01-30 21:04 Николай Сергеев:
Євген Задорожній благодарю за то что помогли прояснить ситуацию. Действительно я имел в виду задачу № 4. Pavel Remygailo. Так же благодарю за активное участие. Признаю static_cast - оператор С++ который не входит в STL. По задаче 1 да ошибка переполнения наблюдается уже при выводе результата. При чем в моем случае именно на значениях 4 (0100) и 6 (0110) при запросе 0-го бита. Но в любом случае она имеет место, поэтому общая рекомендация для всех - тестировать программу в том числе для крайних случаев (начало/конец выделенного объема памяти). Что касается using namespace - это я привел для примера. Пространство имен в полученном мной исходном коде объявлено не было, как не был объявлен и хидер / . Отсюда и такая постановка комментария в отзыве.