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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
lqazxsazl
2 / 2 / 0
Регистрация: 22.06.2011
Сообщений: 42
#1

Как связаны эти две строчки? - C++

22.06.2011, 21:18. Просмотров 428. Ответов 8
Метки нет (Все метки)

Только начал изучать c++ и для закрепления основ решил написать программку для решения квадратных уравненй. И возникли небольшие проблемы при компиляции и с компилятором вообще

Вот сам код:

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
#include <iostream> 
#include <windows.h> 
#include <math.h> 
using namespace std; 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    cout << "Введите a, b, c" << endl;
    int a, b, b2, c, d, x1, x2, y;
    cin >> a;
    cin >> b;
    cin >> c;
    y = 2;
    b2 = pow(b,y);
    d = b2-(4*a*c); 
    cout << "d=" << d << endl;
    x1 = (-(b)+(sqrt(d)))/(2*a); 
    x2 = (-(b)-(sqrt(d)))/(2*a); 
           if (d>0)
           {
    cout << "d>0 Два корня." << endl;
    }        
        else
        {
    cout << "d<0 Нет решений" << endl;
    cout << "Ответ:" << endl;
    cout << "x1=" << x1 << endl;
    cout << "x2=" << x2 << endl;
{    
    system("PAUSE");
}
Как связаны между собой строчки 15 и строчки со скобками в условии if когда их нет все нормально компилируется когда они стоят он выделяет мне 15 строку и говорит ошибка что не так как они связаны?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.06.2011, 21:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как связаны эти две строчки? (C++):

Как правильно засунуть две строчки в код программы?( - C++
Вставить надо это: int ok; do { /********************************* *** Часть программы, *** которую нужно...

Как переставить две строчки матрицы не используя цикла? - C++
Как переставить две строчки матрицы не используя цикла? Помогите пожалуйста с задачей.

Как сравниеть две строчки std string не учитывая геристр букв? - C++
Как сравнить две строчки std string не учитывая геристр букв? :wall:

В две строчки записать две цифры, а потом по закрытии программы и повторном открытии прочитать каждое число в отдельную переменную? - C++
Как в с++ в две строчки записать две цифры, а потом по закрытии программы и повторном открытии прочитать каждое число в отдельную...

Расскажите что значат эти строчки (работа со строками и функциями) - C++
//какие библиотеки тут не используются???? // #include &lt;tchar.h&gt; #include &quot;stdafx.h&quot; #include &quot;stdlib.h&quot; #include &lt;string&gt; ...

Подправить две строчки в задаче - C++
#include &lt;stdio.h&gt; #include &lt;clocale&gt; #include &lt;conio.h&gt; #include &lt;cstdlib&gt; #include &lt;iostream&gt; using namespace std; int...

8
Mиxaил
533 / 438 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
22.06.2011, 21:26 #2
C++
1
b2 = pow(b,y);
здесь аргумент b должен быть вещественным, есть вариант заменить так:
C++
1
b2 = pow(b * 1.0,y); // b2 = pow ( static_cast < float > (b), y )
с sqrt () тоже самое

в 30 строчке убрать "{", и вместо нее написать закрывающуюся "}"
1
lqazxsazl
2 / 2 / 0
Регистрация: 22.06.2011
Сообщений: 42
22.06.2011, 21:41  [ТС] #3
Балин это не компилятор косячный а моя невнимательность(....
0
grizlik78
Эксперт С++
1963 / 1456 / 118
Регистрация: 29.05.2011
Сообщений: 3,015
22.06.2011, 21:47 #4
Цитата Сообщение от Mиxaил Посмотреть сообщение
здесь аргумент b должен быть вещественным, есть вариант заменить так:
Зачем? Компилятор и сам неплохо приведёт аргумент к даблу. А вот результат перед присваиванием целочисленной переменной можно было бы и округлить для надёжности.
0
lqazxsazl
2 / 2 / 0
Регистрация: 22.06.2011
Сообщений: 42
22.06.2011, 21:58  [ТС] #5
Цитата Сообщение от grizlik78 Посмотреть сообщение
А вот результат перед присваиванием целочисленной переменной можно было бы и округлить для надёжности.
А вот по подробней можно?
0
grizlik78
Эксперт С++
1963 / 1456 / 118
Регистрация: 29.05.2011
Сообщений: 3,015
22.06.2011, 22:04 #6
Можно. Функция pow возвращает результат типа double. В принципе, если оба аргумента целые, то и результат будет целым, но поскольку алгоритм вычислений нам неизвестен, то мы должны быть готовы к тому, что функция вместо 16.0 может вернуть 15.9999999
Если такое число присвоить целочисленной переменной, то в неё запишется 15, так как дробная часть просто отбрасывается.
Чтобы этого избежать, если известно что результат должен быть целым и положительным, можно перед присваиванием прибавить к результату 0.5 (для отрицательных надо, наоборот, вычесть).
Ну а если результат может быть дробным, то переменная результата не должна иметь тип int
1
lqazxsazl
2 / 2 / 0
Регистрация: 22.06.2011
Сообщений: 42
22.06.2011, 22:27  [ТС] #7
Задумчивое мдя.............
0
grizlik78
Эксперт С++
1963 / 1456 / 118
Регистрация: 29.05.2011
Сообщений: 3,015
22.06.2011, 22:28 #8
Для функции pow это, наверное, действительно перестраховка (по-крайней мере на интел-совместимых), но как только в формулах появляются логарифмы и экспоненты округление становится действительно актуальным.
1
easybudda
23.06.2011, 00:03     Как связаны эти две строчки?
  #9

Не по теме:

Цитата Сообщение от lqazxsazl Посмотреть сообщение
Балин это не компилятор косячный
Не, это винда глючная...

1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.06.2011, 00:03
Привет! Вот еще темы с ответами:

Компилятор пропускает две строчки - C++
Здравствуйте! Вкратце о задании: нужно создать структуру, с помощью которой будет вводится информация о товаре. Два элемента структуры...

Объясните две строчки кода - C++
что значит вот это: имею вввиду каждые функциии: не могу найти if ( n.peek() == ifstream::traits_type::eof() ) ofstream n(...

Нужно записать две строчки через указатель, не используя адрес - C++
Доброго времени суток, возникли сложности с записью двух строчек в другом виде, а именно с записью через указатель, не используя адрес, без...

Пожалуйсто помагите написать эти две задачи на с++ - C++
Пожалуйсто помагите написать эти две задачи на с++ ссесию мне бе них не закрыть а никто не понимает((((( ребят если кто знает как сделать...


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

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

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