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

Принадлежит ли начало треугольника координатам - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Переставить столбцы в соответствии с возрастанием среднего арифметического по столбцам http://www.cyberforum.ru/cpp-beginners/thread733079.html
Необходимо выполнить следующее: Дана матрица С. Переставить столбцы в соответствии с возрастанием среднего арифметического по столбцам.
C++ Считывание текста из файла и вывод на экран Написать программу, которая считывает текст из файла и выводит на экран только предложения, содержащие введенное с клавиатуры слово. http://www.cyberforum.ru/cpp-beginners/thread733078.html
C++ Определить количество столбцов, не содержащих ни одного нулевого элемента
Дана целочисленная прямоугольная матрица. Определить количество столбцов, не содержащих ни одного нулевого элемента. Характеристикой строки целочисленной матрицы назовем сумму ее положи* тельных четных элементов. Переставляя строки заданной матрицы, расположить их в соответствии с ростом характеристик. Пожалуста помогите написать код программы
В одномерном массиве, состоящем из п вещественных элементов, вычислить: C++
В одномерном массиве, состоящем из п вещественных элементов, вычислить: • сумму положительных элементов массива; • произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами. Упорядочить элементы массива по убыванию. Помогите пожалуста напишите код программы
C++ Расщепление полного пути к файлу на диск, директорий...(неясность в задании) http://www.cyberforum.ru/cpp-beginners/thread733065.html
Доброго времени суток! Не ожидал от препода излишней адекватности,но сейчас я в ступоре... вот текст задания: " Написать функцию pathsplit( char *path, char *split) для расщепления полного пути к файлу на диск, директорий, имя и расширение, которые разместить в динамической памяти ( malloc ), а указатели на них поместить в массив указателей.". Каким образом из функции можно...
C++ Потокозащищённые классы и их интерфейс Доброе время суток, уважаемые форумчане! Насколько я понимаю, если мы говорим, что класс потокозащищён, мы подразумеваем что: 1. В приватной зоне класса есть мьютекс 2. Все интерфейсные функции класса при вызове захватывают мьютекс, а по завершении - освобождают его Это скрывает мьютекс от пользователя. Удобно. Но сегодня я обнаружил вот что: бывают ситуации, когда для объекта необходимо... подробнее

Показать сообщение отдельно
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,416
24.12.2012, 02:58     Принадлежит ли начало треугольника координатам
Ihor3, специально для вас перевел на С свою программу (практически одни вводы/выводы заменил).

Принадлежит ли точка треугольнику (С)
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
#include <stdio.h>
#include <math.h>
 
typedef struct
{
    int x;
    int y;
} Point;
 
int isTriangle(Point *);
int pointInside(Point *, Point);
 
int main()
{
    Point point; /* координаты точки */
    Point vertex[3]; /* координаты вершин */
    int i;
 
    printf("Enter x coord of point: ");
    scanf("%d", &point.x);
    printf("Enter y coord of point: ");
    scanf("%d", &point.y);
    for (i=0; i < 3; i++)
    {
        printf("Enter x coord of %d vertex: ", i + 1);
        scanf("%d", &vertex[i].x);
        printf("Enter y coord of %d vertex: ", i + 1);
        scanf("%d", &vertex[i].y);
    }
 
    if (!isTriangle(vertex)) /* если не треугольник */
        printf("Points don't form a triangle\n");
    else if (pointInside(vertex, point)) /* если треугольник и точка внутри */
        printf("Point inside\n");
    else /* если треугольник и точка снаружи */
        printf("Point outside\n");
 
    return 0;
}
 
int isTriangle(Point *v)
{
    /* рассчитываем стороны */
    double A = sqrt(pow(v[0].x - v[1].x, 2) + pow(v[0].y - v[1].y, 2));
    double B = sqrt(pow(v[1].x - v[2].x, 2) + pow(v[1].y - v[2].y, 2));
    double C = sqrt(pow(v[2].x - v[0].x, 2) + pow(v[2].y - v[0].y, 2));
    /* если одна из сторон больше либо равна двум другим возвращаем ложь */
    if ((A + B <= C) || (A + C <= B) || (B + C <= A))
        return 0;
    else
        return 1;
}
 
int pointInside(Point *v, Point p)
{
    int a = (v[0].x - p.x) * (v[1].y - v[0].y) - (v[1].x - v[0].x) * (v[0].y - p.y);
    int b = (v[1].x - p.x) * (v[2].y - v[1].y) - (v[2].x - v[1].x) * (v[1].y - p.y);
    int c = (v[2].x - p.x) * (v[0].y - v[2].y) - (v[0].x - v[2].x) * (v[2].y - p.y);
    return ((a >= 0 && b >= 0 && c >= 0) || (a <= 0 && b <= 0 && c <= 0));
}
 
Текущее время: 22:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru