Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.10.2010, 12:18   #1
Fantom.as
Пользователь
 
Аватар для Fantom.as
 
Регистрация: 19.04.2010
Сообщений: 62
По умолчанию Вычисление площади пятиугольника по координатам

Вычисление пятиугольника по его координатам...
Вычисляет не правильно, а в чем причина понять не могу...((
Образец пятиугольника прикреплен к сообщению

Код:
#include "stdafx.h"
#include "stdio.h"
#include "conio.h"
#include "math.h"
//Объявление функций
float fDlina (int, int, int, int);
float fGeron(float, float, float);
float fPlatz (float, float, float);

int main(void)
{
int x1,x2,x3,x4,x5,y1,y2,y3,y4,y5;
/*float a,b,c,d,e,f,g,s1,s2,s3;*/
printf("Programma dlya vychisleniya Ploschadi Pyatiugolnika\n"); 
printf("Vvedita koordinaty: \n");
//Ввод координат
printf("x1= "); scanf("%d",&x1); printf("\t y1= "); scanf("%d",&y1); printf("\n");
printf("x2= "); scanf("%d",&x2); printf("\t y2= "); scanf("%d",&y2); printf("\n");
printf("x3= "); scanf("%d",&x3); printf("\t y3= "); scanf("%d",&y3); printf("\n");
printf("x4= "); scanf("%d",&x4); printf("\t y4= "); scanf("%d",&y4); printf("\n");
printf("x5= "); scanf("%d",&x5); printf("\t y5= "); scanf("%d",&y5); printf("\n");
/*a=fDlina(x1,y1,x2,y2);
b=fDlina(x2,y2,x3,y3);
c=fDlina(x3,y3,x4,y4);
d=fDlina(x4,y4,x5,y5);
e=fDlina(x5,y5,x1,y1);
f=fDlina(x1,y1,x3,y3);
g=fDlina(x1,y1,x4,y4);*/
/*s1=fGeron(fDlina(x1,y1,x2,y2),fDli na(x2,y2,x3,y3),fDlina(x1,y1,x3,y3) );
s2=fGeron(fDlina(x1,y1,x3,y3),fDlin a(x3,y3,x4,y4),fDlina(x1,y1,x4,y4)) ;
s3=fGeron(fDlina(x1,y1,x4,y4),fDlin a(x4,y4,x5,y5),fDlina(x5,y5,x1,y1)) ;*/
printf("\nResultat: %4.2f \n",fPlatz(fGeron(fDlina(x1,y1,x2,y 2),
fDlina(x2,y2,x3,y3),fDlina(x1,y1 ,x3,y3)),fGeron(fDlina(x1,y1,x3,y3) ,
fDlina(x3,y3,x4,y4),fDlina(x1,y1,x 4,y4)),fGeron(fDlina(x1,y1,x4,y4),f Dlina(x4,y4,x5,y5),fDlina(x5,y5,x1, y1))));
getch();
return 0;
}

float fDlina (int x1, int y1, int x2, int y2) //вычисление длины стороны треугольника
{	
float dlina, quadroX,quadroY;
quadroX=(x1-x2)^2; // Возведение x1-x2 в квадрат
quadroY=(y1-y2)^2; // Возведение у1-y2 в квадрат
//dlina= quadroX+quadroY;
printf("quadroX = %f, quadroY = %f\n", quadroX,quadroY);
dlina= sqrt(quadroX+quadroY);
printf("dlina= %4.2f\n",dlina);
return dlina;
}

float fGeron(float a, float b, float c) //Вычисление площади треугольника по формуле Герона
{
float pl,p;
p=(a+b+c)/2; //Вычисление полупериметра треугольника
printf(" p = %f\n",p);
pl=sqrt(p*(p-a)*(p-b)*(p-c)); //Вычисление площади треугольника
printf("ploschad treugolnika = %4.2f\n",pl);
return pl;
}
float fPlatz (float s1, float s2, float s3) //Вычисление площади пятиугольника
{
float s;
s= s1+s2+s3;
printf("ploschad pyatiugolnika = %4.2f \n",s);
return s;
}
Изображения
Тип файла: jpg pyatiugolnik.jpg (3.9 Кб, 116 просмотров)
<--<--<--Нажми на весы слева <---<---<---

Последний раз редактировалось Stilet; 10.10.2010 в 13:02.
Fantom.as вне форума Ответить с цитированием
Старый 09.10.2010, 12:28   #2
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Код:
quadroX=(x1-x2)^2;
Кто ж так квадрат-то вычисляет??...
^ - это, между прочим, битовый оператор "исключающего или".
Пишите лучше
Код:
quadroX=(x1-x2)*(x1-x2);
Хотя можно и воспользоваться функцией pow, но возводить целые числа в квадрат с ее помощью - это стрельба из пушки по воробьям.
И вообще, как-то у вас все сложно. Воспользуйтесь лучше формулой через векторное произведение.
Вот тут есть описание с кодом: площадь семиугольника. Там все гораздо проще.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 10.10.2010, 10:44   #3
Fantom.as
Пользователь
 
Аватар для Fantom.as
 
Регистрация: 19.04.2010
Сообщений: 62
По умолчанию

Я в С/С++ пишу с сентября...
<--<--<--Нажми на весы слева <---<---<---
Fantom.as вне форума Ответить с цитированием
Старый 10.10.2010, 11:45   #4
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Цитата:
Я в С/С++ пишу с сентября...
А я с августа.Но понимаю ещё меньше чем вы.
_-Re@l-_ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рисование пятиугольника zverozavr Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 29 11.11.2012 03:40
Нахождение площади пятиугольника в Visual C++ 2010 Fantom.as Помощь студентам 0 06.10.2010 20:34
Вычисление площади треугольника Nyuta555 Помощь студентам 10 07.10.2009 16:32
Паскаль Вычисление площади Unikummm Помощь студентам 16 04.02.2009 06:52