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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.02.2012, 13:58   #1
mrG0bliN
Пользователь
 
Регистрация: 24.01.2012
Сообщений: 20
Вопрос [Borland C++ Builder] Оживить лабу, все данные внутри темы

Доброе утро мастера своего дела... нужно привести программу в рабочий вид...
------
Само задание походу...



Код программы:

Код:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
float **a,*b,*x;
//--------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
	: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
//-----------------------Исходных данных-------------------------------------
double s,c,t,r;
int i,n,k,g,p,m,j;
//-----------------------Чтение вводимых данных------------------------------
n=StrToFloat(Edit1->Text)+1;
a= new float*[n];
for(i=1; i<n; i++) 	a[i] = new float [n];
b= new float [n];
x= new float [n];
for (i=1;i<n;i++)
		for (g=1;g<n;g++)
			 a[i][g]=StrToFloat(StringGrid1->Cells[g][i]);
for (i=1;i<n;i++)  b[i]=StrToFloat(StringGrid3->Cells[0][i]);
n=n--;
//-----------------------Поиск максимального ведущего элемента---------------
for (k=1; k <= n-1; k++) {
							p=k;
							for (m=k+1; m<=n; m++)  if (a[p][k]<a[m][k]) p=m;
//------------------------Перестановка строк---------------------------------
							for (j=k; j<=n; j++){ r=a[k][j]; a[k][j]=a[p][j]; a[p][j]=r;}
//------------------------Перестановка свободных членов----------------------
							r=b[k];
							b[k]=b[p];
							b[p]=r;
//-----------------------Периведение матрицы к верхнему треугольному виду----
							for (m = k+1; m<=n; m++) {c=a[m][k]/a[k][k]; b[m]=b[m]-c*b[k];}
								for (i=k; i<=n; i++) a[m][i]=a[m][i]-c*a[k][i];}
							x[n]=b[n]/a[n][n];
//-----------------------Обратный ход метода гауса---------------------------
for (i = n-1; i >= 1; i--) {s=0;
for (i = k+1; i <= n; i++) s+=a[k][i]*x[i];
x[k]=(b[k]-s)/a[k][k];}
//-----------------------Вывод вектора решений-------------------------------
for (i=1; i<=n; i++)
	StringGrid2->Cells[0][i]= FloatToStr(x[i]);
}
//-----------------------Оформление матриц-----------------------------------
void __fastcall TForm1::Edit1Change(TObject *Sender)
{
int n,i;
		n=StrToInt(Edit1->Text);
		StringGrid1->ColCount=n+1;
		StringGrid1->RowCount=n+1;
		StringGrid1->FixedCols=1;
		StringGrid1->FixedRows=1;
		for (i = 1; i<=n; i++) {StringGrid1->Cells[i][0]="g="+IntToStr(i);}
		for (i = 1; i<=n; i++) {StringGrid1->Cells[0][i]="i="+IntToStr(i);}
		StringGrid1->Cells[0][0] = "A";
		StringGrid3->Cells[0][0] = "B";
		StringGrid2->Cells[0][0] = "x";
		StringGrid2->RowCount=n+1;
		StringGrid3->RowCount=n+1;
}
//-----------------------Кнопка закрыть--------------------------------------
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
delete []a;
delete []b;
delete []x;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Edit1Click(TObject *Sender)
{
Form1->Edit1->SelectAll();
}
//---------------------------------------------------------------------------
"Хэ" файл с доп данными:

Код:
//---------------------------------------------------------------------------

#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <Buttons.hpp>
#include <Grids.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:	// IDE-managed Components
	TStringGrid *StringGrid1;
	TStringGrid *StringGrid2;
	TEdit *Edit1;
	TLabel *Label1;
	TButton *Button1;
	TBitBtn *BitBtn1;
	TStringGrid *StringGrid3;
	void __fastcall Button1Click(TObject *Sender);
	void __fastcall Edit1Change(TObject *Sender);
	void __fastcall BitBtn1Click(TObject *Sender);
	void __fastcall Edit1Click(TObject *Sender);
private:	// User declarations
public:		// User declarations
	__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
То что должно получиться:


Последний раз редактировалось mrG0bliN; 29.02.2012 в 14:33.
mrG0bliN вне форума Ответить с цитированием
Старый 01.03.2012, 00:33   #2
mrG0bliN
Пользователь
 
Регистрация: 24.01.2012
Сообщений: 20
По умолчанию

когда жму старт ошибку выбивает =\
mrG0bliN вне форума Ответить с цитированием
Старый 01.03.2012, 06:31   #3
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от mrG0bliN Посмотреть сообщение
когда жму старт ошибку выбивает =\
Во-первых, какую ошибку (описание).
Во-вторых, нужно приводить не всю программу, а проблеммный участок.
В третьих, если хотите, что-бы люди посмотрели вашу программу полностью, нужно выкладывать весь проект (rar или zip файл).
По Вашему у нас есть время (и желание) возиться с расстановкой компонентов на форме?
И в четвёртых, мало ли какие Вы сделали настройки в инспекторе объектов.
И в пятых, cpp и h файлов мало, нужен ещё bpr (файл проекта), может ошибка именно там ИМХО.
А вот за то, что блок-схему привели, хвалю.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 01.03.2012 в 06:34.
Smitt&Wesson вне форума Ответить с цитированием
Старый 02.03.2012, 00:53   #4
mrG0bliN
Пользователь
 
Регистрация: 24.01.2012
Сообщений: 20
Стрелка

Цитата:
Сообщение от Smitt&Wesson Посмотреть сообщение
------------------------------------------------------------------------
1.Во-первых, какую ошибку (описание)
------------------------------------------------------------------------
с заполненным массивом числами +числа в правой колонке


без разницы чем заполненный массив без правой колонки
точ такое же лезет если просто старт нажать


------------------------------------------------------------------------

------------------------------------------------------------------------
2. Во-вторых, нужно приводить не всю программу, а проблеммный участок.
------------------------------------------------------------------------
С этим у меня затруднения. я толком не знаю де копать
------------------------------------------------------------------------

------------------------------------------------------------------------
3.В третьих, если хотите, что-бы люди посмотрели вашу программу полностью, нужно выкладывать весь проект (rar или zip файл).
------------------------------------------------------------------------
http://rghost.ru/36800252
debug - программа собранная из кода
laba - сами файлы
метода, задние схема что в самом начале\не столь важен файл \
------------------------------------------------------------------------

------------------------------------------------------------------------
0.По Вашему у нас есть время (и желание) возиться с расстановкой компонентов на форме?
------------------------------------------------------------------------
я знаю что тут никто никому ничего не должен... я умею ждать... вдруг кто то поможет... да и я сам пытаюсь блин, но без успешно =\
------------------------------------------------------------------------

------------------------------------------------------------------------
4.И в четвёртых, мало ли какие Вы сделали настройки в инспекторе объектов.
------------------------------------------------------------------------
там базовые параметры вроде.
------------------------------------------------------------------------

------------------------------------------------------------------------
5.И в пятых, cpp и h файлов мало, нужен ещё bpr (файл проекта), может ошибка именно там ИМХО.
------------------------------------------------------------------------
ссылка на файлы выше :3
------------------------------------------------------------------------

------------------------------------------------------------------------
6.А вот за то, что блок-схему привели, хвалю.
------------------------------------------------------------------------
чем информативнее - тем выше шансы что мне помогут
------------------------------------------------------------------------
mrG0bliN вне форума Ответить с цитированием
Старый 02.03.2012, 01:00   #5
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Цитата:
------------------------------------------------------------------------
1.Во-первых, какую ошибку (описание)
------------------------------------------------------------------------
с заполненным массивом числами +числа в правой колонке
Чтение с недоступного участка памяти!
Короч чёт с индексами намутили!
Цитата:
без разницы чем заполненный массив без правой колонки
точ такое же лезет если просто старт нажать
n=StrToFloat(Edit1->Text)+1;
a= new float*[n];
не совсем понятно
для чего размер массива вы к float приводите?
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Немогу найти материалы , конспекты по темам которые мне задали в колледже (подробнее внутри темы ) Аттила_вождь_гуноВ Помощь студентам 2 23.11.2011 10:41
Borland C++ Builder m@rusl@12 C++ Builder 1 25.04.2010 15:47
делал лабу на ХР все работало, принес ее домой, а у меня виста, не хочет работать JUE C++ Builder 4 01.12.2009 13:47
c++ Borland builder 4ika C++ Builder 1 27.11.2009 20:32
как в Делфи создать кнопочку "ОК". подробности внутри темы.... Кристина2008 Общие вопросы Delphi 2 09.12.2008 22:49