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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Анастасия Сонечко
1 / 1 / 0
Регистрация: 05.12.2008
Сообщений: 39
#1

Программа на С++Методо Гаусса - C++

07.04.2009, 02:04. Просмотров 810. Ответов 1
Метки нет (Все метки)

[CPP] Реализован метод Гаусса.Предмет Численные методы. Может кто-то сталкивался.Но запустить не могу.Одно предупереждение об инициализации N.Среда Visual Studio 2008.Просьба помочь.Заранее спасибо.
.
#include<iostream>
using namespace std;
#include "locale.h"
#include <stdio.h>
#include <conio.h>
#include <math.h>
#define N 50
void chisl( int k, double mas[] [N + 1], int n, int otv[] );

int main( void )
{
setlocale(LC_ALL,"rus");
double mas[N] [N + 1];
double x[N]; //Корни системы
int otv[N]; //Отвечает за порядок корней
int i, j, k, n;
//Ввод данных
do
{
cout<<"Введите число уравнений: ";
cout<<"%d",&n;
if ( N < n )
cout<< "Очень большое число.Попробуйте еще раз\n";
}
while ( N < n );
cout<< "Уравнение системы:\n" ;
for ( i = 0; i < n; i++ )
for ( j = 0; j < n + 1; j++ )
cout<<"%lf", & mas[i] [j];
//Вывод введенной системы
cout<<"Уравненение системы:\n" ;
for ( i = 0; i < n; i++ )
{
for ( j = 0; j < n + 1; j++ )
cout<<"%7.2f ", mas[i] [j] ;
cout<<"\n" ;
}
//Сначала все корни по порядку
for ( i = 0; i < n + 1; i++ )
otv[i] = i;
//Прямой ход метода Гаусса
for ( k = 0; k < n; k++ )
{ //На какой позиции должен стоять главный элемент
chisl( k, mas, n, otv ); //Установка главного элемента
if ( fabs( mas[k] [k] ) < 0.0001 )
{
cout<<"У системы нет одного решения";
return ( 0 );
}
for ( j = n; j >= k; j-- )
mas[k] [j] /= mas[k] [k];
for ( i = k + 1; i < n; i++ )
for ( j = n; j >= k; j-- )
mas[i] [j] -= mas[k] [j] * mas[i] [k];
}
//Обратный ход
for ( i = 0; i < n; i++ )
x[i] = mas[i] [n];
for ( i = n - 2; i >= 0; i-- )
for ( j = i + 1; j < n; j++ )
x[i] -= x[j] * mas[i] [j];
//Вывод результата
cout<< "Вывод ответа на экран:\n";
for ( i = 0; i < n; i++ )
for ( j = 0; j < n; j++ )
if ( i == otv[j] )
{ //Расставляем корни по порядку
cout<<"%f\n", x[j];
break;
}
system("pause");
return 0;
}
//---------------------------------------------------------------------------
//Описание функции
//----------------------------------------------
void chisl( int k, double mas[] [N + 1], int n, int otv[] )
{
int i, j, i_max = k, j_max = k;
double temp;
//Ищем максимальный по модулю элемент
for ( i = k; i < n; i++ )
for ( j = k; j < n; j++ )
if ( fabs( mas[i_max] [j_max] ) < fabs( mas[i] [j] ) )
{
i_max = i;
j_max = j;
}
//Переставляем строки
for ( j = k; j < n + 1; j++ )
{
temp = mas[k] [j];
mas[k] [j] = mas[i_max] [j];
mas[i_max] [j] = temp;
}
//Переставляем столбцы
for ( i = 0; i < n; i++ )
{
temp = mas[i] [k];
mas[i] [k] = mas[i] [j_max];
mas[i] [j_max] = temp;
}
//Учитываем изменение порядка корней
i = otv[k];
otv[k] = otv[j_max];
otv[j_max] = i;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.04.2009, 02:04     Программа на С++Методо Гаусса
Посмотрите здесь:

нужна программа в С++ реализующая метод Гаусса - C++
Ребят нужна программа в С++ реализующая метод Гаусса!Вот такое задание дали)

Программа решающая матрицу методом Гаусса - C++
Доброго времени суток!Напишите программу пожайлуста !если не трудно с пояснением для полного &quot;дуба&quot;!) в графическом режиме

Почему программа прерывается с ошибкой? Реализовывал решение СЛАУ методом Гаусса - C++
#include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; int main() { int n=0; int m=0; int l1=5; int...

Метод Гаусса - C++
Добрый вечер, можете написать программу для решения СЛАУ методом гаусса на Си, чтобы был прямой и обратный ход.

Метод Гаусса - C++
#include&lt;stdio.h&gt; #include&lt;iostream.h&gt; #include&lt;conio.h&gt; #include&lt;stdlib.h&gt; #include&lt;malloc.h&gt; // global variable declarations...

Метод Гаусса - C++
Помогите, пожалуйста, написать программу. Вот условие: Написать программу решения системы уравнений методом Гаусса. С ее помощью...

метод Гаусса - C++
дана система линейных уравнений, в графическом режиме надо написать программу. Не понимаю как, помогите. в системе 4 уравнения

метод Гаусса - C++
Помогите пожалуйста написать программу на С++ Задана система линейного уравнения:MA*X=B. Для решения уравнения использовать метод Гаусса

Метод Гаусса!!! - C++
Всем привет! )) У меня вот такая проблемка! Нужно решить СЛАУ методом Гаусса с выбором главного элемента по столбцу!! Теоретически знаю, а...

Метод Гаусса - C++
Всем доброго времени суток. Нужно написать программу для решения СЛАУ методом Гаусса. #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #define...

метод гаусса - C++
найти метод гаусса n+1 значение определителя в n+1 точке, а затем решить систему из n+1 уравнение с n+1 неизвестными. составить...

реализация гаусса - C++
так люди - просить написать за меня не прошу - сам сделаю... у меня вот в чем загвоздка - решил не искать легкий путей - пользователь...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ISergey
Maniac
Эксперт С++
1372 / 883 / 52
Регистрация: 02.01.2009
Сообщений: 2,652
Записей в блоге: 1
07.04.2009, 02:28     Программа на С++Методо Гаусса #2
для ввода даных вместо
C++
1
cout<<"%d",&n;
нужно
C++
1
cin>>n
ну и дальше по коду также. И поток cout строку "%.." будет просто выводить на эран.. не путайте с printf(...).
Yandex
Объявления
07.04.2009, 02:28     Программа на С++Методо Гаусса
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru