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

Сумма по строкам в матрице и индексы - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Позиция элемента в контейнере STL кон. SET, поиск контейнер set словарь позиция http://www.cyberforum.ru/cpp-beginners/thread554580.html
Есть код №1. Он выводить на экран позицию нужного мне слова (только если в середине 1 слово а не 2 и больше например только "privet". А когда "privet kak dela" - он не хочет работать), которое я ищу в самом контейнере. Каким образом можно сделать такое, только из контейнером set и не 1 слово в середине а несколько, хотя б 3. Позиция данного элемента нужна, что б по позиции вывести нужные мне...
C++ Узнать, есть ли элемент на определенной позиции в экземпляре std::vector Подскажите пожалуйста, как узнать есть ли элемент на определенной позиции в экземпляре std::vector? Например есть: vector<int> intVector; Нужно узнать есть ли что нибудь на позиции i: intVector P.S. Сам все понял, тему можно удалить. http://www.cyberforum.ru/cpp-beginners/thread554563.html
C++ Консольная программа тестирования [работа с текстовыми файлами]
Здравствуйте. Первый раз программирую на С++. Есть "ТЗ": разработать программу для тестирования знаний учащихся (курсач). Подскажите, есть ли на этом форуме похожие темы? Поиском пользовался, но то ли лыжи не те, то ли я... Если же тем нету, то дайте пожалуйста ссылки на тему по работе с файлами и каталогами. То есть нужна следующая информация: -просмотр списка файлов в каталоге -чтение и...
Метод Милна. Расчет по нескольким уравнениям. C++
Приветствую вас. Очень помощь нужна мне © Йода XD. Нужно модернизировать программку, чтобы можно было производить расчет по нескольким уравнениям, а не по одному, заданному программой. Ниже вложено изображение с примерами. Все что нужно сделать в программе: сделать возможным ввод коэффициентов уравнений и выбора степени х и у. Ну и хотелось бы чтобы прога выводила значения правильно))) float...
C++ Описаие класса http://www.cyberforum.ru/cpp-beginners/thread554553.html
Задание: Классы Террит единица, область, растение, дерево, цветок,страна. запросы: вывести перечень растений указанного вида, произросшего в террит единице указанного вида; вывести перечень ягодных деревьев, произрастающих в территориальной единице указанного вида вывести количесво видов видов растений указанного вида, произрастающих в территориальной единице указанного вида. ...
C++ Ошибка в cannot convert char * to char вроде поправил теперь выводит ересь( Всем доброго дня! У меня такая проблемка.... написал программу, но сначала она ругалась на Cannot convert char* to char теперь вроде исправил, но теперь в выводе мне пишет чтото непонятное....Помогите пжалсто =) #include <stdio.h> #include <string.h> #include <conio.h> #include <stdlib.h> void main() { int vhod,b,c,d,e,g ; FILE *f; подробнее

Показать сообщение отдельно
apachan
13 / 13 / 2
Регистрация: 07.12.2010
Сообщений: 127
21.04.2012, 20:12     Сумма по строкам в матрице и индексы
Есть программа, решение слау, не суть важно, нужно выяснить, есть ли в матрице А диагональное преобладание (а если нет - то вывести номер строки, где оно нарушается), т.е. модуль элементов на гл. диагонали меньше суммы модулей остальных элементов в строке, пример:

2 1 0 0
1 4 -0.5 0
0 1 -5 2
0 0 1 4

Элементы на диагонали: 2>1+0+0; 4>1+0.5+0; |-5|>2+1+0 4>0+0+1, есть
если б вместо 1 в первой строке было 100, не было бы, соотв.

Как-то так Вот что есть:


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
#include <iostream.h>
#include <math.h>
void main (void)
{
int N,i,j,k;
cout <<"Enter N: "; // Ввод номера варианта
cin >>N;
double A[4][4]={{2,1,0,0},{1,2*N,-0.5,0},{0,1,-5,2},{0,0,1,4}},
// Матрица А, приведённая к трехдиагональному виду
R[4][1]={{0.2*N+1},{2*N},{-N+5},{0.2*N+8}},
X[4][1]={{0},{0},{0},{0}},
B[4][1]={{0},{0},{0},{0}}, // Элементы ниже главной диагонали
C[4][1]={{0},{0},{0},{0}}, // Элементы из главной диагонали
D[4][1]={{0},{0},{0},{0}}, //Элементы выше главной диагонали
delta[4][1]={{0},{0},{0},{0}},
lambda[4][1]={{0},{0},{0},{0}};
cout <<endl<<"Matrix A"<<endl; // Вывод матрицы А
for (i=0; i<4; i++)
{
for (j=0; j<4; j++)
{
cout<<A[i][j]<<" ";
}
cout <<endl;
}
cout <<endl;
cout <<"Matrix R"<<endl; // Вывод матрицы R
for (i=0; i<4; i++)
{
cout<<R[i][0];
cout<<endl;
}
cout <<endl;
for (i=0; i<4; i++)
{
C[i][0]=A[i][i]; // Заполнение С элементами из главной диагонали матрицы А
}
cout <<"Matrix C"<<endl; // Вывод вектора С
for (i=0; i<4; i++)
{
cout<<C[i][0];
cout<<endl;
}
cout <<endl;
for (i=0; i<3; i++)
{
B[i+1][0]=A[i+1][i];
// Заполнение вектора В элементами, стоящими ниже главной диагонали матрицы А
}
cout <<"Matrix B"<<endl; // Вывод вектора В
for (i=0; i<4; i++)
{
cout<<B[i][0];
cout<<endl;
}
cout <<endl;
for (i=0; i<3; i++)
{
D[i][0]=A[i][i+1];
// Заполнение вектора D элементами, стоящими выше главной диагонали матрицы А
}
cout <<"Matrix D"<<endl; // Вывод вектора D
for (i=0; i<4; i++)
{
cout<<D[i][0];
cout<<endl;
}
cout <<endl;
delta[0][0]=-D[0][0]/C[0][0];
// Первый элемент ?1 равен отрицательному отношению первых элементов векторов D и С
lambda[0][0]=R[0][0]/C[0][0];
// Первый элемент ?1 равен отрицательному отношению первых элементов векторов R и С
// Вычисление коэффициентов ?i и ?i :
for (i=1; i<4; i++)
{
delta[i][0]=-D[i][0]/(C[i][0]+B[i][0]*delta[i-1][0]);
lambda[i][0]=(R[i][0]-B[i][0]*lambda[i-1][0])/(C[i][0]+B[i][0]*delta[i-1][0]);
}
cout <<"Matrix delta"<<endl; // Вывод матрицы ?
for (i=0; i<4; i++)
{
cout<<delta[i][0];
cout<<endl;
}
cout <<endl;
cout <<"Matrix lambda"<<endl; // Вывод матрицы ?
for (i=0; i<4; i++)
{
cout<<lambda[i][0];
cout<<endl;
}
cout <<endl;
X[3][0]=lambda[3][0]; // Старшему элементу Х присваиваем третье значение ?
for (i=2; i>-1; i--)
{
X[i][0]=delta[i][0]*X[i+1][0]+lambda[i][0]; // x(i) = ?(i)*x(i+1) + ?(i)
}
cout <<"Matrix X"<<endl; // Вывод Х (решения)
for (i=0; i<4; i++)
{
cout<<X[i][0];
cout<<endl;
}
cout <<endl;
if ((fabs(A[0][0])>fabs(A[0][1]+A[0][2]+A[0][3])) && (fabs(A[1][1])>fabs(A[1][0]+A[1][2]+A[1][3])) && (fabs(A[2][2])>fabs(A[2][0]+A[2][1]+A[2][3])) && (fabs(A[3][3])>fabs(A[3][0]+A[3][2]+A[3][1])))
    cout<<"Da"<<endl;
else
 
cout<<"Net"<<endl;
 
}
Вопросы: как вывести номер строки, где нарушение и может как-то можно обойтись без кучи условий (для больших матриц, 10х10)?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 11:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru