4 / 4 / 2
Регистрация: 28.03.2011
Сообщений: 94
1

Не получается сформировать матрицу по условиям задания

11.05.2011, 23:54. Показов 1097. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Имеем задачу:
Не получается сформировать матрицу по условиям задания


Совершенно не пойму как сформировать матрицу...Помогите пожалуйста написать функцию для формирования матрицы по условиям из пункта "а", мне бы только логику понять. Спасибо!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.05.2011, 23:54
Ответы с готовыми решениями:

Считать матрицу из текстового файла, сформировать из нее вектор, отсортировать и изменить его по условиям
Уважаемые участники форума. Напишите, пожалуйста, программу.pas. Считать матрицу из текстового...

Сформировать матрицу и вектор и произвести с ними действия согласно задания
Нужно написать программу в паскале. Фотография во вложениях.

Из матрицы B(m,n) сформировать матрицу C(m,n), каждый элемент которой получается путем вычитания
Составьте программу для решения следующей задачи обработки двумерных массивов произвольного...

Сформировать список по определенным условиям
Имеются метеоданные о среднемесячной температуре по всем месяцам в ряде стран (Англия. Германия,...

2
Эксперт С++
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
12.05.2011, 05:31 2
TARAKANhoy, Тут все просто. Сначало считываем данные:
- n, m, x_min, x_max, y_min, y_max (например с клавиатуры)
- затем формируем исходную первую матрицу (например с клавиатуры или с помощью rand()), учитывая значения x_min, x_max, y_min, y_max
- а вот теперь по указанной формуле формирем матрицу A.
0
4 / 4 / 2
Регистрация: 28.03.2011
Сообщений: 94
12.05.2011, 17:44  [ТС] 3
Лучший ответ Сообщение было отмечено TARAKANhoy как решение

Решение

Вот у меня как раз сомнения есть в формировании переменных x и y. Насколько мне известно эти переменные должны сами подсчитываться каким то образом, а не ввод с клавы или рандом...мне кажется тут всё завязано на i=1÷n но я вообще не понимаю что это. На деление не похоже (по крайне мере всегда писали слэш а тут вдруг такое), на кратность тоже не похоже (её всегда писали как знак %). Вот сижу парюсь с этой фигнёй.

p.s. нашёл похожую задачу (в той была другая формула и условия немного другие) и написал по её аналогии такой код:
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
#include <iostream>
#include <math.h>
#include <iomanip>
using namespace std;
 
void cin_matrA(int,int,double**);
void sum_matr(int,int,double**,double**,double**);
void trans_matr(int,int,double**,double**);
void cout_matr(int,int,char,double**);
double **RAM(int,int);
 
int main()
{
    int n,m; double **A,**B,**C;
    cout<<"Введите размерность матрицы:\n";
    cout<<"n="; cin>>n;
    cout<<"m="; cin>>m;
     A=RAM(n,m);
     B=RAM(n,m);
     C=RAM(n,m);
    cin_matrA(n,m,A);
     trans_matr(n,m,B,A);
     sum_matr(n,m,A,B,C);
    cout_matr(n,m,'A',A);
    cout_matr(n,m,'B',B);
    cout_matr(n,m,'C',C);
    system("pause");
}
 
//Функция определения памяти
double **RAM(int p,int q)
{
    double **s;
    s=new double*[p];
    for(int i=0;i<p;i++)
     s[i]=new double[q];
    return s;
}
 
//Функция определения матрицы A
void cin_matrA(int p, int q, double**mas)
{
  double hx,hy,xmin,xmax,ymin,ymax,x,y;
  cout<<"xmin=", cin>>xmin;
  cout<<"xmax=", cin>>xmax;
  cout<<"ymin=", cin>>ymin;
  cout<<"ymax=", cin>>ymax;
  hx=(xmax-xmin)/p;
  hy=(ymax-ymin)/q;
  x=xmin; y=ymin;
  for(int i=0; i<p; i++)
  { y=ymin;
    for (int j=0; j<q; j++)
     {mas[i][j]=x*pow(y,2)+0.5*pow(x,2)-0.04*y;
     y+=hy;
     }
    x+=hx;
  }
}
 
//Функция вывода матрицы на экран
void cout_matr(int p, int q, char Y, double**X)
{
     cout<<"\Матрица "
     <<Y<<"["<<p<<"]"<<"["<<q<<"]=\n";
     for(int i=0;i<p;i++)
      for(int j=0;j<q;j++)
      {
         cout<<setw(6)<<X[i][j]<<"|";
         if(j==q-1)cout<<endl;
      }
}
 
//Функция суммирвоания
void sum_matr(int p, int q, double**A, double**B, double**C)
{
     for(int i=0;i<p;i++)
      for(int j=0;j<q;j++)
      {
         C[i][j]=0;
         for(int k=0;k<q;k++)
         {
            C[i][j]+=A[i][j]*B[i][j];
         }
      }
}
 
//Функция транспонирования
void trans_matr(int p, int q, double**B, double**A)
{
     for(int i=0;i<p;i++)
      for(int j=0;j<q;j++)
      {
         B[i][j]=0;
         for(int k=0;k<q;k++)
         {
            B[i][j]=A[j][i];
         }
      }
}
Вроде работает, но всё равно я так ничего и не понял...
0
12.05.2011, 17:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.05.2011, 17:44
Помогаю со студенческими работами здесь

Составить матрицу по заданным условиям
Сформировать матрицу A(MxN), каждый из элементов которой представляет собой произведение...

Сформировать новую строку по заданным условиям
Дана строка, число символов в которой кратно трем. Сформировать новую строку, в начале которой...

Сгенерировать матрицу удовлетворяющую заданным условиям
Помогите пожалуйста сгенерировать матрицу с рандомними числами до 9 размером 4Х4 при условии, что в...

Преобразования из вектора в матрицу по заданным условиям
Дан вектор V. Если среднеарифметическое значение элементов с четными индексами больше или равно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru