Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль

Купить рекламу на форуме 15-35 тыс рублей в месяц

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.12.2008, 02:46   #1
Oleg330
Новичок
Джуниор
 
Регистрация: 25.12.2008
Сообщений: 2
По умолчанию Программа "простые итерации". Готовый код. Проблема с компилированием.

Здравствуйте. Пишу курсовик на С++ по теме "простые итерации.Решение СЛАУ". Вот раздобыл данный код:

Код:
#include<iostream.h>
#include<conio.h>
#include<math.h>
#include<stdlib.h>

void main()
{
	double x1,x2,x3;
	double a[3][3]={{2.7, 0.9, -1.5},
	       {4.5,  -2.8,  6.7},
	       {5.1,  3.7,  -1.4}};
    double a1[3][3]={{2.7, 0.9, -1.5},
	       {4.5,  -2.8,  6.7},
	       {5.1,  3.7,  -1.4}};
	double b[3]={3.5,2.6,-0.14},c[3],d[3],a2[3][3];
	int j,i,method;
    cout<<"\t\t PRIMARY DATE:\n"<<endl;
	cout<<"Matrix A:";
	cout<<"\t    Vector B:"<<endl;
	for( i=0;i<=2;i++)
	{
		cout<<"\n";
		for( j=0;j<=2;j++)
			cout<<a[i][j]<<"  ";
		cout<<"\t";
		cout<<b[i]<<endl;
	}
	cout<<"\n\nPlease select method: Gauss(1) or Easy iteratios(2)"<<endl;
	cin>>method;
	switch(method)
	{
	case 1:
		cout<<"Congratulation you select method of Gauss!!!\n"<<endl;
		for( i=0;i<=2;i++)	
			d[i]=b[i];
		for( i=1;i<=2;i++)
			for( j=1;j<=2;j++)
				a[i][j]=a[i][j]-(1/a[0][0])*a[i][0]*a[0][j];
			for( i=1;i<=2;i++)
				for( j=1;j<=2;j++)
					a2[i][j]=a[i][j];
				for( j=2,i=2;j<=2;j++)
					a[i][j]=a[i][j]-(1/a[1][1])*a[i][1]*a[1][j];
				for( i=1;i<=2;i++)
				{
					b[i]=b[i]-(1/a[0][0])*a[i][0]*b[0];
					c[i]=b[i];
				}
				for( i=2;i<=2;i++)
					b[i]=b[i]-(1/a[1][1])*a[i][1]*b[1];
				x3=b[2]/a[2][2];
				x2=((1)/a2[1][1])*(c[1]-a2[1][2]*x3);
				x1=((1)/a1[0][0])*(d[0]-a1[0][2]*x3-a1[0][1]*x2);
				cout<<"x1="<<x1<<endl;
				cout<<"x2="<<x2<<endl;
				cout<<"x3="<<x3<<endl;
				break;
	case 2:
		cout<<"Congratulation you select method of Easy iteratios!!!"<<endl;
		double x[3],x1[3],e,km=20,k=1,s;
		cout<<"Please enter the E:";
		cin>>e;
		for(i=0;i<3;i++)
			x[i]=b[i];
		for(k=0;k<km;k++)
		{
			for(i=0;i<=2;i++)
			{
				s=0; 
				for(j=0;j<=2;j++)
				{
					if(i!=j)
						s+=a[i][j]*x[j]; 
				}
				x1[i]=(b[i]-s)/a[i][i];	
			}
			for(i=0;i<=2;i++)
			{
				int t=i+1;
				cout<<"x["<<t<<"]=";
				cout<<x1[i]<<endl;
			}
			cout<<"\n";
			for(i=0;i<=0;i++)
			{
				if((fabs(x1[i]-x[i]))>e)
				{
					for(j=0;j<=2;j++)
						x[j]=x1[j];
					
				}
				else
				{
					cout<<"Number of iteratios:"<<k<<endl;
					getch();
					exit(0);
				}	
			}	
		}
		break;
	}
	
	getch();
}
Компилирую Dev-C++. Не компилирует и выдает вот такую загогулину:32:2 C:\Dev-Cpp\include\c++\3.4.2\backward\back ward_warning.h #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <iostream> instead of the deprecated header <iostream.h>. To disable this warning use -Wno-deprecated.

Вопрос 1: Как всетаки это дело скомпилировать(т.е. в чем ошибка)?
Вопрос 2: Здесь 2 примера в одно - мой и ещё метод гаусса, подскажите как вырезать ненужную "ветку" выбора между двумя примерами?
Заранее всем благодарен!
Oleg330 вне форума Ответить с цитированием
Старый 25.12.2008, 03:28   #2
eyo
Помощник
Пользователь
 
Регистрация: 24.12.2008
Сообщений: 55
По умолчанию

Пробуй так:
Код:
#include<iostream>
#include<conio.h>
#include<math.h>
#include<stdlib.h>
using namespace std;

void main()
{
	double a[3][3]={{2.7, 0.9, -1.5},
	       {4.5,  -2.8,  6.7},
	       {5.1,  3.7,  -1.4}};
    double a1[3][3]={{2.7, 0.9, -1.5},
	       {4.5,  -2.8,  6.7},
	       {5.1,  3.7,  -1.4}};
	double b[3]={3.5,2.6,-0.14};
	int j,i;
    cout<<"\t\t PRIMARY DATE:\n"<<endl;
	cout<<"Matrix A:";
	cout<<"\t    Vector B:"<<endl;
	for( i=0;i<=2;i++)
	{
		cout<<"\n";
		for( j=0;j<=2;j++)
			cout<<a[i][j]<<"  ";
		cout<<"\t";
		cout<<b[i]<<endl;
	}

	double x[3],x1[3],e,km=20,k=1,s;
	cout<<"Please enter the E:";
	cin>>e;
	for(i=0;i<3;i++)
		x[i]=b[i];
	for(k=0;k<km;k++)
	{
		for(i=0;i<=2;i++)
		{
			s=0; 
			for(j=0;j<=2;j++)
			{
				if(i!=j)
					s+=a[i][j]*x[j]; 
			}
			x1[i]=(b[i]-s)/a[i][i];	
		}
		for(i=0;i<=2;i++)
		{
			int t=i+1;
			cout<<"x["<<t<<"]=";
			cout<<x1[i]<<endl;
		}
		cout<<"\n";
		for(i=0;i<=0;i++)
		{
			if((fabs(x1[i]-x[i]))>e)
			{
				for(j=0;j<=2;j++)
					x[j]=x1[j];
			}
			else
			{
				cout<<"Number of iteratios:"<<k<<endl;
				getch();
				exit(0);
			}	
		}	
	}
	getch();
}
Продал кроссовки Fila, купил текилу.
eyo вне форума Ответить с цитированием
Старый 25.12.2008, 21:52   #3
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

хм.. в борланде нормально компилируется

P.S.
Могу добавить, что используемый тобою редактор мне попался самым первым, и я его заменил именно из-за непонятных (лично мне) ошибок при компиляции 9как мне казалось) абсолютно праивльного кода, хотя возможно я был не прав.
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс

Последний раз редактировалось ROD; 25.12.2008 в 22:06.
ROD вне форума Ответить с цитированием
Старый 25.12.2008, 22:31   #4
eyo
Помощник
Пользователь
 
Регистрация: 24.12.2008
Сообщений: 55
По умолчанию

Этот исходник в вижуале не компилировался, там же надо iostream подключать без расширения .h
Продал кроссовки Fila, купил текилу.
eyo вне форума Ответить с цитированием
Старый 25.12.2008, 22:37   #5
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Oleg330
Изменил
Код:
#include<iostream.h>
на
Код:
#include<iostream>
После инклудов добавил
Код:
using namespace std;
и изменил тип главной функции на int.
Скомпилировал в Dev-C++ - ошибок больше не вылезало.

ROD
Цитата:
Могу добавить, что используемый тобою редактор мне попался самым первым, и я его заменил именно из-за непонятных (лично мне) ошибок при компиляции 9как мне казалось) абсолютно праивльного кода, хотя возможно я был не прав.
Это мой второй редактор (первый был блокнот+gcc ). Пробовал и борланд и студию, но так с него и не ушел )
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]

Последний раз редактировалось Sazary; 25.12.2008 в 22:40.
Sazary вне форума Ответить с цитированием
Старый 25.12.2008, 22:39   #6
eyo
Помощник
Пользователь
 
Регистрация: 24.12.2008
Сообщений: 55
По умолчанию

Эм, я ж это уже выкладывал в рабочем состоянии.
Продал кроссовки Fila, купил текилу.
eyo вне форума Ответить с цитированием
Старый 25.12.2008, 22:43   #7
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

eyo
Цитата:
Эм, я ж это уже выкладывал в рабочем состоянии.
Большой пардон ) Видимо, переутомился и не заметил.
Но, в Dev-C++ ф-ю main все же лучше делать типа int - иначе ругаться будет )
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 25.12.2008, 22:43   #8
Oleg330
Новичок
Джуниор
 
Регистрация: 25.12.2008
Сообщений: 2
По умолчанию

Спасибо парни, действительно косяк какойто с этим компилятором( Поменял тип главной функции на int и заработало!
TO EYO: а ты писал эту прогу? не подскажешь что там задет е которое вводится в методе итераций?)
Oleg330 вне форума Ответить с цитированием
Старый 25.12.2008, 22:48   #9
eyo
Помощник
Пользователь
 
Регистрация: 24.12.2008
Сообщений: 55
По умолчанию

Цитата:
Сообщение от Sazary Посмотреть сообщение
eyo

Большой пардон ) Видимо, переутомился и не заметил.
Да ниче, бывает
Цитата:
Сообщение от Oleg330 Посмотреть сообщение
Спасибо парни, действительно косяк какойто с этим компилятором( Поменял тип главной функции на int и заработало!
TO EYO: а ты писал эту прогу? не подскажешь что там задет е которое вводится в методе итераций?)
Точность.
Продал кроссовки Fila, купил текилу.
eyo вне форума Ответить с цитированием
Старый 25.12.2008, 23:51   #10
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,619
По умолчанию

Чтобы написать курсовик, вам желательно не просто код раздобыть, а и с алгоритмом разобраться.
Вот тут есть про этот метод.
MaTBeu вне форума Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при использовании OlePropertyGet("Documents").OleProcedure("Add") в C++ Builder AleksP C++ Builder 7 11.04.2009 13:06
если пользователь наберет какой-то другой символ не "y" или "n" и нажмет enter, программа проигнорирует skobets Общие вопросы C/C++ 2 03.06.2008 06:51
Excel файл открывается не "до конца" (странички "не показываются" только серое поле) Dorvir Microsoft Office Excel 2 28.03.2008 10:03
Создаю диаграмму "Bar". Подскажите как убрать растояние между "столбами" MAcK Компоненты Delphi 11 24.10.2007 10:49