Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.97/37: Рейтинг темы: голосов - 37, средняя оценка - 4.97
This party getting crazy!
 Аватар для Bloodykeeper
78 / 64 / 1
Регистрация: 22.09.2009
Сообщений: 427

Переменной s присвоить значение 1, если оба уравнения имеют вещественные корни

05.03.2010, 14:42. Показов 7227. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Даны вещественные числа а, b, с, d, e, f. Переменной s присвоить значение 1, если оба уравнения ах2 + bх + с = 0 и dx2 + ex + f = 0 имеют вещественные корни и при этом все корни первого уравнения лежат между корнями второго уравнения. В противном случае переменной s присвоить значение 0. (Для нахождения корней квадратного уравнения использовать функцию.)

Я нахоил здесь решения квадратных уравнений, но вот как быть с "имеют вещественные корни и при этом все корни первого уравнения лежат между корнями второго уравнения" помогите пожалуйста. Киньте кусочек кода, как реализовать!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.03.2010, 14:42
Ответы с готовыми решениями:

Переменной S присвоить значение 1, если оба уравнения имеют вещественные корни
Ребят, это ппц. Я вооообще без понятия как такое решить... Не удивлюсь, если на С# это не возможно(хотя наверника есть люди, для...

Переменной S присвоить значение 1,если оба уравнения имеют вещественные корни
даны вещественные числа a,b,c,d,e,f.Переменной S присвоить значение 1,если оба уравнения Ax2+bx+c=0 dx2+ex+f=0 имеют вещественные...

Если уравнение имеет вещественные корни, то логической переменной t присвоить true
если уравнение ax^2+bx+c=0 имеет вещественные корни, то логической переменной t присвоить true, а переменным х1,у1(корни). Иначе...

12
 Аватар для kuroiryuu
328 / 312 / 68
Регистрация: 05.11.2009
Сообщений: 712
05.03.2010, 16:24
проверка на вещественный корень
C++
1
2
3
4
5
6
double x1;
...........
if ((int)x1 != x1) //корень вещественный
{
.........
}
что по поводу второго условия эти уравнения замечательны тем, что там всегда два корня
так что найди среди двух корней второго уравнения максимум и минимум:
C++
1
2
3
4
if ((x1 >= min) && (x1 <= max) && (x2 >= min) && (x2 <= max))
{
.........
}
0
This party getting crazy!
 Аватар для Bloodykeeper
78 / 64 / 1
Регистрация: 22.09.2009
Сообщений: 427
05.03.2010, 18:37  [ТС]
спасибо, я пока хочу сделать просто решение квадратного уравнения через функцию, а потом добавить туда ещё всё остальное, помогите исправить ошибки (ну я и накрутил наверное...):
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
#include <stdio.h>
#include <math.h>
float Quadratic(double, double)
int Quadratic(double x1, double x2)
{ double d;
  int a, c ;
  int b;
 
if ( a==0 )
{
printf(" SOOBSHENIE " );
return 0;
}
 
 d=b*b-4*a*c ;
 if ( d == 0 ) 
{ 
x1= -b/2*a ;
return x1;
} 
 else if ( d>0 )
{
 x1=( -b-sqrt(d))/2*a;
x2 = (-b+sqrt(d))/2*a;
return x2;
 }
else printf("net kornei");
 
  return 0;
}
 
int main()
{
double d, y;
  int a, c ;
  int b;
    printf("Enter a:\n");
    scanf("%f", &a);
if ( a==0 )
{
printf( " SOOBSHENIE " );
return 0;
}
    printf("Enter b:\n");
    scanf("%f", &b);
    printf("Enter c:\n");
    scanf("%f", &c);
d=Quadratic(x1);
printf("(x1 = %f" "\n", d);
y=Quadratic(x2);
printf("x2 = %f" "\n", y);
return 0;
}
0
анимешник++
 Аватар для Iworb
95 / 62 / 7
Регистрация: 03.11.2009
Сообщений: 427
05.03.2010, 19:16
C++
1
2
float Quadratic(double, double)
int Quadratic(double x1, double x2)
не понял момент
сча буду исправлять эту штуку.

Добавлено через 3 минуты
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
float *Quadratic(float a, float b, float c)
{ float *x;
   double d;
 
if ( a==0 )
{
 printf(" Ne kvadratnoe uravnenie " );
 exit(1);
}
 d=b*b-4*a*c ;
 if ( d == 0 ) 
{ 
x=float new float[1];
x[0]=-b/2*a;
return x;
} 
 else if ( d>0 )
{
 x=float new float[2]
 x[0]=(-b-sqrt(d))/2*a;
 x[1]=(-b+sqrt(d))/2*a;
return x;
 }
else printf("net kornei");
 
return 0;
}
Добавлено через 3 минуты
у тебя так выходил все время один корень только. затем в main создаешь указатель на первое и второе уравнение (например уравнение u и v)
потом u=Quadratic(a,b,c) и v=Quadratic(a1,b1,c1)
где a,b,c,a1,b1,c1 - коэфициенты уравнений

Добавлено через 3 минуты
и не забудь потом в конце добавить delete[] u; delete[] v
(можно было выделение памяти сделать и маллоком x=(float)malloc(2) (вроде так), но тогда и освобождать ее надо будет free(v); free(u))
0
This party getting crazy!
 Аватар для Bloodykeeper
78 / 64 / 1
Регистрация: 22.09.2009
Сообщений: 427
05.03.2010, 19:18  [ТС]
Вот так?
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
#include <stdio.h>
#include <math.h>
float *Quadratic(float a, float b, float c)
{ float *x;
   double d;
 
if ( a==0 )
{
 printf(" Ne kvadratnoe uravnenie " );
 exit(1);
}
 d=b*b-4*a*c ;
 if ( d == 0 ) 
{ 
x=float new float[1]
return x;
} 
 else if ( d>0 )
{
 x=float new float[2]
 x[0]=(-b-sqrt(d))/2*a;
 x[1]=(-b+sqrt(d))/2*a;
return x;
 }
else printf("net kornei");
 
return 0;
}
 
int main()
{
double u, v;
  int a, c ;
  int b;
    printf("Enter a:\n");
    scanf("%f", &a);
if ( a==0 )
{
printf( " SOOBSHENIE " );
return 0;
}
    printf("Enter b:\n");
    scanf("%f", &b);
    printf("Enter c:\n");
    scanf("%f", &c);
u=Quadratic(a,b,c);
printf("(x1 = %f" "\n", u);
v=Quadratic(a1,b1,c1);
printf("x2 = %f" "\n", v);
return 0;
}
мне кажется вы мне на Си++ написали...ато компилятор на некоторые вещи ругается нетипичные...
0
анимешник++
 Аватар для Iworb
95 / 62 / 7
Регистрация: 03.11.2009
Сообщений: 427
05.03.2010, 20:02
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
 
float Discr(float a, float b, float c)
{
    return (float)(b*b-4*a*c);
}
 
float Quadro(float a, float b, float D, int flag)
{
    if(flag==0) return (float)((-b+sqrt(D))/(2*a));
    if(flag==1) return (float)((-b-sqrt(D))/(2*a));
    return 0;
}
 
void main()
{
    float a,b,c,d,e,f,D,D2,x1,x2,y1,y2;
    int s,f1=0,f2=0; //f1,f2 - признаки вещественности корней
    do
    {
        printf("Vvedite a(ne ravnoe 1):");
        scanf("%f",&a);
        if(a==1) printf("\nError! Retry!\n");
    }
    while(a==1);
    printf("\nVvedite b:");
    scanf("%f",&b);
    printf("\nVvedite c:");
    scanf("%f",&c);
    do
    {
        printf("\nVvedite d(ne ravnoe 1):");
        scanf("%f",&d);
        if(d==1) printf("\nError! Retry!\n");
    }
    while(a==1);
    printf("\nVvedite e:");
    scanf("%f",&e);
    printf("\nVvedite f:");
    scanf("%f",&f);
    D=Discr(a,b,c);
    if(D<0)
    {
        printf("Net reshenii!");
        exit(1);
    }
    if(D==0)
    {
        x1=x2=Quadro(a,b,D,0);
        if((int)x1!=x1) f1=1; //если они вещественные, то ставим флажок, т.к. x1 и х2 равны, то проверять можно только один
    }
    if(D>0)
    {
        x1=Quadro(a,b,D,0);
        x2=Quadro(a,b,D,1);
        if(((int)x1!=x1)&&((int)x2!=x2)) f1=1; // тут проверять надо оба значения
    }
    D2=Discr(d,e,f);
    if(D2<0)
    {
        printf("Net reshenii!");
        exit(1);
    }
    if(D2==0)
    {
        y1=y2=Quadro(d,e,D2,0);
        printf("\nNe podhodit po usloviyu"); // не подходит, потому что между ними должны лежать другие корни
        exit(1);
    }
    if(D>0)
    {
        y1=Quadro(d,e,D2,0);
        y2=Quadro(d,e,D2,1);
        if(((int)y1!=y1)&&((int)y2!=y2)) f2=1; // анаолгично, но теперь ставим второй флажок
    }
    if(y1>y2)
    {
        float temp=y2;
        y2=y1;
        y1=temp; // теперь в у1 всегда меньший корень
    }
    if((x1>y1)&&(x1<y2)&&(x2>y1)&&(x2<y2)&&(f1)&&(f2)) //все удовлетворяет условию
    s=1;
    printf("%d",s);
}
вот код основной, я его еще доработаю, но вроде должно так работать

Добавлено через 2 минуты
стоп, а!=0
чето я протупил

Добавлено через 37 секунд
и d тоже

Добавлено через 5 минут
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
 
float Discr(float a, float b, float c)
{
    return (float)(b*b-4*a*c);
}
 
float Quadro(float a, float b, float D, int flag)
{
    if(flag==0) return (float)((-b+sqrt(D))/(2*a));
    if(flag==1) return (float)((-b-sqrt(D))/(2*a));
    return 0;
}
 
void main()
{
    float a,b,c,d,e,f,D,D2,x1,x2,y1,y2;
    int s,f1=0,f2=0; //f1,f2 - признаки вещественности корней
    do
    {
        printf("Vvedite a(ne ravnoe 0):");
        scanf("%f",&a);
        if(a==0) printf("\nError! Retry!\n");
    }
    while(a==0);
    printf("\nVvedite b:");
    scanf("%f",&b);
    printf("\nVvedite c:");
    scanf("%f",&c);
    do
    {
        printf("\nVvedite d(ne ravnoe 0):");
        scanf("%f",&d);
        if(d==0) printf("\nError! Retry!\n");
    }
    while(a==0);
    printf("\nVvedite e:");
    scanf("%f",&e);
    printf("\nVvedite f:");
    scanf("%f",&f);
    D=Discr(a,b,c);
    if(D<0)
    {
        printf("D pervogo uravneniya <0; Net reshenii!");
        exit(1);
    }
    if(D==0)
    {
        x1=x2=Quadro(a,b,D,0);
        if((int)x1!=x1) f1=1; //если они вещественные, то ставим флажок, т.к. x1 и х2 равны, то проверять можно только один
    }
    if(D>0)
    {
        x1=Quadro(a,b,D,0);
        x2=Quadro(a,b,D,1);
        if(((int)x1!=x1)&&((int)x2!=x2)) f1=1; // тут проверять надо оба значения
    }
    D2=Discr(d,e,f);
    if(D2<0)
    {
        printf("D vtorogo uravneniya <0; Net reshenii!");
        exit(1);
    }
    if(D2==0)
    {
        y1=y2=Quadro(d,e,D2,0);
        printf("\nNe podhodit po usloviyu"); // не подходит, потому что между ними должны лежать другие корни
        exit(1);
    }
    if(D>0)
    {
        y1=Quadro(d,e,D2,0);
        y2=Quadro(d,e,D2,1);
        if(((int)y1!=y1)&&((int)y2!=y2)) f2=1; // анаолгично, но теперь ставим второй флажок
    }
    if(y1>y2)
    {
        float temp=y2;
        y2=y1;
        y1=temp; // теперь в у1 всегда меньший корень
    }
    if((x1>y1)&&(x1<y2)&&(x2>y1)&&(x2<y2)&&(f1)&&(f2)) //все удовлетворяет условию
    s=1;
    else
    {
        printf("\nUsloviya ne vypolneny!");
        if((x1<y1)||(x1>y2)||(x2<y1)||(x2>y2)) printf("\nKorni pervogo uravneniya ne lezhat mezhdu kornyami vtorogo uravneniya");
        if((!f1)||(!f2)) printf("\nKorni ne veshsestvennye");
    }
    printf("\ns=%d",s);
    getch();
}
вот понормальней, спрашивай, че не понятно?
0
This party getting crazy!
 Аватар для Bloodykeeper
78 / 64 / 1
Регистрация: 22.09.2009
Сообщений: 427
05.03.2010, 20:05  [ТС]
хм...только одно...всё время выдаёт, что д первого уравнения <0 и нет решения..
0
анимешник++
 Аватар для Iworb
95 / 62 / 7
Регистрация: 03.11.2009
Сообщений: 427
05.03.2010, 20:07
пояснения - по-умолчанию корни НЕ вещественные
2 ф-ции - одна считает дискриминант, вторая - корни. Из функции одновременно вернуть 2 корня не получиться. Чтобы посчитать 2 разных значения просто передаем 0 или 1, дабы посчитать 2 разных корня. Если дискриминант равен 0 - не имеет значения, что мы передадим в качестве флага.

Добавлено через 47 секунд
Цитата Сообщение от Bloodykeeper Посмотреть сообщение
хм...только одно...всё время выдаёт, что д первого уравнения <0 и нет решения..
попробуй вбить, допустим a=1
b=8
c=2

(b побольше делай просто)
0
This party getting crazy!
 Аватар для Bloodykeeper
78 / 64 / 1
Регистрация: 22.09.2009
Сообщений: 427
05.03.2010, 20:14  [ТС]
Там наверное небольшая ошибочка, не d первого уравнения, а А первого уравнения. Стоп...Д-дискриминант?? туплю...так и напишу в задаче...а то д не катит..
0
анимешник++
 Аватар для Iworb
95 / 62 / 7
Регистрация: 03.11.2009
Сообщений: 427
05.03.2010, 20:19
Цитата Сообщение от Bloodykeeper Посмотреть сообщение
Там наверное небольшая ошибочка, не d первого уравнения, а А первого уравнения. Стоп...Д-дискриминант?? туплю...так и напишу в задаче...а то д не катит..
Да, Д - дискриминант.
0
This party getting crazy!
 Аватар для Bloodykeeper
78 / 64 / 1
Регистрация: 22.09.2009
Сообщений: 427
05.03.2010, 20:24  [ТС]
скажите ещё пожалуйста, а как можно сделать, чтобы в противоположном случае выводил S=0 а не -834....чёт такое?
0
анимешник++
 Аватар для Iworb
95 / 62 / 7
Регистрация: 03.11.2009
Сообщений: 427
05.03.2010, 20:26
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
 
float Discr(float a, float b, float c)
{
    return (float)(b*b-4*a*c);
}
 
float Quadro(float a, float b, float D, int flag)
{
    if(flag==0) return (float)((-b+sqrt(D))/(2*a));
    if(flag==1) return (float)((-b-sqrt(D))/(2*a));
    return 0;
}
 
void main()
{
    float a,b,c,d,e,f,D,D2,x1,x2,y1,y2;
    int s=0,f1=0,f2=0; //f1,f2 - признаки вещественности корней
    do
    {
        printf("Vvedite a(ne ravnoe 0):");
        scanf("%f",&a);
        if(a==0) printf("\nError! Retry!\n");
    }
    while(a==0);
    printf("\nVvedite b:");
    scanf("%f",&b);
    printf("\nVvedite c:");
    scanf("%f",&c);
    do
    {
        printf("\nVvedite d(ne ravnoe 0):");
        scanf("%f",&d);
        if(d==0) printf("\nError! Retry!\n");
    }
    while(a==0);
    printf("\nVvedite e:");
    scanf("%f",&e);
    printf("\nVvedite f:");
    scanf("%f",&f);
    D=Discr(a,b,c);
    if(D<0)
    {
        printf("D pervogo uravneniya <0; Net reshenii!");
        exit(1);
        getch();
    }
    if(D==0)
    {
        x1=x2=Quadro(a,b,D,0);
        if((int)x1!=x1) f1=1; //если они вещественные, то ставим флажок, т.к. x1 и х2 равны, то проверять можно только один
    }
    if(D>0)
    {
        x1=Quadro(a,b,D,0);
        x2=Quadro(a,b,D,1);
        if(((int)x1!=x1)&&((int)x2!=x2)) f1=1; // тут проверять надо оба значения
    }
    D2=Discr(d,e,f);
    if(D2<0)
    {
        printf("D vtorogo uravneniya <0; Net reshenii!");
        getch();
        exit(1);
    }
    if(D2==0)
    {
        y1=y2=Quadro(d,e,D2,0);
        printf("\nNe podhodit po usloviyu"); // не подходит, потому что между ними должны лежать другие корни
        exit(1);
        getch();
    }
    if(D>0)
    {
        y1=Quadro(d,e,D2,0);
        y2=Quadro(d,e,D2,1);
        if(((int)y1!=y1)&&((int)y2!=y2)) f2=1; // анаолгично, но теперь ставим второй флажок
    }
    if(y1>y2)
    {
        float temp=y2;
        y2=y1;
        y1=temp; // теперь в у1 всегда меньший корень
    }
    printf("\nKorni pervogo uravneniya:\tx1=%f\tx2=%f\nKorni vtorogo uravneniya:\tx1=%f\tx2=%f\n",x1,x2,y1,y2);
    if((x1>y1)&&(x1<y2)&&(x2>y1)&&(x2<y2)&&(f1)&&(f2)) //все удовлетворяет условию
    s=1;
    else
    {
        printf("\nUsloviya ne vypolneny!");
        if((x1<y1)||(x1>y2)||(x2<y1)||(x2>y2)) printf("\nKorni pervogo uravneniya ne lezhat mezhdu kornyami vtorogo uravneniya");
        if((!f1)||(!f2)) printf("\nKorni ne veshsestvennye");
    }
    printf("\ns=%d",s);
    getch();
}
Все, теперь не отвертишься - уже все проверил)))

Добавлено через 1 минуту
Цитата Сообщение от Bloodykeeper Посмотреть сообщение
скажите ещё пожалуйста, а как можно сделать, чтобы в противоположном случае выводил S=0 а не -834....чёт такое?
та запросто - вместо
C++
1
int s,f1=0,f2=0;
поставить
C++
1
int s=0,f1=0,f2=0;
1
0 / 0 / 0
Регистрация: 21.04.2009
Сообщений: 25
08.11.2010, 22:08
Здравствуйте, а нет ни у кого решения квадратного уравнения на си через клиент сервер? Клиент отправляет коэффициенты, а сервер считает и возвращает корни.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.11.2010, 22:08
Помогаю со студенческими работами здесь

Определить, имеют ли уравнения вещественные корни
Даны вещественные числа a,b,c,d,e,f.Переменной s присвоить значение 1, если оба уравнения ax(2)+bx+c=0 и dx(2)+ex+f=0 имеют вещественные...

Определить, имеют ли уравнения вещественные корни
Два квадратных уравнения заданы коэффициентами a1, b1, c1, a2, b2 и c2. Определить, имеют ли уравнения вещественные корни, если да, то...

Даны три квадратных уравнения. Сколько из них имеют вещественные корни
ЗАД№43 8. Даны три квадратных уравнения ах2 + Ьх + с = 0, Ъх2 + ах + с = 0, сх2 + ах + Ъ = 0. Сколько из них имеют вещественные...

Даны 3 квадратных уравнения. Определить, сколько из них имеют вещественные корни
Даны 3 квадратных уровнения ax2+bx + c, bx2+ax + c, cx2+ax+b. Сколько из них имеют вещественные корни.(Определить функцию, позволяющую...

Имеется два квадратных уравнения. Вычислить значение логической переменной t:boolean. True - имеют корни, false - в противном случае
Имеется два квадратных уравнения x2+6.2x+a2=0 и x2+ax+b-1=0. Вычислить значение логической переменной t:boolean. (true, если уравнения...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru