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

Метод пополнения. Метод Ершова - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Убрать большие абзацы http://www.cyberforum.ru/cpp-beginners/thread1031446.html
В ворде 2003 при нажатии enter делается абзац в конце страницы. Когда открываю старый документ, удалюю там все, начинаю печатать - все нормально. В новом документе получается 2 строчки на листе. В параметрах страницы все нормально.Как убрать этот большущий пробел между абзацами?
C++ Двумерный массив - Выражение должно иметь константные значения Подскажите, почему у меня пишет ошибку в последней строке: выражение должно иметь константные значения. unsigned int rows, columns; std::cout << "Please, enter count of rows and columns: "; std::cin >> rows >> columns; std::string arr = {""}; http://www.cyberforum.ru/cpp-beginners/thread1031430.html
Не работает самодельная функция конкатенации:) C++
Здравствуйте форумчане:)Помогите советом дельным:) Задание:написать функцию конкатенации строк используя массивы char.Использовать new для выделения памяти новой строке.Вот моя функция.Косяк в том,что первую строку копирует она прекрасно,а вот вторую никак.Выводит мусор. #include "stdafx.h" #include "iostream" #include "string.h" #include "string" using namespace std;
Сортировка выбором C++
Помогите, пожалуйста реализовать программу: Сортировка выбором (поиск min и max в одном проходе). Есть код программы, который реализовывает стандартно сортировку выбора. #include "stdafx.h" #include <iostream> #include <ctime> #include <cstdlib> #include <conio.h> #include <clocale> using namespace std;
C++ Рекурсия порядок выполнения операторов http://www.cyberforum.ru/cpp-beginners/thread1031405.html
void m(arr,n) { if(n==1) return; for(int i=0;i<n;i++) {//операторы m(arr,n-1); //операторы } Как тут будут выполняться операторы?
C++ ошибка в программе Пожогите. пожалуйста, решить проблему... Уже все перепробовал, но ошибка осталась #include <iostream> #include <windows.h> using namespace std; class EngMoney { public: int fynts, shilings, pens; подробнее

Показать сообщение отдельно
Sashak
0 / 0 / 0
Регистрация: 28.10.2012
Сообщений: 21
06.12.2013, 23:01     Метод пополнения. Метод Ершова
Имеется код в Mathematica for student:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Clear[a, A, dop];
A = a = ( {
     {1, 0.42, 0.54, 0.66},
     {0.42, 1, 0.32, 0.44},
     {0.54, 0.32, 1, 0.22},
     {0.66, 0.44, 0.22, 1}
    } );
dop = Table[0, {4}, {4}];
For[k = 1, k <= 4,
  For[i = 1, i <= Length[a],
   For[j = 1, j <= Length[a],
    If[i == k && j == k, dop[[i, j]] = 1/A[[k, k]]];
    If[i != k && j == k, dop[[i, j]] = A[[i, k]]/A[[k, k]]];
    If[i == k && j != k, dop[[i, j]] = -( A[[k, j]]/A[[k, k]])];
    If[i != k && j != k, 
     dop[[i, j]] = A[[i, j]] - A[[i, k]]/A[[k, k]]*A[[k, j]]];
    Print["k=", k, " ;i=", i, " ; j=", j, " ; a=", MatrixForm[dop]]
     j++];
   i++];
  A = dop;
  k++];
Print["Inverse Matrix=", MatrixForm[A]];
всё это мне необходио перевести на С++
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
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
    const int n = 4;
//Clear[a, A, dop];
 
    double a[n][n] = {1.0, 0.42, 0.54, 0.66,
                      0.42, 1.0, 0.32, 0.44, 
                      0.54, 0.32, 1.0, 0.22,
                      0.66, 0.44, 0.22, 1.0}, 
    dop[n][n];
    for(int k = 0; k < n;k++){
        for(int i = 0; i <n;i++){
            for(int j = 0; j <n;j++){
    if((i == k) && (j == k))
        dop[i][j] = 1/(a[k][k]);
    if((i != k) && (j == k))
        dop[i][j] = (a[i][k])/(a[k][k]);
    if((i == k) && (j != k))
        dop[i][j] = -((a[k][j])/(a[k][k]));
    if((i != k) && (j != k)) 
     dop[i][j] = a[i][j] - (((a[i][k])/(a[k][k]))*(a[k][j]));
    cout<<"k= "<< k<< " i="<< i<< "  j= "<< j<< "  a= "<< dop[i][j]<<endl;
        a[i][j] = dop[i][j];    }}
        //a[i][j] = dop[i][j];
    }
    cout<<"Inverse Matrix = "<<endl;
    for(int i = 0; i < n; i++)
    {
    for(int j = 0; j < n; j++)
        cout<<a[i][j]<<"  ";
    }
    cin.get();
    cin.get();
 
    return 0;
}
в математике получается :
C++
1
2
3
4
My Inverse Matrix=(2.50759    -0.123039 -1.01149    -1.37834
                         -0.123039   1.33221    -0.261427   -0.447454
                          -1.01149   -0.261427  1.53183 0.445609
                          -1.37834  -0.447454 0.445609   2.00855)
в с++ должно быть это же самое.
Подскажите пожалуйста что не так..
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 19:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru