Форум программистов, компьютерный форум, киберфорум
C++/CLI Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/34: Рейтинг темы: голосов - 34, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 08.06.2009
Сообщений: 48

Решение квадратного уравнения

17.06.2009, 19:51. Показов 6289. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Программа выполняется неверно. Условия явно работают не так, как надо. Помогите пожалуйста найти ошибку.
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
39
40
41
42
43
44
private: System::Void btn_Click(System::Object^  sender, System::EventArgs^  e) {
             double a, b, c;
                double *pa, *pb, *pc;
                pa=&a; pb=&b; pc=&c;
             double D, x1, x2;
                double *pD, *px1, *px2;
                pD=&D; px1=&x1; px2=&x2;
             *pa = Convert::ToDouble(txtA->Text);
             *pb = Convert::ToDouble(txtB->Text);
             *pc = Convert::ToDouble(txtC->Text);
             *pD = Math::Pow(2,*pb)-4**pa**pc;
             if (*pD<0) {
                label5->Text = "This equation has no real-number roots!";
                label4->Left = Form1::Width / 4;
                label4->Top = btn->Top + btn->Height+10;
                label5->Left = 5;
                label5->Top = label4->Top + label4->Height + 5;
                Form1::Height = Form1::Height + (label4->Height+10) + (label5->Height+5) + 10;
                label4->Visible = true; label5->Visible = true;
             };
             if (*pD=0) {
                x1=-(*pb/2**pa);
                label5->Text = "This equation has 1 real-number root: x = " + Convert::ToString(x1);
                label4->Left = Form1::Width / 4;
                label4->Top = btn->Top + btn->Height+10;
                label5->Left = 5;
                label5->Top = label4->Top + label4->Height + 5;
                Form1::Height = Form1::Height + (label4->Height+10) + (label5->Height+5) + 10;
                label4->Visible = true; label5->Visible = true;
             };
             if (*pD>0) {
                x1=(-*pb-Math::Sqrt(*pD))/2**pa;
                x2=(-*pb+Math::Sqrt(*pD))/2**pa;
                label5->Text = "x1 = " + Convert::ToString(x1) + 
                    "; x2 = " + Convert::ToString(x2);
                label4->Left = Form1::Width / 4;
                label4->Top = btn->Top + btn->Height+10;
                label5->Left = 5;
                label5->Top = label4->Top + label4->Height + 5;
                Form1::Height = Form1::Height + (label4->Height+10) + (label5->Height+5) + 10;
                label4->Visible = true; label5->Visible = true;
             };
 
         }
ЗЫ: Наверное я чет с указателями накрутил...
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.06.2009, 19:51
Ответы с готовыми решениями:

Есть вычислитель корней квадратного уравнения
Программа WinForms, MVS2010 По задумке должна считать корни квадратного уравнения, выводя результат в 2 соответствующих текстбокса,...

Найти ошибку в программе решения квадратного уравнения
Вот код проверки частного случая(b=0) решения квадратного уравнения. Каким-то волшебным образом программа считает корни уравнения при...

Решение квадратного уравнения
Ребята не правильно считает почему то (только начал изучать) program cat; uses crt; var a, b, c, d:integer; var x1, x2:real; ...

11
Заказ софта
 Аватар для Search..
343 / 188 / 21
Регистрация: 26.05.2009
Сообщений: 863
17.06.2009, 20:41
Наверное это:

C++ Скопировано
1
if (*pD=0)
нужно заменить на это:

C++ Скопировано
1
if (*pD == 0)
----------------------------------
А это:

C++ Скопировано
1
x1=-(*pb/2**pa);
на это:

C++ Скопировано
1
x1 -= (*pb/2**pa);
0
0 / 0 / 0
Регистрация: 08.06.2009
Сообщений: 48
17.06.2009, 20:48  [ТС]
Цитата Сообщение от Search.. Посмотреть сообщение
Наверное это:

Код C++
1
if (*pD=0)

нужно заменить на это:

Код C++
1
if (*pD == 0)
Ну да... Я просто с Visual Basic'a пришел, еще не привык.

Цитата Сообщение от Search.. Посмотреть сообщение
А это:

Код C++
1
x1=-(*pb/2**pa);

на это:

Код C++
1
x1 -= (*pb/2**pa);
А почему так? Это ведь будет все равно, что
C++ Скопировано
1
x1 = x1 - (*pb/2**pa)
Может так:
C++ Скопировано
1
x1 = (-(*pb/2**pa))
????
0
Заказ софта
 Аватар для Search..
343 / 188 / 21
Регистрация: 26.05.2009
Сообщений: 863
17.06.2009, 20:51
Не вникал в код... Если тебе нужно вечесть из x1 то, что идет после него и ответ сохранить в нем же (x1), то нужно так, как я показал. А если тебе нужно инициализировать x1 результатом выражения, которое идет после него (x1), то, конечно, у тебя код правильный !
0
125 / 123 / 0
Регистрация: 30.03.2009
Сообщений: 766
17.06.2009, 20:53
а зачем вообще указатели??? чтоб жизнь сказкой не казалась?
0
Заказ софта
 Аватар для Search..
343 / 188 / 21
Регистрация: 26.05.2009
Сообщений: 863
17.06.2009, 21:05
Цитата Сообщение от Lolcht0 Посмотреть сообщение
а зачем вообще указатели???
Чтобы указывать =)
0
0 / 0 / 0
Регистрация: 08.06.2009
Сообщений: 48
17.06.2009, 21:08  [ТС]
Search.., тогда получается, что эта часть кода у меня правильная. Работает.
Lolcht0, этого я сам до конца не понимаю. Просто последовал инструкциям из книги, хотя это предложение из книги мне показалось ну о-о-очень странным и протеворечещим логике:
C++ Скопировано
1
2
3
4
5
6
7
8
9
10
int n1;
int n2;
int m;
int* pn1;
int* pn2;
n1 = 5;
n2 = 7;
pn1 = &n1;
pn2 = &n2;
m = *pn1 + *pn2;
Для этого можно было бы воспользоваться следующим банальным способом:
C++ Скопировано
1
m = n1 + n2;
Но не стоит искать простых путей. По-этому выполняйте необходимые
вычисления, применив указатели.
До этого мне вообще казалось, что одной из основных задач программиста является происк простых (оптимальных) путей
0
Заказ софта
 Аватар для Search..
343 / 188 / 21
Регистрация: 26.05.2009
Сообщений: 863
17.06.2009, 21:12
Так тут же цель определенная есть у афтара: научить тебя хорошо пользоваться указателями и не бояться их ! Афтар дело говорит...
0
0 / 0 / 0
Регистрация: 08.06.2009
Сообщений: 48
17.06.2009, 21:20  [ТС]
Может и так... Просто, когда впервые читаешь, то звучит (выглядит) чуть странно.

А как перейти на новую строку в TLabel ? Я об этом:
C++ Скопировано
1
lbl1->Text = "The 1-st line" + ??? + "The 2-nd line";
И еще, как получить ASCII символ, зная его код? (последний вопрос возник из 1ого, ибо первое, что пришло в голову так это CHR(13), но как на С++ бдует CHR(13)? )
0
125 / 123 / 0
Регистрация: 30.03.2009
Сообщений: 766
17.06.2009, 21:26
а по-моему, такие аффтары только запугивают и запутывают людей! указатели тут нужны как вешний снег! хочешь научиться пользоваться указателями, запрогай двунаправленный список - добавление, удаление и поиск элемента. тем более кто-то недавно просил такую задачку решить))

Добавлено через 5 минут 49 секунд
А как перейти на новую строку в TLabel
??? = "\n"
0
Заказ софта
 Аватар для Search..
343 / 188 / 21
Регистрация: 26.05.2009
Сообщений: 863
17.06.2009, 21:32
C++ Скопировано
1
2
char symbol = 65; //65 - это код.
    printf("Symbol: %c\n", symbol); //Напечатать символ, соответствующий коду.
0
0 / 0 / 0
Регистрация: 08.06.2009
Сообщений: 48
17.06.2009, 22:26  [ТС]
Спасибо всем за помощь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.06.2009, 22:26
Помогаю со студенческими работами здесь

Решение квадратного уравнения
Найти действительные корни квадратного уравнения вида ax2 + bx + c = 0, путем вычисления дискриминанта. Если корней нет – вывести надпись...

Решение квадратного уравнения
Буду очень благодарна и признательна если кто в этом разбирается и поможет. Необходимо на Лиспе написать программу вычисления...

Решение квадратного уравнения
Доброго времени суток. Нужна помощь в решении задачи по паскалю. Задача простейшая, но вот выдаёт ошибку. Program ... ; var ...

Решение квадратного уравнения
Здравствуйте. Тут такое дело, что дали написать программку с использованием классов решения квадратного уравнения, и вот вроде бы сделали,...

решение квадратного уравнения
Ребят, помогите с составлением программы... Вновь слезно прошу! Добавлено через 28 минут S O S


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Не удержался от оценки концепции двигателя Стирлинга.
Hrethgir 03.04.2025
Сколько не пытался - она выдавала правильные схемы, причём случайно рисовала горячие области в середине, холодные по краям, трубки с краёв в низ и магнит в соединяющей, но при этой выдавала описание. . .
Метод с двумя буферами (или double buffering) или ping-pong buffering
Hrethgir 02.04.2025
Из ответов LM модели. Метод, который предполагает использование двух массивов для хранения промежуточных результатов сложения векторов, обычно применяется в сценариях, где необходимо минимизировать. . .
На любовном киберфронте
Alexander-7 01.04.2025
Недавно на одном малоизвестном сайте знакомств мною заинтересовалась девушка: «Текст немного странный. Но, судя по адресу почты, иностранка», – подумал я. Поколебавшись пару суток, я ответил ей:. . .
Как работает Node.js изнутри
run.dev 29.03.2025
Node. js изменил подход к разработке веб-приложений, позволив использовать JavaScript не только на стороне клиента, но и на сервере. Созданный в 2009 году Райаном Далем, этот открытый,. . .
Моки в Python: Mock Object Library
py-thonny 29.03.2025
Тестирование кода требует особого подхода, когда речь идёт о компонентах, взаимодействующих с внешним миром. Мы часто сталкиваемся с непредсказуемостью HTTP-запросов, чтением данных из базы или. . .
JavaScript: Управление памятью и улучшение производительности
run.dev 29.03.2025
В отличие от низкоуровневых языков программирования, JavaScript не требует ручного выделения и освобождения памяти. Здесь работает автоматический сборщик мусора, который определяет, какие объекты. . .
Мультитенантная архитектура со SpringBoot и PostgreSQL
ArchitectMsa 29.03.2025
SaaS-приложения редко обслуживают одного клиента и обычно они должны поддерживать множество организаций, каждая из которых работает в своём изолированном пространстве. Мультитенантная архитектура. . .
std::span в C++: Производительность и лучшие практики
NullReferenced 28.03.2025
std::span — одно из самых недооценённых нововведений стандарта C++20, которое радикально меняет подход к работе с непрерывными последовательностями данных. По сути, это невладеющее представление. . .
Многопоточность в C#: Threadpool
UnmanagedCoder 28.03.2025
Пул потоков в C# — это коллекция заранее созданных и готовых к использованию потоков, которые находятся в распоряжении приложения. Вместо того чтобы создавать и уничтожать потоки для каждой небольшой. . .
Вопросы на собеседованиях по микросервисам
ArchitectMsa 27.03.2025
Работодатели ищут не просто разработчиков, знающих базовые концепции, а специалистов, разбирающихся в тонкостях масштабирования, отказоустойчивости и производительности. Сейчас на первый план выходят. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер