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

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

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

Студворк — интернет-сервис помощи студентам
Собственно программа, вычисляющая суммарную площадь множества четырёхугольников(заданных через 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)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.10.2015, 13:26
Ответы с готовыми решениями:

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

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

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

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

Решение

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

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

Не по теме:

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

0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
17.10.2015, 13:59
И в условии if тут уместно именно логическое "и", то есть && (если необходимо, чтобы отработали все условия), либо логическое "или", то есть || (если необходимо, чтобы отработало хотя бы одно условие из перечисленных).
1
2 / 2 / 0
Регистрация: 20.09.2015
Сообщений: 41
17.10.2015, 18:55  [ТС]
gru74ik, Спасибо за расширение занинй
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.10.2015, 18:55
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru