Пиши и продавай!
как написать статью, книгу, рекламный текст на сайте копирайтеров

1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28

Z(i) – i символ получаемого результата;

strlen() – функция определения длины строки;

g(Zp(i) - Z(i)) = 1, если Zp(i) = Z(i),

g(Zp(i) - Z(i)) = 1/2, если Zp(i) или Z(i) отсутствуют,

g(Zp(i) - Z(i)) = 0, если Zp(i) и Z(i) присутствуют, но Zp(i) ? Z(i).

В качестве ЭД определим следующие:

X+Y – склеивание строк;

X-Y – результатом является строка из символов, присутствующих в X, но отсутствующих в Y;

Di(X) – удаление первого символа строки X;

Dn(X) – удаление последнего символа строки X.

Тогда результатом применения изложенного подхода станет автоматически сгенерированная следующая СР-сеть:

При желании полученная схема всегда может быть автоматически отображена в текст компьютерной программы на любом заданном языке программирования. Например, если в качестве языка программирования задан язык Си, то будет получен следующий текст:

sr_sxema(x,y,z) char x[ ] y[ ] z[ ];

{

char x[80] /* рабочая переменная */

strcpy(x1,x); /* подготовка к работе */

х1[0]=0; strcat(х1,&х1[1]); /* D1 */

strcat(xl,y); /*xl+y*/

l=strlen(xl);x1[l]=0; /*Dn */

l=strlen(xl);x1[l]=0; /*Dn */

strcat(x1,x); /* x1+x */

1=strlen(xl);xl[l]=0; /*Dn */

1=strlen(xl);xl[l]=0; /*Dn */

strcpy(z,x1); /* возвращение управления */

return;

}

При желании приведенную программу можно подвергнуть автоматической оптимизации, которая приведет к введению циклов за счет поглощения одинаковых строк, например:

sr_sxema(x,y,z) char x[ ] y[ ] z[ ];

{

int j; /* рабочая переменная */

1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28

сайт копирайтеров Евгений