Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.11.2012, 23:45   #1
Юлия87
Новичок
Джуниор
 
Регистрация: 30.11.2012
Сообщений: 1
Восклицание Уменьшение столбцов Tchart Delhpi

1. Алгоритм, определяющий является ли число простым.
2. Циклическое увеличение/уменьшение столбцов диаграммы (компонент TChart).
Реализован пунк 1 и увеличение столбцов, а дальше не знаю помогите пожалуйста.
Код:
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, TeeProcs, TeEngine, Chart, Series, DateUtils;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    Button2: TButton;
    Timer1: TTimer;
    Edit1: TEdit;
    Chart1: TChart;
    Series1: TBarSeries;
    Chart2: TChart;
    Series2: TBarSeries;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
   private
    { Private declarations }
  public
    { Public declarations }
  end;
   TPrimeThrd = class(TThread)
  private
    FTestNumber: integer;
    FresultString: string;
  protected
    function IsPrime: boolean;
    procedure UpdateResults;
    procedure Execute; override;
  public
    property TestNumber: integer write FTestNumber;
  end;
 var
  Form1: TForm1;
  T1:TPrimeThrd;
  F:bool;

 const
 rCircle=100; //радиус круга - траектории

implementation

function TPrimeThrd.IsPrime: boolean;

var
  iter: integer;

begin
  result := true;
  if FTestNumber < 0 then
  begin
    result := false;
    exit;
  end;
  if FTestNumber <= 2 then
    exit;
  for iter := 2 to FTestNumber - 1 do
  begin
    sleep(50);
    if (FTestNumber mod iter) = 0 then
    begin
      result := false;
      {exit;}
    end;
  end;
end;

procedure TPrimeThrd.Execute;
begin
  if IsPrime then
    FresultString:=IntToStr(FTestNumber)+ ' число простое'
  else
    FresultString:=IntToStr(FTestNumber)+ ' число не является простым';

    Synchronize(UpdateResults);

end;

 procedure TPrimeThrd.UpdateResults;
 begin
 Form1.Memo1.Lines.Add(FresultString);
 end;


{$R *.dfm}
 procedure distance(x1,y1,x2,y2: integer);
 var
 d: real;
 begin
 d:=sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2));
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
T1:=TPrimeThrd.Create(True);
T1.FreeOnTerminate:=True;
try
T1.TestNumber:=StrToInt(Edit1.Text);
T1.Resume;
except on EConvertError do
 begin
 T1.Free;
 ShowMessage('Недопустимое число')
 end;
 end;
 end;

procedure TForm1.Button2Click(Sender: TObject);
var
number, iter: integer;
isprime: bool;
begin
  isprime:= true;
  number:=StrToInt(Edit1.Text);
  if number<0 then isprime:=false;
  if number>=2 then
    for iter:=2 to number-1 do
      begin
        sleep(50);
        if (number mod iter)=0 then
          begin
          isprime:=false;
        end;
      end;
    if isprime then
       Memo1.Lines.Add(IntToStr(Number)+' число простое')
    else
      Memo1.Lines.Add(IntToStr(Number)+' число не является простым')
    end;

procedure TForm1.FormActivate(Sender: TObject);
 Var
 i,Z:Integer;

 begin
 series1.clear;
 for i:=1 to 500 do
 BEGIN
 Z:=random(10);
 Application.ProcessMessages();
 sleep (100);
 Series2.AddXY(i, Z, '', clRed);
 END;
end;

end.
Юлия87 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Уменьшение размера изображения на php уменьшение качества картинки пример class php jpeg gif png xzxz PHP 2 19.11.2012 11:11
Модуль на Delhpi Andrey133Mhz Помощь студентам 1 17.12.2011 13:54
delhpi sergi Помощь студентам 1 24.02.2011 20:01
задача в Delhpi Яська Помощь студентам 3 19.09.2010 15:04
Delhpi C++Builder rus80bus Помощь студентам 2 21.08.2009 17:05