Методические указания и примеры выполнения задания №6 " Моделирование процессов принятия решений"

Вид материалаМетодические указания

Содержание


Создание коллажа
ТИП: Однокритериальная, детерминированная, статическая.Текст исходной программы ( реализовано на С++ )
Подобный материал:
1   2   3   4   5   6   7   8   9   10

Создание коллажа


 


ЦЕЛЬ: Составить модель человека-оператора, принимающего решения в какой-либо известной ситуации. Необходимо составить коллаж, включающий в себя 4 графических файла, лежащих на диске, по временам года (зима, весна, лето, осень).

ОГРАНИЧЕНИЯ: Нужно использовать графические файлы с заданной тематикой - природа, машины, город.

АЛЬТЕРНАТИВЫ: Коллаж может быть составлен по выбору не только из файлов одной тематики, но и быть смешанным.

ТИП: Однокритериальная, детерминированная, статическая.


Текст исходной программы ( реализовано на С++ ) :

#include

#include

#include

#include

#include

#include

int a[3][5],d[5][3],gg[10][2];

int i,j,k,l,m,q,r,QQ;

int* wer;

double SUM,R;

typedef struct

{

int ty,n; //ty-время года n-направление

}data;

data b[3][5];

char c;

void main()

{

randomize();clrscr();

cout<<"1-ая цифра массива - время года, 2-ая - направление. \n ";

cout<<"Имеем в наличии следующие данные: \n";

for(i=0;i<3;i++)

{

for(j=0;j<5;j++) {a[i][j]=0;d[j][i]=0;

b[i][j].ty=random(4)+1;b[i][j].n=random(3)+1;

cout<
cout<<"\n";

}

// do

for (QQ=0;QQ<5;QQ++)

{

printf("Введите направление по которому будет осуществляться поиск: \n");

printf("1-природа, 2-машины, 3-город \n");

// scanf("%d",k);

switch (c=getch())

{

case '1': k=1;break;

case '2': k=2;break;

case '3': k=3;break;

}

l=0;m=0;

for(i=0;i<4;i++)

{

for(q=0;q<3;q++)

{

for(j=0;j<5;j++)

{

if (b[l][m].ty==(i+1))

{

if (b[l][m].n==k)

{

if (a[l][m]<6) {a[l][m]=10;d[i][0]=m+1;d[i][1]=l+1;j=5;q=3;}

else {a[l][m]++;d[i][0]=m+1;d[i][1]=l+1;j=5;q=3;}

}

else {if(a[l][m]<6){a[l][m]=a[l][m]+2;m++;}

else m++;}

}

else {if(a[l][m]<6){a[l][m]=a[l][m]+2;m++;}

else m++;}

}

m=0;l++;

}

l=0;m=0;

if (a[l][m]>10) a[l][m]=10;

/*

for(q=0;q<3;q++) {

for(j=0;j<5;j++) cout<
cout<<"\n";

}

cout<<"\n";getch();

}

printf("Даны координаты найденных элементов по порядку (в столбце) 1-зима,2-осень...: \n");

printf("(Если имеем координаты 0;0, то элемент отсутствует!) \n");

for(i=0;i<3;i++) for(j=0;j<5;j++) if (a[i][j]>10) a[i][j]=10;

for(q=0;q<3;q++) for(j=0;j<5;j++) {a[q][j]--;if (a[q][j]<0) a[i][j]=0;}

for (i=0;i<4;i++) {

for(j=0;j<2;j++) cout<
cout<<"\n";

}

c=getch();

clrscr();

for(i=0;i<3;i++) {

for(j=0;j<5;j++)

{

if (a[i][j]>10) a[i][j]=10;

if (a[i][j]<0) a[i][j]=0;

gg[QQ][0]=gg[QQ][0]+a[i][j];

cout<
}

cout<<"\n";

}

for(i=0;i<3;i++)

{

for(j=0;j<5;j++) cout<
cout<<"\n";

}

k=0;SUM=0;

/*while (SUM<=1000)

{

R=(double)random(100)/100;

SUM=SUM-(1/57)*(log(1-R));

k++;

}

k--;*/

printf("Введите время, через которое вы обратитесь вновь:(1..5)\n");

scanf("%d",wer);

k=*wer;

gg[QQ][1]=k;

for (i=0;i
{

for(q=0;q<3;q++) for(j=0;j<5;j++) {a[q][j]--;if (a[q][j]<0) a[i][j]=0;}

}

for(i=0;i<3;i++) {

for(j=0;j<5;j++)

{

if (a[i][j]>10) a[i][j]=10;

if (a[i][j]<0) a[i][j]=0;

cout<
}

cout<<"\n";

}

}

clrscr();

cout<<" Знание о системе: ";

for(i=0;i<5;i++) cout<
cout<<"\n Время: ";

for(i=0;i<5;i++) cout<
while(c==0x27);

}


После выполнения работы программы получим следующие данные:

1-ая цифра массива - время года, 2-ая - направление.

Имеем в наличии следующие данные:

4,1; 1,2; 1,1; 1,2; 3,3;

4,3; 1,2; 4,1; 4,1; 2,2;

4,2; 2,2; 4,2; 2,1; 2,3;

Введите направление по которому будет осуществляться поиск:

1-природа, 2-машины, 3-город

Поиск осуществляется по 1:

Даны координаты найденых элементов по порядку (в столбце) 1-зима,2-осень...:

(Если имеем координаты 0;0, то элемент отсутствует!)

Зима 3 1

Весна 4 3

Лето 0 0

Осень 1 1

( Поиск элементов начинается с первого, но если я нахожу файл , то знания об нем равны 9 . В следующем поиске нового элемента с заданным направлением и с новым временем года я уже к нему не обращаюсь.):

Получаем следующие знания об элементах:

6 5 9 3 3

3 3 3 3 3

3 3 3 9 1

4,1; 1,2; 1,1; 1,2; 3,3;

4,3; 1,2; 4,1; 4,1; 2,2;

4,2; 2,2; 4,2; 2,1; 2,3;

Введите время, через которое вы обратитесь вновь:(1..5)

1

Наши знания уменьшаются на 1.

5 4 8 2 2

2 2 2 2 2

2 2 2 8 0

Введите направление по которому будет осуществляться поиск:

1-природа, 2-машины, 3-город

Теперь будем искать с направлением 2, получим следующие результаты:

Зима 2 1

Весна 5 2

Лето 0 0

Осень 1 3

Знания (новые):

6 9 7 5 5

5 5 5 5 9

9 3 3 7 1

Введите время, через которое вы обратитесь вновь:(1..5)

6 9 7 5 5

5 5 5 5 9

9 3 3 7 1

4,1; 1,2; 1,1; 1,2; 3,3;

4,3; 1,2; 4,1; 4,1; 2,2;

4,2; 2,2; 4,2; 2,1; 2,3;

Введите время, через которое вы обратитесь вновь:(1..5)

2

Знания (уменьшились на 2):

4 7 5 3 3

3 3 3 3 0

7 1 1 5 0

Введите направление по которому будет осуществляться поиск:

1-природа, 2-машины, 3-город

Даны координаты найденых элементов по порядку (в столбце) 1-зима,2-осень...:

(Если имеем координаты 0;0, то элемент отсутствует!)

Зима 2 1

Весна 5 3

Лето 5 1

Осень 1 2

Мы нашли все нужные элементы!

Знание о системе : 60 84 87

Время: 1 2 1

Получим следующий график: