ом.
Перемінної vybor1 присвоюємо значення імені першого кандидата з множини імен name (contrl = 1), а vybor2 - наступне (k = contrl +1). Якщо vybor1 знаходиться вище, ніж vybor2, у перевагах виборців усіх груп, то до оцінки Копленда (Kopl [contrl]) кандидата vybor1 додається вічко, а vybor2 (kopl ​​[k]) - віднімається і навпаки. Далі змінної vybor2 привласнюється наступне значення з масиву імен (k = k +1), і процедура порівняння знову повторюється. Цикл продовжується до тих пір, поки не вичерпаються імена у списку кандидатів.
Після цього змінної vybor1 присвоюється друге ім'я із списку кандидатів (Contrl = contrl +1), а vybor2 - третя. Знову проходить цикл по змінній vybor2. Цикл по змінній vybor1 закінчується тоді, коли будуть переглянуті всі кандидати.
Отримуємо наступний алгоритм знаходження оцінки Копленда.
В В
Рис. 4.3 Алгоритм знаходження оцінок Копленда (кінець)
В
4.3 Алгоритм визначення переможця за правилами Борда чи Копленда
Як можна було побачити, переможцем за Борда (Коплендом) є кандидат з найвищою сумою очок. Тому процес його визначення є однаковим для обох випадків, і я його об'єднала одним алгоритмом. Як відомо, правила Копленда і Борда породжують множина рішень. Для знаходження переможця використовуємо наступні змінні: K - кількість переможців; Max - оцінка переможців; Hl [M] - масив номерів переможців.
Спочатку масив номерів переможців заповнюємо нулями.
Масиви оцінок Копленда і Борда (kopl ​​і bord) замінимо формальним масивом v [M].
Після того, як ми знайшли оцінки для кандидатів (масиви kopl і bord), серед них шукаємо максимальну (max). Далі відбираємо кандидатів, оцінка яких дорівнює max (Їх номери з масиву name заносяться у масив hl), і рахуємо кількість переможців (k).
Переглядаємо заповнений масив hl. Якщо в ньому тільки перше значення відмінне від нуля, то значить, що ми знайшли єдиного переможця, і, отже, зберегли умова нейтральності.
У іншому випадку переглядаємо ті значення імен кандидатів (масив name), номери яких зустрічаються в масиві hl. Відібрано імена кандидатів впорядковуємо по списком. Переможцем стає той, ім'я якого знаходиться першим у даному списку.
У даному випадку умова нейтральності не зберігається.
Ми отримали наступний алгоритм.
В
Рис. 4.4 Алгоритм визначення переможця (Початок). br/>В В
Рис. 4.5. Алгоритм визначення переможця (кінець).
В
5. Опис програми
5.1 Вибір технології програмування
Найбільш поширеними парадигмами програмування, які до того ж можуть бути використані в даній курсовій роботі, є парадигми процедурного та об'єктно-орієнтованого програмування.
Парадигма процедурного програмування найбільше широко поширена серед існуючих мов програмування (наприклад, Сі і Па...