Реферат: Методические указания и примеры выполнения задания №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;
еще рефераты
Еще работы по разное
Реферат по разное
Методические указания к выполнению организационно-экономической части дипломного проекта (для студентов специальностей 2103, 170600)
17 Сентября 2013
Реферат по разное
Методические указания по выполнению и оформлению контрольной работы. Контрольная работа
17 Сентября 2013
Реферат по разное
Методические указания по выполнению курсовых работ для студентов специальности спо 080113 «Страховое дело (по отраслям)» по дисциплине «Страховое дело»
17 Сентября 2013
Реферат по разное
Тема № Страховое дело
17 Сентября 2013