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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.01.2017, 17:49   #1
student_23
Новичок
Джуниор
 
Регистрация: 26.01.2017
Сообщений: 7
По умолчанию Разработать программу, в которой предусмотреть управление

Здравствуйте! Просьба проверить на ошибки.
Если таковые имеются. Исправить. Спасибо.

Разработать программу, в которой предусмотреть управление вычислительным процессом с помощью кнопок, расположенных на инструментальной панели

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, jpeg, ExtCtrls, StdCtrls, Grids, Math, TeeProcs, TeEngine, Chart,
  Series, Menus;

type
  TFunction = function(x: Double): Double;
  TMainForm = class(TForm)
    MathematicalTaskImage: TImage;
    MathematicalTaskLabel: TLabel;
    FunctionStepLabel: TLabel;
    FunctionStepEdit: TEdit;
    FunctionChart: TChart;
    Series1: TLineSeries;
    MainMenu: TMainMenu;
    EnterIntervalStartMenuItem: TMenuItem;
    EnterIntervalEndMenuItem: TMenuItem;
    DrawChartMenuItem: TMenuItem;
    procedure EnterIntervalStartMenuItemClick(Sender: TObject);
    procedure EnterIntervalEndMenuItemClick(Sender: TObject);
    procedure DrawChartMenuItemClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  MainForm: TMainForm;
  xStart, xEnd: Double;

implementation

uses Unit2;

{$R *.dfm}

function Factorial(n: Integer): Integer;
begin
  if n = 0 then
    result := 1
  else
    result := n*Factorial(n - 1);
end;

function Func(x: Double): Double;
var
  s, an: Double; 
  n: Integer; 
begin
  s := 0;
  an := 1;
  n := 0;
  while an >= 0.001 do 
  begin
    an := ((2*n + 1)/Factorial(n))*power(x, 2*n);
    s := s + an;
    inc(n);  
  end;
  result := s;    
end;

procedure ShowResult(f: TFunction; xStart, xEnd: Double);
var
  x, y, h: Double;
  n: Integer;
begin
  MainForm.Series1.Clear;
  h := (xEnd - xStart)/9;
  MainForm.FunctionStepEdit.Text := FloatToStrF(h, ffFixed, 10, 2);   
  x := xStart;
  for n := 0 to 9 do 
  begin
    y := f(x);
    MainForm.Series1.AddXY(x, y);
    x := x + h;
  end;
end;

procedure TMainForm.EnterIntervalStartMenuItemClick(Sender: TObject);
begin
  InputForm.InputLabel.Caption := 'Введите начало интервала (Xs):';
  InputForm.InputEdit.Clear;
  InputForm.ShowModal;
  xStart := StrToFloat(InputForm.InputEdit.Text);
end;

procedure TMainForm.EnterIntervalEndMenuItemClick(Sender: TObject);
begin
  InputForm.InputLabel.Caption := 'Введите конец интервала (Xe):';
  InputForm.InputEdit.Clear;
  InputForm.ShowModal;
  xEnd := StrToFloat(InputForm.InputEdit.Text);
end;

procedure TMainForm.DrawChartMenuItemClick(Sender: TObject);
begin
   ShowResult(Func, xStart, xEnd);
end;

end.
student_23 вне форума Ответить с цитированием
Старый 26.01.2017, 18:15   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Компилится? Запускается? Делает то, что положено? Профит... Препод допроверит.
p51x вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разработать программу, в которой выполняется ввод списка записей определенного типа vutt C# (си шарп) 0 11.05.2016 04:12
Разработать программу load, по которой константа K=20 вводится, как двоичная, восьмеричная SonicTheHedgenog Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 10.02.2015 13:23
Паскаль...Составить программу, по которой: gudok2 Помощь студентам 2 25.03.2013 00:44