Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
2 / 2 / 0
Регистрация: 20.09.2015
Сообщений: 41
1

Неверно считывается условие

17.10.2015, 13:26. Показов 1038. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Собственно программа, вычисляющая суммарную площадь множества четырёхугольников(заданных через 4 точки) внутри окружности с заданным радиусом и центром в точке начала координат.
Проблема в следующем: программа абсолютно неадекватно реагирует на ограничитель координат в виде R. В чём может быть проблема?
Заранее спасибо.
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
#include <iostream>
#include <cmath>
using namespace std;
void main ()
{float R=15,
xa[5]= {2,3,22,45,11},
ya[5]= {3,3,12,7,14},
xb[5]= {10,5,1,4,5},
yb[5]= {3,10,9,3,13},
xc[5]= {5,4,23,3,5},
yc[5]= {8,14,43,11,3},
xd[5]= {3,11,23,42,2},
yd[5]= {8,8,3,11,43},
    Sall=0,Summ=0,s1=0,s2=0, p1=0,p2=0,a,b,c,d,e;
int i;
for(i=0;i<5;i++)
{ 
if (xa[i]<R,xb[i]<R,xc[i]<R,xd[i]<R,ya[i]<R,yb[i]<R,yc[i]<R,yd[i]<R) 
{
a=sqrt(pow((xd[i]-xc[i]),2)+pow((yd[i]-yc[i]),2));
b=sqrt(pow((xc[i]-xb[i]),2)+pow((yc[i]-yb[i]),2));
c=sqrt(pow((xd[i]-xb[i]),2)+pow((yd[i]-yb[i]),2));
d=sqrt(pow((xb[i]-xa[i]),2)+pow((yb[i]-ya[i]),2));
e=sqrt(pow((xd[i]-xa[i]),2)+pow((yd[i]-ya[i]),2));
p1=(a+b+c)/2;
s1=sqrt(p1*(p1-a)*(p1-b)*(p1-c));
p2=(c+d+e)/2;
s2=sqrt(p2*(p2-c)*(p2-d)*(p2-e));
Summ=s1+s2;
}
else {Summ=0;}
Sall += Summ;
 
cout<<Summ<<"    ";
}
cout<<Sall<<endl;
system ("pause");
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.10.2015, 13:26
Ответы с готовыми решениями:

Массив считывается неверно
Скажите, пожалуйста, почему неправильно считывает? Ввожу: 1 2 3 4 5 2 3 5 6 7 1 3 4 5 3 4 3 6...

Запись в файл не происходит, информация считывается неверно (найти и исправить ошибки в коде)
Здравствуйте. Программа скомпилировалась, запускается, но плохо работает. Файл открывается, данные...

Почему условный оператор даже, если условие неверно, выдает истину?
void change() { int tmp = 0; do { tmp = 0; cout &lt;&lt; &quot;Napishite Nazvanie, Regisera...

Неверно преобразовываю ряд, или же неверно записываю его в код
Задание:Для заданного с консоли значения n определить сумму числового ряда: s=\sum...

10
599 / 237 / 69
Регистрация: 08.08.2015
Сообщений: 1,637
17.10.2015, 13:27 2
Цитата Сообщение от БРОНЕТАПОК Посмотреть сообщение
xa[i]<R,xb[i]<R,xc[i]<R,xd[i]<R,ya[i]<R,yb[i]<R,yc[i]<R,yd[i]<R
Что по вашему должен сделать компилятор?
0
2 / 2 / 0
Регистрация: 20.09.2015
Сообщений: 41
17.10.2015, 13:32  [ТС] 3
Mesteriis, проверить что все координаты точек меньше радиуса и перейти к вычислению площади четырёхугольника. В противном случае приравнять его площадь к нулю. Ниже это указанно
C++
1
else {Summ=0;}
0
599 / 237 / 69
Регистрация: 08.08.2015
Сообщений: 1,637
17.10.2015, 13:37 4
БРОНЕТАПОК, ну это ты так думаешь, что делает компилятор,
xa[i]<R проверяет и выкидывает результат,
xb[i]<R проверяет и выкидывает результат,
ну и так далее, если вы хотите для каждого выражения пройти условие то пишите отдельную конструкцию связанную или нет, уже сами решайте (сори сейчас не хочу вчитываться в само задание)
Сейчас же он смотрит на первое сравнение и запускает по нему код, если вы хотите что бы при соблюдении всех сравнений запускался код то ставьте битовое "и".
Как то так! не переписываю код потому что, постарайтесь сами понять, тогда в последующем не будет таких вопросов.
1
Эксперт PHP
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
17.10.2015, 13:40 5
Лучший ответ Сообщение было отмечено БРОНЕТАПОК как решение

Решение

БРОНЕТАПОК, запятая не то же самое, что &&.

Добавлено через 1 минуту
Цитата Сообщение от Mesteriis Посмотреть сообщение
битовое "и"
зачем битовое? Разве логического не будет достаточно?
2
599 / 237 / 69
Регистрация: 08.08.2015
Сообщений: 1,637
17.10.2015, 13:44 6
Цитата Сообщение от Kerry_Jr Посмотреть сообщение
Сообщение от Mesteriis
битовое "и"
зачем битовое? Разве логического не будет достаточно?
Можно и так, просто привык я к ним вот и вырвалось)
0
2 / 2 / 0
Регистрация: 20.09.2015
Сообщений: 41
17.10.2015, 13:45  [ТС] 7
Mesteriis, Kerry_Jr, Благодарю! Все понял, раньше просто не сталкивался ещё с множественным условием в С++.
0
Модератор
Эксперт CЭксперт С++
5284 / 2371 / 342
Регистрация: 20.02.2013
Сообщений: 5,770
Записей в блоге: 20
17.10.2015, 13:53 8
Цитата Сообщение от Mesteriis Посмотреть сообщение
только не
Цитата Сообщение от Kerry_Jr Посмотреть сообщение
&&
а "&"
Логическое "и" - это именно &&
1
599 / 237 / 69
Регистрация: 08.08.2015
Сообщений: 1,637
17.10.2015, 13:54 9
gru74ik,

Не по теме:

Да я поправил))) ступил, сори

0
Модератор
Эксперт CЭксперт С++
5284 / 2371 / 342
Регистрация: 20.02.2013
Сообщений: 5,770
Записей в блоге: 20
17.10.2015, 13:59 10
И в условии if тут уместно именно логическое "и", то есть && (если необходимо, чтобы отработали все условия), либо логическое "или", то есть || (если необходимо, чтобы отработало хотя бы одно условие из перечисленных).
1
2 / 2 / 0
Регистрация: 20.09.2015
Сообщений: 41
17.10.2015, 18:55  [ТС] 11
gru74ik, Спасибо за расширение занинй
0
17.10.2015, 18:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.10.2015, 18:55
Помогаю со студенческими работами здесь

Не считывается файл
Вот решил разобраться с пузырьковой сортировкой. Считываю числа из файла в массив. Вопрос:что...

Не считывается строка из файла
Есть динамический массив символов (поле класса). При считывании из файла выдаёт ошибку &quot;CXX0030:...

Неправильно считывается массив
Здравствуйте. Есть класс матриц, один из конструкторов позволяет создать матрицу, используя...

Не считывается определённый символ
Проблема с чтением символа. Этот символ содержатся в BMP файле в месте хранения компонентов...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru