и визначенні оцінки Копленда;
bord: масив оцінок Борда;
name: масив імен кандидатів;
до, і, j, l, r: допоміжні змінні;
many: масив груп виборців.
Опишемо структуру програми.
Спочатку програма просить внести всю потрібну інформацію. Користувач повинен вказати кількість виборців та кандидатів і спосіб занесення інформації (чи буде свої переваги вносити кожен виборець окремо, чи буде це проводити комісія, оперуючи згрупованими даними). Далі йде внесення профілю переваг і перевірка на його коректність. Профіль є некоректним, якщо в ньому зустрічається ім'я особи, яка не є вище вказаним кандидатом, або ж імена кандидатів повторюються.
У програмі використовуються алгоритми правил Борда та Копленда, вказані у попередньому розділі. Згідно отриманих оцінок визначається переможець за допомогою процедури victory, і проходить виведення результату.
Слід помітити, що отримані переможці Копленда та Борда можуть не збігатися, що ще раз свідчить про недосконалість правил голосування більшістю голосів. Результати роботи алгоритму будуть показані у відповідному розділі. p> Складність програми (в даному випадку розуміється час, затрачений на виконання), прямо пропорційно залежить від величини кількості виборців та кандидатів.
Так як дана програма носить більш демонстраційний характер, то я ввела кордон для кількості виборців і кандидатів для того, щоб обмежити час виконання - 200 та 50 відповідно. Загалом воно не є суттєвим, так як завжди можна розбити виборчий округ на більш малий з умовою того, щоб виконувалося дане обмеження.
5.3 Інструкція користувачеві
Дана програма призначена для визначення переможця виборів за правилами Копленда і Борда і порівняння отриманих результатів. p> У початку роботи програми користувач може вибрати, переглядати чи результати рішення контрольного прикладу, чи вносити власні дані. В обох випадках визначаються переможці за Коплендом і Борда.
Спочатку працівники виборчого органу вносять загальну інформацію: кількість виборців в даному окрузі то кількість кандидатів. Далі заносяться імена кандидатів і указується спосіб занесення профілів переваг: кожним виборцем окремо або працівниками виборчого округу. В останньому випадку інформація згрупована (Аналогічно до контрольного прикладу). p> Внизу екрана виводяться імена всіх кандидатів. Кожен виборець (працівник чи виборчого округу) вносить профіль переваг, розташовуючи кандидатів у строго певному порядку.
Для кожного виборця не допускається випадків байдужості; крім того, кандидати повинні бути строго ранджовані (тобто кожен з них займає своє місце в перевазі виборця, і на одному рівні не можуть перебувати два кандидати). Імена кандидатів, які заносяться виборцями, винні збігатися з іменами, зазначеними на початку заповнення інформації.
Після занесення всіх цих даних видається результат роботи прог...