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

Несколько минимальных элементов матрицы записать в одномнерой массив - C++

Восстановить пароль Регистрация
 
Vlad_
7 / 7 / 0
Регистрация: 07.09.2012
Сообщений: 174
28.01.2013, 02:21     Несколько минимальных элементов матрицы записать в одномнерой массив #1
Всем доброго времени суток,в общем задача состоит из нескольких этапов
1 создаем матрицу 6 на 6
2 преобразовываем её по заданному правилу
3 получаем одномерный массив с элементам матрицы,а именно последний элемент массива должен быть сумой 6 строки матрицы,а первые 5-минимальными элементами из 1 5 строки
4 преобразовываем полученный одномерный массив опять таки по заданной функции- произведение 6(всех эл.массива) раз экспоненты в степени полученного одномерного массива.
не получается сделать 3 шаг и естественно 4,вот код помогите дополнить пожалуйста.
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
#include <iostream>
#include <iomanip>
#include <cmath>
 
using namespace std;
 
#define n 6
 
int main(){
    setlocale(0,"");
    float A[n][n],B[n],V[n],sum;
    int i,j;
    for(i=0;i<n;i++)
        for(j=0;j<n;j++)
            A[i][j]=((rand() % 20-10));
        cout<<"Оригинальная матрица\n";
        for(i=0;i<n;i++){
            for(j=0;j<n;j++)
            cout<<setprecision(3)<<setw(3)<<A[i][j]<< " ";
            cout<<endl; 
        }
        for(i=0;i<n;i++)
            for(j=0;j<n;j++)
                A[i][j]=2/3.5*j-j+exp(0.2)-i*i;
                cout<<"Перестроенная матрица\n";
            for(i=0;i<n;i++){
                for(j=0;j<n;j++)
                cout<<setprecision(3)<<setw(4)<<" "<<A[i][j];
            cout<<endl;
}
            cout<<"Полученные компоненты вектора\n";
            sum=0;
            for(i=5;;)
                for (j=0;j<n;j++)
                sum+=A[i][j];
            B[5]=sum;
            for(i=0;i<5;i++){
                B[i]=2;
                cout<<B[i]<<endl;}
            cout<<"Значение U=g(x)\n";
            for(i=1;i<=n;i++)
                V[i]*=exp(B[i]);
            cout<<V[i];
            system("pause");
            return 0;
        }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.01.2013, 02:21     Несколько минимальных элементов матрицы записать в одномнерой массив
Посмотрите здесь:

Найти произведение минимальных элементов каждой строки матрицы C++
C++ Записать в другой массив строку, составленную из сумм отрицательных элементов столбцов матрицы
Даны три квадратные матрицы. Сформировать вектор, состоящий из минимальных элементов каждой матрицы, отличных от нуля C++
C++ Вычислить величину Z, которая равняется сумме минимальных элементов массивов, разделенной на двойное произведение индексов минимальных элементов
Задан массив целых чисел. Вывести на экран массив, составленный из заданного количества минимальных элементов исходного C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4922 / 2665 / 243
Регистрация: 29.11.2010
Сообщений: 7,420
28.01.2013, 04:27     Несколько минимальных элементов матрицы записать в одномнерой массив #2
Не понял, что вы хотели сказать в 4-м пункте, вот:
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
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
#include <clocale>
#include <cmath>
 
int main()
{
    const int N = 6;
    setlocale(LC_ALL, "");
    std::srand(time(0));
    float A[N][N], B[N], sum = 0;
    std::cout << "Оригинальная матрица\n";
    for (int i=0; i < N; i++)
    {
        for (int j=0; j < N; j++)
        {
            A[i][j] = rand() % 20 + 10;
            std::cout << A[i][j] << " ";
        }
        std::cout << std::endl;
    }
    std::cout << "\nПерестроенная матрица\n";
    for (int i=0; i < N; i++)
    {
        float min = A[i][0];
        for (int j=0; j < N; j++)
        {
            A[i][j] = 2/3.5*j - j + exp(0.2) - i*i;
            std::cout << std::fixed << std::setprecision(2) << std::left
                << std::setw(6) << A[i][j] << " ";
            if (i == N - 1)
                sum += A[i][j];
            else if (A[i][j] < min)
                min = A[i][j];
        }
        std::cout << std::endl;
        B[i] = (i == N - 1 ? sum : min);
    }
    std::cout << "\nСформированный массив\n";
    for (int i=0; i < N; i++)
    {
        std::cout << B[i] << " ";
        B[i] *= exp(B[i]);
    }
    std::cout << "\n\nПосле умножения\n";
    for (int i=0; i < N; i++)
        std::cout << B[i] << " ";
}
Vlad_
7 / 7 / 0
Регистрация: 07.09.2012
Сообщений: 174
17.02.2013, 18:58  [ТС]     Несколько минимальных элементов матрицы записать в одномнерой массив #3
вопрос всем как сделать что бы первые 5 элементов были минимальные элементы матрицы А?
в 6 элементе должна быть сумма последнего столбца,(это я уже сделал)
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
#include <iostream>
#include <iomanip>
#include <ctime>
#include <cmath>
#include <algorithm>
 
#define N 6
 
using namespace std;
 
int main()
{
    
    setlocale(0,"");
    srand(time(0));
    float A[N][N], B[N], sum=0;
    float Z[N*N];
    
    cout << "\nПолученная матрица\n";
    for (int i=0; i < N; i++)
        for (int j=0; j < N; j++)
        {
            A[i][j] = 2/3.5*j - j + exp(0.2) - i*i;
 
        }
        for (int i=0; i < N; i++){
            float min = A[i][0];
            for (int j=0; j < N; j++)
            {
                cout << fixed << setprecision(2) << left
                    << setw(6) << A[i][j] << " ";
                if (j == N - 1)
                    sum += A[i][j];
                else if (A[i][j] < min)
                    min = A[i][j];
            }
            cout << endl;
            B[i] = (i == N - 1 ? sum : min);
        }
    
    cout << "\nВектор X\n";
    for (int i=0; i < N; i++)
    {
        cout << B[i] << " ";
        B[i] *= exp(B[i]);
    }
    cout << "\n\nФункция U=g(x)\n";
    for (int i=0; i < N; i++)
        cout << B[i] << " "<<endl;
    system("pause");
    return 0;
}
Vlad_
7 / 7 / 0
Регистрация: 07.09.2012
Сообщений: 174
18.02.2013, 19:34  [ТС]     Несколько минимальных элементов матрицы записать в одномнерой массив #4
ну так подскажет кто?
Yandex
Объявления
18.02.2013, 19:34     Несколько минимальных элементов матрицы записать в одномнерой массив
Ответ Создать тему
Опции темы

Текущее время: 20:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru