rusnazasly
16.05.2020 23:48

Задание 4 (4 уровень). Даны два числа а и b. Напишите программу для вычисления среднего арифметического данных чисел.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Alina104969
01.09.2020 21:27

Эти прямые, записанные как функции f(x):

f1(x) = ax + b

f2(x) = cx + d

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

ax + b = cx + d

ax - cx = d - b

(a - c)*x = d - b

x = (d - b) / (a - c)

Так находится координата икс точки пересечения. Далее находится игрек простой подстановкой найденного значения икс в любую из двух исходных функций (пускай в первую функцию).

Также, возможны частные случаи, которые надо предусмотреть в программе:

1) Если a = c но b ≠ d. Такие прямые параллельны друг другу, и не имеют точек пересечения. При попытке решения уравнения (см.выше) иксы сократятся, и получится всегда (при любом икс) неверное равенство вида 0 = b - d.

2)  Если a = c и b = d. То есть, были введены одинаковые уравнения прямых (задана дважды одна и та же прямая, т.е. все точки этих уравнений совпадают). При попытке решения уравнения (см.выше) иксы сократятся, и b, d -тоже, и получится всегда (при любом икс) верное равенство вида 0 = 0.

Сама программа (на Паскале):

var

x, y, a, b, c, d: real;

begin

Writeln('Ввод коэффициентов уравнений двух прямых:');

Write('a= ');

Read(a);

Write('b= ');

Read(b);

Write('c= ');

Read(c);

Write('d= ');

Read(d);

if a = c then

begin

if b = d then

Writeln('Задана дважды одна и та же прямая. Все точки совпадают.')

else

Writeln('Заданы параллельные прямые. Точек пересечения нет.');

exit

end;

x := (d - b) / (a - c);

y := a * x + b;

Writeln('Координаты точки пересечения прямых:');

Writeln('x= ', x);

Writeln('y= ', y);

end.

0,0(0 оценок)
Ответ:
Katriysha
30.08.2020 12:34

Ах ты ж мелкий, сам КБО написать не можешь?) - это приговор.

Объяснение:

#include <bits/stdc++.h>

 

using namespace std;

 

int cnt[30], kol;

 

string s;

 

bool check (int mid) {

 int x[30]{}, y = 0;

 for (int i = 0; i < mid; i++) {

   x[s[i] - 'a' + 1]++;

   if (x[s[i] - 'a' + 1] == 1)

     y++;

 }

 int l, r = mid - 1;

 for (l = 0; r < s.size();) {

   if (y == kol)

     return true;

   if (x[s[l] - 'a' + 1] == 1)

     y--;

   x[s[l] - 'a' + 1]--;

   l++;

   r++;

   if (x[s[r] - 'a' + 1] == 0)

     y++;

   x[s[r] - 'a' + 1]++;

 }

 return false;

}

 

int main()

{

 ios::sync_with_stdio(0);

 cin.tie(0);

 cin >> s;

 for (auto it : s)

   cnt[it - 'a' + 1]++;

 for (int i = 1; i <= 26; i++) {

   if (cnt[i] > 0)

     kol++;

 }

 int l = 0, r = s.size();

 while (r - l > 1) {

   int mid = l + (r - l) / 2;

   if (check (mid))

     r = mid;

   else

     l = mid;

 }

 cout << r;

}

0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота