1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102:
| UNIT UnitHyp;
interface
uses UnitPlotter, Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, Math;
type Hyp = class(TFormPlotter); TFormPlotter = class(TForm) LabelFunk: TLabel; LabelM: TLabel; LabelZ: TLabel; LabelC: TLabel; LabelHyp: TLabel; LabelN: TLabel; LabelP: TLabel; LabelA: TLabel; EditM: TEdit; EditZ: TEdit; EditC: TEdit; EditN: TEdit; EditP: TEdit; EditA: TEdit; ImgPlot: TImage; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; ButtonZeichnen: TButton; ButtonZeichnen2: TButton; Label9: TLabel; Label10: TLabel; procedure ButtonZeichnen2Click(); end;
function f(k:integer):integer;
var yp: Hyp;
implementation
function f(k:integer):integer; var n, p, a, f, d, c, cneu, calt, e, h, g : real; i :integer; begin calt:=1; for i := 0 to k-1 do begin c:=(n-i)/(i+1); cneu:=calt+c; calt:=cneu; end;
n := StrToFloat(FormPlotter.EditM.Text); p := StrToFloat(FormPlotter.EditC.Text); a := StrToFloat(FormPlotter.EditA.Text); d := power(p,k); h := 1-p; g := n-k; e := power(h,g); f :=calt*d*e;
end;
procedure drawFunktion(); var x: integer; y: integer; begin formPlotter.imgPlot.Canvas.Brush.Color := clWhite; formPlotter.imgPlot.Canvas.rectangle(-1,-1,formPlotter.imgPlot.Width+1, formPlotter.imgPlot.Height+1); formPlotter.imgPlot.canvas.Pen.Color := clBlack;
formPlotter.imgPlot.canvas.MoveTo(0, formPlotter.imgPlot.Height div 2); formPlotter.imgPlot.canvas.LineTo(formPlotter.imgPlot.Width, formPlotter.imgPlot.Height div 2);
formPlotter.imgPlot.canvas.MoveTo(formPlotter.imgPlot.Width div 2, 0); formPlotter.imgPlot.canvas.LineTo(formPlotter.imgPlot.Width div 2, formPlotter.imgPlot.Height);
formPlotter.imgPlot.Canvas.MoveTo(-1,-1); for x := 0 to formPlotter.imgPlot.Width do begin y := round(f(x-formPlotter.imgPlot.Width div 2))+formPlotter.imgPlot.height div 2; y := formPlotter.imgPlot.Height - y; formPlotter.imgPlot.Canvas.LineTo(x, y); end;
end;
procedure TFormPlotter.ButtonZeichnen2Click(); begin drawFunktion(); end;
end. |