Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C (СИ) 2 программы на Си
Задали 2 задачки сделать на выбор. 1. Программа по дате(дата вводится) определяет день недели на который дата припадает или припадала. Насколько понимаю надо использовать формулу Зеллера, токо не... Вот программа работает, но ошибаеться в дне недели, намучено поидее с вісокосніми годами.... где может біть ошибка #include <stdio.h> #include <conio.h> #include <math.h> void main() { int...
C (СИ) Вопрос: заполнение нулями пропусков в файле Из задания: Структура файла: в первых двух байтах размещается значение типа int, определяющее количество сделанных в файл записей; далее без пропусков размещаются записи. Запись может осуществляться... char zeroes = ""; fwrite(zeroes, 1, n, file); https://www.cyberforum.ru/ c-beginners/ thread211304.html
C (СИ) Переставляя строки заданной матрицы, расположить их в соответствии с убыванием характеристик https://www.cyberforum.ru/ c-beginners/ thread211213.html
Доброго времени суток. Мое задание звучит следующим образом: Дана целочисленная прямоугольная матрица. Характеристикой строки матрицы назовем сумму ее отрицательных четных элементов. Переставляя... люди помогите
Функция в функции. C (СИ)
Доброго времени суток. Помогите пожалуйста в этом прог. коде заменить strlen на свою функцию. #include <stdio.h> #include <math.h> #include <string.h> #include <stdlib.h> char* R(char... size_t my_strlen(const char * p) { size_t len = 0; while (*p++) ++len; return len; }
Исправить код сложения матриц C (СИ)
Здравствуйте. У меня проблема с написанием программы сложение матриц, посмотрите пожалуйста что не так ?? #include <stdio.h> #include <stdlib.h> #include <math.h> #include <conio.h> void... for (i = 0; i < 10; i++) { for (j = 0; j < 10; j++) printf(" %4d", c); putchar('\n'); }
C (СИ) Вывести данные об общем числе студентов, факультетов и кафедр https://www.cyberforum.ru/ c-beginners/ thread211270.html
Здравствуйте. Застряла на лабе: Дана информация о четырех вузах. Структура имеет вид: название вуза, число студентов, количество факультетов, количество кафедр. Вывести данные об общем числе... koshatneg, #include <stdio.h> #include <conio.h> #include <string.h> #define k 4 typedef struct { char name ; int students; int facults;
C (СИ) Отсортировать бинарный файл по возрастанию
Отсортировать бинарный файл по возрастанию. Олимпиада: спортсмен, фамилия, фирма, возраст. Отсортировать по возрастанию. моя структура: #include <conio.h> #include <stdio.h> typedef struct ... Попробовал самостоятельно перевести структуру в бинарный файл. Во, что вышло: #include <conio.h> #include <stdio.h> typedef struct { char fa; char fi; int vo; }...
C (СИ) Требуется сложить два целых числа А и В, не превышающих 10^100 Код: #include <stdio.h> #include <string.h> #include <stdlib.h> main() { int N, l; char str1; char str2; char str3 ; вообще белиберда, зачем читать из файла str1, а потом заменять его числом N, которое имеет неизвестное значение... https://www.cyberforum.ru/ c-beginners/ thread211471.html
C (СИ) фильтрация массива
написала программу фильтрации двумерного массива из файла массив: 10; a; ads; 13.13; 2313; b; dsf; 123.1; и так далее. Компилятор выдает предупреждение:
C (СИ) Замена символов в строке на Си
Дана строка. Группы символов, разделенные пробелами (одним или несколькими) и не содержащие пробелов внутри себя, будем называть словами. В словах, оканчивающихся сочетанием букв ing, заменить это...
C (СИ) Площадь многоугольника Многоугольник на плоскости задан целочисленными координатами своих N вершин в декартовой системе координат. Требуется найти площадь многоугольника. Стороны многоугольника не соприкасаются (за... Чему равно n в файле input.txt? https://www.cyberforum.ru/ c-beginners/ thread211431.html C (СИ) Азбука Морзе #include <stdio.h> #include <conio.h> #include <string.h> //#include <PROCESS.H> main(){ int i; char k,a,z; printf("Vvedit slovo \n"); gets(k); for (i=0; i<strlen(k); i++){ Надо написать азбуку так чтобы слова отображались звуками и просто код выводился...код выводится, но звук идет только один! Помогите сделать правильно со звуком Подымите мне веки! :) У вас нет... https://www.cyberforum.ru/ c-beginners/ thread210968.html
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
15.12.2010, 16:02 0

Выпуклый многоугольник - C (СИ) - Ответ 1204906

15.12.2010, 16:02. Показов 13025. Ответов 4
Метки (Все метки)

Лучший ответ Сообщение было отмечено как решение

Решение

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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
///////////////////////////////////////////////////////////////////////////////////////
//Многоугольник задан координатами своих вершин при их последовательном  обходе. 
//Составить подпрограмму, определяющую, является ли многоугольник выпуклым.
///////////////////////////////////////////////////////////////////////////////////////
#include <algorithm>
#include <complex>
#include <functional>
#include <iostream>
#include <limits>
#include <vector>
///////////////////////////////////////////////////////////////////////////////////////
typedef double                  T_coord;
typedef std::complex<T_coord>   T_vertice;
typedef std::vector<T_vertice>  T_polygon;
typedef std::vector<T_coord>    T_dets;
///////////////////////////////////////////////////////////////////////////////////////
template<class T>
bool  equal_to_for_real(T a, T b)
{
    const T  coef = 10;
    return abs(a - b) < std::numeric_limits<T>::epsilon() * coef;
}
///////////////////////////////////////////////////////////////////////////////////////
template<class T>
bool  greater_for_real(T a, T b) 
{
    return a > b
           && !equal_to_for_real(a, b);
}
///////////////////////////////////////////////////////////////////////////////////////
template<class T>
bool  less_for_real(T a, T b) 
{
    return a < b
           && !equal_to_for_real(a, b);
}
///////////////////////////////////////////////////////////////////////////////////////
template<class T>
bool  greater_equal_for_real(T a, T b) 
{
    return !less_for_real(a, b);
}
///////////////////////////////////////////////////////////////////////////////////////
template<class T>
bool  less_equal_for_real(T a, T b) 
{
    return !greater_for_real(a, b);
}
//////////////////////////////////////////////////////////////////////////////////////
bool operator< (T_vertice  vert_A, T_vertice  vert_B)
{
    return  equal_to_for_real(vert_A.real(), vert_B.real())
                ? less_for_real(vert_A.imag(), vert_B.imag())
                : less_for_real(vert_A.real(), vert_B.real());
}
///////////////////////////////////////////////////////////////////////////////////////
T_coord  det(T_vertice  A, T_vertice  B)
{
    return  A.real() * B.imag() - B.real() * A.imag();
}
///////////////////////////////////////////////////////////////////////////////////////
bool  polygon_is_convex(const T_polygon&  polygon)
{
    //Сдвигаем циклически вершины.
    T_polygon  turned_polygon(polygon);  
    std::rotate(turned_polygon.begin(), turned_polygon.begin() + 1, turned_polygon.end());
 
    //Находим векторы сторон многоугольника. Для этого вычитаем из элемнтов turned_polygon
    //элементы polygon.
    T_polygon  edges;//Первый элемент - сторона 1-2.  
    std::transform(turned_polygon.begin(), turned_polygon.end(), polygon.begin(),
                   std::back_inserter(edges), std::minus<T_vertice>());
 
    //Сдвигаем циклически стороны многоугольника.
    T_polygon  turned_edges(edges);
    std::rotate(turned_edges.begin(), turned_edges.begin() + 1, turned_edges.end());
 
    //Находим определители между соседними сторонами многоугольника.
    T_dets  dets;
    std::transform(edges.begin(), edges.end(), turned_edges.begin(), 
                   std::back_inserter(dets), det);
 
    //Проверяем, что все определители ненулевые и одного знака.
    //---------------------------------------------------------
    //Ищем нулевой элемент.   
    T_dets::const_iterator  zero_it         
        = std::find_if(dets.begin(), dets.end(), 
                       std::bind2nd(std::ptr_fun(equal_to_for_real<T_coord>), 0.0));
 
    if(zero_it != dets.end()) return false;
 
    //Ищем положительный определитель.
    T_dets::const_iterator  positive_it         
        = std::find_if(dets.begin(), dets.end(), 
                       std::bind2nd(std::ptr_fun(greater_for_real<T_coord>), 0.0));
        
    //Ищем отрицательный определитель.
    T_dets::const_iterator  negative_it         
        = std::find_if(dets.begin(), dets.end(), 
                       std::bind2nd(std::ptr_fun(less_for_real<T_coord>), 0.0));  
    
    return    positive_it == dets.end()
           || negative_it == dets.end();
}
///////////////////////////////////////////////////////////////////////////////////////
int main()
{
    std::locale::global(std::locale(""));
    
    int  n = 0;
    do
    {
        std::cout << "Введите число вершин многоугольника >= 1: ";
        std::cin >> n;
    }while(n < 1);
    
    std::cout << "Введите "
              << n
              << " вершин многоугольника последовательно "
              << std::endl
              <<"в порядке обхода границы в любом направлении:"
              << std::endl;
 
    T_polygon       polygon;
 
    while(polygon.size() < static_cast<size_t>(n))
    {
        std::cout << std::endl
                  << "X["
                  << polygon.size() + 1
                  << "] = ";
 
        T_coord  x = 0;
        std::cin >> x;
 
        std::cout << "Y["
                  << polygon.size() + 1
                  << "] = ";
 
        T_coord  y = 0;
        std::cin >> y;
 
        T_vertice  vertice_cur(x, y);    
        polygon.push_back(vertice_cur);    
    }      
 
    std::cout << "Заданный "
              << n
              << "-угольник "
              << (polygon_is_convex(polygon) ? "" : "НЕ ")
              <<"является выпуклым."
              << std::endl; 
}


Вернуться к обсуждению:
Выпуклый многоугольник C (СИ)
4
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.12.2010, 16:02
Готовые ответы и решения:

Выпуклый многоугольник на плоскости
Выпуклый многоугольник на плоскости задан своими вершинами, расположенными в рандомном порядке. Расставить их в порядке обхода часовой...

Царство царя Гороха представляет собой выпуклый N-угольник, внутри которого расположены K селений (с Pascal)
Царство царя Гороха представляет собой выпуклый N-угольник, внутри которого расположены K селений. Царь решил завещать двум своим сыновьям...

Проверить многоугольник на выпуклость
Добрый вечер. Уже какой день и каким способом пытаюсь сделать эту проверку.. Задача элементарная, но, видимо, мозг задерживается на...

4
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.12.2010, 16:02
Помогаю со студенческими работами здесь

Правильный многоугольник в пространстве
Дан массив точек(последовательность точек - последовательность вершин), определить является ли этот многоугольник выпуклым. Точки, как...

Определить, является ли многоугольник выпуклым
Я рандомно указываю координаты n угольника. А в дальнейшем нужно проверить выпуклый ли он. И если нет, то далее продолжить построение...

Построить многоугольник по координатам, считанным из файла
Пользователь вводит в файл 4 пары координат,из этого файла программа считывает из файла данные и строит многоугольник.Помогите это...

Найти контур объединения: минимальный многоугольник, охватывающий все заданные прямоугольники
Помогите ,пожалуйста, написать программу для СИ. Вот формулировка задания: Задано n прямоугольников на плоскости. Найти контур их...

выпуклый многоугольник
Два выпуклых многоугольника заданы на плоскости перечислением координат вершин в порядке обхода границы. Определить площади многоугольников...

0
Новые блоги и статьи
Vue 3: Создаем современное веб-приложение с Composition API
Reangularity 14.03.2025
В фронтенд-разработке Vue 3 выделяется своим прагматичным подходом. В отличие от React с его минималистичной философией "всё — JavaScript" или Angular с его всеобъемлющим корпоративным подходом, Vue. . .
Разработка контекстных меню в iOS
mobDevWorks 14.03.2025
С приходом iOS 13 Apple представила новый API для контекстных меню, который полностью заменил предыдущую технологию 3D Touch peek & pop. Хотя многие разработчики и пользователи испытывают ностальгию. . .
Лучшие практики оптимизации Docker Image
Mr. Docker 13.03.2025
Размер Docker-образа влияет на множество аспектов работы с контейнерами. Чем больше образ, тем дольше его загрузка в реестр и выгрузка из него. Для команд разработки, работающих с CI/ CD пайплайнами,. . .
Вопросы на собеседовании по Docker
Mr. Docker 13.03.2025
Ты сидишь напротив технического специалиста, и вдруг звучит вопрос про Docker Swarm или многоэтапные сборки. Пот на лбу? Не переживай, после этой статьи ты будешь готов ко всему! Эта статья будет. . .
Поиск текста в сносках : замена дефиса на тире или тире на дефис...
РоΜа 13.03.2025
Нужно было найти текст в сносках и заменить. Почему-то метод селекшн не сработал. . . пришлось гуглить. найденный на форумвба код пришлось править. Смысл - заменяет в сносках дефисы и тире на нужные. . . .
Real PATH definitions in bash scripts
jigi33 13.03.2025
Как поймать путь и путь к директории относительно запускаемого файла в BASH 1. поймать путь через вывод $(pwd) 2. более правильно - на основе realpath (см. скриншот)
Django или Flask: что выбрать для веб-разработки на Python
py-thonny 13.03.2025
Django – это высокоуровневый фреймворк, который придерживается философии "всё включено". Он предоставляет разработчику готовые решения для большинства типичных задач веб-разработки: от аутентификации. . .
Непрерывное развертывание в Java с Kubernetes
Javaican 13.03.2025
Чем так привлекателен Kubernetes для развертывания Java-приложений? Этот оркестратор контейнеров позволяет автоматизировать развертывание, масштабирование и управление контейнеризированными. . .
Предотвращение XSS, CSRF и SQL-инъекций в JavaScript
run.dev 13.03.2025
JavaScript занимает первые позиции среди языков веб-разработки, но его распространенность делает его привлекательной целью для злоумышленников. Межсайтовый скриптинг (XSS), межсайтовая подделка. . .
PHP 8: JIT-компиляция и улучшение производительно­сти
Jason-Webb 13.03.2025
PHP никогда не славился своей скоростью. Многие сталкивались с проблемами производительности при работе со сложными вычислениями или обработкой больших объемов данных. Традиционная модель выполнения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru