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


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

“Моделирование процессов принятия решений”

по дисциплине Моделирование


НАУЧНЫЙ РУКОВОДИТЕЛЬ КУЦОКОНЬ Н.С.
Примеры принятия решения


В данном пособии представлены примеры выполнения шестой лабораторной работы по теме «Моделирование процессов принятия решений». В ходе лабораторной работы нужно создать модель оператора который принимает решения в ходе решения какой-то задачи. В ходе выполнения работы надо учитывать коэффициент забывания информации оператором, коэффициент приобретения знания. Ниже приведены несколько примеров выполнения лабораторной работы № 6.

• Распознавание символов автор Краюшкин В.В. ЭВМд-31

• Создание коллажа автор Лебедева О.Ю. ЭВМд-31

• Проверка орфографии автор Гишкаева Л.А. ЭВМд-31

• Редактирование текста автор Шибанова А.В. ЭВМд-31

• Управление расходом электроэнергии автор Зиганшина Ю.Р. ЭВМд-31

• Игра автор Павлов А.В. ЭВМд-31

• Модель принятия решения при приёме на работу оператора ЭВМ автор Акимов С.В. ЭВМд-31

• Модель принятия решения преферансистом на этапе торговли автор Аникин А.В. ЭВМд-32

• Оптимизация комплектации ПК для конкретного пользователя автор Антонов С.В. ЭВМд-31

• Модель выбора спринтера в эстафету автор Батанова В.А. ЭВМд-32

• Моделирование процесса составления расписания уроков автор Власов И.В. ЭВМд-32

• Модель задачи коммивояжёра автор Долгов А.А. ЭВМд-31

• Выбор экономичного пути на заданном рельефе автор Гридасова Ю.Ю. ЭВМд-31

• Оптимизация размещения данных на жёстком диске автор Ильдюков Д.М. ЭВМд-32

• Модель принятия решения при покупке компьютера в г. Ульяновске автор Ильичёва Е.Н. ЭВМд-32

• Моделирование задачи автодилера автор Лебедев А.С. ЭВМд-31

• Выбор экономичного пути на заданном рельефе автор Миронов С.В. ЭВМд-31

• Модель задачи перевозки грузов автор Насибулов Ш.М. ЭВМд-32

• Модель задачи коммивояжёра автор Парушева О.М. ЭВМд-31

• Модель выбора оптимального маршрута движения автор Стариков М.Ю. ЭВМд-31

• Оптимизация трассировки городского водопровода автор Тормозов Е.В. ЭВМд-31

• Модель формирования заданий на проектирование систем «человек – оператор – человек» автор Шембергер А.В. ЭВМд-32

• Модель формирования заданий на коммерческое программирование автор Юкин А.Н. ЭВМд-32

^ Распознавание символов

ЦЕЛЬ: Распознать произвольно введенную букву (программа упрощена, она распознает только две буквы Т и Г).

ОГРАНИЧЕНИЯ : В матрицу предназначенную для ввода распознаваемого символа может быть введен только один символ.

АЛЬТЕРНАТИВЫ: Можно считать, что в матрицу можно ввести любое сочетание элементов(закрашенных прямоугольников) которые могут образовать любой символ, или хаотическую комбинацию.

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







 Пример ввода буквы Т







Пример ввода буквы Г


Программа работает следующим образом: Вы задаете координаты прямоугольников матрицы , после ввода прямоугольники закрашиваются в красный цвет (после соответствующего приглашения вводите координаты, если Вы ошиблись, то введите еще раз ошибочные координаты и данный прямоугольник закрасится в первоначальный цвет)которые нужно закрасить, эти закрашенные прямоугольники образуют какой-либо символ программа пытается распознать его, если это буква Т или Г (для сообщения программе что Вы окончили ввод введите несуществующие координаты например (-1,-6), то программа может успешно распознать этот символ и сообщить Вам об этом.

 

Исходный текст программы (реализовано на Turbo Pascal):

uses crt;

var;

x,y,px,py,io,ii:integer;

max,min:byte;

mx,mn,max_lc,min_lc,max_rc,min_rc:byte;

sr_lc,sr_rc:byte;

mas:array[1..5,1..7]of byte;

o:array[1..20]of integer;

p:array[1..10]of byte;

k:array[1..10]of byte;

b:array[1..10]of byte;

label jf,jt;

{==================================================}

BEGIN

clrscr;

for x:=1 to 5 do begin

for y:=1 to 7 do begin

mas[x,y]:=0;

end;end;

for x:=1 to 10 do begin

o[x]:=0;end;

min:=7;max:=1;

writeln(' 12345 -> x');

textcolor(2);

for y:=1 to 7 do begin

write(y);

for x:=1 to 5 do begin

write('n ');

end;

writeln;

end;

gotoxy(1,2);write('1');

gotoxy(1,3);write('2');

gotoxy(1,4);write('3');

gotoxy(1,5);write('4');

gotoxy(1,6);write('5');

gotoxy(1,7);write('6');

gotoxy(1,8);write('7');

x:=10;

while(x>0) do begin

gotoxy(1,10);write('x: ');read(x);

gotoxy(1,11);write('y: ');read(y);

if mas[x,y]=0 then mas[x,y]:=1 else mas[x,y]:=0;

gotoxy(1,2);

for py:=1 to 7 do begin

write(py);

for px:=1 to 5 do begin

if mas[px,py]=1 then textcolor(4);

write('n ');textcolor(2);

end;writeln;end;

end;

min:=7;max:=0;

for io:=1 to 7 do begin{O}

if (mas[2,io]=1) then o[1]:=o[1]+1;

if (mas[3,io]=1) then o[2]:=o[2]+1;

if (mas[4,io]=1) then o[3]:=o[3]+1;

if (mas[1,io]=1)then begin

if min>io then min:=io;

if max
if (mas[2,io]=1)then begin

if min>io then min:=io;

if max
if (mas[3,io]=1)then begin

if min>io then min:=io;

if max
if (mas[4,io]=1)then begin

if min>io then min:=io;

if max
end;

sr_rc:=0;sr_lc:=5;

for io:=1 to 5 do begin

if mas[io,round((min+max)/2)]=1 then begin

if sr_rc
if sr_lc>io then sr_lc:=io;end;

end;

if (mas[sr_lc,round((min+max)/2)]=1) then o[4]:=o[4]+1;

if (mas[sr_rc,round((min+max)/2)]=1) then o[4]:=o[4]+1;

o[17]:=0;o[16]:=0;

min_rc:=0;min_lc:=5;

max_rc:=0;max_lc:=5;

for io:=1 to 5 do begin{T}

if mas[io,max]=1 then begin o[17]:=o[17]+1;

if max_rc
if max_lc>io then max_lc:=io;end;

if mas[io,min]=1 then begin o[16]:=o[16]+1;

if min_rc
if min_lc>io then min_lc:=io;end;

end;

if (min_lc<>min_rc)and(max_lc=max_rc)and(min_rc<>max_rc) then o[15]:=1;

if (min_lc<>min_rc)and(max_lc=max_rc)and(min_lc=max_lc)then o[15]:=2;

if (sr_lc<=max_lc)and(sr_rc>=max_rc) then o[14]:=1;

{-------------------------------------------------}

gotoxy(1,15);write('БУКВА: ');

if (o[1]=2)or(o[2]=2)or(o[3]=2) then o[20]:=o[20]+1;

if (o[4]=2)or(o[5]=2)or(o[6]=2)or(o[7]=2)or(o[8]=2) then o[20]:=o[20]+1;

if (o[15]=1)and(o[16]<>o[17])then begin writeln('T');

goto jt;end;

if (o[15]=2)and(o[16]<>o[17])then begin writeln('Г');

goto jt;end;

jf:

writeln('НЕОПОЗННАЯ БУКВА');

jt:

readkey;

END.


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


ЦЕЛЬ: Составить модель человека-оператора, принимающего решения в какой-либо известной ситуации. Необходимо составить коллаж, включающий в себя 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

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






^ Проверка орфографии
 


ЦЕЛЬ: Исправление ошибок в тексте.

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

АЛЬТЕРНАТИВЫ: Имеется множество различных сочетаний слов.

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


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

#include

#include

void main() {

int i,j,k,len;

char Name [100]={""};

char Name1 [100]={""};

char Name2[100]={""};

gets(Name);

printf("%s\n", Name);

j=0;

i=0;

while (Name[i]!=' ');

{

Name1[j]=Name[i];

i++;

j++;

}

while (Name[i]==' ')

{

i++;

}

k=0;

while(Name[i]!=' ')

{

Name2[k]=Name[i];

i++;

k++;

}

len=strlen(Name1);

if(len<3)

{

if (Name2[k-1]=='a') || (Name2[k-1]=='o'))

Name2[k-1]=' ';

}

else

{

if (name1[j-1]=='a')

{

if (Name2[k-1]=='a') || (Name2[k-1]=='o')) Name2[k-1]=='a';

else Name2[k]='a';

}

if (Name1[j-1]=='o')

{

if ((Name2[k-1]=='a') || (Name2[k-1]=='o')) Name2[k-1]=='o';

else Name2[k]='o';

}

}

printf("%s\n", Name1);

printf("%s\n", Name2);

}

 


^ Редактирование текста
 


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

ОГРАНИЧЕНИЯ : В предложении первое слово должно быть обязательно подлежащим, в качестве качестве которого выступает местоимение (типа - он, она, оно) , а второе -сказуемым

АЛЬТЕРНАТИВЫ: Имеется множество различных существительных в именительном падеже и единственном числе мужского, женского и среднего родов, а из них может быть выбрано любое.

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


 

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

#include

#include

#include

#include

#include

char Name1[100]={""};

void main() {

int i,j,k,len,l;

char Name[100]={""};

char Name1[100]={""};

char Name2[100]={""};

char *he[]={"Петя", "Васька", "Димка", "Кот","Пес"};

char *she[]={"Галя", " Анюта", " Собачка", " Киса", " Мышь"};

char *it[]={"Дерево", "Солнце", "Окно", "Чувство", "Эхо"};

clrscr();

gets(Name);

j=0;

i=0;

while(Name[i]!=' ')

{

Name1[j]=Name[i];

i++;

j++;

}

while(Name==' ')

{

i++;

}

k=0;

while(Name[i]!='\x0');

{

Name2[k]=Name[i];

i++;

k++;

}

randomize();

len=strlen(Name1);

if(len<3)

{

l=random(5);

strcpy(Name1,he[l]);

}

else{if(Name1[j-1]=='а')

{

l=random(5);

strcpy(Name1,she[l]);

}

if (Name1[j-1]=='о')

{

l=random(5);

strcpy(Name1,it[l]);

}

cout<
getch();

}


Листинги :

1) Он едет - Петя едет

2) Он убежит - Димка убежит

3) Она упала - Собачка упала

4) Она будет танцевать - Галя будет танцевать

5) Она поступит в институт - Киса поступит в институт (не верно)

6) Оно ярко светило - Солнце ярко светило

7) Оно разбилось - Окно разбилось

8) Оно громко раздавалось - Окно громко раздовалось (не верно)

9) Оно росло - Чувство росло

10) Она прекрасно себя чувствует - Галя прекрасно себя чувствует

11) Он очень красив - Димка очень красив

12) Он играет - Пес играет

13) Оно цвело - Дерево цвело

14) Она ушла в лес - Собачка ушла в лес

15) Она очень довольна - Мышь очень довольна (не верно)

 

Вывод: Таким образом, из 15-ти случаев неправильный результат был получен только в 3-х, что говорит о неплохих результатах.

Решение и творческое и формальное.


^ Управление расходом электроэнергии
 

 

ЦЕЛЬ: Обеспечение хорошей освещенности рабочего места на предприятии с трехсменкой

ОГРАНИЧЕНИЯ: Экономические

АЛЬТЕРНАТИВЫ:

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


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

#include

#include

#include

#include

void main(){

int i,j,k,len;

struct date d;

struct time t;

char *e[]={"Включить свет","Приглушить свет","Выключить свет"};

clrscr();

getdate(&d);

printf("Текущий месяц: %d\n", d.da_mon);

gettime(&t);

printf("Текущее время: %2d",t.ti_hour);

printf(" з.\n");

if ((d.da_mon==12) || (d.da_mon<3))

{ if( (t.ti_hour>8) && (t.ti_hour<16))

{ cout<
if ( (t.ti_hour>6) && (t.ti_hour<9))

cout<
if ( ((t.ti_hour>16) && (t.ti_hour<24)) ||

((t.ti_hour>=0) && (t.ti_hour<7)))

cout<
}

if (((d.da_mon>2) && (d.da_mon<6)) ||

((d.da_mon>8) && (d.da_mon<12)))

{ if( (t.ti_hour>6) && (t.ti_hour<=18))

{ cout<
if ( (t.ti_hour>5) && (t.ti_hour<7))

cout<
if ( ((t.ti_hour>19) && (t.ti_hour<24)) ||

((t.ti_hour>=0) && (t.ti_hour<=5)))

cout<
}

if ((d.da_mon>5) && (d.da_mon<9))

{ if( (t.ti_hour>6) && (t.ti_hour<=19))

{ cout<
if ( (t.ti_hour>3) && (t.ti_hour<7))

cout<
if ( ((t.ti_hour>19) && (t.ti_hour<24)) ||

((t.ti_hour>=0) && (t.ti_hour<4)))

cout<
}

getch();

}

 


Игра

 


^ ЦЕЛЬ: Выйграть игру (используя и приобретая навыки управления обьектами в игре).

ОГРАНИЧЕНИЯ : Правила игры.

АЛЬТЕРНАТИВЫ: Имеется 4 способа решения задач (для некоторых задач эти способы могут комбинироваться).

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


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

#include

#include

#include

#include

#include

#include

int a[4];

int i,j,k,t,m,q,r,M1,M2,M3,M4,Flag,Timer,z;

typedef struct

{

int metod[5];

}data;

data b[4];

void main()

{

randomize();clrscr();Timer=0;

M1=M2=M3=M4=Flag=0;

printf("Input K: ");scanf("%d",&k);//коэффицент умения

printf("Input Q: ");scanf("%d",&q);//предел умения

do

{printf("Input time: ");scanf("%d",&t);//время игры

for(i=1;i<(t+1);i++)

{

switch (Flag)

{

case 0:if(b[1].metod[1]==1){M1=M1+k;Flag=1;i++;Timer++;}

else{

r=random(100);if(r<50)M2=M2+k;

r=random(100)*M1;

if(r>50){M1=M1+k;b[1].metod[1]=1;Flag=1;i++;Timer++;}

else{M1=M1+k;}}

break;

case 1:if(b[2].metod[2]==1){M1=M1+k;M2=M2+k;Flag=2;i++;Timer++;}

if(M2==0){M1=M1+k;b[2].metod[1]=0;}

else{r=random(100)*M2*M1;

if(r>95){M1=M1+k;M2=M2+k;b[2].metod[2]=1;Flag=2;i++;Timer++;}

else{M1=M1+k;M2=M2+k;}

}

break;

case 2:if(b[3].metod[1]==1)

{ r=random(100);

{if(r<70)

{M1=M1+k;M2=M2+k;M3=M3+k;M4=M4+k;Flag=3;i++;Timer++;}

else{M1=M1+k;M2=M2+k;M3=M3+k;M4=M4+k;}}

}

else

{

if(b[3].metod[2]==1)

{

r=random(100);

{if(r<25){M1=M1+k;M2=M2+k;M3=M3+k;Flag=3;i++;Timer++;}

else{M1=M1+k;M2=M2+k;M3=M3+k;}}

}

else

{

if(b[3].metod[3]==1)

{

r=random(100);

{if(r<5){M1=M1+k;M2=M2+k;Flag=3;i++;Timer++;}

else{M1=M1+k;M2=M2+k;}}

}

else

{

b[3].metod[1]=0;b[3].metod[1]=0;b[3].metod[1]=0;

a[1]=M1*30+M2*30+M3*30+M4*10;

a[2]=M1*30+M2*40+M3*30;

a[3]=M1*50+M2*50;

a[4]=0;

r=random(a[1]+a[2]+a[3]+1);

if (r
else

{

if (r
else {i--;Timer--;b[3].metod[3]=1;}

}

}

}

}

break;

case 3:Timer++;break;

}

if(Timer>12){Timer=Timer-12;k++;M1--;M2--;M3--;M4--;}

if(M1<0)M1=0;if(M2<0)M2=0;if(M3<0)M3=0;if(M4<0)M4=0;

if(k>q)k=q;

}

printf("Input rest: ");scanf("%d",&t);//время отдыха

for (i=0;i
{

if(i>0)z=4;else z=5;if(i>2)z=3;if(i>5)z=2;if(i>10)z=1;if(i>25)z=0;

Timer++;M1=M1-z;M2=M2-z;M3=M3-z;M4=M4-z;

if(M1<0)M1=0;if(M2<0)M2=0;if(M3<0)M3=0;if(M4<0)M4=0;

if(Timer>12){Timer=Timer-12;k++;}

if(k>q)k=q;

}

printf("Result: ");

cout<<"\nK: "<
printf("Repeat (1-Yes;0-No) ?");scanf("%d",&t);

}

while(t!=0);

}


#include

#include

#include

#include

#include

#include

int a[4];

int i,j,k,t,m,q,r,M1,M2,M3,M4,Flag,Timer,z;

typedef struct

{

int metod[5];

}data;


data b[4];

void main()

{

randomize();clrscr();Timer=0;

M1=M2=M3=M4=Flag=0;

printf("Input K: ");scanf("%d",&k);//коэффицент умения

printf("Input Q: ");scanf("%d",&q);//предел умения

do

{printf("Input time: ");scanf("%d",&t);//время игры

for(i=1;i<(t+1);i++)

{

switch (Flag)

{

case 0:if(b[1].metod[1]==1){M1=M1+k;Flag=1;i++;Timer++;}

else{

r=random(100);if(r<50)M2=M2+k;

r=random(100)*M1;

if(r>50){M1=M1+k;b[1].metod[1]=1;Flag=1;i++;Timer++;}

else{M1=M1+k;}}

break;

case 1:if(b[2].metod[2]==1){M1=M1+k;M2=M2+k;Flag=2;i++;Timer++;}

if(M2==0){M1=M1+k;b[2].metod[1]=0;}

else{r=random(100)*M2*M1;

if(r>95){M1=M1+k;M2=M2+k;b[2].metod[2]=1;Flag=2;i++;Timer++;}

else{M1=M1+k;M2=M2+k;}

}

break;

case 2:if(b[3].metod[1]==1)

{ r=random(100);

{if(r<70)

{M1=M1+k;M2=M2+k;M3=M3+k;M4=M4+k;Flag=3;i++;Timer++;}

else{M1=M1+k;M2=M2+k;M3=M3+k;M4=M4+k;}}

}

else

{

if(b[3].metod[2]==1)

{

r=random(100);

{if(r<25){M1=M1+k;M2=M2+k;M3=M3+k;Flag=3;i++;Timer++;}

else{M1=M1+k;M2=M2+k;M3=M3+k;}}

}

else

{

if(b[3].metod[3]==1)

{

r=random(100);

{if(r<5){M1=M1+k;M2=M2+k;Flag=3;i++;Timer++;}

else{M1=M1+k;M2=M2+k;}}

}

else

{

b[3].metod[1]=0;b[3].metod[1]=0;b[3].metod[1]=0;

a[1]=M1*30+M2*30+M3*30+M4*10;

a[2]=M1*30+M2*40+M3*30;

a[3]=M1*50+M2*50;

a[4]=0;

r=random(a[1]+a[2]+a[3]+1);

if (r
else

{

if (r
else {i--;Timer--;b[3].metod[3]=1;}

}

}

}

}

break;

case 3:Timer++;break;

}

if(Timer>12){Timer=Timer-12;k++;M1--;M2--;M3--;M4--;}

if(M1<0)M1=0;if(M2<0)M2=0;if(M3<0)M3=0;if(M4<0)M4=0;

if(k>q)k=q;

}

printf("Input rest: ");scanf("%d",&t);//время отдыха

for (i=0;i
{

if(i>0)z=4;else z=5;if(i>2)z=3;if(i>5)z=2;if(i>10)z=1;if(i>25)z=0;

Timer++;M1=M1-z;M2=M2-z;M3=M3-z;M4=M4-z;

if(M1<0)M1=0;if(M2<0)M2=0;if(M3<0)M3=0;if(M4<0)M4=0;

if(Timer>12){Timer=Timer-12;k++;}

if(k>q)k=q;

}

printf("Result: ");

cout<<"\nK: "<
printf("Repeat (1-Yes;0-No) ?");scanf("%d",&t);

}

while(t!=0);

}


Модель принятия решения при приёме на работу оператора ЭВМ.


ЦЕЛЬ: менеджеру фирмы необходимо принять на работу сотрудника – оператора ЭВМ

ОГРАНИЧЕНИЯ : знание кандидатами следующих дисциплин:

Устройство ЭВМ

Компьютерная графика

Издательское дело

Языки программирования.

АЛЬТЕРНАТИВЫ: требующися сотрудник может иметь диплом об окончании факультета ЭВМ, факультета Информационных Систем и Технологий, факультета Издательского Дела и факультета Компьютерной графики.

^ ТИП: однокритериальная, в условиях неопределённости, статическая


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


//--------------------------------------------------------------------------

#include

#include

#include

#include

#include

#include

//--------------------------------------------------------------------------

int Ready=80;

int MinAge=18;

int MaxAge=45;

int MinInterrupt=1;

int MaxInterrupt=31;

int Knowlege;

int Kn;

int Number;

int Num;

int UnReady;

int P[4];

int EqualRisk[4];

int Result[100][2];

int PRes[4]={0,0,0,0};

int PDir[4]={0,0,0,0};

double M[100];

double mx,dx,sx,kg,pp;

double Win[4][4];

double R[4][4];

double K[4][4]={{0.95,0.11,0.13,0.90},{0.09,0.15,0.12,0.10},

{0.10,0.14,0.95,0.10},{0.10,0.95,0.23,0.07}};

//--------------------------------------------------------------------------

void About()

{

clrscr();

cout<<" "<
cout<<" Лабораторная работа №6 "<
cout<<" по моделированию "<
cout<<" Тема : "<
cout<<" Моделирование процессов принятия решений "<
cout<<" "<
cout<<" Выполнил: студент гр.ЭВМд-31 "<
cout<<" Акимов С.В. "<
cout<<"Цель : принять на работу оператора ЭВМ "<
cout<<"Ограничения :-наличие специального образования "<
cout<<" -направление деятельности "<
cout<<"Альтернативы: "<
cout<<" - диплом ЭВМ "<
cout<<" - диплом Информационные Системы в Экономике "<
cout<<" - диплом Издательское Дело "<
cout<<" - диплом Компьютерная Графика "<
cout<<" Тип "<
cout<<" - однокритериальная "<
cout<<" - в условиях неопределенности "<
cout<<" - статическая "<
cout<<" "<
cout<<" Для продолжения - 'Enter' "<
getch();

}

//--------------------------------------------------------------------------

void ShowWinMatrice()

{

gotoxy(1,1); cout<<" Матрица выигрышей :";

gotoxy(2,2); cout<<" Устр-во Графика Издательское Языки ";

gotoxy(2,3); cout<<" ЭВМ дело С++,Pascal ";

gotoxy(1,4); cout<<"ЭВМ";

gotoxy(1,5); cout<<"ИСЭ";

gotoxy(1,6); cout<<"ИД ";

gotoxy(1,7); cout<<"КГ ";


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

for (int j=0;j<4;j++)

{

gotoxy(5+12*j,4+i);

cout<
}

cout<
}

//--------------------------------------------------------------------------

void ShowRiskMatrice()

{

gotoxy(2,10); cout<<" Матрица рисков :";

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

for (int j=0;j<4;j++)

{

gotoxy(5+12*j,12+i);

cout<
}

cout<
}

//--------------------------------------------------------------------------

int ReadKey()

{

int key;

gotoxy(1,23);

cout<<"Продолжение-'Enter',выход-'Esc'";

key=getch();

return key;

}

//--------------------------------------------------------------------------

void GenerateP()

{

int points[3];

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

points[i]=random(100)+1;

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

for (int j=0;j<2;j++)

if (points[j+1]

{

int temp=points[j+1];

points[j+1]=points[j];

points[j]=temp;

}

int s=0;

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

{

P[i]=points[i]-s;

s=P[i]+s;

}

P[3]=100-s;

}

//--------------------------------------------------------------------------

void MakeWinMatrice()

{

GenerateP();

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

for (int j=0;j<4;j++)

Win[i][j]=((double)(P[j]))*K[i][j];

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

{

double Age=(double)(MinAge+random(MaxAge-MinAge));

double Expirience;

if (Age<30) Expirience=Age*0.4;

else Expirience=(40-Age)*0.5;

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

Win[i][j]=Win[i][j]+Expirience;

}

}

//--------------------------------------------------------------------------

int FindDirection()

{

int Max,Index;

Max=P[0];Index=0;

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

if (P[i]>Max) { Max=P[i]; Index=i; };

return Index+1;

}

//--------------------------------------------------------------------------

int FindOptimum()

{

int Cmp1,Cmp2;

int Index;

double Max[4];

double Min;

for (int j=0;j<4;j++)

{

Max[j]=Win[0][j];

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

if (Win[i][j]>Max[j]) Max[j]=Win[i][j];

}

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

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

R[i][j]=Max[j]-Win[i][j];

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

{

Max[i]=R[i][0];

for (int j=0;j<4;j++)

if (R[i][j]>Max[i]) Max[i]=R[i][j];

}

Min=Max[0]; Index=0;

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

if (Max[i]
M[Num]=Min;

//-----дополнение к методу Сэвиджа-----------

if (Knowlege>20&&Knowlege<40)

{

Number=0;

Cmp1=(int)(Min*1000);

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

{

Cmp2=(int)(Max[i]*100);

if (Cmp1==Cmp2)

{

EqualRisk[Number]=i;

Number++;

}

}

if (Number>1)

{

int MinSumRiskIndex=EqualRisk[0];

double SumRisk=0;

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

SumRisk=SumRisk+R[EqualRisk[0]][i];

double SumRiski;

for (i=0;i
{

SumRiski=0;

for (int j=0;j<4;j++)

SumRiski=SumRiski+R[EqualRisk[i]][j];

if (SumRiski
{

SumRisk=SumRiski;

MinSumRiskIndex=EqualRisk[i];

}

}

Index=MinSumRiskIndex;

}

}

//--------------------------------------------

if (Knowlege>=40)

{

int ZeroRisk[4];

int NumberOfZero;

int MinSumRiskIndex;

NumberOfZero=0;

int dir=FindDirection()-1;

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

if (R[i][dir]<0.1)

{

ZeroRisk[NumberOfZero]=i;

NumberOfZero++;

}

if (NumberOfZero>1)

{

int MinSumRiskIndex=ZeroRisk[0];

double SumRisk=0;

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

SumRisk=SumRisk+R[ZeroRisk[0]][i];

double SumRiski;

for (i=0;i
{

SumRiski=0;

for (int j=0;j<4;j++)

SumRiski=SumRiski+R[ZeroRisk[i]][j];

if (SumRiski
{

SumRisk=SumRiski;

MinSumRiskIndex=ZeroRisk[i];

}

}

Index=MinSumRiskIndex;

}

if (NumberOfZero==1) Index=ZeroRisk[0];

}

//--------------------------------------------

return Index+1;

}

//--------------------------------------------------------------------------

double FindM()

{

double m;

double pi;

int cmp;

m=0;

for (int i=0;i
{

pi=0;

cmp=(int)(M[i]*100);

for (int j=0;j<10000;j++)

if (cmp==j) pi=pi+1/((double)(Num));

m=m+M[i]*pi;

}

return m;

}

//--------------------------------------------------------------------------

double FindD()

{

double d;

double pi;

int cmp;

d=0;

for (int i=0;i
{

pi=0;

cmp=(int)(M[i]*100);

for (int j=0;j<10000;j++)

if (cmp==j) pi=pi+1/((double)(Num));

d=d+(M[i]-mx)*(M[i]-mx)*pi;

}

return d;

}

//--------------------------------------------------------------------------

void WriteResultToFile()

{

ofstream fout("out.txt");

fout<<"Результаты моделирования : "<
fout<<"Количество проведенных опытов "<
fout<<"Результаты :"<
for (int i=0;i
{

fout<<"Преимущественное направление "<
switch(Result[i][0])

{

case 1:fout<<"- устройство ЭВМ"<
case 2:fout<<"- графика"<
case 3:fout<<"- издательское дело"<
case 4:fout<<"- языки программирования"<
}

fout<<"Будет взят специалист по ";

switch(Result[i][1])

{

case 1:fout<<"ЭВМ"<
case 2:fout<<"ИСЭ"<
case 3:fout<<"ИД"<
case 4:fout<<"КГ"<
}

fout<
}

fout<<"Расчетный коэффициэнт готовности 0.80"<
double q=((double)(Num-UnReady))/((double)(Num));

fout<<"Реальный коэффициэнт готовности "<
kg=q;

pp=((double)Kn)/((double)Num);

fout<<"Процент попадания "<

q=((double)(PRes[0]))/((double)(Num));

fout<<"Вероятность приема"<
fout<<"- специалиста с ЭВМ "<
q=((double)(PRes[1]))/((double)(Num));

fout<<"- специалиста с ИСЭ "<
q=((double)(PRes[2]))/((double)(Num));

fout<<"- специалиста с ИД "<
q=((double)(PRes[3]))/((double)(Num));

fout<<"- специалиста с КГ "<
fout<<"Вероятность преимущественного "<
fout<<"направления работ "<
q=((double)(PDir[0]))/((double)(Num));

fout<<"- устройство ЭВМ "<
q=((double)(PDir[1]))/((double)(Num));

fout<<"-графика "<
q=((double)(PDir[2]))/((double)(Num));

fout<<"-издательское дело "<
q=((double)(PDir[3]))/((double)(Num));

fout<<"- языки программирования"<
mx=FindM();

fout<<"Mатематическое ожидание Fopt "<
dx=FindD();

fout<<"Дисперсия Fopt "<
sx=sqrt(dx);

fout<<"Среднеквадратическое отклонение Fopt "<
fout.close();

}

//--------------------------------------------------------------------------

void InitGraph()

{

int Driver,Mode;

Driver=VGA;

Mode=VGAHI;

initgraph(&Driver,&Mode,"h:\\bc31\\bgi");

}

//--------------------------------------------------------------------------

void Close()

{

closegraph();

}

//--------------------------------------------------------------------------

void DrawPRes()

{


setcolor(WHITE);

for (int i=1;i<4;i++)

line(20+i*80,115,20+i*80,125);

int x1,x2,y1,y2;

int color=2;

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

{

x1=20+i*80+10;

x2=20+i*80+70;

y1=120-PRes[i]*100/((double)(Num));

y2=120;

setfillstyle(SOLID_FILL,color);

bar (x1,y1,x2,y2);

color++;

}

setcolor(WHITE);

line (20,20,20,120);

line (20,120,340,120);

char str[3];

for (i=1;i<5;i++)

{

y1=120-i*20;

line(18,y1,22,y1);

itoa(i*20,str,10);

outtextxy(1,y1-5,str);

}

setcolor(MAGENTA);

outtextxy( 30,20,"Вероятности приема специалистов");

outtextxy( 30,125," ЭВМ");

outtextxy(110,125," ИСЭ");

outtextxy(190,125," ИД ");

outtextxy(270,125," КГ ");

}

//--------------------------------------------------------------------------

void DrawPDir()

{

setcolor(WHITE);

line (20,140,20,240);

line (20,240,340,240);

for (int i=1;i<4;i++)

line(20+i*80,235,20+i*80,245);

int x1,x2,y1,y2;

int color=2;

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

{

x1=20+i*80+10;

x2=20+i*80+70;

y1=240-PDir[i]*100/((double)(Num));

y2=240;

setfillstyle(SOLID_FILL,color);

bar (x1,y1,x2,y2);

color++;

}

setcolor(WHITE);

char str[3];

line (20,140,20,240);

line (20,240,340,240);

for (i=1;i<5;i++)

{

y1=240-i*20;

line(18,y1,22,y1);

itoa(i*20,str,10);

outtextxy(1,y1-5,str);

}

setcolor(GREEN);

outtextxy( 30,140,"Вероятности задач");

outtextxy( 30,245,"Уст-во");

outtextxy(110,245,"Графика");

outtextxy(190,245,"Изд.дело");

outtextxy(270,245,"Си++,Паскаль");

}

//--------------------------------------------------------------------------

void DrawMDS()

{

setcolor(BLUE);

outtextxy(30,270,"Расброс критерия Fopt отномительно M[Fotp]");

setcolor(WHITE);

line (20,260,20,360);

line (20,360,340,360);

int x,y;

moveto(23,360);

setcolor(BLUE);

for (int i=0;i
{

x=23+i*3;

y=360-(int)(M[i]);

lineto(x,y);

}

setcolor(RED);

y=360-(int)(mx);

line(20,y,340,y);

setcolor(WHITE);

char str[3];

for (i=1;i<5;i++)

{

y=360-i*20;

line(18,y,22,y);

itoa(i*20,str,10);

outtextxy(1,y-5,str);

}

}

//--------------------------------------------------------------------------

void DrawText()

{

setcolor(LIGHTGRAY);

char str1[5];

char str2[50];

outtextxy(20,400,"Расчетный коэффициэнт готовности 0.80");

gcvt(kg,3,str1);

strcpy(str2,"Реальный коэффициент готовности ");

strcat(str2,str1);

outtextxy(20,420,str2);

gcvt(pp,3,str1);

strcpy(str2,"Процент попадания ");

strcat(str2,str1);

outtextxy(20,440,str2);

outtextxy(20,460,"Выход - 'Enter'");

}

//--------------------------------------------------------------------------

void main()

{

char path[12];

About();

clrscr();

cout<<"Внимание ! Отчет о моделировании будет помещен"<
cout<<"в файл 'out.txt' текущего каталога "<
cout<<"Продолжение 'Enter'"<
getch();

int key;

int r;

randomize();

Knowlege=0;

Kn=0;

Num=0;

UnReady=0;

do

{

clrscr();

r=random(100)+1;

if (r<=Ready)

{

MakeWinMatrice();

ShowWinMatrice();

int Res=FindOptimum();

int Dir=FindDirection();

Result[Num][0]=Dir;

Result[Num][1]=Res;

PRes[Res-1]=PRes[Res-1]+1;

PDir[Dir-1]=PDir[Dir-1]+1;

Num++;

ShowRiskMatrice();

cout<
cout<<"Преимущественное направление работ :"<
switch(Dir)

{

case 1:cout<<"- устройство ЭВМ"<
case 2:cout<<"- графика"<
case 3:cout<<"- издательское дело"<
case 4:cout<<"- языки программирования"<
}

cout<<"Будет взят специалист по ";

switch(Res)

{

case 1:cout<<"ЭВМ"<
case 2:cout<<"ИСЭ"<
case 3:cout<<"ИД"<
case 4:cout<<"КГ"<
}

gotoxy(60,2); cout<<"Испытание №"<
gotoxy(65,3); cout<<"Знания "<
if (Dir==1&&Res==1) Kn++;

if (Dir==2&&Res==4) Kn++;

if (Dir==3&&Res==3) Kn++;

if (Dir==4&&Res==4) Kn++;

if ((Dir==1&&Res==1)||

(Dir==2&&Res==4)||

(Dir==3&&Res==3)||

(Dir==4&&Res==4))

Knowlege=Knowlege+2;

else Knowlege--;

if (Knowlege<0) Knowlege=1;

if (Knowlege>100) Knowlege=Knowlege-2;

}

else

{

UnReady++;

clrscr();

cout<<"Менеджер не готов решить задачу"<
}

key=ReadKey();

}

while(key!=27&&Num<100);

WriteResultToFile();

InitGraph();

DrawPRes();

DrawPDir();

DrawMDS();

DrawText();

getch();

Close();

}

//------------------------------------------------------------------------------------------------------


Модель принятия решения преферансистом на этапе торговли.


^ ЦЕЛЬ: Принять правельное решение игроком во время торговли в зависемости от сложившейся ситуации.

ОГРАНИЧЕНИЯ:

АЛЬТЕРНАТИВЫ:

ТИП:


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


#include

#include

#include

#include

#include


//---------------------------------------------------------------------------

int Col[4]={0,0,0,0};

int M[4][8];


int Koloda[32];

int InKoloda=32;

int Karts [10];

int Weigth[10];


char *KartStr[32]={" A 1-x"," K 1-x"," Q 1-x"," J 1-x","10 1-x"," 9 1-x"," 8 1-x"," 7 1-x",

" A 2-x"," K 2-x"," Q 2-x"," J 2-x","10 2-x"," 9 2-x"," 8 2-x"," 7 2-x",

" A 3-x"," K 3-x"," Q 3-x"," J 3-x","10 3-x"," 9 3-x"," 8 3-x"," 7 3-x",

" A 4-x"," K 4-x"," Q 4-x"," J 4-x","10 4-x"," 9 4-x"," 8 4-x"," 7 4-x"};

//---------------------------------------------------------------------------

void Sortir(int Array[],int Col)

{

for (int i=0; i
{

for(int j=0;j
if(Array[j]>Array[i])

{

int Temp;

Temp=Array[j];

Array[j]=Array[i];

Array[i]=Temp;

i--;

}

}

};

//---------------------------------------------------------------------------

void InitKoloda()

{

for (int i=0; i
{

Koloda[i]=i;

}

};

//---------------------------------------------------------------------------

void Sdacha()

{

randomize();

for (int i=0; i<10; i++)

{

int Index=random(InKoloda);

Karts[i]=Koloda[Index];

Koloda[Index]=40;

Sortir(Koloda,InKoloda);

InKoloda--;

}

Sortir(Karts,10);

}

//---------------------------------------------------------------------------

void InitWeigth()

{

for (int i=0; i<10;i++)

{

int E=Karts[i]%8;

if(E==0)

Weigth[i]=20;

else

Weigth[i]=8-E;

}

}

//---------------------------------------------------------------------------

void OutKarts()

{

for (int i=0; i<10; i++)

{

cout<
}

}

//---------------------------------------------------------------------------

void OutArray(int Array[],int Col)

{

for (int i=0; i
{

cout<
}

}

//---------------------------------------------------------------------------

int In4Array()

{

for(int j=0;j<4;j++)

for(int i=0;i<10;i++)

{

if(Karts[i]<8*(j+1)&&Karts[i]>=8*j)

{

M[j][Col[j]]=Weigth[i];

Col[j]++;

}

}

return 0;

}

//---------------------------------------------------------------------------

int Sum(int M[],int col)

{

int i=0;

int k=1;

int S=0;


if((M[0]==20)&&(col>=4))

{

for(i=0;i
S+=M[i];

S*=col;

return S;

}


if((M[0]==7)&&(col>=4))

{

for(i=0;i
S+=M[i];

S*=col-1;

return S;

}


int S1=M[0];

for(i=1,k=1;i
{

while(M[i]-M[i-1]==-1||M[i]-M[i-1]==-13)

{

S1+=M[i];

k++;

i++;

if(i==col)break;

}

S1*=k;

S+=S1;

if(i==col)

return S;

S1=M[i];

k=1;

}

S+=M[col-1];

return S;

}


//---------------------------------------------------------------------------

int Itog()

{

for(int i=0,GSum=0;i<4;i++)

GSum+=Sum(M[i],Col[i]);

return GSum;

}

//---------------------------------------------------------------------------

int Zakaz(int bal,int az)

{

int max=0;

for(int i=1;i<4;i++)

if(Col[i]>Col[max])

max=i;

if(bal<-15&&az==-75)

cout<<"I want to say MIZER!!!";

if(bal<=30&&az==0)

cout<<"I want to say MIZER!!!";

bal+=az;

if(bal<=160&&bal>30)

cout<<"I want to say PASS";

if(bal>160&&bal<=210)

cout<<"My game is 6 "<
if(bal>210&&bal<=260)

cout<<"My game is 7 "<
if(bal>260&&bal<=330)

cout<<"My game is 8 "<
if(bal>330&&bal<=400)

cout<<"My game is 9 "<
if(bal>400)

cout<<"My game is 10 "<

return bal;

}

//---------------------------------------------------------------------------

int MakeAzart()

{

//randomize();

int a=75*(random(99)%3-1);

switch(a)

{

case -75:cout<<"I'm sneakly player";break;

case 0 :cout<<"I'm normal player";break;

case 75:cout<<"I'm brave player";break;

}

cout<
return a;

}


//---------------------------------------------------------------------------

void main()

{

clrscr();

InitKoloda();

Sdacha();

InitWeigth();

OutKarts();

In4Array();

/* for(int i=0;i<4;i++)

{

OutArray(M[i],Col[i]);

cout<
}*/

cout<<" "<
getch();

}


Оптимизация комплектации ПК для конкретного пользователя.


ЦЕЛЬ: Оптимизировать комплектацию персонального компьютера в зависемости от потребностей конкретного пользователя.

ОГРАНИЧЕНИЯ:

АЛЬТЕРНАТИВЫ:

^ ТИП:


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


//---------------------------------------------------------------------------

#include

#pragma hdrstop

#include

#include

#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

int Vid =0;// для какого рода деятельности будет использоваться

// компьютер

int MaxTime = 1;

int Nadeg=1;

int Second;// текущая секунда

int MainMas[37];

int IsKonfig = 0;// если =1 => подобрана конфигурация компьютера

int IsMon = 0; // если =1 => подобран монитор

int IsSBl = 0;// если =1 => подобран системный блок

int IsMB = 0;// если =1 => подобрана материнская плата

int IsPr = 0;// если =1 => подобран процессор

int IsOper = 0;// если =1 => подобрана оперативная память

int IsVind = 0;// если =1 => подобран винчестер

int IsVideo = 0;// если =1 => подобрана видеокарта

int IsSound = 0;// если =1 => подобрана звуковая плата

int IsModem = 0;// если =1 => подобран модем

int IsDrive = 0;// если =1 => подобран дисковод

int IsMouse = 0;// если =1 => подобран манипулятор

int IsKl = 0;
еще рефераты
Еще работы по разное