Онлайн-конкурс "Програмування на С++"
Рівень змагання:
2
Термін проведения:
від 2013-01-25 19:00
до  2013-01-25 21:00
Вікова категорія:
Від 5 до 21
Основні оператори та команди мови С++. Робота з масивами та строками
Відгук до Онлайн-конкурс "Програмування на С++"
2013-01-15 Автор: 718

Шановні учасники конкурсу!

Спочатку про загальні проблеми, причому одна з них стосується більшості учасників: вчіться уважно читати завдання і не відступати від нього. Творчість заохочується при виконаному завданні.

Отже, щодо завданнь

  1. Не в усіх висланих програмах присутнє рішення. У кількох роботах є програма яка приймає на вхід дані заносить їх у структури даних, але не виконує при цьому поставленого завдання.
  2. Є помилки при використанні вмісту масиву. Масив, який оголошено, але не проініціалізовано, за умовчанням заповнюється нульовими значеннями.
  3. Є помилки виходу за межі виділеної пам'яті, пов’язані з неправильним відліком елементів масиву

Трохи теорії

  1. Відлік елементів масиву в С починається з «0», а не з «1»
  2. Відлік біт в байті йде від молодшого (правого) біта до старшого (лівого).
  3. Якщо масив оголошений глобально і ініціалізований, то всі його елементи инициализируются 0, якщо масив оголошений локально, його, зазвичай треба ініціалізувати самому, але у використаному компіляторі Microsoft Visual Studio 2008 він так само автоматично встановлюється в "0".
  4. Відлік елементів двовимірного масиву так само починається з «0», тобто елементи масиву з 5-ти символів будуть доступні за адресами наприклад [4][1], [4][4], [1][4].

 

Тепер про роботи кожного з учасників

Айвазян Рафік

  1. Вирішено лише задачу № 3.

Саша Бабіенко

  1. Вислано тільки два файли по 1-й і по 2-й задачі.
  2. Задача № 1 не вирішена. Програма тільки приймає вхідні значення і виводить двійкове подання числа. Перевірка біта не виконується.
  3. Завдання № 2. Файл порожній. Але у файлі 1 присутнє розв’язання при виконанні виводу двійкового представлення числа. Тому за 2-ю задачу 7 балів.

Max Izumenka

  1. Задача № 3 виконана.
  2. Приємне враження що написана по Unix, + бал.

Микола Красан

  1. Зроблено 1-а і 2-я задача. Рішення правильне.

Олена Мельникова

  1. Перша задача не вирішена. Є спроба вирішення. Закритий if. Після if іточка з комою не ставиться.
  2. Друга задача вирішена правильно.

Андрій Попович

  1. Завдання № 3. Все правильно, але є груба помилка. Нумерація в С йде з «0» а не з «1»

Pavel Remygailo

  1. Задача 1. Виконана. Але є комбінації при яких програма працює некоректно. При числі наприклад 4 (0100) якщо поставити перевірку біта № 0 і № 1. Потрібно або зробити для таких ситуацій окрему обробку за допомогою if, або здійснювати зсув маски, а не числа, або вести відлік бітів з 1-го по 8-й у цьому випадку зсув здійснювати не на position а на (position-1).
  2. Задача № 2. Виконана правильно. Використання STL для перетворення типів вразило.
  3. Задача № 3. Виконана неправильно. Логічна помилка в алгоритмі рядок 19: result [i] [j] = (result [i] [j]> matrix [i] [i])? 1:0; Йде порівняння обтулених значень масиву result (хоч масив і оголошений локально але в Visual Studio він і в цьому випадку забивається нулями), із значеннями головної діагоналі масиву matrix. Звичайно таке виконання неминуче призведе до того що, результат порівняння цих чисел з діагоналлю завжди буде «0».
  4. Задача № 4. Рішення не надано.
  5. Задача № 5 принципово вирішена. Але, учасник неуважний. Виводитися тільки один рядок, їх повинно бути 5 (це зазначено в завданні). Крім того є декілька запитань по використовуваному компілятору (Студія 2008 не працює без хідера # include <ctime>

 Євген Задорожній

  1. Зроблені всі завдання. Вражений тим, як використані можливості STL при вирішенні задачі № 5. Взагалі малося на увазі використання масивів і вказівниківв. За цю задачу ставлю 10. Ну це так, на перший час.

Хайленко Максим

1.  Задача № 3 вирішена. У задачі № 5 виводиться тільки один рядок, їх повинно бути 5 (це зазначено в завданні). Крім того, є запитання щодо використовуваного компілятора. Справа в тому що Visual Studio 2008 не працює без хідера:

# include <ctime>

і без оголошення простору імен для оперетора управління потоком cout:

using namespace std;