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

Оператор if или где скрыта ошибка - C++

Восстановить пароль Регистрация
 
Vladuslav_11
0 / 0 / 0
Регистрация: 26.10.2013
Сообщений: 24
01.02.2014, 12:57     Оператор if или где скрыта ошибка #1
C++
1
2
3
4
5
6
7
8
9
10
11
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
                 
                 int p, q;
                 for(p=0; p<=100; p++){
                     for(q=0; q<=100; q++)
                             if(p*2-2*q*2 == 1) {
                                 
                                 this->richTextBox1->Text= p.ToString()+" and "+q.ToString()+"\n";
                 }
                 }
             }
Компилируется но при нажатии на кнопку не выводит значения. Почему так?
Должны выводиться в (richTextBox1) числа (p) и (q) которые подходят до выражения (p*2-2*q*2 == 1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.02.2014, 12:57     Оператор if или где скрыта ошибка
Посмотрите здесь:

Ошибка! ... ( оператор for, вроде просто, но вот где она ... C++
C++ Подскажите где ошибка, или может есть другой вариант реализации кода
C++ Вывести на экран количество слов где первая и последняя буквы одинаковы (не понимаю где ошибка)
Где мы можем использовать, дружественный оператор сложения? C++
C++ Подскажите, где может быть ошибка (структуры)? (скорее всего где-то амперсенд нужен, все вроде проверил)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Меорн
74 / 59 / 29
Регистрация: 01.02.2014
Сообщений: 201
01.02.2014, 13:06     Оператор if или где скрыта ошибка #2
все правильно. среди целых чисел от 0 до 100 нет решений данного уравнения.
Vladuslav_11
0 / 0 / 0
Регистрация: 26.10.2013
Сообщений: 24
01.02.2014, 13:11  [ТС]     Оператор if или где скрыта ошибка #3
Цитата Сообщение от Меорн Посмотреть сообщение
все правильно. среди целых чисел от 0 до 100 нет решений данного уравнения.
double? Пробовал, результат тот же.
aLarman
636 / 557 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
01.02.2014, 13:22     Оператор if или где скрыта ошибка #4
Цитата Сообщение от Vladuslav_11 Посмотреть сообщение
double? Пробовал, результат тот же
а разница? Вы же все равно +1 на каждой иттерации делаете

Добавлено через 1 минуту
C++
1
for(p=0; p<=100; p++)
попробуйте заменить на
C++
1
2
3
4
5
6
double p = 0.;
while(p<=100)
{
//что то
p+=0.1;
}
Добавлено через 3 минуты
даже p+=0.01;

пример p = 4;
4 - 2*q = 0.5
2*q = 3.5
q = 1.75
т.е надо минимум инкрементировать по 0.05 а уж лучше 0.01
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
01.02.2014, 13:26     Оператор if или где скрыта ошибка #5
Цитата Сообщение от Vladuslav_11 Посмотреть сообщение
Почему так?
Цитата Сообщение от Vladuslav_11 Посмотреть сообщение
p*2 - 2*q*2
Ну, а вы как сами думаете? Любое число умноженное на 2 - чётное. Может ли разность двух чётных чисел быть равна 1?
Vladuslav_11
0 / 0 / 0
Регистрация: 26.10.2013
Сообщений: 24
01.02.2014, 13:31  [ТС]     Оператор if или где скрыта ошибка #6
Цитата Сообщение от aLarman Посмотреть сообщение
C++
1
2
3
4
5
double p = 0.;
while(p<=100)
{
//что то
p+=0.1;
}
как вложить это в мою программу? если там ещё и q?
Меорн
74 / 59 / 29
Регистрация: 01.02.2014
Сообщений: 201
01.02.2014, 13:40     Оператор if или где скрыта ошибка #7
C++
1
2
3
4
5
6
7
for(p = 0; p <= 100; p += 0.01) {
    for(q = 0; q <= 100; q += 0.01) {
        if(p*2-2*q*2 == 1) {
            this->richTextBox1->Text= p.ToString()+" and "+q.ToString()+"\n";
        }
    }
}
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
01.02.2014, 13:41     Оператор if или где скрыта ошибка #8
Vladuslav_11, ты ответ rаngerx читал? Ты уверен, кстати, что у тебя везде умножение, а не возведение в квадрат?
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
01.02.2014, 22:26     Оператор if или где скрыта ошибка #9
Цитата Сообщение от Меорн Посмотреть сообщение
for(p = 0; p <= 100; p += 0.01) {
* * for(q = 0; q <= 100; q += 0.01) {
* * * * if(p*2-2*q*2 == 1) {
* * * * * * this->richTextBox1->Text= p.ToString()+" and "+q.ToString()+"\n";
* * * * }
* * }
}
А никого не смущает что здесь в каждом for по 10001 повторению получается, т.е. всего 100020001 повторений... Не маловато?
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,051
01.02.2014, 22:35     Оператор if или где скрыта ошибка #10
Цитата Сообщение от Меорн Посмотреть сообщение
среди целых чисел от 0 до 100 нет решений данного уравнения.
их вообще нет среди целых чисел
p*2-2*q*2 == 1
выносим двойку за скобки
2*(p-2*q)=1
p-2*q=1/2;
нет среди целых чисел таких чтобы разность была 1/2
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
01.02.2014, 22:50     Оператор if или где скрыта ошибка #11
Цитата Сообщение от ValeryS Посмотреть сообщение
их вообще нет среди целых чисел
Они тут на действительные уже перешли "оригинальным" образом

Добавлено через 9 минут
Цитата Сообщение от ValeryS Посмотреть сообщение
p-2*q=1/2;
А вообще на мысль на вели:
C++
1
2
3
4
5
6
7
for(p = 0; p <= 100; p += 0.01) {
q = 0.5*(p-0.5);
        if((q*100-floor(q*100) == 0)) {// пытался условия записать аналогичное (q%0.01==0), знаю что с точки зрения синтаксиса  (q%0.01==0) - чушь, просто пояснил условия if
            this->richTextBox1->Text= p.ToString()+" and "+q.ToString()+"\n";
        }
    }
}
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,051
01.02.2014, 22:51     Оператор if или где скрыта ошибка #12
mustimur,
причем с шагом
Цитата Сообщение от aLarman Посмотреть сообщение
0.01
хотя шаг кратен 0.25
так на вскидку
p=2 q=0.75
2*2-2*2*0.75=1
p=2.5 q=1;
2*2.5-1*2*2=1

да и крутить начинать нужно не p а с q
минимальный p=2*q
ужель конечно если правильно формула записана
уж очень меня смущает
Цитата Сообщение от Vladuslav_11 Посмотреть сообщение
2*q*2
две двойки в умножении, скорре всего там или квадрат или еще что
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
01.02.2014, 22:54     Оператор if или где скрыта ошибка #13
mustimur, ты хотел сказать q=0.5*p-0.25 ?
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,051
01.02.2014, 22:59     Оператор if или где скрыта ошибка #14
Цитата Сообщение от mustimur Посмотреть сообщение
знаю что с точки зрения C++ *(q%0.01==0) - просто пояснил условия
не поверишь и сточки зрения математики не может у дробных чисел быть остатка от деления
оно завсегда в дробь превращается, не обязательно в десятичную

Добавлено через 2 минуты
вот так вот пойдет?
для целых q
C++
1
2
for(q=1; q<100;q++)
   double p= 2.0*q+0.5;
Добавлено через 1 минуту
для целых p
C++
1
2
for(int p=1;p<100;p++)
 double q=0.5*p-0.25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.02.2014, 23:01     Оператор if или где скрыта ошибка
Еще ссылки по теме:

C++ Оператор ИЛИ
C++ Где ошибка? Написать можно через оператор while!
C++ Ошибка: не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору

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

Или воспользуйтесь поиском по форуму:
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
01.02.2014, 23:01     Оператор if или где скрыта ошибка #15
Цитата Сообщение от ValeryS Посмотреть сообщение
уж очень меня смущает
Сообщение от Vladuslav_11
2*q*2
две двойки в умножении, скорее всего там или квадрат или еще что
Согласен при чем скорее всего квадрат при p (школьный курс алгебры навивает - что это имеет отношение к дискриминанту приведенного квадратного уравнения) но решение в любом случае рациональней как я показал, а не через двойной цикл..

Добавлено через 57 секунд
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
mustimur, ты хотел сказать q=0.5*p-0.25
точно, мозги после трудового дня ))

Добавлено через 1 минуту
Цитата Сообщение от ValeryS Посмотреть сообщение
не поверишь и сточки зрения математики не может у дробных чисел быть остатка от деления
оно завсегда в дробь превращается, не обязательно в десятичную

Не по теме:

ну повторюсь: мысли путаются мозги после трудового дня ))

Yandex
Объявления
01.02.2014, 23:01     Оператор if или где скрыта ошибка
Ответ Создать тему
Опции темы

Текущее время: 05:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru