|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
Помогите решить задачу в Delphi...
Помогите решить простенькую задачу... ато я в Delphi почтиничего не соображаю
Дано: b=-2.5; db=0.3. Z вычислить по формуле Z=b^3+ln(2/(b^2+b+2)). Считать Z до тех пор, пока выражение под знаком логорифма больше 0.045. Определить k - количество вычесленных Z. Вывести на экран b, Z, k. Заранее благодарен!! |
#2
|
|||
|
|||
Если db - приращение величины b, то текст следующий:
Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Memo1: TMemo; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; b,db,log,z:real; k:integer; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin b:=-2.5; db:=0.3; end; procedure TForm1.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; end. Последний раз редактировалось Andrevv, 04.04.2008 в 18:37. |
#3
|
|||
|
|||
Спасибо огромное! Выручил))) Тока можешь мне немного обьяснить - в 2-х словах - ато у меня не хочет работать прога - зависает! - я по ходу дела что-то не добавил - какой -то компонент или фиг его знает -
**procedure FormCreate(Sender: TObject);** - это не понятно немнго - можешь обьяснить что это означает, если не труно... компоненты я тока Memo и Button добавил... Последний раз редактировалось AndrYxo, 04.04.2008 в 19:47. |
#4
|
|||
|
|||
Цитата:
|
#5
|
|||
|
|||
Andrevv и MegaPiha огромное вам спасибо! Выручили! Не работало потому, что 2-й щелчек на форме не сделал! Спасибо что подсказали - а если строку memo1.Lines.Add('z = '+floattostr(z)); вывести из цикла, то оно считает только одно значение - а по условию надо что бы считало до того, пока не станет меньше 0.045. Еще раз большое спасибо)
|
#6
|
|||
|
|||
Добрый вечер! Ребята, помогите плиз..нужно сделать прогу..
Составить подпрограмму, которая в матрице Y(m,n) меняет местами 1-й и k-й столбец (1<m). C помощью подпрограммы поменять местами первый и последний столбцы матриц A(12,9), C(7,11), и третий и пятый столбц матрицы B(8,15). Исходные и преобразованные матрицы вывести на экран дисплея. Элементы входных матриц вычисляются по формулам: A(c индексом i,j)=tg(j)+e^cos(i); B(c индексом i,j)=sin(3.2j+4.2)+e^tg(1.5i); C(c индексом i,j)=cos(12.4j+1). Заранее благодарю! |
#7
|
|||
|
|||
Цитата:
Предлагаю подправить. Согласно задаче надо вывести Z,b,k. Надо строчку Код:
memo1.Lines.Add('z = '+floattostr(z)); |
#8
|
|||
|
|||
народ кто-то может мне обьяснить плиз что значит строка log:=1E30; взятая от сюда? Думаю ее надо в блок схему включать или нет?
Код:
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)); |
#9
|
|||
|
|||
Цитата:
|
#10
|
|||
|
|||
MegaPiha Спасибо)
|
#11
|
|||
|
|||
Это снова я - нужна помощь умных людей 8) Не подскажите как можно сделать что бы например с однй формы я мог заходить еще на 4 - тоесть при нажатии на button1 мне открывалась форма с 1-й задачей и на 2 - со второй и так далее - я делаю, например на форме 2 ставлю Enabled False - а на первой форме задаю на button1 Form2.Show - при этом форма появляется -но не работает - тоесть просто появляется - но ничего не считает - не подскжите как сделать что бы появлялась форма рабочая?
|
#12
|
|||
|
|||
У меня уже чувство, что я на финише - последний вопрос думаю - у меня исходную матрицу выодит не по столбикам и строкам, а просто в столбик, не подскажите что я не так делаю, вот код:
Код:
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; |
#13
|
|||
|
|||
лишний begin в теле цикла
|
#14
|
|||
|
|||
о.. точно спасибо) Помогло - в общем думаю это все! Огромное спасибо всем, кто мне помогал, в особенности MegaPiha - это человек с огромными неврами, что смог меня так долго вытерпить! Огромное спасибо)
|
#15
|
|||
|
|||
Снова здравствуйте... большое спасибо за помощь - все правильно... но осталось кое-что додеалть - а я не знаю как - вернее не получается - вот код проги котрая считает значения до определенного момента - и мне ее надо как-то оббнулить - щас она считает до момента как надо и останавливается - но если опять нажать на батон она будет продолжать считать что не надо уже... не подскажите как мне ее обнулить? Вот код:
Код:
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. |