diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..dc84959 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +build/ + diff --git a/README.md b/README.md new file mode 100644 index 0000000..58cb7a0 --- /dev/null +++ b/README.md @@ -0,0 +1,53 @@ +# Поиск в массиве с использованием барьера + +Проект содержит две программы для многопоточного поиска значений в массиве с использованием `pthread_barrier`: + +- **task1** + Поиск **первого** вхождения заданного значения. Возвращает индекс или `-1`. +- **task2** + Поиск **всех** вхождений заданного значения. Возвращает количество и список индексов в порядке возрастания. + +## Структура проекта + +``` +. +├── README.md +├── .gitignore +├── CMakeLists.txt +├── task1.c +└── task2.c +``` + +## Сборка + +```bash +git clone https://git.gandc.ru/gandc/pr6_sysprog.git +mkdir build && cd build +cmake .. +make +``` + +## Запуск + +### Задание 1 + +```bash +./task1 +``` + +1. Введите `N` и `target` (например: `8 5`) +2. Введите `N` элементов массива (через пробел или по одному): `1 2 5 3 5 4 5 6` +3. Введите число потоков: `4` + +Вывод: индекс первого вхождения или сообщение о том, что значение не найдено. + +### Задание 2 + +```bash +./task2 +``` + +Ввод аналогичен. Вывод: +- Общее число найденных вхождений +- Список индексов в порядке возрастания +