Форум программистов
 
Расширенный поиск
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Excel VBA, CAD, Софт, ОС, Windows, Ubuntu, Android, VPS
Win Api, Assembler, C++, Java, Pascal, Lazarus, Delphi, OpenGL, DirectX
C#, Qt, .NET, ASP.NET, Windows Forms, ADO.NET, Framework, WPF, UWP, WinRT, XAML
HTML, CSS, JavaScript, Ajax, PHP, Perl, Python, Ruby, SQL, WordPress, API, XML, JSON, ActionScript, Flash

Ответ
 
Опции темы
Старый 19.12.2016, 06:53   #51
jura_k
неформал
Форумчанин
 
Аватар для jura_k
 
Регистрация: 09.05.2015
Сообщений: 251
Репутация: 31
По умолчанию

В очередной раз решил все те же задачи из задачника. Новая редакция.
В этой программе сгруппированы задачи, которым для работы нужно либо 6 чисел, либо одно рациональное число.

Код:

/*   p11
     Язык Turbo C 2.0
     Основы программирования
     Переменные: int - 6, float - 1   */

/*   1 - 21k, 2 - 22k, 3 - 23k, 5 - 24k   */

#include <conio.h>
#include <math.h>
#include <stdio.h>

float p (int, int, int, int);    /*   расстояние между двумя точками на плоскости   */
float q (float, float, float);   /*   формула Герона   */


main ()
{
   int a, b, c, d, e, f;   /*   исходные данные   */
   float g;                /*   исходные данные   */
   float j, k, l, m;
   int s, t, u, v;

   printf ("Введите шесть целых чисел: ");
   scanf ("%i%i%i%i%i%i", &a, &b, &c, &d, &e, &f);
   printf ("Введите рациональное число: ");
   scanf ("%f", &g);

   /*   11.1.1.   */

   printf ("1. %i / %i / (%i / %i) = %i / %i.\n", a, b, c, d, a * d, b * c);

   /*   21.1.6. Даны декартовы координаты трех вершин треугольника на
   плоскости. Составить алгоритм определения площади треугольника.   */

   j = p (a, b, c, d);
   k = p (a, b, e, f);
   l = p (c, d, e, f);
   m = q (j, k, l);
   printf ("2. Площадь треугольника %.4g.\n", m);

   /*   21.2.7. Дана скорость ракеты при выходе за пределы атмосферы Земли.
   Составить алгоритм определения того, как будет двигаться ракета после
   выключения двигателей. (Напомним величины трех космических скоростей:
   7,5 км/с; 11,2 км/с; 16,4 км/с.)   */

   printf ("3. ");
   if (g < 7.5)  printf ("Ракета упадет на Землю.\n");
   else if (g == 7.5)  printf ("Ракета будет двигаться по круговой орбите вокруг Земли.\n");
      else if (g < 11.2)  printf ("Ракета будет двигаться вокруг Земли по эллипсу.\n");
	 else if (g == 11.2)  printf ("Ракета улетит от Земли по параболе.\n");
	    else if (g < 16.4)  printf ("Ракета будет двигаться вокруг Солнца по эллипсу.\n");
	       else if (g == 16.4)  printf ("Ракета улетит от Солнца по параболе.\n");
		  else printf ("Ракета улетит от Солнца по гиперболе.\n");

   /*   64.2.28. В следующем фрагменте программы вычисляется сумма конечного
   числа членов гармонического ряда
   1 + 1 / 2 + 1 / 3 + ... + 1 / i + ...
   Суммирование прекращается, когда очередное слагаемое становится меньше
   epsilon или целая переменная i достигает значения maxint.   */

   j = 0;
   s = 1;
   while (1)
   {
      k = 1. / s;
      if (k < g)  break;
      j += k;
      if (s == 32767)  break;
      s++;
   }

   printf ("4. Сумма гармонического ряда равна %.4g.\n", j);

   /*   68.4.32. Вычислить сумму квадратов всех целых чисел, попадающих в
   интервал (ln x, exp x).   */

   j = g > 0 ? g : 1;
   k = log (j);
   l = exp (j);
   s = k;
   if (s <= k)  s++;
   t = l;
   if (t == l)  t--;
   u = 0;
   for (v = s; v < t + 1; v++)  u += v * v;
   printf ("5. Сумма квадратов целых чисел %i.\n", u);

   getch ();
   printf ("\n");
}


float p (int a, int b, int c, int d)
{
   int e;

   e = (a - c) * (a - c) + (b - d) * (b - d);
   if (e < 0)  e = 0;
   return sqrt (e);
}

float q (float a, float b, float c)
{
   float d, e;

   d = (a + b + c) / 2;
   e = d * (d - a) * (d - b) * (d - c);
   if (e < 0)  e = 0;
   return sqrt (e);
}

__________________
Мой рабочий стол: sf.uploads.ru/HK58m.png
jura_k вне форума   Ответить с цитированием
Старый 20.12.2016, 06:21   #52
jura_k
неформал
Форумчанин
 
Аватар для jura_k
 
Регистрация: 09.05.2015
Сообщений: 251
Репутация: 31
По умолчанию

А в этой программе нужно вводить только три целых числа.
Код:

/*   p13
     Язык Turbo C 2.0
     Основы программирования
     Переменные: int - 3   */

/*   1 - 22k, 3 - 23k, 7 - 25k, 14 - 26k, 18 - 27k   */

#include <conio.h>
#include <math.h>
#include <stdio.h>


d ();   /*   Нет решений.   */
e ();   /*   Решение - любое число.   */
f (float);   /*   Один корень.   */
g (float, float);   /*   Два корня.   */
h (float, float, float);   /*   Три корня.   */
i (float, float, float, float);   /*   Четыре корня.   */


main ()
{
   int a, b, c;   /*   исходные данные   */
   int j, k;      /*   натуральные числа   */
   int l, m, n, o;
   float p, q;

   printf ("Введите три целых числа: ");
   scanf ("%i%i%i", &a, &b, &c);

   /*   13.1.2. Составить алгоритм решения квадратного уравнения
   ax^2 + bx + c = 0.   */

   j = b * b - 4 * a * c;
   printf ("1. ");
   if (a == 0)
      if (b == 0)
	 if (c == 0) e (); else d ();
      else
	 f ((float) -c / b);
   else
      if (j < 0)
	 d ();
      else
	 if (j == 0)
	    f (-b / 2. / a);
	 else
	    g ((-b - sqrt (j)) / 2 / a, (-b + sqrt (j)) / 2 / a);

   /*   16.1.3. Вычислить n!   */

   j = 1;
   for (k = 1; k < a; k++)  j *= k + 1;
   printf ("2. %i! = %i.\n", a, j);

   /*   18.1.4. Даны два натуральных числа M и N. Вычислить их наибольший
   общий делитель НОД (M, N).   */

   j = a;
   k = b;
   if (j < 0) j = -j;
   if (k < 0) k = -k;
   if (j == 0) j = 1;
   if (k == 0) k = 1;
   l = j;
   m = k;
   while (l - m)  if (l > m)  l -= m;  else  m -= l;
   printf ("3. НОД (%i, %i) = %i.\n", a, b, l);

   /*   19.1.5. Составить алгоритм вычисления степенной функции с целым
   показателем y = x ^ k, где k - целое число.   */

   l = 1;
   for (m = 0; m < k; m++)  l *= a;
   printf ("4. %i ^ %i = ", a, b);
   if (a == 0)
      printf ("0.\n");
   else
      if (b == 0)
	 printf ("1.\n");
      else
	 if (b > 0)
	    printf ("%i.\n", l);
	 else
	    if (l == 0)
	       printf ("0.\n");
	    else
	       printf ("%.4g.\n", 1. / l);

   /*   21.3.8. Даны три положительных числа. Составить алгоритм,
   определяющий, могут ли они быть длинами сторон треугольника.   */

   if (a > 0  &&  b > 0  &&  c > 0  &&  a + b > c  &&  a + c > b  &&  b + c > a)
      printf ("5. Числа могут быть длинами сторон треугольника.\n");
   else
      printf ("5. Числа не могут быть длинами сторон треугольника.\n");

   /*   21.4.9. Пусть компьютер способен выполнять только две арифметические
   операции - сложение и вычитание. Составить алгоритмы:
   а) умножения двух целых чисел;
   б) целочисленного деления двух чисел;
   в) получения остатка от целочисленного деления двух чисел.   */

   l = 0;
   for (m = 0; m < j; m++)  l += k;
   printf ("6. %i * %i = %i, ", j, k, l);
   l = 0;
   m = j;
   while (m >= k) {m -= k; l++;}
   printf ("%i / %i = %i, %i %% %i = %i.\n", j, k, l, j, k, m);

   /*   21.5.10. Построить алгоритм решения биквадратного уравнения,
   используя как вспомогательный алгоритм решения квадратного уравнения.   */

   l = b * b - 4 * a * c;
   printf ("7. ");
   if (a == 0)
      if (b == 0)
	 if (c == 0) e (); else d ();
      else
      {
	 p = (float) -c / b;
	 if (p < 0)
	    d ();
	 else
	    if (p == 0)
	       f (0);
	    else
	       g (-sqrt (p), sqrt (p));
      }
   else
      if (l < 0)
	 d ();
      else
	 if (l == 0)
	 {
	    p = -b / 2. / a;
	    if (p < 0)
	       d ();
	    else
	       if (p == 0)
		  f (0);
	       else
		  g (-sqrt (p), sqrt (p));
	 }
	 else
	 {
	    p = (-b - sqrt (l)) / 2 / a;
	    q = (-b + sqrt (l)) / 2 / a;
	    if (p < 0)
	       if (q < 0)
		  d ();
	       else
		  if (q == 0)
		     f (0);
		  else
		     g (-sqrt (q), sqrt (q));
	    else
	       if (p == 0)
		  if (q < 0)
		     f (0);
		  else
		     h (-sqrt (q), 0, sqrt (q));
	       else
		  if (q < 0)
		     g (-sqrt (p), sqrt (p));
		  else
		     if (q == 0)
			h (-sqrt (p), 0, sqrt (p));
		     else
			i (-sqrt (q), -sqrt (p), sqrt (p), sqrt (q));
	 }

   /*   21.6.11. Составить алгоритм нахождения НОД трех натуральных чисел,
   используя вспомогательный алгоритм нахождения НОД двух чисел.   */

   l = c;
   if (l < 0) l = -l;
   if (l == 0) l = 1;
   m = j;
   n = k;
   while (m - n)  if (m > n)  m -= n;  else  n -= m;
   n = l;
   while (m - n)  if (m > n)  m -= n;  else  n -= m;
   printf ("8. НОД (%i, %i, %i) = %i.\n", a, b, c, m);

   /*   33.1.12.   */

   l = a;
   if (l < b)  l = b;
   if (l < c)  l = c;
   printf ("9. max (%i, %i, %i) = %i.\n", a, b, c, l);

   /*   48.9.21. Присвоить целой переменной h значение цифры, стоящей в
   разряде сотен в записи положительного целого числа k (например, если
   k = 28796, то h = 7).   */

   printf ("10. Число сотен равно %i.\n", a % 1000 / 100);

   /*   48.10.22. Целой переменной S присвоить значение суммы цифр
   трехзначного целого числа k.   */

   l = a % 1000;
   m = l / 100 + l / 10 % 10 + l % 10;
   printf ("11. Сумма цифр равна %i.\n", m);

   /*   63.1.27. По длинам трех сторон треугольника a, b, c вычислить его
   площадь.   */

   p = (a + b + c) / 2.;
   q = p * (p - a) * (p - b) * (p - c);
   if (q < 0)  q = 0;
   printf ("12. Площадь треугольника %.4g.\n", sqrt (q));

   /*   65.1.29. Вычислить сумму целых чисел от M до N путем прямого
   суммирования.   */

   l = 0;
   m = a;
   while (1)
   {
      if (m > b)  break;
      l += m;
      if (m == 32767)  break;
      m++;
   }

   printf ("13. Сумма чисел от %i до %i равна %i.\n", a, b, l);

   /*   68.6.34.   */

   printf ("\nx\tsin x\t cosx\n");
   printf ("-----------------------\n");
   for (l = 0; l < 11; l++)
   {
      p = l / 10.;
      printf ("%-.4g\t%-.4f\t %-.4g\n", p, sin (p), cos (p));
   }

   printf ("-----------------------\n\n");

   /*   68.7.35. Напечатать в возрастающем порядке все трехзначные числа, в
   десятичной записи которых нет одинаковых цифр.   */

   for (l = 1; l < 10; l++)
      for (m = 0; m < 10; m++)
	 for (n = 0; n < 10; n++)
	    if (l - m  &&  m - n  &&  l - n)  printf ("%i%i%i  ", l, m, n);

   /*   68.8.36. Дано целое n > 2. Напечатать все простые числа из диапазона
   [2, n].   */

   printf ("\n\n16. Простые числа: ");
   for (l = 2; l <= a; l++)
   {
      m = sqrt (l);
      n = 0;
      for (o = 2; o < m + 1; o++)  if (l % o == 0)  n = 1;
      if (n == 0)  printf ("%i  ", l);
      if (l > 32766)  break;
   }

   /*   70.1.37. С помощью приведенной программы определите на вашем
   компьютере величину машинного epsilon.   */

   p = 1;
   while (1 + p > 1)  p /= 2;
   printf ("\n\n17. Машинный эпсилон %.4g.\n", p);

   /*   71.6.41. Проведите эксперимент на исследование целочисленного
   переполнения, т.е. установите, что происходит с целой переменной, когда
   ее значение превышает maxint.   */

   l = 32766;
   printf ("18. Целочисленное переполнение: %i - %u, ", l, l);
   l++;
   printf ("%i - %u, ", l, l);
   l++;
   printf ("%i - %u,\n", l, l);
   l++;
   printf ("%i - %u.\n", l, l);


   getch ();
   printf ("\n");
}


d () {printf ("Решений нет.\n");}
e () {printf ("Решение - любое число.\n");}
f (float a) {printf ("x = %.4g.\n", a);}
g (float a, float b) {printf ("x1 = %.4g, x2 = %.4g.\n", a, b);}
h (float a, float b, float c) {printf ("x1 = %.4g, x2 = %.4g, x3 = %.4g.\n", a, b, c);}
i (float a, float b, float c, float d) {printf ("x1 = %.4g, x2 = %.4g, x3 = %.4g, x4 = %.4g.\n", a, b, c, d);}
/* */

__________________
Мой рабочий стол: sf.uploads.ru/HK58m.png
jura_k вне форума   Ответить с цитированием
Старый 01.01.2017, 13:55   #53
jura_k
неформал
Форумчанин
 
Аватар для jura_k
 
Регистрация: 09.05.2015
Сообщений: 251
Репутация: 31
По умолчанию

Готовый результат.

__________________
Мой рабочий стол: sf.uploads.ru/HK58m.png
jura_k вне форума   Ответить с цитированием
Старый 14.01.2017, 08:49   #54
jura_k
неформал
Форумчанин
 
Аватар для jura_k
 
Регистрация: 09.05.2015
Сообщений: 251
Репутация: 31
По умолчанию

Продолжение того же самого.
Скачать всё:
https://yadi.sk/d/wVfCy0pJ38tAsS



__________________
Мой рабочий стол: sf.uploads.ru/HK58m.png
jura_k вне форума   Ответить с цитированием
Старый 23.01.2017, 18:22   #55
jura_k
неформал
Форумчанин
 
Аватар для jura_k
 
Регистрация: 09.05.2015
Сообщений: 251
Репутация: 31
По умолчанию

Первую книжку отложил, перешёл ко второй. Правда, я по ней уже всё делал и резльтат сюда выкладывал, но решил сделать ещё раз, хотя и другим способом.
До конца не получилось. Надоело. Уж больно примитивно всё это. В какой-то момент остановился; то, что сделал, выкладываю сюда.
Книга напоминает не учебник, а справочник по темам. А оно мне зачем? Я учиться хочу.
Так же и в C++. Пытался выучить, но это не учебник, а справочник.

Код:

/*   p42
      Язык Turbo C 2.0
      Начальный курс C и C++   */

/*   1 - 19k, 2 - 20k, 3 - 21k, 5 - 22k, 12 - 23k   */

#include <conio.h>
#include <stdio.h>


j ();
k ();
l ();
m (float);
n (int);

float p (float);

char v;


main ()
{
   int a, b;			/*   исходные данные	*/
   float d;			/*   исходные данные	*/
   float g = 3.1415926;	/*   число пи		*/
   float h, i;
   unsigned s;
   char y [80];
   int aa, ab;

   printf ("? (1-3) ");
   scanf ("%i", &a);
   if (a == 1)  goto aaa;
   if (a == 2)  goto aab;
   if (a == 3)  goto aac;
   printf ("\n");
   return;

 
aaa:
   a = 1996;
   printf ("1. Сейчас %i год.\n", a);

   printf ("4. ");
   j ();
   k ();
   l ();

   d = 5;
   printf ("5. ");
   m (d);

   printf ("6. Длина окружности радиуса %.4g равна %.4g.\n", d, p (d));

   printf ("7. ");
   for (a = 10; a > 0; a--)  printf ("%i ", a);
   printf ("Старт!\n");

   s = 60000;
   a = s;
   printf ("8. a = %i, s = %u.\n", a, s);

   v = 'c';
   printf ("10. %c", v);
   v = '+';
   printf ("%c%c.\n", v, v);

   aa = 5;
   ab = 60;
   aa++;
   ++ab;
   printf ("14. aa = %i, ab = %i.\n", aa, ab);
   printf ("aa = %i, ab = %i.\n", aa++, ++ab);

   aa = 101 <= 105;
   ab = 101 > 105;
   printf ("15. True - %i, false - %i.\n", aa, ab);

   goto aad;

 
aab:
   printf ("Введите два целых числа: ");
   scanf ("%i%i", &a, &b);
   printf ("Введите вещественное число: ");
   scanf ("%f", &d);
   printf ("Введите символ: ");
   scanf ("%c", &v);
   scanf ("%c", &v);
   printf ("Введите строку: ");
   gets (y);
   gets (y);

   h = g * 2 * a;
   printf ("2. Радиус %i, длина окружности %.4g.\n", a, h);

   h = g * 2 * d;
   i = g * d * d;
   printf ("3. Радиус %.4g, длина окружности %.4g, площадь круга %.4g.\n", d, h, i);

   printf ("9. ");
   n (a);

   printf ("12. Я знаю ваше имя; ваше имя %s.\n", y);

   aa = b ? b : 1;
   printf ("13. Целая часть %i, остаток от деления %i.\n", a / aa, a % aa);

   printf ("16. ");
   if (d > 0)
   {
      aa = 1;
      printf ("Число %.4g положительное, aa = %i.\n", d, aa);
   }

   if (d == 0)
   {
      aa = 0;
      printf ("Число %.4g равно нулю, aa = %i.\n", d, aa);
   }

   if (d < 0)
   {
      aa = -1;
      printf ("Число %.4g отрицательное, aa = %i.\n", d, aa);
   }

   goto aad;


aac:
   printf ("11. Нажмите какую-либо клавишу: ");
   v = getche ();
   if (v == 'a')  printf ("\nВы нажали клавишу 'a'.");
   printf ("\nВы нажали клавишу '%c'.\n", v);

aad:
   getch ();
   printf ("\n");
}


j () {printf ("Вызвали первую функцию.\n");}
k () {printf ("Вызвали вторую функцию.\n");}
l () {printf ("Вызвали третью функцию.\n");}

m (float a)
{
   printf ("Длина окружности радиуса %.4g равна %.4g.\n", a, 3.1415926 * 2 * a);
}

n (int a)
{
   int b;

   if (a > 200)  a = 200;
   for (b = 0; b < a; b++)  printf ("%c", v);
   printf ("\n");
}

float p (float a) {return 3.1415926 * 2 * a;}

__________________
Мой рабочий стол: sf.uploads.ru/HK58m.png
jura_k вне форума   Ответить с цитированием
Старый 23.01.2017, 19:01   #56
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 13,149
Репутация: 2564

icq: 512-7шесть5
skype: alexp.frl
По умолчанию

Цитата:
Сообщение от jura_k Посмотреть сообщение
А оно мне зачем? Я учиться хочу.
Так же и в C++. Пытался выучить
Учиться чему?
Пока вы учитесь только читать учебники по основам и решать задачи из них.

Так не получиться далеко продвинуться в изучении чего-либо, нужна практика и решение более реальных задач, цель и т.п.
Alex11223 на форуме   Ответить с цитированием
Старый 23.01.2017, 19:18   #57
jura_k
неформал
Форумчанин
 
Аватар для jura_k
 
Регистрация: 09.05.2015
Сообщений: 251
Репутация: 31
По умолчанию

Цель пока что - освоить те книги, которые есть.
Цитата:
"Отечество славлю, которое есть.
Но трижды - которое будет!"
То есть дочитать их до конца. Знаю как, осталось только сделать.
Хотя вот по задачнику вопросы есть. В начале я знаю, как задачи решать, а вот до конца ещё не добрался... А там, например, "базы данных" есть...

Вот эти книги, недочитаные, я их не совсем оставляю. Потом продолжу. Но на другом языке программирования, скорее всего.
Сейчас у меня на примете три учебника по Visual Basic 6.0. Вот наиграюсь в компьютерные игры, а потом начну... их штудировать...
__________________
Мой рабочий стол: sf.uploads.ru/HK58m.png
jura_k вне форума   Ответить с цитированием
Старый 23.01.2017, 20:03   #58
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 13,149
Репутация: 2564

icq: 512-7шесть5
skype: alexp.frl
По умолчанию

Унылая цель какая-то. Изучение ради изучения.
Alex11223 на форуме   Ответить с цитированием
Старый 23.01.2017, 20:36   #59
jura_k
неформал
Форумчанин
 
Аватар для jura_k
 
Регистрация: 09.05.2015
Сообщений: 251
Репутация: 31
По умолчанию

Я тут уже говорил выше в теме: надо же мозги чем-то загрузить.
Кроме того, я мечтал программировать ещё со школы и с десятилетиями становлюсь всё ближе и ближе к реализации своего хотения.
__________________
Мой рабочий стол: sf.uploads.ru/HK58m.png
jura_k вне форума   Ответить с цитированием
Старый 23.01.2017, 21:14   #60
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 13,149
Репутация: 2564

icq: 512-7шесть5
skype: alexp.frl
По умолчанию

Причем тут это?

Я о том, что учиться можно эффективно или неэффективно.
Неэффективно — 10 лет решать задачи из учебника по ЯП и заниматься изучением ради изучения.
Эффективно — поставить какую-то цель (найти работу, реализовать какой-то конкретный интересный проект, ...) и двигаться к ней.

Видел довольно много людей, которые за несколько лет (1-3) получили базовые/фундаментальные знания, нашли работу и продолжили дальше развиваться без десятилетного страдания над учебником ЯП.

Да и ЯП это ж только один из инструментов, с одним только ЯП мало что сделать можно, кроме него есть куча других вещей.


Ну и это не только к программированию относится, а много к чему. Например языки (английский, японский) никто ж (успешно) не изучает заучивая 10 лет учебник грамматики и словарь. Обычно после изучения основ начинают поглощать какой-то интересный контент (тексты, статьи, книги, фильмы, игры, ...), общаться (что особенно просто имея интернет) и т.п.

Последний раз редактировалось Alex11223; 23.01.2017 в 21:17.
Alex11223 на форуме   Ответить с цитированием
Ответ



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C под DOS jura_k Общие вопросы C/C++ 26 01.08.2015 10:03
Из Dos под Win Nozema Фриланс 3 30.10.2009 18:34
C++ под DOS. Функции Xeon332 Общие вопросы C/C++ 34 29.11.2008 19:01
borland C++под DOS Xeon332 Помощь студентам 9 20.09.2008 20:50




21:24.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru