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

Форум C++

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

 

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

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

тема: Подскажите пожалуйста, где в программе ошибочка (expected ')' before "if")?
 
 автор: Cena   (16.11.2011 в 23:36)   письмо автору
 
 

#include <iostream>
#include <math.h>
using namespace std;
int main()
{double AB,BC,AC,DF,FG,DG,PABC,PDFG,a2,a1,b2,b1,c2,c1,f2,f1,g2,g1,d2,d1;
cout<<"a2=";
cin>>a2;
cout<<"a1=";
cin>>a1;
cout<<"b2=";
cin>>b2;
cout<<"b1=";
cin>>b1;
cout<<"c2=";
cin>>c2;
cout<<"c1=";
cin>>c1;
cout<<"f2=";
cin>>f2;
cout<<"f1=";
cin>>f1;
cout<<"g2=";
cin>>g2;
cout<<"g1=";
cin>>g1;
cout<<"d2=";
cin>>d2;
cout<<"d1=";
cin>>d1;
AB=sqrt(((a2-a1)*(a2-a1))+((b2-b1)*(b2-b1)));
BC-sqrt(((b2-b1)*(b2-b1))+((c2-c1)*(c2-c1)));
AC=sqrt(((d2-d1)*(d2-d1))+((f2-f1)*(f2-f1)));
FG=sqrt(((f2-f1)*(f2-f1))+((g2-g1)*(g2-g1)));
DG=sqrt(((d2-d1)*(d2-d1))+((g2-g1)*(g2-g1)));
PABC=(AB+BC+AC)/2;
PDFG=(DF+FG+DG)/2;
if ((PABC-AB)*(PABC-BC)*(PABC-AC)>0 && ((PDFG-DF)*(PDFG-FG)*(PDFG-DG)>0)
if (PABC>PDFG)
cout<<"2*PABC="<<2*PABC<<"\t 2*PDFG="<<2*PDFG<<"\n";
system("PAUSE");
return EXIT_SUCCESS;
}
38 C:\Dev-Cpp\dev3.cpp expected `)' before "if"

  Ответить  
 
 автор: cheops   (16.11.2011 в 23:39)   письмо автору
 
   для: Cena   (16.11.2011 в 23:36)
 

Вот в этой строке
  if ((PABC-AB)*(PABC-BC)*(PABC-AC)>0 && ((PDFG-DF)*(PDFG-FG)*(PDFG-DG)>0)
лишняя открывающая скобка, её следует переписать следующим образом
  if ((PABC-AB)*(PABC-BC)*(PABC-AC)>0 && (PDFG-DF)*(PDFG-FG)*(PDFG-DG)>0)

  Ответить  
 
 автор: Cena   (16.11.2011 в 23:41)   письмо автору
 
   для: cheops   (16.11.2011 в 23:39)
 

Спасибо

  Ответить  
 
 автор: Cena   (16.11.2011 в 23:54)   письмо автору
 
   для: cheops   (16.11.2011 в 23:39)
 

Что-то не выводит на экран 2*PABC и 2*PDFG, сразу после ввода координат окно закрывается...

  Ответить  
 
 автор: cheops   (17.11.2011 в 00:18)   письмо автору
 
   для: Cena   (16.11.2011 в 23:54)
 

.

  Ответить  
 
 автор: Cena   (17.11.2011 в 00:31)   письмо автору
 
   для: cheops   (17.11.2011 в 00:18)
 

Даны вершины координат треугольника ABC и DFG, тоесть я ввожу координаты a1,a2,b1,b2,c1,c2,d2,d1,f2,f1,g1,g2 а нужно вывести на экран периметр треугольнико ABC и DFG, изначально я считал длины сторон треугольников, их полупериметр ( для доказательства, что они существуют), а потом вывожу их периметры умноженные на 2, т.к я считал полупериметр, а необходимо вывести на экран периметр, программа скомпелирована без ошибок, но получается ввести только координаты вершин и "выпоняемое окно" закрывается...

  Ответить  
 
 автор: cheops   (17.11.2011 в 00:33)   письмо автору
 
   для: Cena   (17.11.2011 в 00:31)
 

Там ошибка времени выполнения возникает, посмотрите сообщение ниже.

  Ответить  
 
 автор: cheops   (17.11.2011 в 00:24)   письмо автору
 
   для: Cena   (16.11.2011 в 23:54)
 

Вот на эту строку обратите внимание, вместо равно = у вас минус -
BC-sqrt(((b2-b1)*(b2-b1))+((c2-c1)*(c2-c1)));
нужно так
BC=sqrt(((b2-b1)*(b2-b1))+((c2-c1)*(c2-c1)));

  Ответить  
 
 автор: Cena   (17.11.2011 в 00:35)   письмо автору
 
   для: cheops   (17.11.2011 в 00:24)
 

Спасибо, исправил эту строку.

  Ответить  
 
 автор: cheops   (17.11.2011 в 00:40)   письмо автору
 
   для: Cena   (17.11.2011 в 00:35)
 

А еще у вас есть переменная DF, которая ничем не проинициализирована - с ней нужно тоже что-то сделать.

  Ответить  
 
 автор: Cena   (17.11.2011 в 00:53)   письмо автору
 
   для: cheops   (17.11.2011 в 00:40)
 

да, спасибо Вам, поспешил и сделал ошибки, но все также осталось неизменным в выполнение программы

  Ответить  
 
 автор: cheops   (17.11.2011 в 00:55)   письмо автору
 
   для: Cena   (17.11.2011 в 00:53)
 

А как сейчас программа выглядит, что с DF (чтобы можно было воспроизвести ситуацию)?

  Ответить  
 
 автор: Cena   (17.11.2011 в 00:58)   письмо автору
 
   для: cheops   (17.11.2011 в 00:55)
 

#include <iostream>
#include <math.h>
using namespace std;
int main()
{double AB,BC,AC,DF,FG,DG,PABC,PDFG,a2,a1,b2,b1,c2,c1,f2,f1,g2,g1,d2,d1;
cout<<"a2=";
cin>>a2;
cout<<"a1=";
cin>>a1;
cout<<"b2=";
cin>>b2;
cout<<"b1=";
cin>>b1;
cout<<"c2=";
cin>>c2;
cout<<"c1=";
cin>>c1;
cout<<"f2=";
cin>>f2;
cout<<"f1=";
cin>>f1;
cout<<"g2=";
cin>>g2;
cout<<"g1=";
cin>>g1;
cout<<"d2=";
cin>>d2;
cout<<"d1=";
cin>>d1;
AB=sqrt(((a2-a1)*(a2-a1))+((b2-b1)*(b2-b1)));
BC=sqrt(((b2-b1)*(b2-b1))+((c2-c1)*(c2-c1)));
AC=sqrt(((a2-a1)*(a2-a1))+((c2-c1)*(c2-c1)));
DF=sqrt(((d2-d1)*(d2-d1))+((f2-f1)*(f2-f1)));
FG=sqrt(((f2-f1)*(f2-f1))+((g2-g1)*(g2-g1)));
DG=sqrt(((d2-d1)*(d2-d1))+((g2-g1)*(g2-g1)));
PABC=(AB+BC+AC)/2;
PDFG=(DF+FG+DG)/2;
if ((PABC-AB)*(PABC-BC)*(PABC-AC)>0 && (PDFG-DF)*(PDFG-FG)*(PDFG-DG)>0)
if (PABC>PDFG)
cout<<"2*PABC="<<2*PABC<<"\t 2*PDFG="<<2*PDFG<<"\n";
system("PAUSE");
return EXIT_SUCCESS;
}
Я забыл посчитать длину стороны DF
DF=sqrt(((d2-d1)*(d2-d1))+((f2-f1)*(f2-f1)));

  Ответить  
 
 автор: cheops   (17.11.2011 в 01:24)   письмо автору
 
   для: Cena   (17.11.2011 в 00:58)
 

Теперь у вас не срабатывает условие
  if (PABC>PDFG)
  cout<<"2*PABC="<<2*PABC<<"\t 2*PDFG="<<2*PDFG<<"\n";
Судя по всему PABC меньше PDFG, поэтому ничего не выводится.

  Ответить  
 
 автор: Cena   (17.11.2011 в 01:33)   письмо автору
 
   для: cheops   (17.11.2011 в 01:24)
 

Спасибо, Вы правы, без этой строчки программа работает if (PABC>PDFG) правильно, в задание было сравнить; периметр какого треугольника больше, но ведь результаты появляются при выполнение, можно ведь и после выполнения сравнить результаты, спасибо Вам!

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

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