В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
Аліномаг
Аліномаг
20.09.2020 06:14 •  Информатика

Нарисуйте следующее действие поворота фигуры.

Показать ответ
Ответ:
moonmyrreg
moonmyrreg
07.06.2021 08:10
Линии пересекаются в точках, где их уравнения при одинаковых аргументах возвращают одинаковые значения. Чтобы определить условия точек пересечения заданных уравнений линий
y=ax^4+bx^3+cx^2+dx+f; \quad y=bx^3+mx^2+dx+p
следует приравнять их правые части и решить полученное уравнение относительно аргумента х.
ax^4+bx^3+cx^2+dx+f=bx^3+mx^2+dx+p; \\ ax^4+cx^2+f=mx^2+p; ax^4+x^2(c-m)+(f-p)=0;
Сделаем подстановку и получим квадратное уравнение:
x^2 \rightarrow t; \quad c-m= \reghtarrow u; \quad f-p= \rightarrow v \quad \Rightarrow \quad at^2+ut+v=0;
Далее находим дискриминант, проверяем его знак, производим ветвление алгоритма в зависимости от результата. При неотрицательных t определяем х, извлекая из t квадратный корень и для каждого х вычисляем у из второго уравнения (оно короче).

var
  a, b, c, d, f, m, p: real;

function y(x: real): real;
begin
  y := b * x * sqr(x) + m * sqr(x) + d * x + p
end;

procedure OutPoint(x: real);
begin
  writeln('Найдена точка пересечения функций (', x, ',', y(x), ')')
end;

procedure TDev(t: real; var np: Boolean);
var
  x: real;
begin
  if t = 0 then begin
    np := false;
    OutPoint(0)
  end
  else if t > 0 then begin
    np := false;
    x := -sqrt(t);
    OutPoint(x);
    x := sqrt(t);
    OutPoint(x)
  end
end;

var
  x1, x2, u, v, t1, t2, Dis: real;
  NoPoints: Boolean;

begin
  writeln('Введите значения переменных a,b,c,d,f,m,p');
  readln(a, c, f, m, p);
  u := c - m;
  v := f - p;
  Dis := sqr(u) - 4 * a * v;
  NoPoints := true;
  if Dis = 0 then begin
    t1 := -u / (2 * a);
    TDev(t1,NoPoints);
     end
  else begin
    t1 := (-u - sqrt(Dis)) / (2 * a);
    TDev(t1,NoPoints);
    t2 := (-u + sqrt(Dis)) / (2 * a);
    TDev(t2,NoPoints);
  end;
  if NoPoints then writeln('Общих точек пересечения нет')
end.

Тестовое решение

Введите значения переменных a,b,c,d,f,m,p
2 3 4 5 6 7 8
Найдена точка пересечения функций (-1.27201964951407,14.0901699437495)
Найдена точка пересечения функций (1.27201964951407,14.0901699437495)

Введите значения переменных a,b,c,d,f,m,p
-3 -5 -3 2 1 4 5
Общих точек пересечения нет
0,0(0 оценок)
Ответ:
Nshok1
Nshok1
24.10.2022 09:06
Var
  f: string := 'output1.txt';
  fo: array of string := ('out1.txt', 'out2.txt', 'out3.txt');
  bools: array [0..2] of boolean;
  a, b: integer;

begin
  System.IO.File.WriteAllText(f, '');
  foreach str: string in fo do
    System.IO.File.WriteAllText(str, '');
  
  readln(a, b);
  for i: integer := a to b do
    System.IO.File.AppendAllText(f, i.toString() + System.Environment.NewLine);
  
  foreach str: string in System.IO.File.ReadAllLines(f) do
  begin
    b := StrToInt(str);
    bools[System.Math.Sign(b) + 1] := true;
    System.IO.File.AppendAllText(fo[System.Math.Sign(b) + 1], b.ToString() + System.Environment.NewLine);
  end;
  
  for i: integer := 0 to 2 do
    if not (bools[i]) then
    begin
      write('В файле с ');
      case i of
        2: write('положительными');
        1: write('нулевыми');
        0: write('отрицательными');
      end;
      writeln(' значениями нет записей');
    end;
end.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота