Принципы решения неструктурированных проблем. Метод взвешивания экспертных оценок
Автор: TelvyteD01 • Март 7, 2023 • Лабораторная работа • 2,749 Слов (11 Страниц) • 175 Просмотры
Министерство образования Республики Беларусь
Учреждение образования
БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ
Кафедра экономической информатики
Системный анализ и проектирование информационных систем
ЛАБОРАТОРНАЯ РАБОТА №3
Принципы решения неструктурированных проблем. Метод взвешивания экспертных оценок
Вариант 11
Выполнил: | Кудырко В.А. Студентка группы 172301 | |
Проверил: | Пономарёва Е.И. |
Минск 2022
Лабораторная работа №3
Принципы решения неструктурированных проблем. Метод взвешивания экспертных оценок
Задача 1
Zi / Эj | Z1 | Z2 | Z3 |
Э1 | 0,6 | 0,18 | 0,19 |
Э2 | 0,2 | 0,7 | 0,12 |
Э1 – губернатор города, стаж работы 3 года.
Э2 – директор Русского музея, стаж работы на должности 11 лет.
Оценки компетентности R1 = 6, R2 = 9.
= 6/(6+9)=0,4[pic 1]
= 9/(6+9)=0,6[pic 2]
=0.4*0.6+0.2*0.6=0.36[pic 3]
=0.4*0.18+0.7*0.6=0.492[pic 4]
=0.4*0.19+0.12*0.6=0.148[pic 5]
Предпочтение целей: ,, [pic 6][pic 7][pic 8]
Схема алгоритма:
[pic 9]
Код:
#include <iostream>
#include <string>
#include <fstream>
#include <Windows.h>
#include <iomanip>
#include <algorithm>
using namespace std;
class Weight {
public:
double w;
int z;
};
bool comp(Weight el1, Weight el2) {
return el1.w > el2.w;
}
void check_the_input_double(double& n, string str) {
while (true) {
int k = 0;
string N;
getline(cin, N);
for (auto i = 0; i < N.size(); i++) //проверка на ввод вещественного числа
{
if ((N[i] >= '0' && N[i] <= '9') || N[i] == '.') {}
else
{
k++;
cout << "Ошибка ввода!!\n";
break;
}
}
if (N == "") {
cout << "Ничего не введено!!!\n";
continue;
}
if (k == 1) continue;
n = stod(N);
if (str == "rating" && (n < 0 || n>10)) {
cout << "Ошибка ввода!!\n";
continue;
}
if (str == "mark") {
if (n > 10 || n < 0) {
cout << "Ошибка ввода!!\n";
continue;
...