![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#61
|
|||
|
|||
|
Цитата:
А как бы это еще сделать - не напишите, плиз... ато у меня действительно с этим туго - причме очень - и тоже вопросик есть - а вот как Вы писали в проге - оно выводит данные в файл после пого, ка меняются столбцы - а как можно сделать, что бы выводило и начальную матрицу, до замены столбцов? |
|
#62
|
|||
|
|||
|
Цитата:
Щелкнуть на форме. Потом в ObjectInspector на закладке Events выбрать нужное событие. Щелкнуть на нем два раза и туда вписать необходимый код. Кстати можно еще в событие OnShow написать. Будет срабатывать при появлении формы. Цитата:
|
|
#63
|
|||
|
|||
|
У меня как не страннор ничего не работает - ставлю на OnShow и на другие - ничего не рботает - прогресс был - 1 работала - а другие 3 нет...8(
|
|
#64
|
|||
|
|||
|
Стоп.. ложная тревога - это работает!! Спасибо.. теперь пробую раздуплить с исходными
|
|
#65
|
|||
|
|||
|
У меня уже чувство, что я на финише - последний вопрос думаю - у меня исходную матрицу выодит не по столбикам и строкам, а просто в столбик, не подскажите что я не так делаю, вот код:
Код:
begin
writeln(outfile, 'Матрица B (исходная):');
n:=8;
m:=15;
setlength(B,n,m);
stringgrid1.RowCount:=n;
stringgrid1.ColCount:=m;
for i:=0 to n-1 do
begin
for j:=0 to m-1 do
begin
begin
B[i,j]:=sin(3.2*j+4.2)+power(exp(1),tan(i));
stringgrid1.Cells[j,i]:=FormatFloat('0.00',B[i,j]);
write(outfile, FormatFloat('0.00',B[i,j])+ ' ')
end;
writeln(outfile, '');
end;
end;
end; |
|
#66
|
|||
|
|||
|
лишний begin в теле цикла
|
|
#67
|
|||
|
|||
|
о.. точно спасибо) Помогло - в общем думаю это все! Огромное спасибо всем, кто мне помогал, в особенности MegaPiha - это человек с огромными неврами, что смог меня так долго вытерпить! Огромное спасибо)
|
|
#68
|
|||
|
|||
|
Снова здравствуйте... большое спасибо за помощь - все правильно... но осталось кое-что додеалть - а я не знаю как - вернее не получается - вот код проги котрая считает значения до определенного момента - и мне ее надо как-то оббнулить - щас она считает до момента как надо и останавливается - но если опять нажать на батон она будет продолжать считать что не надо уже... не подскажите как мне ее обнулить? Вот код:
Код:
unit Unit4;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
StdCtrls, jpeg, ExtCtrls;
type
TForm4 = class(TForm)
Button1: TButton;
Memo1: TMemo;
Button2: TButton;
Button3: TButton;
Label1: TLabel;
Image1: TImage;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form4: TForm4;
b,db,log,z:real;
k:integer;
implementation
uses Unit1;
{$R *.dfm}
procedure TForm4.FormCreate(Sender: TObject);
begin
b:=-2.5;
db:=0.3;
end;
procedure TForm4.Button1Click(Sender: TObject);
begin
k:=0;
log:=1E30;
while log>0.045 do
begin
log:=2/(b*b+b+2);
Z:=b*b*b+ln(log);
memo1.Lines.Add('Z = '+floattostr(z));
k:=k+1;
b:=b+db;
end;
memo1.Lines.Add('b = '+floattostr(b));
memo1.Lines.Add('k = '+floattostr(k));
end;
procedure TForm4.Button2Click(Sender: TObject);
begin
Memo1.Clear;
end;
procedure TForm4.Button3Click(Sender: TObject);
begin
Form1.Show;
Form4.Close;
end;
end. |
|
#69
|
|||
|
|||
|
Переменные b и db глобальные. Соответственно после выполнения программы сохраняют свои значения, а при повторном нажатии на буттон не присваиваются заново.
Короче надо их присваивание перенести из FormCreate в начало процедуры Button1Click. |
|
#70
|
|||
|
|||
|
О.. точно! Спасибо)
|
|
#71
|
|||
|
|||
|
Это снова я - не подскажите как можно сделать так, что бы при нажатии на баттон 2 выплывало окно что небл нажат баттон 1 - тоесть у меня на баттон 1 напрмер заполняется матрица а на 2 меняются столбцы - если нажать на 2 перед наджатием на 1 выдает злой эрор - а я хочу его на свой заменить - как это можно сделать?
|
|
#72
|
|||
|
|||
|
Если думать совсем не хочется, то так:
Код:
procedure TMyForm.Button2Click(Sender : TObject);
begin
Try
// Здесь твоя логика
Except
On E : Exception Do
MessageDlg('Произошла страшная ошибка!!!',mtError,[mbOK],0);
End;
end;Если думать все-таки хочется, то анализируй сначала исходные данные и выводи причину, почему они не могут быть обработаны перед тем, как запускать вычисления. |
|
#73
|
|||
|
|||
|
Спасибо) Работает конечно - но у меня как всегда ни как у людей - у меня или вообще это сообщение по появляется или появляется при каждом нажатиии на баттон 2 - все равно - нажал я до этого на 1 или нет... может я просто не туда пихаю? Вот мои коды, подскажипе ,пожалуйста, куда вставить, если не трудно..
это типа баттон 1 - заполняется матрица Код:
procedure TForm5.Button6Click(Sender: TObject);
var i,j:integer;
begin
n:=12;
m:=9;
setlength(A,n,m);
stringgrid1.RowCount:=n;
stringgrid1.ColCount:=m;
for i:=0 to n-1 do
for j:=0 to m-1 do
begin
A[i,j]:=sin(j)/cos(j)+exp(cos(i));;
stringgrid1.Cells[j,i]:=FormatFloat('0.00',A[i,j]);
end;
end;а это типа баттон 2 - на котрый меняются столбцы Код:
procedure TForm5.Button7Click(Sender: TObject);
var i,j,t:integer;
tmp:real;
begin
m:=stringgrid1.ColCount;
k:=0;
l:=8;
for i:=0 to n-1 do
begin
tmp:=A[i,k];
A[i,k]:=A[i,l];
A[i,l]:=tmp;
end;
for t:=0 to n-1 do
for j:=0 to m-1 do
stringgrid1.Cells[j,t]:=FormatFloat('0.00',A[t,j]);
end;![]() |
|
#74
|
|||
|
|||
|
Я конечно может и глупость предложу, но честно не знаю как по другому.
Создать глобальную булевскую переменную, например BtnPres. В процедуре формы OnCreate этой переменной назначить false. В button6 ее сделать true. Ну и в Button7 проверять. Если BtnPres = true (т.е. нажимали на button6) то выполнять дальнейшие инструкции. |
|
#75
|
|||
|
|||
|
Я конечно уверен что буклеровская переменна рулит - но меня четвертуют если увидят в моей работе ее - ведь мы даже не проходили ничего, кроче массивов, у всех будет шок от других моих программ, которые Вы все мне любездно помогли сделать - боюсь буклеровская переменна убьет моего препода... MegaPiha, не могли бы Вы попробовать всунуть тот код на эррор в мою прогу - может получится - то просо я карявый наверное и как всегда не туда пихал
- если коненчо не трудо![]() |