Форум: Форум C++Разное
Новые темы: 00
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: в чем ошибки?
 
 автор: Иван314   (15.09.2010 в 18:22)   письмо автору
 
 

Я новичок и мне нужно написать программу для нахождения площади триугольника зная координаты его точек.
// 1.cpp: нахождение плащади триугольника по координатам его точек.
//

#include <iostream>
#include <math>
using namespace std;

void main (void) {
double x1, x2, x3, y1, y2, y3, S;
cout << endl << " Введите координаты первой точки по оси икс" << endl;
cin >> x1;
cout << endl << " Введите координаты первой точки по оси игрик" << endl;
cin >> y1;
cout << endl << " Введите координаты второй точки по оси икс" << endl;
cin >> x2;
cout << endl << " Введите координаты второй точки по оси игрик" << endl;
cin >> y2;
cout<<endl<< " Введите координаты третьей точки по оси икс" << endl;
cin >> x3;
cout << endl << " Введите координаты третьей точки по оси игрик" << endl;
cin >> y3;
x1 = sqrt (( x2 - x1 ) * ( x2 - x1 ) + ( y2 - y1 ) * ( y2 - y1 ));
x2 = sqrt (( x3 - x2 ) * ( x3 - x2 ) + ( y3 - y2 ) * ( y3 - y2 ));
x1 = sqrt (( x1 - x3 ) * ( x1 - x3 ) + ( y1 - y3 ) * ( y1 - y3 ));
S = sqrt ( (x1 + x2 + x3)/2 * ((x1 + x2 + x3)/2 - x1) * ((x1 + x2 + x3)/2 - x1) * ((x1 + x2 + x3)/2) - x3));
cout << " Плащадь триугольника равна " << S << endl;
cout<<" \n\tBYE ! ";
getch();
}
Что не так?

  Ответить  
 
 автор: .....   (17.09.2010 в 02:30)
 
   для: Иван314   (15.09.2010 в 18:22)
 

>x1 = sqrt (( x2 - x1 ) * ( x2 - x1 ) + ( y2 - y1 ) * ( y2 - y1 ));
x2 = sqrt (( x3 - x2 ) * ( x3 - x2 ) + ( y3 - y2 ) * ( y3 - y2 ));
x1 = sqrt (( x1 - x3 ) * ( x1 - x3 ) + ( y1 - y3 ) * ( y1 - y3 ));


Это я так понял вычисление длинн сторон ?
тогда нужны хотя-бы одна переменная.

первая строка перезаписала x1 которая должна использоваться неизменённой в третьей строке.
......... (вторая может перезаписать x2)
......... (третья может перезаписать x3, но почему-то почему-то снова x1 )

в четвёртой строке всё было-бы аккуратнее, если-бы сделать ещё переменную
вместо (x1 + x2 + x3)/2

  Ответить  
 
 автор: .....   (17.09.2010 в 02:34)
 
   для: .....   (17.09.2010 в 02:30)
 

> аккуратнее, если-бы сделать ещё переменную

y1, y2, y3 :)

  Ответить  
 
 автор: .....   (17.09.2010 в 02:40)
 
   для: .....   (17.09.2010 в 02:34)
 

и не соображу нужно-ли здесь abs() , не решал ещё такие задачки

  Ответить  
 
 автор: Иван314   (18.09.2010 в 11:32)   письмо автору
 
   для: .....   (17.09.2010 в 02:40)
 

спасибо всем... про длины сторон правда... мог бы сам догадаться... сейчас исправлю.

  Ответить  
 
 автор: Иван314   (18.09.2010 в 20:54)   письмо автору
 
   для: Иван314   (18.09.2010 в 11:32)
 

изменил... теперь все вот так (но все равно ничерта... после ввода переменных весь текст просто черный... а я то знаю, что должен быть синий)
// 1.cpp: нахождение плащади триугольника по координатам его точек.
//

#include <iostream>
#include <math>
using namespace std;

void main (void){
double x1, x2, x3, y1, y2, y3, L1, L2, L3, S;
cout << endl << " Введите координаты первой точки по оси икс" << endl;
cin >> x1;
cout << endl << " Введите координаты первой точки по оси игрик" << endl;
cin >> y1;
cout << endl << " Введите координаты второй точки по оси икс" << endl;
cin >> x2;
cout << endl << " Введите координаты второй точки по оси игрик" << endl;
cin >> y2;
cout << endl<< " Введите координаты третьей точки по оси икс" << endl;
cin >> x3;
cout << endl << " Введите координаты третьей точки по оси игрик" << endl;
cin >> y3;
L1 = sqrt (( x2 - x1 ) * ( x2 - x1 ) + ( y2 - y1 ) * ( y2 - y1 ));
L2 = sqrt (( x3 - x2 ) * ( x3 - x2 ) + ( y3 - y2 ) * ( y3 - y2 ));
L3 = sqrt (( x1 - x3 ) * ( x1 - x3 ) + ( y1 - y3 ) * ( y1 - y3 ));
S = sqrt ( (L1 + L2 + L3)/2 * ((L1 + L2 + L3)/2 - L1) * ((L1 + L2 + L3)/2 - L1) * ((L1 + L2 + L3)/2) - L3));
cout << " Плащадь триугольника равна " << S << endl;
cout<<" \n\tBYE ! ";
getch();
}

  Ответить  
 
 автор: Иван314   (20.09.2010 в 23:09)   письмо автору
 
   для: Иван314   (18.09.2010 в 20:54)
 

Ребят.. пожалуйста... подскажите, в чем ошибка... вот понятия не имею в чем.

  Ответить  
 
 автор: Miha_drinking_bout   (21.09.2010 в 14:52)   письмо автору
 
   для: Иван314   (20.09.2010 в 23:09)
 

В этой строке лишняя скобочка была:
S = sqrt ((L1 + L2 + L3)/2 * ((L1 + L2 + L3)/2 - L1) * ((L1 + L2 + L3)/2 - L1) * ((L1 + L2 + L3)/2) - L3);

Компилил в DevCPP работает нормально запускал из консоли. Ничего в алгоритме работы не менял:
#include <iostream>
#include <math.h>

using namespace std;

main()
{
double x1, x2, x3, y1, y2, y3, L1, L2, L3, S;
cout << endl << "1X" << endl;
cin >> x1;
cout << endl << "1Y" << endl;
cin >> y1;
cout << endl << "2X" << endl;
cin >> x2;
cout << endl << "2Y" << endl;
cin >> y2;
cout << endl<< "3X" << endl;
cin >> x3;
cout << endl << "3Y" << endl;
cin >> y3;
L1 = sqrt (( x2 - x1 ) * ( x2 - x1 ) + ( y2 - y1 ) * ( y2 - y1 ));
L2 = sqrt (( x3 - x2 ) * ( x3 - x2 ) + ( y3 - y2 ) * ( y3 - y2 ));
L3 = sqrt (( x1 - x3 ) * ( x1 - x3 ) + ( y1 - y3 ) * ( y1 - y3 ));
S = sqrt ((L1 + L2 + L3)/2 * ((L1 + L2 + L3)/2 - L1) * ((L1 + L2 + L3)/2 - L1) * ((L1 + L2 + L3)/2) - L3);
cout << " Ploshad treugolnika " << S << endl;

}

  Ответить  
 
 автор: Иван314   (21.09.2010 в 19:40)   письмо автору
 
   для: Miha_drinking_bout   (21.09.2010 в 14:52)
 

спасибо... попробую так...
хотя все равно что то не работает...

  Ответить  
 
 автор: Иван314   (22.09.2010 в 20:41)   письмо автору
 
   для: Иван314   (21.09.2010 в 19:40)
 

огромное спасибо всем... там осталось только написать войд и скобки и все заработало.

  Ответить  
 
 автор: Miha_drinking_bout   (24.09.2010 в 15:06)   письмо автору
 
   для: Иван314   (22.09.2010 в 20:41)
 

Извини, вот это упустил. Я в DevCpp компилил, мне эта среда нравится больше да и cl.exe из визуал студии 2008 нормально переваривает исходники потом. Борландом наверное пользуешься?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования