|
|
Регистрация | << Правила форума >> | 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
|
|||
|
|||
Цитата:
|