Разработка программного обеспечения
If (sumsum%2≠0). For (int i = 0; i. For (int i = 0; i. Case 1: result (); System («cls»); Case 2: exit (0); Buff= rand ()%20; Switch (choice). Std: cout<<" «<. Roz=rand ()%101; Int l=rand ()%n; For (int j=0; j. Double ul={0,0}; Double sumcellf; Double elit=0.0; Buff = individ]; If (cf>=delta). For (int j=0;j. For (int j=0;j. If (sumsum>0). For (i = 0; i. For (i = 0; i. For (i = 0; i. For (i = 0; i. Читать ещё >
Разработка программного обеспечения (реферат, курсовая, диплом, контрольная)
#include.
#include.
#include.
#include.
#include.
int i, j;
int n, m;
int menu_select (void);
void result (void);
double Sfera (double x);
double SUMSfera (double *a);
int main ().
{.
char choice;
for (;;).
{.
choice = menu_select ();
switch (choice).
{.
case 1: result ();
break;
case 2: exit (0);
}.
}.
return 0;
}.
int menu_select (void).
{.
setlocale (LC_ALL," Russian");
int c;
std:cout<<" 1. Вычислить функцию" <
std:cout<<" 2. Выход «<
do.
{.
std:cout<<" Введите номер нужного пункта: «<
std:cin>> c;
}.
while (c2);
return c;
}.
void result (void).
{.
setlocale (LC_ALL," Russian");
std:cout<<" Введите число переменных n" <
std:cin>>n;
m=2*n;
std:cout<<" «<
int individ[m][n];
int buff[m][n];
int roz[m];
double cf[m];
double sect[m];
int nom[m];
int ver[m];
double delta=n*0.9 999 999;
double sumcellf;
int sumsum=0;
int rez=0;
int w=0;
double ul[2]={0,0};
unsigned int start = clock ();
for (i = 0; i.
{.
for (j=0; j.
{.
individ[i][j] = 0 + rand ()%20;
}.
}.
do.
{.
if (ul[1]>5).
{.
ul[1]=0;
for (i = 0; i.
{.
individ[i][rand ()%n]= rand ()%20;
}.
}.
for (i = 0; i.
{.
cf[i]=0.0;
for (j=0;j.
{.
cf[i]+=Sfera (individ[i][j]);
}.
}.
sumcellf=SUMSfera (cf);
double temp=0;
for (i=0; i.
{.
temp+=(cf[i]/sumcellf)*100;
sect[i]=temp;
}.
for (i=0; i.
{.
roz[i]=rand ()%101;
}.
for (i=0; i.
{.
for (j=0;j.
{.
if (roz[i].
{.
nom[i]=j;
break;
}.
}.
}.
for (i=0; i.
{.
if (rand ()%101<=10).
{.
ver[i]=0;
sumsum++;
}.
else.
{.
ver[i]=1;
}.
}.
for (i=1;i.
{.
for (j=i;j>0 && ver[j-1]>ver[j]; j—).
{.
std:swap (ver[j-1], ver[j]);
std:swap (nom[j-1], nom[j]);
}.
}.
if (sumsum%2≠0).
{.
ver[sumsum+1]=0;
sumsum++;
}.
for (i = 0; i.
{.
for (j=0; j.
{.
buff[i][j] = individ[nom[i]][j];
}.
}.
if (sumsum>0).
{.
for (i = 0; i.
{.
buff[i][rand ()%n]= rand ()%20;
}.
}.
for (i = sumsum; i.
{.
int l=rand ()%n;
for (int j=0; j.
{.
if (j.
{.
std:swap (buff[i][j], buff[i+1][j]);
}.
}.
}.
for (i = 0; i.
{.
for (j=0; j.
{.
individ[i][j]=buff[i][j];
}.
}.
for (i = 0; i.
{.
cf[i]=0.0;
for (int j=0;j.
{.
cf[i]+=Sfera (individ[i][j]);
}.
}.
sumcellf=0;
sumcellf=SUMSfera (cf);
double elit=0.0;
int fiks=0;
for (i = 0; i.
{.
if (cf[i]>elit).
{.
elit=cf[i];
fiks=i;
}.
}.
for (i=0; i.
{.
if (cf[i]<(sumcellf/m)).
{.
for (j=0; j.
{.
individ[i][j] = individ[fiks][j];
}.
}.
}.
for (int i = 0; i.
{.
cf[i]=0.0;
for (int j=0;j.
{.
cf[i]+=Sfera (individ[i][j]);
}.
}.
for (int i = 0; i.
{.
if (cf[i]>=delta).
{.
rez++;
}.
}.
if (ul[0]<=sumcellf).
{.
ul[0]=sumcellf;
ul[1]=0;
}.
else.
{.
ul[1]+=1;
}.
w++;
sumcellf=0;
sumsum=0;
if (rez<(int)(m*0.9)).
{.
rez=0;
}.
}.
while (rez<(int)(m*0.9));
std:cout<<" Результат найден!" <<" Количество итераций «<<»; Количество оптимальных особей «<
unsigned int end= clock (); // конечное время.
unsigned int search = end — start; // искомое время.
std:cout<<" Время выполнения расчетов: «<<<» сек" <
std:cout<<" Для продолжения нажмите Enter" <
getch ();
system («cls»);
return;
}.
double Sfera (double x).
{.
return 1/(1+(pow (x, 2)));
}.
double SUMSfera (double *a).
{.
double c=0.0;
for (i=0; i.
{.
c+=a[i];
}.
return c;
}.