|
|
Регистрация | << Правила форума >> | 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, не могли бы Вы попробовать всунуть тот код на эррор в мою прогу - может получится - то просо я карявый наверное и как всегда не туда пихал - если коненчо не трудо
|