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

Решение систем алгебраических уравнений - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Преобразование Int в char http://www.cyberforum.ru/cpp-beginners/thread1219710.html
от скуки баловался с кодом.решил проверить,можно ли сделать так? #include <iostream> int main(){ char b = 't'; int a =b; std::cout <<b; system("pause"); }
C++ Найти все трехзначные числа, состоящие из разных цифр, сумма которых равна А Найти все трехзначные числа, которые состоят из разных цифр, а их сумма ровна А (число А вводится с клавиатуры). http://www.cyberforum.ru/cpp-beginners/thread1219709.html
C++ Объяснить работу двух кодов
char a={"kakogo hrena?"}; cout<<a<<endl; // kakogo hrena? и int a={11,22,33}; cout<<a<<endl; // 001cfb50 Собсно почему в первом случае выводит весь символьный масив? Должен ЖЕ выводить тоже что и во втором случае - адрес а. Почему так? И почему сразу весь масив... попробывал через отдельный указатель. Кстати с этого примера все и началось увидел в книге и мозг повис. Что это? Что...
Необходимо найти самое длинное слово и удалить все его вхождения C++
самое длинное слово я нахожу, но вот как его удалить? #include "stdafx.h" #include <iostream> #include <cstring> using namespace std; int main(); int _tmain(int argc, _TCHAR* argv)
C++ Найти сумму между двумя введенными числами, включая эти числа http://www.cyberforum.ru/cpp-beginners/thread1219662.html
Не работает примитивная программа Здравствуйте. Суть программы заключается в нахождении суммы между 2-мя введенными числами,включая эти числа. При компилировании ,вводя любые числа,ответ показывает один и тот же,а именно -2. Алгоритм вроде верный,но вот ошибку найти не получается #include<iostream> int main(){ std::cout <<" write 2 letters and you'll see the sum of them" << std:: endl;...
C++ Регулировка скорости вывода символа на экран Задача поставлена следующая - вывести на экран линию из символов, параметры которой задаются пользователем. В числе прочих есть параметр скорости вывода. Всё сделал кроме него. Пробовал его реализовать через Sleep(), но программа ждёт всю паузу, а потом сразу символы выводит. Вот последний ее вариант: #include<iostream> #include<windows.h> using namespace std; void main() {... подробнее

Показать сообщение отдельно
Kerry_Jr
Модератор
 Аватар для Kerry_Jr
1855 / 1651 / 574
Регистрация: 14.05.2014
Сообщений: 4,726
Записей в блоге: 1
Завершенные тесты: 5
30.06.2014, 10:48     Решение систем алгебраических уравнений
Пользоваться не очень советую, но
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
#include <iostream>
#include <cmath>
 
//Минор матрицы
double** minor(double** matrix, int row, int col, int size)
{
    double** minor;
    minor = new double*[size-1];
    int m_row = 0, m_col;
    for (int i = 0; i < size; i++)
    {
        m_col = 0;
        if(i != row)
        {
            minor[m_row] = new double[size-1];
            for (int j = 0; j < size; j++)
            {
                if(j != col)
                {
                    minor[m_row][m_col] = matrix[i][j];
                    m_col++;
                }
            }
            m_row++;
        }
    }
    return minor;
}
 
int countZero(double** matrix, int size)
{
    int max_zero = 0, zero, count = 0;
    for (int i = 0; i < size; i++)
    {
        zero = 0;
        for (int j = 0; j < size; j++)
        {
            if (*(matrix+i*size+j) == 0)
                zero++;
        }
        if (max_zero < zero)
        {
            max_zero = zero;
            count = i;
        }
    }
    return count;
}
 
// Детерминант матрицы
double determinant(double** matrix,int size)
{
    if (size == 1)
        return matrix[0][0];
    else if (size == 2)
        return matrix[0][0] * matrix[1][1] - matrix[0][1] * matrix[1][0];
    double determ = 0;
    int zero_row = countZero(matrix, size);
    for (int j = 0; j < size; j++)
        if (matrix[zero_row][j])
            determ += pow(-1, j) * matrix[zero_row][j] * determinant(minor(matrix,zero_row, j, size), size-1);
            
    return determ;
}
 
int main()
{
    setlocale(LC_ALL, "");
    const int row = 3;
    const int col = 4;
    double d0[row][col];
    std::cout << "Введите коэффициенты уравнения:" << std::endl;
    for (int i = 0; i < row; i++)
        for (int j = 0; j < col; j++)
            std::cin >> d0[i][j];
    double** d = new double*[row];
    double** d1 = new double*[row];
    double** d2 = new double*[row];
    double** d3 = new double*[row];
    for (int i = 0; i < row; i++)
    {
        d[i] = new double[row]; 
        d1[i] = new double[row]; 
        d2[i] = new double[row]; 
        d3[i] = new double[row]; 
        for (int j = 0; j < row; j++)
        {   
            d[i][j] = d0[i][j];
            d1[i][j] = d0[i][j];
            d2[i][j] = d0[i][j];
            d3[i][j] = d0[i][j];
            if (j == 0) d1[i][j] = d0[i][3];
            if (j == 1) d2[i][j] = d0[i][3];    
            if (j == 2) d3[i][j] = d0[i][3];
        }
    }
    double det, det1, det2, det3, x, y, z;
    det = determinant(d, row);
    if (det != 0)
    {
        x = determinant(d1,row)/det;
        y = determinant(d2,row)/det;
        z = determinant(d3,row)/det;
        std::cout << "x = " << x << std::endl;
        std::cout << "y = " << y << std::endl;
        std::cout << "z = " << z << std::endl;
    }
    else std::cout << "Корней нет!" << std::endl;
    
    return 0;
}
 
Текущее время: 09:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru