Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Vladuslav_11
0 / 0 / 0
Регистрация: 26.10.2013
Сообщений: 24
1

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

01.02.2014, 12:57. Просмотров 408. Ответов 14
Метки нет (Все метки)

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)
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.02.2014, 12:57
Ответы с готовыми решениями:

Где ошибка? Написать можно через оператор while!
Вводится последовательность целых чисел, 0 – конец последовательности. Сколько...

Ошибка: не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору
Здравствуйте! Не могу понять, почему так нельзя делать (Ошибка: не определяет...

Как работает горизонтальная табуляция или где ошибка
struct dbcars { char name; char color; int year; float cost; }; ...

Подскажите где ошибка, или может есть другой вариант реализации кода
// Упорядочить статический массив(заполненый случайными числами), чтобы в нём...

Где мы можем использовать, дружественный оператор сложения?
Где мы можем использовать, дружественный оператор сложения,почему нельзя...

14
Меорн
76 / 61 / 45
Регистрация: 01.02.2014
Сообщений: 208
01.02.2014, 13:06 2
все правильно. среди целых чисел от 0 до 100 нет решений данного уравнения.
0
Vladuslav_11
0 / 0 / 0
Регистрация: 26.10.2013
Сообщений: 24
01.02.2014, 13:11  [ТС] 3
Цитата Сообщение от Меорн Посмотреть сообщение
все правильно. среди целых чисел от 0 до 100 нет решений данного уравнения.
double? Пробовал, результат тот же.
0
aLarman
646 / 567 / 164
Регистрация: 13.12.2012
Сообщений: 2,123
Завершенные тесты: 2
01.02.2014, 13:22 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
0
rangerx
1944 / 1553 / 478
Регистрация: 31.05.2009
Сообщений: 2,913
01.02.2014, 13:26 5
Цитата Сообщение от Vladuslav_11 Посмотреть сообщение
Почему так?
Цитата Сообщение от Vladuslav_11 Посмотреть сообщение
p*2 - 2*q*2
Ну, а вы как сами думаете? Любое число умноженное на 2 - чётное. Может ли разность двух чётных чисел быть равна 1?
0
Vladuslav_11
0 / 0 / 0
Регистрация: 26.10.2013
Сообщений: 24
01.02.2014, 13:31  [ТС] 6
Цитата Сообщение от aLarman Посмотреть сообщение
C++
1
2
3
4
5
double p = 0.;
while(p<=100)
{
//что то
p+=0.1;
}
как вложить это в мою программу? если там ещё и q?
0
Меорн
76 / 61 / 45
Регистрация: 01.02.2014
Сообщений: 208
01.02.2014, 13:40 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";
        }
    }
}
0
Kuzia domovenok
2421 / 2151 / 525
Регистрация: 25.03.2012
Сообщений: 7,751
Записей в блоге: 1
01.02.2014, 13:41 8
Vladuslav_11, ты ответ rаngerx читал? Ты уверен, кстати, что у тебя везде умножение, а не возведение в квадрат?
0
mustimur
315 / 222 / 72
Регистрация: 22.11.2013
Сообщений: 841
Записей в блоге: 1
01.02.2014, 22:26 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 повторений... Не маловато?
0
ValeryS
Модератор
7372 / 5573 / 707
Регистрация: 14.02.2011
Сообщений: 18,941
01.02.2014, 22:35 10
Цитата Сообщение от Меорн Посмотреть сообщение
среди целых чисел от 0 до 100 нет решений данного уравнения.
их вообще нет среди целых чисел
p*2-2*q*2 == 1
выносим двойку за скобки
2*(p-2*q)=1
p-2*q=1/2;
нет среди целых чисел таких чтобы разность была 1/2
0
mustimur
315 / 222 / 72
Регистрация: 22.11.2013
Сообщений: 841
Записей в блоге: 1
01.02.2014, 22:50 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";
        }
    }
}
0
ValeryS
Модератор
7372 / 5573 / 707
Регистрация: 14.02.2011
Сообщений: 18,941
01.02.2014, 22:51 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
две двойки в умножении, скорре всего там или квадрат или еще что
0
Kuzia domovenok
2421 / 2151 / 525
Регистрация: 25.03.2012
Сообщений: 7,751
Записей в блоге: 1
01.02.2014, 22:54 13
mustimur, ты хотел сказать q=0.5*p-0.25 ?
0
ValeryS
Модератор
7372 / 5573 / 707
Регистрация: 14.02.2011
Сообщений: 18,941
01.02.2014, 22:59 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
0
mustimur
315 / 222 / 72
Регистрация: 22.11.2013
Сообщений: 841
Записей в блоге: 1
01.02.2014, 23:01 15
Цитата Сообщение от ValeryS Посмотреть сообщение
уж очень меня смущает
Сообщение от Vladuslav_11
2*q*2
две двойки в умножении, скорее всего там или квадрат или еще что
Согласен при чем скорее всего квадрат при p (школьный курс алгебры навивает - что это имеет отношение к дискриминанту приведенного квадратного уравнения) но решение в любом случае рациональней как я показал, а не через двойной цикл..

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

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

Не по теме:

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

0
01.02.2014, 23:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.02.2014, 23:01

Вывести на экран количество слов где первая и последняя буквы одинаковы (не понимаю где ошибка)
задан текст нужно вывести на экран количество слов где первая и последняя буквы...

Оператор ИЛИ
Программа должна проверять строку на правильность ввода(строка состоит из...

Подскажите, где может быть ошибка (структуры)? (скорее всего где-то амперсенд нужен, все вроде проверил)
написать универсальный тип, который представляет точку на плоскости в...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru