![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#16
|
|||
|
|||
|
Это снова я - слушайте - написал прогу - работает вроде - вот по условию: Наити произведение положительных элементов масива А={a[i]}, удовлетворяющих условию:
с<=a[i]<=d Но блин - считает произведение - а оно отрицательное иногда получается - плиз - посмотрите прогу и скажите что не так... Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Memo1: TMemo;
StringGrid1: TStringGrid;
Label1: TLabel;
Label2: TLabel;
Button2: TButton;
Button3: TButton;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
a:array [0..19] of integer;
P:integer;
i:integer;
c,d:real;
begin
randomize;
for i:=0 to 19 do
begin
a[i]:=random(50--50+1)-50;
StringGrid1.Cells[i,0]:=InttoStr(a[i]);
end;
P:=1;
c:=StrtoInt(Edit1.Text);
d:=StrtoInt(Edit2.Text);
for i:=0 to 19 do
if (a[i]>=c) and (a[i]<=d) and (a[i]>0) then
P:=P*a[i];
Memo1.Lines.Add(FormatFloat('0.00',P));
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
memo1.Clear;
Edit1.Clear;
Edit2.Clear;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Form1.Close;
end;
end. |
|
#17
|
||||
|
||||
|
Цитата:
Попробуйте этот кусок Код:
if (a[i]>=c) and (a[i]<=d) and (a[i]>0) then заменить на Код:
if (a[i]>0) then
if (a[i]>=c) and (a[i]<=d) then |
|
#18
|
|||
|
|||
|
Спасибо! Там надо было через real сделать оказывается! Хотя твой код что sn сказал тоже поменял! Спасибо)
|
|
#19
|
|||
|
|||
|
народ кто-то может мне обьяснить плиз что значит строка 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)); |
|
#20
|
|||
|
|||
|
Цитата:
|
|
#21
|
|||
|
|||
|
MegaPiha Спасибо)
|
|
#22
|
|||
|
|||
|
Это снова я - нужна помощь умных людей 8) Не подскажите как можно сделать что бы например с однй формы я мог заходить еще на 4 - тоесть при нажатии на button1 мне открывалась форма с 1-й задачей и на 2 - со второй и так далее - я делаю, например на форме 2 ставлю Enabled False - а на первой форме задаю на button1 Form2.Show - при этом форма появляется -но не работает - тоесть просто появляется - но ничего не считает - не подскжите как сделать что бы появлялась форма рабочая?
|
|
#23
|
|||
|
|||
|
Цитата:
Нажали на button1 Код:
MainForm.Close; Form2.show; Код:
MainForm.Close; Form3.show; Enabled False ведь и делает форму нерабочей. |
|
#24
|
|||
|
|||
|
Ok! Спасибо - не знал, думал просто скрывает! Буду пробовать!
|
|
#25
|
|||
|
|||
|
Всем здрасте! Это снова я - я уже не финишной прямой - и опять небольшой вопросик - задаю матрицу по формуле C[i,j]:=sqr(j) - все работает - задаю по формуле C[i,j]:=cos(14.2*j+1) - не работает - пишет Incompatible Tipes: 'Integer' and 'Extended' - не знаете какэ то исправить можно - желательно не меняя на real массив?
|
|
#26
|
|||
|
|||
|
Цитата:
Код:
C[i,j]:=trunc(cos(14.2*j+1)) |
|
#27
|
|||
|
|||
|
MegaPiha спасибо, код подходит - но в матрицу выводит одни нули.. не знаешь в чем дело может быть? sqr выдает нормлаьные значения - а cos - нули...
Последний раз редактировалось AndrYxo, 11.04.2008 в 08:38. |
|
#28
|
|||
|
|||
|
Вообще то я не правильно написал. Давно не использовал.
Cos принимает значения от нуля до единицы. TRUNC округляет значение. Поэтому надо либо массив делать real либо писать так trunc(k*cos(14.2*j+1)), где k-коэффициент умножения. Можно принять за 100. И еще один момент, косинус берет угол в радианах, поэтому надо делить 14.2*j+1 на 57 |
|
#29
|
|||
|
|||
|
Еще раз спасибо - начал делать через реал - вроде все нормально - но ту же самую фразу выдает Incompatible Tipes: 'Integer' and 'Extended' на строке где я новой переменной присваиваю значение массива - t:=C[i,k]; - если написать так - C[i,k]:=t; - запускает - но работает не правильно... в чем тут может быть причина?
|
|
#30
|
|||
|
|||
|
Цитата:
|