Форум программистов, компьютерный форум CyberForum.ru

Простая геометрия - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вывод вычисления произведения http://www.cyberforum.ru/cpp-beginners/thread898493.html
Есть цикл, в котором при помощи cout выводятся номера элементов массива, как вывести вычисления произведений?#include <iostream> using namespace std; int main() { int a; int res = 1; for (int i = 0; i < 10000; i+=3) { res *= a;
C++ удалить из текста слова которые содержат цифры Нужно написать программу, в которой пользователь вводит текст, а из него удаляются слова которые содержат цифры. Например: дано: "ма2ма мила раму7 дома"; а выйти должно :"мила дома". Но для решения нельзя использовать библиотеку string.h Только через char. И размер массива char (даной стрроки) не должен быть константой и нельзя его вводить с клавиатуры. Также под переменную char (которая содержит... http://www.cyberforum.ru/cpp-beginners/thread898492.html
Эквивалентность формул. По таблице истинности C++
Помогите написать программу доказывающую эквивалентность формул по таблице истинности
Перевод секунд в часы,минуты и секунды C++
Тока начинаю изучать С++ по Лафоре, дошел до функций и не получается построить простенькую функцию. Нужно составить две, одна которая принимает структурную переменную time и выдает число секунд, а вторая принимает число секунд и выдает структурную переменную типа time. С первой я разобрался, а вот адекватно построить вторую чет не получается.Компилятор выдает что в ходе построения произошла...
C++ STL. Создать объект-контейнер stack и заполнить его данными типа double http://www.cyberforum.ru/cpp-beginners/thread898482.html
Задание: 1. Создать объект-контейнер и заполнить его данными, тип которых определяется вариантом задания. 2. Посмотреть контейнер. 3. Изменить контейнер, удалив из него одни элементы и заменив другими. 4. Посмотреть контейнер, используя для доступа к его элементам итераторы. 5. Создать второй контейнер этого же класса и заполнить его данными того же типа, что и первый контейнер. 6. Изменить...
C++ программы написанные на Code blocks не открываются на visual studio что делать? подробнее

Показать сообщение отдельно
Ternsip
660 / 188 / 6
Регистрация: 10.05.2012
Сообщений: 595
12.06.2013, 18:44  [ТС]
Уии!! Народ, почти запилил из 70 тестов проходит 68
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <vector>
#include <algorithm>
#include <cmath>
#include <string>
#include <bitset>
 
using namespace std;
 
double px, py;
const double eps = 1e-8;
 
bool intersect(double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4) {
    if (abs((y2 - y1) * (x3 - x4) + (y4 - y3) * (x2 - x1)) <= eps)
        return false;
    double k = ((x4 - x3) * (y1 - y3) + (y4 - y3) * (x3 - x1)) / ((x2 - x1) * (y4 - y3) + (y1 - y2) * (x4 - x3));
    px = x1 + k * (x2-x1);
    py = y1 + k * (y2-y1);
    return (px >= min(x1, x2) && px <= max(x1, x2) && py >= min(y1, y2) && py <= max(y1, y2));
}
 
 
double arr(vector <double> & x, vector <double> & y) {
    double ans = 0;
    for (int i = 0; i < x.size() - 1; ++i) 
        ans += (x[i+1] - x[i]) * (y[i+1] + y[i]);
    return abs(ans) / 2.0;
}
 
int main() {
    freopen ("input.txt", "rt", stdin);
    freopen ("output.txt", "wt", stdout);
    int n;
    scanf("%d", &n);
    vector <double> x(n+1), y(n+1);
    double x1, y1, x2, y2;
    for (int i = 0; i < n; i++)
        scanf("%lf%lf", &x[i], &y[i]);
    x[n] = x[0];
    y[n] = y[0];
    double total = arr(x, y);
    scanf("%lf%lf%lf%lf", &x1, &y1, &x2, &y2);
    vector <double> normx, normy;
    bool flag = true;
    for (int i = 0; i < n; ++i) {
        if (flag) {
            normx.push_back(x[i]);
            normy.push_back(y[i]);
        }
        if (intersect(x[i], y[i], x[i + 1], y[i + 1], x1, y1, x2, y2)) {
            if ((abs(px - normx[normx.size()-1]) <= eps && abs(py - normy[normy.size()-1]) <= eps))
                continue;
            normx.push_back(px);
            normy.push_back(py);
            flag = !flag;
        }
    }
    normx.push_back(normx[0]);
    normy.push_back(normy[0]);
    double s1 = arr(normx, normy);
    printf("%.15lf %.15lf", max(s1, total - s1), min(s1, total - s1));
    return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru