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

Площадь многоугольника - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ приоритет. странно http://www.cyberforum.ru/cpp-beginners/thread635171.html
привет всем прогерам С++ =) есть такой вопрос. Вроде ни чего сложного, но компилятор компилит это дело не так как ожидается. Есть такое предложение. IN = *block++ << 8; если указатель block ссылается на начало массива M M = {1,2,3,4,5,6,7,8,9,10}; То по таблице приоритетов сначала выполнится ++ затем * после << и только в конце будет =. В IN должно оказаться число 512:ireful:, НОоо...
C++ Перегрузка бинарной операции < Всем привет написал перегрузку для структуры: typedef struct t_FileInfo { t_String file_name; /*имя файла*/ t_String file_way; /*адрес к файлу*/ /*конструктор с параметрами*/ t_FileInfo(t_String fn = (""), t_String fw = ("")) : http://www.cyberforum.ru/cpp-beginners/thread635163.html
C++ Не инициализируется переменная
Проблема в том, что строка номер 18 полностью игнорируется, почему - вообще не понимаю. Значение i остается абракадаброй или нулем, если заранее проинициализировать переменную. #include "std_lib_facilities.h" int main() { setlocale(LC_CTYPE,"RUS"); setlocale( LC_ALL,"" ); vector<double>numbers; //вектор, куда будут добавляться числа, по мере набора их пользователем
C++ Советы
Привет всем! Я начинающий программист (и довольно молодой :D), и недавно написал "игру" как бы с помощью "классов", по типу tic-tac-toe, и мне хотелось бы выслушать мнение по коду профессиональных и опытных программистов, и, так сказать, вытащить на путь истинный, заранее спасибо за советы :) Содержимое: main.cpp #include "Game.h" int main() { // Регистрируем объект Game game(4); //...
C++ Переделать код с С на С++ http://www.cyberforum.ru/cpp-beginners/thread635094.html
Здравствуйте! Помогите перевести код с С на С++. Нужно использовать STL vector. Спасибо! #include <stdio.h> #include <stdlib.h> __int64 cmp(const void *a, const void *b) { __int64 *pa = (__int64 *)a, *pb = (__int64 *)b; return *(__int64 *)pa - *(__int64 *)pb; }
C++ Удаление слова введенного пользователем Здраствуйте.Я новичек в программирование так что нужна помощь. Вводится строка, позьзователь вводит слово которое нужно удалить,вывести полученную строку. подробнее

Показать сообщение отдельно
Динар19
0 / 0 / 0
Регистрация: 21.07.2012
Сообщений: 13
09.08.2012, 13:24     Площадь многоугольника
Необходимо вычислить площади двух многоугольников(ну а в дальнейшем проверить, лежит ли один из них в другом, пока мне это не надо) по известным вершинам. У меня получилось вот это."Это" не работает.Где ошибки? Заранее спасибо

#include<iostream>
#include<cstdlib>
#include<cmath>
using namespace std;
float Ploshad(float x[],float y[], const int n);
int main(){
int i,n1,n2;
cout<<"Vvedite kolichectvo uglov 1 mnogouglnika="<<n1;
cout<<"Vvedite kolichectvo uglov 2 mnogouglnika="<<n2;
float x1[n1+1],y1[n1+1],x2[n2+1],y2[n2+1];
cout<<"Vvedite koordinaty vershin 1 mnogouglnika=";
cout<<"Vvedite koordinaty vershin 2 mnogouglnika=";
// вводим координаты вершин 1 многоугольника
for(i=1;i<=n1;i++){
cout<<"x1["<<i<<"]="; cin>>x1[i]; cout<<" ";
cout<<"y1["<<i<<"]="; cin>>y1[i]; cout<<endl;};
x1[n1+1]=x1[1];
y1[n1+1]=y1[1];
// вводим координаты вершин 1 многоугольника
for(i=1;i<=n2;i++){
cout<<"x2["<<i<<"]="; cin>>x2[i]; cout<<" ";
cout<<"y2["<<i<<"]="; cin>>y2[i]; cout<<endl;};
x2[n2+1]=x2[1];
y2[n2+1]=y2[1];
float s1,s2;
s1=Ploshad(x1,y1,n1+1);
cout<<"S1="<<s1;
s2=Ploshad(x2,y2,n2+1);
cout<<"S2="<<s2;
return(0);};

float Ploshad(float x[],float y[], const int n){
int min=1,max=1,i;
// находим крайние вершины по оси 0х
for(int i=0;i<=n;i++){
if (x[min]<x[i]) min=i;
if (x[max]>x[1]) max=i;};
float s1=0, s2=0,s=0;
// площадь многоугольника, разбивая на трапеции ( 2 случая)
if (max>min) {
i=min; while(i<max){s1=s1+(y[i+1]+y[i])*(x[i+1]-x[i])/2;i++;};
i=max; while(i<n+1){s2=s2+(y[i+1]+y[i])*(x[i+1]-x[i])/2;i++;};
i=1; while(i<min){s2=s2+(y[i+1]+y[i])*(x[i+1]-x[i])/2;i++;};
}
else {
i=max; while(i<min) {s1=s1+(y[i+1]+y[i])*(x[i+1]-x[i])/2;i++;};
i=min; while(i<n+1) {s2=s2+(y[i+1]+y[i])*(x[i+1]-x[i])/2;i++;};
i=1; while(i<max) {s2=s2+(y[i+1]+y[i])*(x[i+1]-x[i])/2;i++;};};
s=abs(s1-s2);
return(s);};
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 21:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru