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

Создать функцию с параметром - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ У меня жосткий тупняк.. http://www.cyberforum.ru/cpp-beginners/thread221748.html
Описать класс «комната», содержащий сведения о метраже, высоте потолков и количестве окон. Предусмотреть инициализацию с проверкой допустимости значений полей. В случае недопустимых значений полей...
C++ проверьте решение прошу помощи: на зачет бежать скоро, написал в блокноте код (за неимением компилятора). проверьте пожалуйста, кому не сложно. условие в файле. #include <iostream.h> #include <conio.h> #include... http://www.cyberforum.ru/cpp-beginners/thread221747.html
Составить блок-схему по готовому коду C++
Помогите, пожалуйста, составить блок-схему. Дана целочисленная квадратная матрица порядка 8. Найти наименьшее из значений элементов столбца, который обладает наибольшей суммой модулей элементов....
Вывести количество идеальных вариантов C++
есть три множества одинаковой мощности-мужчины женщины и дома. (все по n) между мужчинами:senor: и женщинами:flirt: есть симпатии. и мужчинам:cofee2: и женщинам:O_O: нравятся некоторые дома....
C++ fscanf(stream,"%s",s) читает до первого пробела? http://www.cyberforum.ru/cpp-beginners/thread221726.html
как прочитать строку из текстового файла целиком? (до \n)
C++ Односвязный кольцевой список. Ребят, подскажите как реализовать односвязный кольцевой список с ключами. Без ключей я знаю как, а что делают эти самые ключи? подробнее

Показать сообщение отдельно
RUSya82
236 / 114 / 3
Регистрация: 15.10.2010
Сообщений: 395
28.12.2010, 14:32
Вычисление определителя:
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
#include <iostream.h>
#include <conio.h>
#include <math.h>
#include <iomanip.h>
 
void input(float A[][16], int& n);//функция ввода матрицы,вводит с клавиатуры значения членов матрицы
//выводит полученную матрицу на экран.порядок матрицы не более 10.
double opr(float A[][16], int n);//вычисляет определитель матрицы
double dopoln(float A[][16], int l, int n);//вычисляет алгебраическое дополнение, вызывается в функции определителя
 
int main()
{
 clrscr();
 int n;
 float A[16][16];
 double op;
 input (A, n);
 op = opr(A, n);
 cout.setf(ios::fixed);//вывод данных в формате с фиксированной запятой
 cout.setf(ios::showpoint);//все числа выводятся с десятичным разделителем
 cout.precision(5);//выводится 5 знаков после запятой
 cout << " opredelitel' matritsy raven " << op << endl;
 getch();
 return 0;
}
void input(float A[][16], int& n)
{
 int i, j;//управляющие переменные,i-строки,j-столбцы
 do
 {
 cout << "VVedite poryadok matritsy, 0<n<10 \n";
 cin >> n;
 if ((n<0)||(n>15))
 cout << "ERROR!!!\n";
 }while ((n<0)||(n>15));//цикл запрашивает у пользователя порядок матрицы,если n<0,или n>10,то выводится сообщение об ошибке
 cout << "VVedite elementy matritsy po strokam \n";
 for (i=1;i<=n;i++)//цикл заполнения строк
 {
  for (j=1;j <=n; j++)//цикл заполнения столбцов
  {
  cout << "A[" << i << "][" << j << "] = ";
  cin >> A[i][j];
  }
  cout << endl;
 }
 cout << "vy vveli matritsy :\n";
 for (i=1;i<=n;i++)//вывод полученной матрицы на экран
 {
  for (j=1;j<=n;j++)
  cout << setw(5) << A[i][j];
  cout << endl;
 }
}
 
double opr(float A[][16], int n)
 
{
 int j;
  double op;
 if (n>3)//если порядок матрицы больше 3,то определитель вычисляется через алгебраическое дополнение
 {
  for (j=1;j<=n;j++)//определитель вычисляется по первой строке
  op += A[1][j] * dopoln(A,j,n);
  return (op);
 }
 else if (n==3)//если определитель равен 3,то вычисляется методом треугольника
 op = A[1][1] * A[2][2] * A[3][3] + A[1][2]*A[2][3]*A[3][1] + A[1][3] * A[2][1] * A[3][2] - A[1][2] * A[2][1] * A[3][3] - A[1][1] * A[2][3] * A[3][2] - A[1][3] * A[2][2] * A[3][1];
 else if (n==2)//а если двум,то просто крест-накрест
 op = A[1][1] * A[2][2] - A[1][2] * A[2][1];
 else if (n==1)//ну а если 1,то естественно...
 op = A[1][1];
 return (op);
 
}
 
 
 double dopoln(float A[][16], int l, int n)
 
{
 int i, j;
  float X[16][16];
 double d;
 for (i=1;i<n;i++)//цикл нахождения минора матрицы,по первой строке.Х[10][10]- минор матрицы
 {
     for (j=1;j<n;j++)
   {
    if (j<l)
    X[i][j] = A[i+1][j];
    else
    X[i][j] = A[i+1][j+1];
   }
 }
   d = opr(X, n-1);
  return ( pow((-1), 1+l) * d);
}
правда это С++, но передача параметров от С тут не отличается
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru