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

Программа должна находить площадь произвольного многоугольника - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Что означает сточка? http://www.cyberforum.ru/cpp-beginners/thread1065411.html
Объясните пожалуйста, что означает эта строчка...желательно с точностью до каждого слова))) Спасибо заранее)) Typedef double* stdcall (*CreateVectorType)(int rows);
C++ Создать структуру Треугольник. Фунциональность: периметр, площадь Здравствуйте, уважаемые!!! Уже третий день :wall: бьюсь над решением задачи. Задача следующая: создать программу вычисляющую через функции площадь и периметр треугольника с помощью параметров вершин вводимых с клавиатуры. Необходимо также применение структуры Треугольник. Вот что у меня примерно получилось: #include <iostream> using namespace std; #include "Triangle.h" struct Point { http://www.cyberforum.ru/cpp-beginners/thread1065398.html
C++ Интегрирование 3-оного итеграла
Добрый вечер. Посмотрите пожалуйста, правильно ли я описал область куда падает точка, потому что с ответом расходится. Метод монте-карло! Вот само задание: #include <stdio.h>; #include <math.h>
C++ Тайлинг в SDL2.0
Привет, не могу разобраться с примером тайлинга в SDL есть некий lazy.map его содержимое: 00 01 02 00 01 02 00 01 02 00 01 02 00 01 02 00 01 02 00 01 02 00 01 02 00 01 02 00 01 02 00 01 02 00 11 04 04 04 04 04 04 04 04 04 04 05 01 02 00 01 10 03 03 03 03 03 03 03 03 03 03 06 02 00 01 02 10 03 08 08 08 08 08 08 08 03 03 06 00 01 02 00 10 06 00 01 02 00 01 02 00 10 03 06 01 02 00 01...
C++ Создать новый массив, найти наименьший элемент 3-го столбца, поменять местами наименьший элемент 3-го столбца и элемент a23 http://www.cyberforum.ru/cpp-beginners/thread1065384.html
1 Создать новый одномерный массив , каждый элемент которого равен среднему арифметическому элементов соответствующей строки данной матрицы. 2 Найти наименьший элемент 3-го столбца. 3 Поменять местами наименьший элемент 3-го столбца и элемент a23. Вот моя программа // ConsoleApplication1.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <iostream>...
C++ не могу разобраться рекурсией) Напишите программу, которая запрашивает число и показатель степени. Напишите рекурсивную функцию, которая возводит число в степень путем многократного умножения числа на самое себя, т.е. если число равно 2, а показатель степени равен 4, то эта функция должна возвратить число 16. #include <iostream> using namespace std; unsigned int myFunc(unsigned int x,unsigned int y); int main() { подробнее

Показать сообщение отдельно
-Arabella-
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 232
24.01.2014, 23:58  [ТС]     Программа должна находить площадь произвольного многоугольника
alsav22,
C++ (Qt)
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
#include<stdio.h>
#include<math.h>
float** create_xy(int n)
{
float** xy=new float*[n];
for(int i=0;i<n;i++)
xy[i]=new float[2];
return xy;
}
 
 
void Line(float x1,float y1,float x2,float y2, float x3, float y3, float x4, float y4,float *x, float *y)
{
float A1,A2,B1,B2,C1,C2;
A1=y3-y1;A2=y4-y2;
B1=x1-x3;B2=x2-x4;
C1=x3*y1-x1*y3;
C2=x4*y2-x2*y4;
*x=(B1*C2-B2*C1)/(A1*B2-A2*B1);
*y=(C1*A2-C2*A1)/(A1*B2-A2*B1);
}
 
 
 
int Proverka(float x1,float y1,float x2,float y2, float x3, float y3, float x4, float y4, float x, float y)
{
float maxx,maxy,minx,miny;
maxx=x1;
maxy=y1;
minx=x1;
miny=y1;
 
if(x2>x1 && x2>x3 && x2>x4)
maxx=x2;
else minx=x2;
if(x3>x1 && x3>x2 && x3>x4)
maxx=x3;
else minx=x3;
if(x4>x1 && x4>x3 && x4>x2)
maxx=x4;
else minx=x4;
if(y2>y1 && y2>y3 && y2>y4)
maxy=y2;
else miny=y2;
if(y4>y1 && y4>y3 && y4>y2)
maxy=y4;
else miny=y4;
if(y3>y1 && y3>y2 && y3>y4)
maxy=y3;
else miny=y3;
 
 
 
if(x>minx && x<maxx && y>miny && y<maxy)
return 1;
else return 0;
}
 
 
 
 
 
 
 
void massive(float** xy,int n)
{
 
printf("Vvedite koordinaty vershin:\n");
 
for(int k=0; k<n; k++)
{
   scanf("%f",&xy[k][0]);
   scanf("%f",&xy[k][1]);
 
printf("Koordinats: x[%d] = %5.2f;  y[%d] = %5.2f \n",k+1, xy[k][0], k+1, xy[k][1]);
}
}
 
void main()
{
 
int n,k,i;
float S,S2,x,y,j;
float S1=0;
 
printf("Vvedi kollichestvo vershin = ");
scanf("%d",&n);
 
float** xy;
xy=create_xy(n);
massive(xy,n);
 
for(j=0;j<n;j++)
Line(xy[j][0],xy[j][1],xy[j+1][0],xy[j+1][1],xy[j+2][0],xy[j+2][1],xy[j+3][0],xy[j+3][1],&x,&y);
 
 
for(k=0;k+3<n;k++)
 
if(Proverka(xy[k][0],xy[k][1],xy[k+1][0],xy[k+1][1],xy[k+2][0],xy[k+2][1],xy[k+3][0],xy[k+3][1],x,y)==1)
{
if(Proverka(xy[n-3][0],xy[n-3][1],xy[n-2][0],xy[n-2][1],xy[n-1][0],xy[n-1][1],xy[0][0],xy[0][1],x,y)==1)
 
for(i=0;i+1<n;i++)
{
S1=S1+((xy[i][0]-xy[i+1][0])*(xy[i][1]+xy[i+1][1]));
}
S2=S1+(xy[n-1][0]-xy[0][0])*(xy[n-1][1]+xy[0][1]);
S=0.5*abs(S2);
printf("S mnogougolnika = %5.2f ",S);
}
else printf("Oshibka v vode koordinats");
}
 
Текущее время: 18:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru