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

Реализовать метод Гаусса функцией - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сделать так, чтобы круг перемещался при нажатии комбинации клавиш http://www.cyberforum.ru/cpp-beginners/thread1099278.html
//хочу сделать так чтобы круг пошел в бок при комбинации клавиш (w+d) (w+a) (s+a)(s+d) #include <stdlib.h> #include <iostream.h> #include <conio.h> #include <dos.h> #include <math.h> #include...
C++ Возможность сохранения текущих значений координат обоих объектов в текстовом файле Помогите! задали в универе лр,очень нужно,заранее спасибо!!!! Имеются два объекта: - один расположен на плоскости и его положение задается координа-тами x и y; - второй расположен над... http://www.cyberforum.ru/cpp-beginners/thread1099276.html
Нарисовать рисунок по формуле C++
Я делаю курсовую за темой Продажа билетов на поезд,и мне надо делать оформления курсовой,и там надо нарисовать рисунок по формуле,у меня есть формула "1+(k-1)*(3+60* (MaxStan-1)) + 3+ (m-1)*...
C++ Сортировка в структурах. Найти и исправить ошибки в коде
#include<stdio.h> #include<conio.h> #include<iostream> using namespace std; struct student { char name;
C++ Static members - исправить код http://www.cyberforum.ru/cpp-beginners/thread1099265.html
Доброго времени суток. Начал разбираться толком со статик-членами. Написал вот такой небольшой код, но возникла куча ошибок. Подскажите почему(все ошибки ниже, использую VS2010). #include "stdafx.h"...
C++ Вывести слова в алфавитном порядке Здравствуйте, помогите доделать прогу, в ней выводятся слова которые состоят из 4 букв, ещё нужно сделать так что бы они выводились в алфавитном порядке, спасибо. #include "stdafx.h" #include... подробнее

Показать сообщение отдельно
stikkas
19 / 19 / 6
Регистрация: 26.01.2014
Сообщений: 56
18.02.2014, 12:07
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 <cstdlib>
#include <iostream>
#include <sstream>
using namespace std;
 
template <class T>
bool getnumber(const char * msg, T &val) {
    cout << msg;
    if(!(cin >> val) || cin.get() != '\n') {
        cin.clear();
        cin.sync();
        return false;
    }
    return true;
}
 
void want_to_quit() {
    cout << "Не правильное значение. Хотите прекратить работу?(y/n) ";
    char ans;
    cin >> ans;
    if (ans == 'y' || ans == 'Y')
        exit(EXIT_FAILURE);
    cin.clear();
    cin.sync();
}
 
double* gauss(double **arr, int rows);
 
int main() {
    int eqcount;
    while (!getnumber("Сколько уравнение будем решать? ", eqcount)){
        want_to_quit();
    }
 
    double **koeficients = new double*[eqcount];
    ostringstream os;
    for (int i = 0; i < eqcount; ++i) {
        koeficients[i] = new double[eqcount + 1];
        for (int j = 0; j < eqcount + 1; ++j) {
            os << "Введите коэффициент #" <<  j + 1 << " уравнения #" << i + 1 << ": ";
            while (!getnumber(os.str().c_str(), koeficients[i][j])){
                want_to_quit();
            }
            os.str("");
        }
    }
 
    double *result = gauss(koeficients, eqcount);
    cout << "Results:\n";
    for (int i = 0; i < eqcount; ++i) {
        cout << result[i] << " ";
    }
    cout << endl;
    delete [] result;
    for (int i = 0; i < eqcount; ++i) {
        delete [] koeficients[i];
    }
    delete [] koeficients;
    return 0;
}
 
double* gauss(double **arr, int rows) {
    double *result = new double[rows];
    for (int k = 1; k < rows; ++k) {
        for (int j = k; j < rows; ++j) {
            double m = arr[j][k-1]/arr[k-1][k-1];
            for (int i = 0; i <= rows; ++i) {
                arr[j][i] = arr[j][i] - m * arr[k-1][i];
            }
        }
    }
 
    for (int i = rows - 1; i >= 0; --i) {
        result[i] = arr[i][rows] / arr[i][i];
        if (i != (rows - 1)) {
            result[i] -= arr[i][i+1] * result[i+1] / arr[i][i];
        }
    }
    return result;
}
функцию gauss надо пересмотреть, т.к. она не правильные ответы выдает для системы больше двух уравнений
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru