Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.06.2011, 00:23   #1
limaxY
Пользователь
 
Регистрация: 12.12.2010
Сообщений: 12
По умолчанию Задача: привести систему к треугольному виду

Цитата:
Условие задачи:
Коэфиценты системы линейных уравнений заданы в виде прямоугольной матрицы. С помощью допустимых
преобразований привести систему к треугольному виду.

Найти количество строк, среднее арифметическое элементов которых меньше заданной величины.
Задача решена, но не могу привести никак к треугольному виду, помогите пожалуйста:


Цитата:
Код:
#include <iostream>
#include <stdio.h>
using namespace std; 
 
int main() // головной модуль
{
        setlocale (LC_ALL,"Rus");
        int a[10][10]; 
        int m, n;
        int i, j; 
        int b; 
        cout << "Введите количество строк: ";
        cin >> m;
        cout << "Введите количество столбцов: ";
        cin >> n;
        cout << "Введите элементы: \n";
        
        for(i = 0; i < m; i++)
                for(j = 0; j < n; j++)
                        
        cin >> a[i][j];
        
        cout << "\nМатрица: ";  
        for(i = 0; i < m; i++)
        {
                cout << "\n";           
                for(j = 0; j < n; j++)
                        {
                                cout << a[i][j];
                                cout << " \t"; 
                        }
        };
                
                cout << "\n\nВведите величину: ";
                cin >> b;
                int s = 0, kol = 0;
                
                for (i = 0; i < m; i++)
                        {
                                s = 0;
                                for(j = 0; j < n; j++)
                                        {
                                                s += a[i][j];
                        
                                        }
                                s = s / n;
                                if(s < b) kol++;
                        }
                cout << "\nКоличество строк: " << kol << " \n";
}
limaxY вне форума Ответить с цитированием
Старый 07.06.2011, 08:50   #2
KobolD
Форумчанин
 
Регистрация: 10.06.2010
Сообщений: 239
По умолчанию

тебе можно воспользоваться прямым ходом из метода гауса.
матрица коэфициентов a[][], вектор свободных членов b[], колличество строк n.
Код:
        // Прямой ход метода 
        double M;
        for(int i = 0; i<n-1; i++)
        {
                for(int j = i; j<n-1; j++)
                {
                        M = -a[j+1][i]/a[i][i];
                        for(int k = i; k<n; k++)
                        {
                                a[j+1][k] += a[i][k]*M; 
                                if(a[j+1][k] < 0.000001 & a[j+1][k]> -0.000001)
                                        a[j+1][k] = 0;
                        }
                        b[j+1] += b[i]*M;
                }
        }
Чтобы слова не расходились с делом, нужно молчать и ничего не делать.
KobolD вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Движение треугольника по треугольному контуру VD1988 Помощь студентам 0 18.12.2009 18:39
Простая с виду задача, но.. RomT24 Паскаль, Turbo Pascal, PascalABC.NET 1 11.05.2009 23:55
Как привести к виду для счета? Диагностик Microsoft Office Excel 11 10.04.2009 14:57
Как привести числа к другому виду Людмилка Microsoft Office Excel 1 18.11.2008 10:19
Движение по треугольному контуру?? Roberto Помощь студентам 1 04.05.2008 18:34