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

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

Восстановить пароль Регистрация
 
TARAKANhoy
 Аватар для TARAKANhoy
4 / 4 / 0
Регистрация: 28.03.2011
Сообщений: 94
11.05.2011, 23:54     Не получается сформировать матрицу по условиям задания #1
Имеем задачу:
Не получается сформировать матрицу по условиям задания

Совершенно не пойму как сформировать матрицу...Помогите пожалуйста написать функцию для формирования матрицы по условиям из пункта "а", мне бы только логику понять. Спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.05.2011, 23:54     Не получается сформировать матрицу по условиям задания
Посмотрите здесь:

C++ Не получается заполненить матрицу
C++ задания на матрицу
Сформировать матрицу C++
C++ Сформировать матрицу
Сформировать матрицу C++
C++ сформировать матрицу
C++ Подскажите пожалуйста, как правильно вывести,сформировать массив из задания
C++ Массивы, вывести матрицу не получается

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
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.
TARAKANhoy
 Аватар для TARAKANhoy
4 / 4 / 0
Регистрация: 28.03.2011
Сообщений: 94
12.05.2011, 17:44  [ТС]     Не получается сформировать матрицу по условиям задания #3
Вот у меня как раз сомнения есть в формировании переменных 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];
         }
      }
}
Вроде работает, но всё равно я так ничего и не понял...
Yandex
Объявления
12.05.2011, 17:44     Не получается сформировать матрицу по условиям задания
Ответ Создать тему
Опции темы

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