Форум программистов, компьютерный форум 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
Модератор
Эксперт PHP
2185 / 1981 / 692
Регистрация: 14.05.2014
Сообщений: 5,791
Записей в блоге: 1
Завершенные тесты: 5
30.06.2014, 13:17
Попробую еще раз, только это уже более универсальный вариант
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
#include <iostream>
#include <cmath>
#include <cstdlib>
 
//Минор матрицы
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;
}
 
// Детерминант матрицы
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;
    for (int j = 0; j < size; j++)
        if (matrix[0][j])
            determ += (j%2==0?1:-1) * matrix[0][j] * determinant(minor(matrix,0, j, size), size-1);
 
    return determ;
}
 
int main()
{
    char ch;
    setlocale(LC_ALL, "");
    do
    {
        system("cls");
        int row;
        std::cout << "Введите порядок уравнения: ";
        std::cin >> row;
        int col = row + 1;
        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 **[col];
        for (int k = 0; k < col; k++)
        {
            d[k] = new double *[col];
            for (int i = 0; i < row; i++)
            {
                d[k][i] = new double[row];
                for (int j = 0; j < row; j++)
                {   
                    d[k][i][j] = d0[i][j];
                    if (k > 0 && j == k-1) d[k][i][j] = d0[i][col-1];
                }
            }
        }
        double det = determinant(d[0], row);
        std::cout << "determinant = " << det << std::endl;
        if (det != 0)
        {
            for (int k = 1; k < col; k++)
            {
                std::cout << "x" << k << " = " << determinant(d[k], row)/det << std::endl;
            }
        }
        else std::cout << "Корней нет!" << std::endl;
        for (int k = 0; k < col; k++)
        {
            for (int i =0; i < row; i++)
            {   
                delete[] d[k][i];
                d[k][i] = NULL;
            }
            delete[] d[k];
            d[k] = NULL;
        }
        delete[] d;
        d = NULL;
        std::cout << "Продолжить? ";
        std::cin >> ch;
    }
    while (ch != 'n');
    
    return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru