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

Подстроение алгоритма определителя - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Программа таймер http://www.cyberforum.ru/cpp-beginners/thread642406.html
Всем привет, подскажите плз как написать программу, которая с момента первого запуска включает таймер, а по истечении времени (5 мес), запускает бат файл, который сносит винду.
C++ не работает sqrt декомпозиция Добрый день, пытался разобраться с sqrt-декомпозицией. Суть понял, но вот код не хочет работать. точнее он не хочет работать правильно. вот код: #include<iostream> #include<cmath> #include<cstdlib> #include<cstdio> using namespace std; http://www.cyberforum.ru/cpp-beginners/thread642394.html
C++ Задача "Водолей"
Вот условие: У исполнителя “Водолей” есть два сосуда, первый объемом A литров, второй объемом B литров, а также кран с водой. Водолей может выполнять следующие операции: Наполнить сосуд A (обозначается >A). Наполнить сосуд B (обозначается >B). Вылить воду из сосуда A (обозначается A>). Вылить воду из сосуда B (обозначается B>). Перелить воду из сосуда A в сосуд B (обозначается как...
Двоичные файлы C++
У меня есть код программы работающий с текстовыми файлами, #include <iostream> #include <conio.h> #include <cstdlib> #include <locale.h> #include <string.h> #include <fstream> using namespace std;
C++ Реализация собственного умного укзателя http://www.cyberforum.ru/cpp-beginners/thread642344.html
Доброго времени суток! При самостоятельной реализации умного указателя столкнулся с проблемой при удалении самого указателя. Код программы имеет вид: #pragma once template <class Object> class Smart_ptr {
C++ Описать класс "Конус" Язык С 1. Опишите класс "Конус" Данные класса: координаты центра основания, радиус основания, высота. Конструкторы класса: конструктор по умолчанию, конструктор конуса с центром в начале координат, конструктор произвольного конуса. 2. Определите методы: ввод конуса, вывод на экран, определение площади поверхности, определение объёма конуса. 3.Объявите конус с центром в начале координат и... подробнее

Показать сообщение отдельно
Nuclear_Razor
49 / 2 / 0
Регистрация: 22.07.2012
Сообщений: 103
Записей в блоге: 1
25.08.2012, 19:56  [ТС]     Подстроение алгоритма определителя
edward_jonson, аахахах боже мой! Как я мог ввод упустить! Спасибо! Сейчас проверю!

Добавлено через 13 минут
edward_jonson, определитель считает теперь правильно. Но корни СЛАУ стал выдавать неверно. В чем может быть ошибка?

Код:

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
        int  I=0, J=0, check=0, ri=0;
    double a[10][10];
    double rate=0,ratio=0,b[x][x],t;
    bool F;
 
//Проверка на нулевую строку с ненулевым вектором свободных членов данной строки
for(int i=0;i<I;i++)
  {
  for(int j=0;j<J-1;j++)
    if ((a[i][j]==0)&&(a[i][J-1]!=0))
      check++;
  if (check==J-1)
    {
    cout <<"Матрица не совместна.\n";
    
    F=false;
    system("pause"); //Пауза системы
    } 
  check=0;
  }
 
//Проверка на нулевой столбец - система имеет бесконечно много решений на данном столбце
for(int j=0;j<J-1;j++)
  {
  for(int i=0;i<I;i++)
    if (a[i][j]==0)
      check++;
  if (check==I)
    {
    printf("Матрица имеет бесконечно много решений на %d столбце. \n",j+1);
    
    F=false;
    getch();
    char c;
    c = getch();
    if (c==13) exit(0);
 
    system("pause"); //Пауза системы, скушай твикс
    }
  check=0;
  }
 
if (I<J-1)
  {
    printf("Матрица имеет бесконечно много решений, т.к. строк меньше, чем столбцов.\n");
 
    F=false;
    getch();
    char c;
    c = getch();
    if (c==13) exit(0);
  system("pause");//Пауза системы, скушай снигерс
  }
 
//Дублирование проверки
for (int i=0;i<I;i++)
  for(int j=0;j<J;j++)
    b[i][j]=a[i][j]*1.0;
 
for(int col=0;col<J-1;col++)
  {
  for(int i=col;i<I;i++)
    if (b[i][col]!=0)
      {
      rate=b[i][col];
      ri=i;
      break;
      }
  for(int j=0;j<J;j++)
    b[ri][j]/=rate;
  for(int j=0;j<J;j++) //Поднимаем строку с ненулевым элементом наверх на позиции кол
    {
    t=b[col][j];
    b[col][j]=b[ri][j];
    b[ri][j]=t;
    }
  for(int i=0;i<I;i++)
    if (i!=col)
      {
      ratio=b[i][col]/b[col][col];
      for(int j=0;j<J;j++)
        b[i][j]-=ratio*b[col][j];
      }
  }
cout << "Матрица преобразований имеет вид:\n";
gr;
for (int i=0;i<I;i++)
  {
  for(int j=0;j<J;j++)
    
    printf("\t%6.1f",b[i][j]);//Вывод матрицы преобразований
    printf("\n");
    
}
gr;
for(int i=0;i<I;i++)
  {
  for(int j=0;j<J-1;j++)
    if ((b[i][j]==0)&&(b[i][J-1]!=0))
      check++;
  if (check==J-1)
    {
    printf("Матрица не совместна.\n");
    
    F=false;
    getch();
    char c;
    c = getch();
    if (c==13) exit(0);
    system("pause"); //Пауза системы, скушай баунти
    }
  check=0;
  }
 
cout << "\nПолученные решения:\n";
for(int i=0;i<J-1;i++)
  printf("\nx%d = %.3lf\n",i+1,b[i][J-1]);
Я думаю опять что-то с типами данных. Но массив b[i][j] уже изначально был объявлен через double.
 
Текущее время: 11:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru