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

Разработать программу на языке программирования turbo pascal: определить, на сколько отличается количество положительных от количества отрицательных значений функции y=(e^(-3x)-x)cos x/3 на интервале изменения аргумента от x_n до x_k с шагом h. ,

Показать ответ
Ответ:
Мировец2003
Мировец2003
06.12.2022 04:28

#include <iostream>

#include <iterator>

#include <vector>

 

using namespace std;

 

int main() {

 int n = 5;

 int m = 6;

 

 vector<vector<int>> a(n, vector<int>(m));

 

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

   for (int j = 0; j < m; ++j)

     cin >> a[i][j];

 }

 

 vector<double> ans(m);

 

 for (int i = 0, q = 0; i < m; ++i, ++q) {

   int sum = 0;

   int cnt = 0;

 

   for (int j = 0; j < n; ++j) {

     if (a[j][i] < 0) {

       sum += a[j][i];

       ++cnt;

     }

   }

 

   if (sum)

     ans[q] = sum / (double)cnt;

 }

 

 copy(ans.cbegin(), ans.cend(), ostream_iterator<double>(cout, " "));

}

0,0(0 оценок)
Ответ:
VaReNiK37
VaReNiK37
16.11.2022 15:22
Уравнение прямой

Общее уравнение прямой: Ax + By + C = 0

Мы знаем координаты двух точек, лежащих на прямой. Обозначим их как (x_1; y_1) и (x_2;y_2). Тогда:

A=y_2-y_1\\B=x_1-x_2\\C=y_1x_2-x_1y_2


Решение

Мы знаем координаты точек многоугольника.

Для каждого ребра (пары соседних точек) мы должны проверить, чтобы все остальные точки находились по одну сторону от прямой, которой принадлежит эта пара точек.

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

Оказывается, смотреть все точки необязательно! Нам нужно проверить каждое ребро, чтобы сказать ответ. Поэтому, нам достаточно смотреть лишь положение двух соседних с этим ребром точек относительно ребра.

Итого, мы должны для каждого ребра убедиться, что две соседних с этим ребром точки лежат по одну сторону от ребра. Вот и всё.


Код

#include <bits/stdc++.h>


using namespace std;


 

int main() {


 int n;


 cin >> n;


 long double x[n+2];


 long double y[n+2];


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


   cin >> x[i] >> y[i];


 }


 x[n] = x[0];


 y[n] = y[0];


 x[n+1] = x[1];


 y[n+1] = y[1];


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


   long double a = y[i+1] - y[i];


   long double b = x[i] - x[i+1];


   long double c = y[i] * x[i+1] - x[i]*y[i+1];


   if ((a*x[i-1]+b*y[i-1]+c)*(a*x[i+2]+b*y[i+2]+c) < 0) {


     cout << "NO" << endl;


     return 0;


   }


 }


 cout << "YES" << endl;


 return 0;


}

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