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

Площадь выпуклого многогранника методом триангуации по формуле Герона - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Структуры. http://www.cyberforum.ru/cpp-beginners/thread87647.html
#include<iostream.h> #include<math.h> #include<conio.h> struct Price { char name; char shop; float cena; } ; const int n=3; void main ( )
C++ строки и предложения Здравствуйте Уважаемые! Можете решить задачки в Си, у меня ни как не получается=-O. Хотя бы одну. Заране благодарен. 1. Даны две фамилии. Определить какая из них длиннее. 2.Дано предложение определить число пробелов в нем. 3. Дано предложение определить количество слов в нем. 4.Даны 2 строки. Вывести все символы встречающиеся в той и в другой строке. 5.Дано предложение. Составить программу... http://www.cyberforum.ru/cpp-beginners/thread87644.html
СТРОКИ C++
Дана строка, содержащая текст, заканчивающийся точкой. Посчитать количество слов, содержащих 4 символа. MS C++ 6.0
Почему файл пустой? C++
Вроде бы делаю всё верно... Объявлен массив структур struct book { int index; char title; char autor; int publdate; int number; } lib ;
C++ массивы http://www.cyberforum.ru/cpp-beginners/thread87634.html
Определите и напечатайте наименьшее и наибольшее значения массива w с 99 элементами с плавающей запятой.
C++ передача двумерных массивов в функцию мне дано такое задание: "Написать функцию сглаживания заданной во входном параметре матрицы. Операция сглаживания матрицы дает новую матрицу того же размера, каждый элемент которой получается как среднее арифметическое соседей соответствующего элемента исходной матрицы." подскажите пожалуста, у кого какие идеи есть, делитесь. может кто уже с таким сталкивался? Мне не понятно, что имелось... подробнее

Показать сообщение отдельно
Reskov
12 / 12 / 1
Регистрация: 14.12.2009
Сообщений: 33
21.01.2010, 17:29     Площадь выпуклого многогранника методом триангуации по формуле Герона
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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
#include <math.h>
#include <fstream.h>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
TPoint *a;//список точек
int n=0;
 
//---------------------------------------------------------------------------
double dist(TPoint a,TPoint b)//растояние  между двумя точками
{
 
return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));
}
//---------------------------------------------------------------------------
double plGeron(TPoint a,TPoint b,TPoint c)//формула герона
{
double p=(dist(a,b)+dist(b,c)+dist(c,a))/2;
return  sqrt(p*(p-dist(a,b))*(p-dist(b,c))*(p-dist(c,a)));
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  if (OpenDialog1->Execute())  //запускаем диалог для выбора файла
     if (FileExists(OpenDialog1->FileName)) { //если норм запустился то проверяем сущ файла
         Memo1->Lines->LoadFromFile(OpenDialog1->FileName); //загружаем в мемо для красоты
     }
 
 
 fstream stream(OpenDialog1->FileName.c_str());//открываем поток для работы с файлом
 stream>>n;//считываем n
 a=new TPoint[n+1];              //создаем массив на n+1 элемент чтобы замкнуть ломаную
  for (int i=0;i<n;i++)
        {
        stream>>a[i].x>>a[i].y; //читаем данные из файла
        }
  a[n]=a[0];  //замыкаем ломаную
 
  TCanvas *canv=Image1->Canvas; //канва где рисуем
  canv->Pen->Color=clBlack;
  Image1->Picture->Bitmap->FreeImage();    //стираем все что было
  canv->MoveTo(a[0].x,a[0].y);       //переходм в первую точку
  canv->Polygon(a,n+1);             //рисуем фигуру
  canv->Pen->Color=clRed;       //красный цвет
    for (int i=2;i<n-1;i++)     //рисуем триангуляцию
        {
         canv->MoveTo(a[0].x,a[0].y);
         canv->LineTo(a[i].x,a[i].y);
         }
  double pl=0;  //наша площадь
        for (int i=1;i<n-1;i++)
        {
         pl+=plGeron(a[0],a[i],a[i+1]);//фиксируем точку a[0] и по ней разбиваем
        }
        ShowMessage("pl="+(String)pl);
}
//---------------------------------------------------------------------------
 
Текущее время: 16:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru