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

Как правильно записать if чтобы столбец матрицы FtF первый, второй и третий менялся по очереди на столбец матрицы Fty - C++

Восстановить пароль Регистрация
 
kjahert
48 / 48 / 5
Регистрация: 08.04.2011
Сообщений: 124
14.04.2011, 12:52     Как правильно записать if чтобы столбец матрицы FtF первый, второй и третий менялся по очереди на столбец матрицы Fty #1
Как правильно записать if чтобы столбец матрицы FtF первый, второй и третий менялся по очереди на столбец матрицы Fty, тоесть чтобы после того как поменялся первый столбец нашелся детерминант, потом поменялся второй столбец... только первый столбец должен вернутся такой как был в матр FtF, а у меня в цикле if (в конце программы) условие->если заменился первый столбец, то в этой матрице находится детерминант, потом цикл закрывается, выводится измененная матрица и детерминант по ней,
потом откр другой цикл где если заменился второй столбец этой исходной матрицы FtF, то ищется детерминант по ней а первый столбец не должен быть изменен, но он почему то изменен. Как правильно сделать? Помогите пожалуйта
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
#include <iostream.h>
#include <math.h>
#include <conio.h>
float Ft[3][6];
float FtF[3][3];
float Fty[3];
float detr,detr1,detr2,detr3;
float x[6]={-1.5, 0.5, 0.5, 2.5, 3.5, 4.5};
float y[6]={2.6, 0.5, -3.3, -17.4, -28.2, -39.7};
float F[6][3]={{1, -1.5, 2.25},
               {1, -0.5, 0.25},
           {1, 0.5, 0.25},
           {1, 2.5, 6.25},
           {1, 3.5, 12.25},
           {1, 4.5, 20.25}};
int det(float FtF[3][3])
{
 return ((FtF[0][0]*FtF[1][1]*FtF[2][2])+(FtF[1][0]*FtF[2][1]*FtF[0][2])+(FtF[0][1]*FtF[1][2]*FtF[2][0]))-(FtF[0][2]*FtF[1][1]*FtF[2][0])-(FtF[2][1]*FtF[1][2]*FtF[0][0])-(FtF[0][1]*FtF[1][0]*FtF[2][2]);
 }
 
 void main()
 {
  clrscr();
  cout<<"F transponirovanoe: "<<endl;
  for (int i=0;i<3;i++)
  {
   for (int j=0;j<6;j++)
   {
    Ft[i][j]=F[j][i];
    cout<<Ft[i][j]<<" ";
    }
    cout<<endl;
    }
    cout<<"FtF :"<<endl; 
  for (i=0;i<3;i++)
  {
   for (int j=0;j<3;j++)
   {
    for (int k=0;k<6;k++)
    {
    FtF[i][j]+=Ft[i][k]*F[k][j];
    }
    cout<<FtF[i][j]<<" ";
    }
    cout<<endl;
    }
    cout<<"Fty: "<<endl;
  for (i=0;i<3;i++)
  {
   for (int j=0;j<6;j++)
   Fty[i]+=Ft[i][j]*y[j];
   }
   for (int j=0;j<3;j++)
   {
    cout<<Fty[j]<<" ";
    cout<<endl;
    }
  detr=det(FtF);
  cout<<"Obshiy determinant: "<<detr<<endl;
    
     for (i=0;i<3;i++)
    if (FtF[i][0]=Fty[i])
    {
     detr1=det(FtF);
     }
     cout<<"determinant1: "<<detr1<<endl;
     cout<<"FtF stolbec 1"<<endl;
     for (i=0;i<3;i++)
     {
     for (int j=0;j<3;j++)
     {
     cout<<FtF[i][j]<<" ";
     }
     cout<<endl;
     }
     for (i=0;i<3;i++)
     if (FtF[i][1]=Fty[i])
     {
     detr2=det(FtF);
     }
     cout<<"determinant2: "<<detr2<<endl;
     
     cout<<"FtF stolbec 2"<<endl;
     for (i=0;i<3;i++)
     {
     for (int j=0;j<3;j++)
     {
     cout<<FtF[i][j]<<" ";
     }
     cout<<endl;
     }}
Добавлено через 12 часов 46 минут
Шо никто не знает или не поняли вопрос?
Проблема: место того чтоб менять столбец на время, программа меняет его навсегда, а как сделать чтоб поменяло первый столбец, потом вернуло этот столбец в исх состояние, потом поменяло второй или третий столбец на время и вернуло исх значение этого столбца

Добавлено через 3 часа 25 минут
while здесь не работает почему то у меня
Неужели невозможно что-то исправить?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2011, 12:52     Как правильно записать if чтобы столбец матрицы FtF первый, второй и третий менялся по очереди на столбец матрицы Fty
Посмотрите здесь:

C++ Нужно чтобы в матрице столбец менялся на столбец свободных членов
Из заданной матрицы A размером получить матрицу В размером по правилу: первый столбец состоит из положительных элементов, второй – из отрицате C++
Поменять местами второй и последния столбец матрицы C++
Поменять местами столбцы матрицы: столбец, содержащий максимальный элемент матрицы, и столбец, содержащий минимальный элемент матрицы. C++
подскажите, как правильно составить алгоритм (Матрицы. Удалить заданную строку a и столбец b со сдвигом) C++
Меняя местами строки матрицы, отсортировать по возрастанию ее первый столбец C++
C++ Нужно чтобы менялся столбец со строкой в матрице
C++ Меняя местами строки матрицы, отсортировать по возрастанию ее первый столбец

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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