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

Вычислить для обратной матрицы сумму эллементов, расположенных над главной диагональю и под ней. С++ - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ есть ли ошибка в программе? http://www.cyberforum.ru/cpp-beginners/thread425004.html
задание Дано натуральное число, найти сумму его делителей. Вывести все делители и их сумму на печать. начинается ли ряд чисел с 1( в этой программе)? #include <stdio.h> int main() { int n,i,s,x; printf("Введите количество суммируемых чисел"); //запрос ввода scanf("%d",&n); //ввод s=0; i=1; x=1; //начальные значения
C++ Создать копию объекта производного класса зная указатель на базовый Добрый день! Вопрос в следующем... Возможно ли создать копию объекта производного класса зная указатель на базовый класс? У меня получился вариант, приведенный ниже. Однако в нем не нравится функция clone которая динамически сравнивает типы с известными ей, и потом вызывает создание нового объекта, копия производного. Минус здесь, всегда приходится знать все типы производных классов от базового.... http://www.cyberforum.ru/cpp-beginners/thread424994.html
C++ Перевод программы на С++ с Паскаля
var sn,s:string; l,k,kod:integer; v,p:real; begin writeln('Введите строку'); readln(s); l:=length(s); p:=1; k:=1; repeat sn:='';
C++ Абстрактный класс
вот у меня есть классы: class CCommand { public: virtual ~CCommand() {}; virtual void execute(CShape *selection)=0; virtual void unexecute()=0; virtual CCommand* clone()=0; };
C++ Задачник по C/C++ http://www.cyberforum.ru/cpp-beginners/thread424961.html
Здравствуйте! Ребята, может кто посоветует хорошую книгу с задачами, и желательно с решениями к ним по С/С++ ? Буду очень благодарен!;)
C++ Возведение в степень по модулю для чисел близких к max long long Даны числа A,B,C<=2^63-1 Надо посчитать A^B mod С. прошу не выкладывать стандартный алгоритм для Int, так как неверный ответ в итоге получается. подробнее

Показать сообщение отдельно
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
09.01.2012, 16:58     Вычислить для обратной матрицы сумму эллементов, расположенных над главной диагональю и под ней. С++
Сделал немного по-своему:
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
112
113
114
#include <conio.h>
#include <math.h>
#include <stdio.h>
#include <iostream>
#include <time.h>
#include <conio.h> 
using namespace std;
        int nn,i,j;
double A[8][8], L[8][8];
int main()
{
 srand(time(NULL));
cout<<"Dimension of the matrix (<=8):"; 
cin>>nn;
 
 
 
 
 for (i=0; i<nn; i++) 
   for (j=0; j<nn; j++)    
   {
           cout<<"\nElement:"<<i+1<<":"<<j+1<<endl;                                                                                        
 
   
     A[i][j] = rand()%10;
     printf("%f",A[i][j]);
   }
 
 
 
 
cout<<"The formation of the identity matrix"<<endl;
 for (i=0; i<nn; i++) 
   for (j=0; j<nn; j++)
           if (i!=j) L[i][j]=0;          
   else L[i][j]=1; 
 j = 0;
 int m=0;
 int n;
 do    { 
 
              m = j; 
    for (n=j+1; n<nn; n++) 
      if (fabs(A[m][j])<fabs(A[n][j])) m = n;
            double prm=0;
 
 
 
    for (n=0; n<nn; n++)
   
 
    prm = A[j][j];
    for (n=0; n<nn; n++)
    { A[j][n] = double (A[j][n]/prm);
      L[j][n] = double (L[j][n]/prm);
    }
    for (i=0; i<=nn; i++)
      if (i!=j)
      { prm = A[i][j];
        for (n=j; n<=3; n++) A[i][n] = A[i][n]- double (prm*A[j][n]);
        for (n=0; n<=3; n++) L[i][n] = L[i][n]- double (prm*L[j][n]);
      }
    j++;
    }
  while (j<nn);
 
 
 
 cout<<"\nInverse matrix:\n";
 for (i=0; i<nn; i++)
   for (j=0; j<nn; j++)
   { 
    if (j==0) 
     cout<<"\n";  
      else cout<<"\t";
     printf("%5.2f", L[i][j]);
   }
  
  
   printf("\n");
   printf("\n");
   float sum1=0;      
    for (i=0; i<nn; i++)
   {     
    for (j=0; j<nn; j++) 
     {
                               if (j<i) 
                               {
                               sum1=sum1+L[i][j];
      printf("%5.2f ",L[i][j]);   //Вывод элементов под диагональю
      }
      }
    printf("\n");  
   }
   printf("\n");
   printf("\n");
   float sum2=0;        
    for (i=0; i<nn; i++)
   {     
    for (j=0; j<nn; j++) 
     {
                               if (j>i) 
                               {
                               sum2=sum2+L[i][j];
      printf("%5.2f ",L[i][j]);  //Вывод элементов над диагональю
      }
      }
    printf("\n");  
   }
printf("\nPod diagonal`y: %5.2f",sum1);
printf("\nNad diagonal`y: %5.2f",sum2);     
getch();
return 0;
}
Элементы вводятся рандомно, и округление стоит до сотых.
 
Текущее время: 14:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru