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

Наше любимое квадратное уравнение(или возвращение в школу) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ ООП Класс прямоугольная матрица и действия над ней http://www.cyberforum.ru/cpp-beginners/thread772320.html
Здравствуйте, уважаемые форумчане. Есть задачка: Создать класс прямоугольная матрица. Перегрузить операторы для следующих операций: ввода/вывода, сложения, вычитания, умножения, нахождение определителя, получения обратной матрицы, а также операторы сравнения (!=,==). Всё описал, всё написал, но деструктор как-то косячным вышел. Вот то, что состряпал: #include "stdafx.h" #include <iostream>...
C++ построить блок-схему к программе Программа: #include "stdafx.h" #include <math.h> bool ReadArray(float x) { FILE* f = fopen("1.txt", "r"); if (!f) return false; for (int i = 0; i < 5; i++) { http://www.cyberforum.ru/cpp-beginners/thread772315.html
C++ Бинарное дерево (передать адрес первого (корневого) элемента дерева в метод)
Добрый день! Такой вопрос: Реализован шаблонный класс - бинарное дерево. Создан метод прохождения по элементам с помощью рекурсии. Не могу понять как передать адресс первого (корневого) элемента дерева в метод, т.к. он у меня находится в private. и компилятор не позволяет его передавать в метод.Подскажите пожалуйста как можно обратиться к указателю root(корневой элемент)? Может можно обьявить...
C++ Решение задач Р. Лафоре, структуры
Никак не могу понять в чем проблема. Условие задачи: используя структуру time с полями типа int (часы, минуты, секунды) написать программу, которая получает от пользователя два значения времени в формате 12:59:59, сохраняет из в переменных типа struct time, затем переводит оба значения в секунды, складывает их, и переводит сумму в исходный формат на экран в формате 12:59:59. Описание...
C++ Переменная не изменяется http://www.cyberforum.ru/cpp-beginners/thread772295.html
Доброго времени суток ! Нужна ваша помощь. Вроде бы вопрос легкий, но не могу понять как сделать. Допустим есть код : #include <iostream> class s {
C++ найти и исправить ошибки Что надо исправить в этой программе #include "stdafx.h" #include "time.h" #include <iostream> #include <fstream> #include <iomanip> using namespace std; int main(unt argc), _TCHAR" argv) { подробнее

Показать сообщение отдельно
Psychoman
0 / 0 / 0
Регистрация: 01.02.2012
Сообщений: 39
26.01.2013, 18:36     Наше любимое квадратное уравнение(или возвращение в школу)
Здраствуйте, недавно начал учить с++ и дошел до того ,что смог написать решение квадратного уравнения(ну практически).Сталась такая штука ,что возникли 2 проблемы,конечно не с логикой квадратного уравнения ,а с самим синтаксисом с++.Вот то что я написал:
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#include "stdafx.h"
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include  <cmath>
using namespace std;
inline void keep_window_open() {char ch;cin>>ch;} 
 
int _tmain(int argc, _TCHAR* argv[])
  {   char c = ' ';vector<double> result;
      for(int i = 0; i<1000;++i) {
          //Coeficients for sqr equation
      double a,b,c;
      cout <<"Enter coef a before x^2: "; 
      cin>>a;
      cout <<endl;
      cout <<"Enter coef b before x: ";
      cin>>b;
      cout << endl;
      cout <<"Enter coef c (free coef): ";
      cin>>c;
      cout << endl;
 
      // Looks of sqr equation for different coeficients
      if (b>=0 && c>=0)
          cout << "Your equation looks like: "<<a<<"x^2+"<<b<<"x+"<<c<<"=0"<<endl;
      if (b<0 && c>=0)
          cout << "Your equation looks like: "<<a<<"x^2"<<b<<"x+"<<c<<"=0"<<endl;
      if (b>=0 && c<0)
          cout << "Your equation looks like: "<<a<<"x^2+"<<b<<"x"<<c<<"=0"<<endl;
      if (b<0 && c<0)
          cout << "Your equation looks like: "<<a<<"x^2"<<b<<"x"<<c<<"=0"<<endl; 
 
      //Function that solves the equation
      result=equating_sqr_equation(a,b,c);
 
      //Printing results
      for(int i = 0;i<result.size();i++) {
       cout<<"First solution: "<<result[0]<<endl;
       cout<<"Second solution: "<<result[1]<<endl;
      }
      //Continue work
      cout <<"Continue equating ? ";
      cin >> c;
       cout << endl;
       if(c == 'n') break;
        }
      }
/**
     Function for solving sqr equations
*/
 vector<double> equating_sqr_equation(double a,double b,double c) {
      double x1=0,x2=0,x=0;vector<double> result;
      //Variants of equation
      if (a == 0) { 
          x = -c/b;
          result.push_back(x);
          return result; }
      if (b == 0 && c>0) {
          result.push_back(-9999999);
          return result; }     // mistake
      if (b == 0 && c<0) {
          x = sqrt(c);
          result.push_back(x);
          return result; }
      //Mostly main situation
        try {
         x1 = (-b+sqrt(pow(b,2)-4*a*c))/(2*a);
         x2 = (-b-sqrt(pow(b,2)-4*a*c))/(2*a);
         result.push_back(x1);
         result.push_back(x2);
         return result;
      } catch(exception& e ) {
         cout << "b^2-4ac < 0 - no solutions";
         keep_window_open();
         result.push_back(-999999);
         return result; //mistake
      }
 }
Так от чего я добился от компилятора это 2 ошибки, 1 это нельзя присваевать вектору функцию,которая возвращает вектор(или же я неправильно написал) , я это написал поскольку java позволяла это делать , только там количество элементов в массиве зафиксировано на этапе компиляции, а здесь без понятия.Эту ошибку выдает именно эта строка "result=equating_sqr_equation(a,b,c);",вот в чем 1 вопрос.2 вопрос в том ,что я еще сам не догадался в чем причина ,но когда я только написал ввод данных и повтор по символу либо заканчивание программы , программа компилируется нормально ,только от при повторном использовании или заканчивании программы она просто зацикливалася и выводила все cout в цикле .Почему?Я не знаю.Спасибо за помощь.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 13:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru