{"id":20559167,"url":"https://github.com/croc-code/school2024-test-task5","last_synced_at":"2025-03-06T07:33:25.516Z","repository":{"id":238833039,"uuid":"797701155","full_name":"croc-code/school2024-test-task5","owner":"croc-code","description":"Тестовое задание для отбора на Летнюю ИТ-школу КРОК по разработке","archived":false,"fork":false,"pushed_at":"2024-05-13T19:43:03.000Z","size":86,"stargazers_count":0,"open_issues_count":17,"forks_count":19,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-01-16T18:55:12.647Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/croc-code.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-08T10:54:42.000Z","updated_at":"2024-05-08T11:12:13.000Z","dependencies_parsed_at":"2025-01-16T18:54:59.961Z","dependency_job_id":"147da85f-4998-4b71-83fb-a027c6118add","html_url":"https://github.com/croc-code/school2024-test-task5","commit_stats":null,"previous_names":["croc-code/school2024-test-task5"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/croc-code%2Fschool2024-test-task5","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/croc-code%2Fschool2024-test-task5/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/croc-code%2Fschool2024-test-task5/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/croc-code%2Fschool2024-test-task5/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/croc-code","download_url":"https://codeload.github.com/croc-code/school2024-test-task5/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242165409,"owners_count":20082468,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-16T03:49:14.139Z","updated_at":"2025-03-06T07:33:25.490Z","avatar_url":"https://github.com/croc-code.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Тестовое задание для отбора на Летнюю ИТ-школу КРОК по разработке\n\n## Условие задания\nВ теории управления проектами существует такое понятие как стейкхолдер или, иначе говоря, заинтересованная сторона (ЗС). Это лицо, которое может иметь влияние на ход проекта и с чьим мнением нужно считаться по совершенно разным причинам.\n\nТем не менее, очевидно, что каждый из стейкхолдеров по-своему важен для проекта, что является следствием разного уровня показателей интереса и влияния, потому реакция на обратную связь от каждого из стейкхолдеров определяется в соответствии с матрицей заинтересованных лиц, которая позволяет наглядно определить наиболее и наименее весомых из них.\n\nЧаще всего такая матрица представляет собой график с осями X и Y, где по оси X располагается величина влияния, а по оси Y - величина интереса, и так как значения величин - сугубо неотрицательные числа, работа идет в правом верхнем квадранте. В свою очередь такой срез оси координат делится на 4 части в центрах осей.\n\nРассмотрим на примере. Допустим, у нас есть 5 ЗС. Первым делом построим ось координат XY и нанесем деления по обеим осям от 0 до 5. Далее поделим пополам каждую из осей (это будут точки (0; 2.5) и (2.5; 0)) и построим пунктирную линию для разделения матрицы на 4 квадранта. Таким образом, мы получим будущую матрицу стейкхолдеров, на которой сможем визуально расположить их по степени влияния и интереса.\n![Матрица стейкхолдеров](https://github.com/croc-code/school2024-test-task5/blob/master/stakeholders_matrix.png)\n\nДля того, чтобы определить положение стейкхолдера, используется метод попарного сравнения, схожий с рейтинговыми таблицами в спорте. Строятся матрицы (для интереса и влияния отдельно), в строках и столбцах которых располагаются стейкхолдеры в одинаковом порядке следования, а на пересечении строк и столбцов выставляются значения 0, 0.5 и 1 по следующим правилам:\n- 1, если стейкхолдер в текущей строке имеет большее влияние/интерес, чем стейкхолдер в текущем столбце;\n- 0.5, если стейкхолдеры в текущих строке и столбце имеют одинаковое влияние/интерес;\n- 0, если стейкхолдер в текущей строке имеет меньшее влияние/интерес, чем стейкхолдер в текущем столбце.\n\nПо диагоналям значения не выставляются, так как сравнивать стейкхолдера с самим собой некорректно.\n\nДалее полученные величины в строках складываются и получается итоговый ранг заинтересованной стороны. То же самое, но наглядно:\n![alt text](https://github.com/croc-code/school2024-test-task5/blob/master/pair_compair.png)\n\nПостроив такие матрицы для интереса и влияния, мы получаем “координаты” каждого из стейкхолдеров в матрице и можем расположить в соответствующих квадратах.\nСамыми важными для проекта ЗС будут те, что располагаются в правом верхнем квадранте, а те, чье мнение не обязательно учитывать здесь и сейчас, - в левом нижнем.\n\nВам необходимо реализовать программу, которая по полученным данным матриц влияния и интереса будет определять самых важных стейкхолдеров. В качестве входных данных используются два текстовых файла:\n- interest.txt (матрица попарного сравнения стейкхолдеров по уровню интереса)\n- influence.txt (матрица попарного сравнения стейкхолдеров по уровню влияния)\n\nКаждый из файлов имеет следующий формат:\n- в первой строке файла располагаются наименования заинтересованных сторон, разделенные символов “|”, соответствующие наименованию строк и столбцов матрицы в одинаковом порядке следования;\n- последующие строки представляют собой матрицу попарного сравнения со значениями 0, 0.5, 1 в соответствии с правилами формирования;\n- на главной диагонали (сравнение ЗС самой с собой) вместо значения идет символ “_”.\n\nПример содержимого одного из входных файлов:\n```\nStakeholder 1 | Stakeholder 2 | Stakeholder 3 | Stakeholder 4 | Stakeholder 5\n_ 0 1 0 0\n1 _ 0.5 1 1\n0 0.5 _ 0 0.5\n1 0 1 _ 1\n1 0 0.5 0 _\n```\n\nВ результате работы программа должна сформировать файл (result.txt), в котором будут располагаться самые важные стейкхолдеры (в произвольном порядке). Пример содержимого выходного файла:\n```\nStakeholder 1\nStakeholder 3\n```\n\n## Автор решения\n\n## Описание реализации\n\n## Инструкция по сборке и запуску решения\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcroc-code%2Fschool2024-test-task5","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcroc-code%2Fschool2024-test-task5","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcroc-code%2Fschool2024-test-task5/lists"}