![]() |
Решение квадратных уравнений на С++
Люди подскажите плиз, пробую написать тестовую програмку на С++ , чего то не правельно считает "sqrt" от числа , тип переменной назначаю с плавающей тачкой(навсякмй случа).
Вот пример для проверки можно взять такое квадратное уравнение y = 4x^2 + 3x - 5 Програмка Код:
#include <iostream.h> Может структура записи формулы не правельная? |
|
Цитата:
Сначала выполняется умножения/деления, потом сложения/вычитания. сначала все, что в скобках, потом все что вне скобок. У нас числитель равен b*b-sqrt(D) знаменатель 2*a т.е. ( b*b+sqrt(D) ) / ( 2*a ) Тем самым мы сделаем нужный нам, правильный, порядок выполнения операций. |
Спасибо огромное за совет!
|
|
Да спасибо огромное я уже разобрался,я там просто с арихметикой на тупил решил что корень от 89 сто пудово должен быть 9 :) и с это вот увереностью тут вам и морочу голову
:) Ещё раз огромное спасибо за вашу помощь и терпение! |
ShadowMas, Значит твой код считает правильно? :)
|
ShadowMas, это
Цитата:
|
Admiral, Drongo, Мо-лод-цы! :clapping:
|
Цитата:
|
А что я? Это вы ребята. Я лишь посоветовал не забивать голову фразой что корней при дискриминанте меньше нуля не существует, а в программе предусмотреть на будущее этот вариант.
Я когда-то на VB6 сделал сабжевую прогу, и выводил сообщение о том что корней нет при дискриминанте меньше нуля. |
Я вот отсюда оттолкнулся, Как вычислить дискриминант квадратного уравнения? Там и формула есть, но вот не могу найти ссылку, где тоже говорилось что-то о высшей математике касательно квадратных уравнений.
|
Drongo есть эксперт в этой области, портал http://exponenta.ru/
на нём и ссылка http://model.exponenta.ru/bt/bt_001141.html Цитата:
|
Хорошие ссылки.
Цитата:
Код:
... Цитата:
|
А когда знаний и опыта хватать будет считать комплексные, как математические программы.
complex.h в помощь. |
Огромное спачибо всем участникам темки очень помогли,узнал много нового!
Ещё раз ОГРОМНОЕ СПАСИБО!!! |
Цитата:
Или я ошибся? :dont-know |
Drongo,
Цитата:
Цитата:
Нужно указывать signed float. В аналогичном сабже так и поступили. У них float только дискриминант. :happy: |
Цитата:
[C++ Ошибка] Unit1.cpp(25): E2176 Too many types in declaration Код:
... |
Drongo, помоему слово signed лишнее :
Код:
float fA=1, fB=1, fC=1; |
Цитата:
Цитата:
Без signed ошибки нет, но появляется ошибка: Цитата:
Код:
goto end; Код:
break; Но всё же два вопроса: 1. Эта замена в данном случае мне кажется равноценной, верно? 2. Чего всё же надо было при ошибке goto? (Этот вопрос я ещё сегодня вечером попробую решить, возьму книгу, сверюсь, уточню) |
1. Нет. Так как автор предлагал этим трюком закончить выполнение программы окончательно, а break лишь выводит из текущего блока и все идет далее по тексту. Лучше уж тогда exit.
2. Потому что между goto end и самим есть есть два объявления переменных (выходит что они могут быть не объявлены - как будто вырезается часть исходника между goto end и самой меткой, но не в момент компиляции а в реал тайм. Что приведет к ошибки. Исправляется переносом объявления переменных и их инициализации до первого использования goto end. В данном случаи это переменные int i и float D. |
Цитата:
Цитата:
Код:
... |
Цитата:
ax^2 + bx + c = 0 При вводе в программу, мы указываем с = -5. предварительно указав правильный тип переменной. Нашел здесь Цитата:
В справке NetBeans ничего про unsignet float не нашел. |
Drongo, алгоритм ответа был таков, я помнил что для типов существует такая приставка как signed, но не был уверен доступна ли она для float. Через поиск провёл данную комбинацию (вместо того что б проверить компилятором) и вышел на ту тему. Как оказал безграмотное. Насчёт signed float я ошибся - ибо signed/unsigned только для char/int Is unsigned float legal?
Компилятор говорит что много типов так как, по его мнению объявляют signed int и float. Что делать, оставить всё как есть. Я проверил, на практике никакого минуса выставлять не требуется. Минус сохраняется в переменной, скомпилив И запустив на выполнение с предложенными параметрами Если интересно то минус можно задать так c=-c. Мнение не разделись, а были предложены варианты. Alan85 не просто лишние, а кардинально не к месту и недопустимо его с float использовать. Кроме exit можно использовать return 0 если конечно не void main/WinMain/etc то есть если главная функция программы не без типовая. lxa85 видимо и в Java (или NetBeans может быть IDE и для С\С++?) решили не вносить путаницу по данному вопросу. |
Цитата:
Но сама среда да, написана на Java. |
Вот мой вариант проги:
Код:
int x2yravn () |
|
gusenkovs, где описание программы? Что она делает и т.д.?
|
Программа решает уравнния вида ax^2+bx+c
Код:
#include <math.h> |
Время: 12:31. |
Время: 12:31.
© OSzone.net 2001-