Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая по программированию.doc
Скачиваний:
4
Добавлен:
16.08.2019
Размер:
599 Кб
Скачать
☆
    1. Алгоритм вирішення задачі

  1. Запускається функція розрахунку часу.

  2. Вводяться данні (Табл.1)

Таблиця 1

Таблиця змінних

Данні

Тип данних

Описання

n

int const

Максимальна кількість людей, що можуть прийти на олімпіаду

N

int

Кількість людей, що прибули на олімпіаду

G[n][n]

int

Квадратна матриця суміжності G

i, j, k

int

Змінні для циклів

V[n]

int

Вектор досягнень

kol

int

Кількість елементів в у векторі досягнень V[n]

marker

int

Помітка, що приймає значення 1 або 0 в залежності від того була вершина в V[n] чи ні

  1. Відкривається файл fs1.txt й опустошається.

  2. Файл fs1.txt перевіряється на помилки: можливо файл відсутній або просто закритий для читання інформації. Якщо файл не пройшов перевірку на помилки – виводиться «Error open file.» й програма завершується. Якщо не виявляються помилки - програма переходить до наступного кроку.

  3. Якщо файл fs2.txt – існує, то він перезапускається й опустошається, якщо ж – ні, то створюється автоматично програмою.

  4. Файл fs2.txt перевіряється на помилки: можливо файл просто закритий для запису інформації. Якщо файл не пройшов перевірку на помилки – виводиться «Error open file.» й програма завершується. Якщо не виявляються помилки - програма переходить до наступного кроку.

  5. Зчитується інформація з файлу fs1.txt, що відкритий для читання: N – кількість прибувших на олімпіаду, а також кожен елемент матриці суміжності G[i][j].

  6. Файл, що був відкритий для читання закривається, так як потрібно інформація з нього дісталася і він нам більше не потрібен.

  7. Кожен елемент вектора V[j] досягнень приймається за 0, а перший елемент вектора – за першу вершину. Кількість елементів у векторі досягнень приймає значення «1».

  8. Продивляємось елементи в рядку з номером 1 і знаходимо одиниці - тобто вершини, суміжні з першою вершиною (люди знайомі з людиною під номером один), при знаходженні пар ставиться позначка marker=0.

  9. Передивляємося елементи вектора досягнень, якщо людина за певним номером там присутня, то ставиться marker=1.

  10. Якщо позначка marker=0, тобто людина ще не присутня у векторі досягнень, то заносимо її туди, а кількіть «kol» елементів в векторі збільшується на 1.

  11. Після перегляду всіх вершин, дивимося на кількість елементів у векторі досягнень, якщо вона буде дорівнювати заданій цифрі N – кількості прибувших на олімпіаду, то у файл fs2.txt заноситься інформація у вигляді слова “Yes”. Якщо ж кількість не дорівнює заданому числу, то видається інформація “Nо”.

  12. Час початку й кінця роботи програми виводиться у цей же файл fs2.txt.

  13. Закривається файл fs2.txt.

  14. Кінець програми.