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

Получить матрицу A(B-E)+C, где Е-единичная матрица порядка n, а элементы матрицы C вычисляются по формуле - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Способ вывода данных на экран http://www.cyberforum.ru/cpp-beginners/thread741556.html
Как выбрать способ вывода данных (в файл или на консоль), чтобы при последующих вычислениях оставался только один способ?
C++ Для каждой строки файла переставить первое и среднее слово Помогите пожалуйста!!! не знаю с чего начать... необходимо для каждой строки файла переставить первое и среднее слово. Результат записать в файл. Добавлено через 1 час 22 минуты не понятно, как в строке получить среднее слово....те , я так понимаю, нужно как-то принять пробел за разделитель и подсчитать все слова в строке, их сумму разделить на количество и получить среднее слово? а если... http://www.cyberforum.ru/cpp-beginners/thread741548.html
Создать абстрактный базовый класс Series (прогрессия) C++
Помогите плиз Создайте абстрактный базовый класс Series (прогрессия) с виртуальными функциями вычисления элемента прогрессии и суммы пргрессии. Определите производные классы: Linear (арифметическая) и Exponential (геометрическая). Арифметическая прогрессия Aj=A0+jd, j=0,1,2,… Сумма арифметической прогрессии: An=(n+1)(A0+An)/2 Геометрическая прогрессия: Aj=A0r^j, j=0,1,2,… Сумма...
C++ Вывести все трехзначные числа, квадраты которых оканчиваются тремя цифрами, которые и составляют искомые числа
Решаю задачу, вроде алгоритм продумала правильно, но с решением не получается. int kvadrat=1; for (int i=100; i<1000; i++) kvadrat*=i; {if (kvadrat/1000==i) cout<<"Cislo="<<i<<"Kvadrat cisla="<<kvadrat<<endl;} cout<<endl;
C++ Использовать new вместо обьявления массива из трех структур http://www.cyberforum.ru/cpp-beginners/thread741535.html
//хелп, использовать new вместо обьявления массива из трех структур, намекните куда мне думать... #include "stdafx.h" #include <iostream> struct candybar { char name; double weight; int calory; }; int main()
C++ Нужно отсортировать массив структур по убыванию поля date Здравствуйте! Пожалуйста, помогите дописать программу. Собственно задание: Написать программу, которая выполняет: 1) ввод с клавиатуры данных в массив, состоящий из 20 структур типа EKZAMEN (записи должны быть упорядочены по дате); 2) вывод на экран дату сдачи экзамена и студентов, которые получили оценку, введенную с клавиатуры. Собственно я написал все, кроме упорядочивания записей по... подробнее

Показать сообщение отдельно
Nixy
ComfyMobile
 Аватар для Nixy
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
22.12.2012, 21:11     Получить матрицу A(B-E)+C, где Е-единичная матрица порядка n, а элементы матрицы C вычисляются по формуле
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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
#include <iostream>
#define  MIN_SIZE 1
using namespace std;
 
double** addition(double** A,double** B,int size){
    double** result= new double* [size];
 
        for (int i = 0; i < size; i++) {
             result[i]=new double [size];
            }
        for (int i = 0; i < size; i++) {
         for (int j = 0; j < size; j++) {
                       result[i][j]=A[i][j]+B[i][j];
            }
        }
        return result;
}
 
double** multiplicationByNumber(double** A,double number,int size){
    double** result= new double* [size];
 
        for (int i = 0; i < size; i++) {
             result[i]=new double [size];
            }
        for (int i = 0; i < size; i++) {
         for (int j = 0; j < size; j++) {
                       result[i][j]=A[i][j]*number;
            }
        }
        return result;
}
 
double** multiplication(double** A,double** B,int size){
        double** result= new double* [size];
        double sum;
        for (int i = 0; i < size; i++) {
             result[i]=new double [size];
            }
        for (int i = 0; i < size; i++) {
         for (int j = 0; j < size; j++) {
             sum = 0;
             for (int k = 0; k < size; k++) {
                     sum+=A[i][k]*B[k][j];
                    }
              result[i][j] = sum;
            }
        }
        return result;
}
 
int main(){
    double** A;
    double** B;
    double** C;
    double** E;
    double** R;
 
    int n;
    cout<< "Input matrix size ";
    cin>> n;
    if (n > MIN_SIZE) {
        cout<< "Initialize A" <<endl;        // ввод матрицы А
        A= new double* [n];
            for (int i = 0; i < n; i++) {
             A[i]=new double [n];
            }
        for (int i = 0; i < n; i++) {
            cout << "Input " << i << " row"<< endl;
         for (int j = 0; j < n; j++) {
                       cin>>A[i][j];
            }
        }
 
        cout << "Matrix A " << endl<<endl;     // вывод матрицы А
        for (int i = 0; i < n; i++) {
         for (int j = 0; j < n; j++) {
                cout<<A[i][j]<<" ";
            }
            cout<<endl;
        }
 
        cout<< "Initialize B" <<endl;       // ввод матрицы В
        B = new double* [n];
            for (int i = 0; i < n; i++) {
             B[i]=new double [n];
            }
        for (int i = 0; i < n; i++) {
            cout << "Input " << i << " row"<< endl;
         for (int j = 0; j < n; j++) {
                       cin>>B[i][j];
            }
        }
 
        cout << "Matrix B" << endl<<endl;     // вывод матрицы В
 
        for (int i = 0; i < n; i++) {
         for (int j = 0; j < n; j++) {
                cout<<B[i][j]<<" ";
            }
            cout<<endl;
        }
 
        cout<< "Initialize C" <<endl;          // ввод матрицы С
        C = new double* [n];
            for (int i = 0; i < n; i++) {
             C[i]=new double [n];
            }
        for (int i = 0; i < n; i++) {
         for (int j = 0; j < n; j++) {
                       C[i][j]=1./(i+1)+(j+1);
            }
        }
                                                 // вывод матрицы С
        cout << "Matrix C " << endl<<endl;
 
        for (int i = 0; i < n; i++) {
         for (int j = 0; j < n; j++) {
                cout<<C[i][j]<<" ";
            }
            cout<<endl;
        }
        E= new double* [n];
            for (int i = 0; i < n; i++) {
             E[i]=new double [n];
            }
        for (int i = 0; i < n; i++) {
         for (int j = 0; j < n; j++) {
                      if (i==j){
                       E[i][j]=1;
                      }else{
                       E[i][j]=0;
                      }
            }
        }
                                      // Вычисление результата
        R = multiplication(A,addition(B,multiplicationByNumber(E,-1,n),n),n);
        R = addition(R,C,n);
                                         //Вывод результата
        cout << "Matrix R " << endl<<endl;
 
        for (int i = 0; i < n; i++) {
         for (int j = 0; j < n; j++) {
                cout<<R[i][j]<<" ";
            }
            cout<<endl;
        }
    } else {
        cout<<"Incorrect input data"<<endl;
    }
    system("pause");
}
 
Текущее время: 23:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru