Форум программистов, компьютерный форум CyberForum.ru

процедуры/функции - C++

Восстановить пароль Регистрация
 
crewww
30 / 1 / 1
Регистрация: 28.10.2010
Сообщений: 102
26.01.2012, 15:15     процедуры/функции #1
Три фрагмента нижеприведенной программы, выделенные жирным курсивом, представляют собой решение одной и той же подзадачи для различных исходных данных – параметров этой подзадачи. Для подходящей подзадачи опишите процедуру (функцию) с параметрами и без глобальных переменных. Перепишите нижеприведенную программу в более компактной форме, используя операторы (этой) процедуры (вызовы функции) для реализации выделенных фрагментов
C++
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
29
30
int main() {int i,j; double u,v,w,z,x,y,p,q,r,s,a[100],b[100],c[200],f[200];
//ввод (p,q,r,a,b,c)
for (j=0;j<200; j+=2) {s=r;
 // фрагмент выделен жирным курсивом (начало 1 фрагмента)
x=p;y=cos(c[j]);
u=x+y; for (i=0;i<100;i++) {
z=(x-cos(c[j])); w=(sin(s)-y);
u=u+(a[i]*q-z/a[i])*(p-b[i]*w);
x=(y-x)*(p-u); y=(y-c[j+1])*cos(c[j]);} 
//конец 1 фрагмента выделенного жирным курсивом
if (sin(u)>cos(u)) {
//начало 2 фрагмента выделенного жирным курсивом
y=q; z=sin(c[j+1]); f[j]=y+z;
for (i=0;i<100;i++){
x=(y-sin(c[j+1])); b=(log(s)-z);
f[j]=f[j]+(b[i]*p-x/a[i])*(p-a[i]*v); y=(z-y)*(q-f[j]);
z=(z-c[j])*sin(c[j+1]); }
//конец 2 фрагмента  выделенного жирным курсивом
s=cos(s-u);
//начало 3 фрагмента выделенного жирным курсивом
z=p;x=log(c[j]); f[j+1]=z+x;
for (i=0;i<100;i++){
y=(z-log(c[j])); w=(cos(s)-x);
f[j+1]=f[j+1]+(a[i]*p-y/b[i])*(q-a[i]*w); z=(x-z)*(p-f[j+1]);
x=(x-c[j]*c[j+1])*log(c[j]);} 
//конец 3 фрагмента  выделенного жирным курсивом
}
else {f[j]=sin(u-c[j]); f[j+1]=sin(u*c[j+1]); }}
//вывод (f)
return 0;}
прошу прощение что не соблюдаю стиль
у меня несколько вопросов по задаче:
1)какой подход в подобных задачах? принцип видишь что-то разное в фрагментах - вводи новую переменную?
2)с чего вообще начинать в этой задаче? попытаться понять что делает каждый из фрагментов и программа в целом? или же пытаться сразу начать в лоб смотря на три фрагмента и замечая закономерность?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.01.2012, 15:15     процедуры/функции
Посмотрите здесь:

C++ Процедуры и функции.
C++ Процедуры. Процедуры-функции
C++ Процедуры и функции C++
Процедуры и функции C++
процедуры и функции C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Dekio
Фрилансер
Эксперт C++
 Аватар для Dekio
5816 / 1214 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
26.01.2012, 15:26     процедуры/функции #2
Код не читабелен
crewww
30 / 1 / 1
Регистрация: 28.10.2010
Сообщений: 102
26.01.2012, 15:48  [ТС]     процедуры/функции #3
а как его сделать читабельным?
bigredcat
364 / 311 / 3
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
26.01.2012, 15:58     процедуры/функции #4
Отформатироватьнепробывали,вставитьпробелыпереносыстрок,табуляцию.Некоторыесредыразработкидажемогутвамвэтомпомочь
crewww
30 / 1 / 1
Регистрация: 28.10.2010
Сообщений: 102
26.01.2012, 16:08  [ТС]     процедуры/функции #5
Цитата Сообщение от bigredcat Посмотреть сообщение
Отформатироватьнепробывали,вставитьпробелыпереносыстрок,табуляцию.Некоторыесредыразработкидажемогутвамвэтомпомочь
что вы понимаете под словом отформатировать? никогда этим не занимался.. честно

Добавлено через 4 минуты
может быть как то так
C++
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
int main()  {   int i,j;     double u,v,w,z,x,y,p,q,r,s,a[100],b[100],c[200],f[200];
 
//   ввод     (p,q,r,a,b,c)
 
for (j=0;j<200; j+=2) {s=r;
 
 // фрагмент выделен жирным курсивом (начало 1 фрагмента)
 
x=p;         y=cos(c[j]);
 
u=x+y;     for (i=0;i<100;i++) {
 
z=(x-cos(c[j]));       w=(sin(s)-y);
 
u=u+(a[i]*q-z/a[i])*(p-b[i]*w);
 
x=(y-x)*(p-u);         y=(y-c[j+1])*cos(c[j]);}
 
//конец 1 фрагмента выделенного жирным курсивом
 
if (sin(u)>cos(u)) {
 
//начало 2 фрагмента выделенного жирным курсивом
 
y=q;            z=sin(c[j+1]);         f[j]=y+z;
 
for (i=0;i<100;i++){
 
x=(y-sin(c[j+1]));                       b=(log(s)-z);
 
f[j]=f[j]+(b[i]*p-x/a[i])*(p-a[i]*v);         y=(z-y)*(q-f[j]);
 
z=(z-c[j])*sin(c[j+1]); }
 
//конец 2 фрагмента  выделенного жирным курсивом
 
s=cos(s-u);
 
//начало 3 фрагмента выделенного жирным курсивом
 
z=p;     x=log(c[j]);                   f[j+1]=z+x;
for (i=0;i<100;i++){
 
y=(z-log(c[j]));               w=(cos(s)-x);
 
f[j+1]=f[j+1]+(a[i]*p-y/b[i])*(q-a[i]*w);  
 
z=(x-z)*(p-f[j+1]);     
 x=(x-c[j]*c[j+1])*log(c[j]);} 
//конец 3 фрагмента  выделенного жирным курсивом
}
else {f[j]=sin(u-c[j]);     f[j+1]=sin(u*c[j+1]); }}
//вывод (f)
return 0;}
Dekio
Фрилансер
Эксперт C++
 Аватар для Dekio
5816 / 1214 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
26.01.2012, 16:11     процедуры/функции #6
crewww, стало только хуже.
Посмотрите оформление кода в соседних темах
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
26.01.2012, 16:22     процедуры/функции #7
crewww, вставте, например, в студию. Потом выделите его и нажмите сочетание клавиш ctrl-k потом ctrl-f
crewww
30 / 1 / 1
Регистрация: 28.10.2010
Сообщений: 102
26.01.2012, 16:43  [ТС]     процедуры/функции #8
Цитата Сообщение от go Посмотреть сообщение
crewww, вставте, например, в студию. Потом выделите его и нажмите сочетание клавиш ctrl-k потом ctrl-f
сделал как вы сказали
C++
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
int main()  {   int i,j;     double u,v,w,z,x,y,p,q,r,s,a[100],b[100],c[200],f[200];
 
//   ввод     (p,q,r,a,b,c)
 
for (j=0;j<200; j+=2) {s=r;
 
// фрагмент выделен жирным курсивом (начало 1 фрагмента)
 
x=p;         y=cos(c[j]);
 
u=x+y;     for (i=0;i<100;i++) {
 
    z=(x-cos(c[j]));       w=(sin(s)-y);
 
    u=u+(a[i]*q-z/a[i])*(p-b[i]*w);
 
    x=(y-x)*(p-u);         y=(y-c[j+1])*cos(c[j]);}
 
//конец 1 фрагмента выделенного жирным курсивом
 
if (sin(u)>cos(u)) {
 
    //начало 2 фрагмента выделенного жирным курсивом
 
    y=q;            z=sin(c[j+1]);         f[j]=y+z;
 
    for (i=0;i<100;i++){
 
        x=(y-sin(c[j+1]));                       b=(log(s)-z);
 
        f[j]=f[j]+(b[i]*p-x/a[i])*(p-a[i]*v);         y=(z-y)*(q-f[j]);
 
        z=(z-c[j])*sin(c[j+1]); }
 
    //конец 2 фрагмента  выделенного жирным курсивом
 
    s=cos(s-u);
 
    //начало 3 фрагмента выделенного жирным курсивом
 
    z=p;     x=log(c[j]);                   f[j+1]=z+x;
    for (i=0;i<100;i++){
 
        y=(z-log(c[j]));               w=(cos(s)-x);
 
        f[j+1]=f[j+1]+(a[i]*p-y/b[i])*(q-a[i]*w);  
 
        z=(x-z)*(p-f[j+1]);     
        x=(x-c[j]*c[j+1])*log(c[j]);} 
    //конец 3 фрагмента  выделенного жирным курсивом
}
else {f[j]=sin(u-c[j]);     f[j+1]=sin(u*c[j+1]); }}
//вывод (f)
return 0;}
или вот
C++
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
29
30
int main() {int i,j; double u,v,w,z,x,y,p,q,r,s,a[100],b[100],c[200],f[200];
//ввод (p,q,r,a,b,c)
for (j=0;j<200; j+=2) {s=r;
// фрагмент выделен жирным курсивом (начало 1 фрагмента)
x=p;y=cos(c[j]);
u=x+y; for (i=0;i<100;i++) {
    z=(x-cos(c[j])); w=(sin(s)-y);
    u=u+(a[i]*q-z/a[i])*(p-b[i]*w);
    x=(y-x)*(p-u); y=(y-c[j+1])*cos(c[j]);} 
//конец 1 фрагмента выделенного жирным курсивом
if (sin(u)>cos(u)) {
    //начало 2 фрагмента выделенного жирным курсивом
    y=q; z=sin(c[j+1]); f[j]=y+z;
    for (i=0;i<100;i++){
        x=(y-sin(c[j+1])); b=(log(s)-z);
        f[j]=f[j]+(b[i]*p-x/a[i])*(p-a[i]*v); y=(z-y)*(q-f[j]);
        z=(z-c[j])*sin(c[j+1]); }
    //конец 2 фрагмента  выделенного жирным курсивом
    s=cos(s-u);
    //начало 3 фрагмента выделенного жирным курсивом
    z=p;x=log(c[j]); f[j+1]=z+x;
    for (i=0;i<100;i++){
        y=(z-log(c[j])); w=(cos(s)-x);
        f[j+1]=f[j+1]+(a[i]*p-y/b[i])*(q-a[i]*w); z=(x-z)*(p-f[j+1]);
        x=(x-c[j]*c[j+1])*log(c[j]);} 
    //конец 3 фрагмента  выделенного жирным курсивом
}
else {f[j]=sin(u-c[j]); f[j+1]=sin(u*c[j+1]); }}
//вывод (f)
return 0;}
Dekio
Фрилансер
Эксперт C++
 Аватар для Dekio
5816 / 1214 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
26.01.2012, 16:47     процедуры/функции #9
crewww, и чем форматирование отличается от поста 5 ?
Врятли кто станет помогать, если код не читабелен.
bigredcat
364 / 311 / 3
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
26.01.2012, 17:14     процедуры/функции #10
crewww, типа так. Но там есть еще над чем поработать, я только основные блоки выделил
C
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
int main()
{
    int i,j; double u,v,w,z,x,y,p,q,r,s,a[100],b[100],c[200],f[200];
    //ввод (p,q,r,a,b,c)
    for (j=0;j<200; j+=2)
    {
        s=r;
        // фрагмент выделен жирным курсивом (начало 1 фрагмента)
        x=p;y=cos(c[j]);
        u=x+y;
        for (i=0;i<100;i++)
        {
            z=(x-cos(c[j])); w=(sin(s)-y);
            u=u+(a[i]*q-z/a[i])*(p-b[i]*w);
            x=(y-x)*(p-u); y=(y-c[j+1])*cos(c[j]);
        }
        //конец 1 фрагмента выделенного жирным курсивом
        if (sin(u)>cos(u))
        {
            //начало 2 фрагмента выделенного жирным курсивом
            y=q; z=sin(c[j+1]); f[j]=y+z;
            for (i=0;i<100;i++)
            {
                x=(y-sin(c[j+1])); b=(log(s)-z);
                f[j]=f[j]+(b[i]*p-x/a[i])*(p-a[i]*v); y=(z-y)*(q-f[j]);
                z=(z-c[j])*sin(c[j+1]);
            }
            //конец 2 фрагмента  выделенного жирным курсивом
            s=cos(s-u);
            //начало 3 фрагмента выделенного жирным курсивом
            z=p;x=log(c[j]);f[j+1]=z+x;
            for (i=0;i<100;i++)
            {
                y=(z-log(c[j])); w=(cos(s)-x);
                f[j+1]=f[j+1]+(a[i]*p-y/b[i])*(q-a[i]*w); z=(x-z)*(p-f[j+1]);
                x=(x-c[j]*c[j+1])*log(c[j]);
            }
            //конец 3 фрагмента  выделенного жирным курсивом
        }
        else
        {
            f[j]=sin(u-c[j]); f[j+1]=sin(u*c[j+1]);
        }
    }
    //вывод (f)
    return 0;
}

Не по теме:

Хотя, думаю, пока все это для вас, как китайские иероглифы

crewww
30 / 1 / 1
Регистрация: 28.10.2010
Сообщений: 102
26.01.2012, 19:46  [ТС]     процедуры/функции #11
Цитата Сообщение от bigredcat Посмотреть сообщение
crewww, типа так. Но там есть еще над чем поработать, я только основные блоки выделил
C
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
int main()
{
    int i,j; double u,v,w,z,x,y,p,q,r,s,a[100],b[100],c[200],f[200];
    //ввод (p,q,r,a,b,c)
    for (j=0;j<200; j+=2)
    {
        s=r;
        // фрагмент выделен жирным курсивом (начало 1 фрагмента)
        x=p;y=cos(c[j]);
        u=x+y;
        for (i=0;i<100;i++)
        {
            z=(x-cos(c[j])); w=(sin(s)-y);
            u=u+(a[i]*q-z/a[i])*(p-b[i]*w);
            x=(y-x)*(p-u); y=(y-c[j+1])*cos(c[j]);
        }
        //конец 1 фрагмента выделенного жирным курсивом
        if (sin(u)>cos(u))
        {
            //начало 2 фрагмента выделенного жирным курсивом
            y=q; z=sin(c[j+1]); f[j]=y+z;
            for (i=0;i<100;i++)
            {
                x=(y-sin(c[j+1])); b=(log(s)-z);
                f[j]=f[j]+(b[i]*p-x/a[i])*(p-a[i]*v); y=(z-y)*(q-f[j]);
                z=(z-c[j])*sin(c[j+1]);
            }
            //конец 2 фрагмента  выделенного жирным курсивом
            s=cos(s-u);
            //начало 3 фрагмента выделенного жирным курсивом
            z=p;x=log(c[j]);f[j+1]=z+x;
            for (i=0;i<100;i++)
            {
                y=(z-log(c[j])); w=(cos(s)-x);
                f[j+1]=f[j+1]+(a[i]*p-y/b[i])*(q-a[i]*w); z=(x-z)*(p-f[j+1]);
                x=(x-c[j]*c[j+1])*log(c[j]);
            }
            //конец 3 фрагмента  выделенного жирным курсивом
        }
        else
        {
            f[j]=sin(u-c[j]); f[j+1]=sin(u*c[j+1]);
        }
    }
    //вывод (f)
    return 0;
}

Не по теме:

Хотя, думаю, пока все это для вас, как китайские иероглифы

Не по теме:

Вы про что имеете ввиду китайские иероглифы?



Добавлено через 1 минуту
по факту мне никто не ответил на вопросы... а замечаний по поводу кода было куча
dimcoder
Полярный
 Аватар для dimcoder
449 / 422 / 66
Регистрация: 11.09.2011
Сообщений: 1,108
26.01.2012, 20:07     процедуры/функции #12
Цитата Сообщение от crewww Посмотреть сообщение
с чего вообще начинать в этой задаче? попытаться понять что делает каждый из фрагментов и программа в целом? или же пытаться сразу начать в лоб смотря на три фрагмента и замечая закономерность?
Ну да. Вводите все неизвезстные переменные сначала. На основе данного кода описываете функции для оперирования этими переменными. Вот и весь компот.
bigredcat
364 / 311 / 3
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
26.01.2012, 20:30     процедуры/функции #13
Цитата Сообщение от crewww Посмотреть сообщение
по факту мне никто не ответил на вопросы... а замечаний по поводу кода было куча
Так никто и не обязан был. А замечания по оформлению кода, так чтобы вам быстрее
помогли
Первый, лежа на диване: Помогите диван подвинуть.
Второй: Вместе с тобой диван не удобно двигать.
Первый, продолжая лежать на диване (недоуменно): И что теперь делать?
Второй: Встань с дивана.
Первый: Что-то много слов, а диван так и не сдвинулся.
Paporotnik
383 / 227 / 7
Регистрация: 06.07.2011
Сообщений: 512
26.01.2012, 20:48     процедуры/функции #14
На одной строке - одно действие. Когда компилятор выдаст вам ошибку в какой-либо строке, а у вас в этой строке 5-10-20 операторов, то вы пожалеете.
Строки, обрамленные фигурными скобками {} (блок операторов) должны быть с отступом от левого края.
Если внутри одного блока операторов встречается другой, то второй блок должен иметь больший отступ.
Переменные можно и нужно объявлять и инициализировать непосредственно перед применением. С++ не фортран и не требует объявления всех данных в начале программы.

не понятно, по чему вы учились программировать, если в любой книге все учебные примеры отформатированы нормально, а у вас кое-как. и это не придирки. если ваш код будет смотреть кто-то еще, то это необходимое требование. иначе, как и в этой теме, люди просто забьют разбираться в этой писанине.
crewww
30 / 1 / 1
Регистрация: 28.10.2010
Сообщений: 102
26.01.2012, 21:07  [ТС]     процедуры/функции #15
Цитата Сообщение от Paporotnik Посмотреть сообщение
На одной строке - одно действие. Когда компилятор выдаст вам ошибку в какой-либо строке, а у вас в этой строке 5-10-20 операторов, то вы пожалеете.
Строки, обрамленные фигурными скобками {} (блок операторов) должны быть с отступом от левого края.
Если внутри одного блока операторов встречается другой, то второй блок должен иметь больший отступ.
Переменные можно и нужно объявлять и инициализировать непосредственно перед применением. С++ не фортран и не требует объявления всех данных в начале программы.

не понятно, по чему вы учились программировать, если в любой книге все учебные примеры отформатированы нормально, а у вас кое-как. и это не придирки. если ваш код будет смотреть кто-то еще, то это необходимое требование. иначе, как и в этой теме, люди просто забьют разбираться в этой писанине.
не знаю почему но наш преподаватель по лекциям наплевательски относится к правилам оформления кода и это он нам сказал, нас никто не учил форматировать код

Добавлено через 1 минуту
Цитата Сообщение от dimcoder Посмотреть сообщение
Ну да. Вводите все неизвезстные переменные сначала. На основе данного кода описываете функции для оперирования этими переменными. Вот и весь компот.
спасибо за ответ
если я напишу программу то вы проверите мой код на правильность?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.01.2012, 11:58     процедуры/функции
Еще ссылки по теме:

C++ Процедуры /функции
C++ процедуры и функции
C++ Подпрограммы-процедуры и процедуры-функции

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
crewww
30 / 1 / 1
Регистрация: 28.10.2010
Сообщений: 102
28.01.2012, 11:58  [ТС]     процедуры/функции #16
Решение
C++
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
29
30
31
32
33
34
35
36
void pro(double a1, double a2,double a3[100],double a4,double a5[100], double a6,double a7[100], double a8,double a9,double  &res)
{int i; double x,y,z,w; 
x=a8; 
y=a1; 
res=x+y;
for (i=0; i<100;i++)
    {
    z=x-a1; 
    w=a2-y;
    res=res+(a3[i]*a4-z/a5[i])*(a6-a7[i]*w);
    x=(y-x)*(a8-res);
    y=(y-a9)*a1;
    }
}
 
int main() 
{
    int i,j; double u,v,w,z,x,y,p,q,r,s,a[100],b[100],c[200],f[200];
//ввод (p,q,r,a,b,c)
for (j=0;j<200; j+=2) 
    {
    s=r;
    pro(cos(c[j]),sin(s),a,q,a,p,b,p,c[j+1],f);
if (sin(u)>cos(u)) 
        {
        pro(sin(c[j+1]),log(s),b,p,a,p,a,q,c[j],f);
        s=cos(s-u);
        pro(log(c[j]),cos(s),a,p,b,q,a,p,c[j]*c[j+1],f);
        }
else    {
    f[j]=sin(u-c[j]); f[j+1]=sin(u*c[j+1]); 
        }
    }
//вывод (f)
return 0;
}
Добавлено через 31 минуту
отредактировал код (были помарки)
C++
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
29
30
31
32
33
34
35
36
void pro(double a1, double a2,double a3[100],double a4,double a5[100], double a6,double a7[100], double a8,double a9,double  &res)
{int i; double x,y,z,w; 
x=a8; 
y=a1; 
res=x+y;
for (i=0; i<100;i++)
    {
    z=x-a1; 
    w=a2-y;
    res=res+(a3[i]*a4-z/a5[i])*(a6-a7[i]*w);
    x=(y-x)*(a8-res);
    y=(y-a9)*a1;
    }
}
 
int main() 
{
    int i,j; double u,v,w,z,x,y,p,q,r,s,a[100],b[100],c[200],f[200];
//ввод (p,q,r,a,b,c)
for (j=0;j<200; j+=2) 
  {
    s=r;
    pro(cos(c[j]),sin(s),a,q,a,p,b,p,c[j+1],u);
if (sin(u)>cos(u)) 
        {
        pro(sin(c[j+1]),log(s),b,p,a,p,a,q,c[j],f[j]);
        s=cos(s-u);
        pro(log(c[j]),cos(s),a,p,b,q,a,p,c[j]*c[j+1],f[j+1]);
        }
else    {
    f[j]=sin(u-c[j]); f[j+1]=sin(u*c[j+1]); 
    }
  }
//вывод (f)
return 0;
}
Yandex
Объявления
28.01.2012, 11:58     процедуры/функции
Ответ Создать тему
Опции темы

Текущее время: 17:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru