Guest User

Untitled

a guest
May 24th, 2018
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.41 KB | None | 0 0
  1. unit Opgave4A;
  2.  
  3. interface
  4.  
  5. uses
  6. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7. Dialogs, StdCtrls;
  8.  
  9. type
  10. TForm1 = class(TForm)
  11. Label1: TLabel;
  12. Label2: TLabel;
  13. Label3: TLabel;
  14. Label4: TLabel;
  15. Label5: TLabel;
  16. Label6: TLabel;
  17. Label7: TLabel;
  18. Label8: TLabel;
  19. Label9: TLabel;
  20. Bereken: TButton;
  21. Wis: TButton;
  22. Deelintervallen: TEdit;
  23. Bovengr: TEdit;
  24. Ondergr: TEdit;
  25. Resultaat: TMemo;
  26. memFout: TMemo;
  27.  
  28. procedure WisClick(Sender: TObject);
  29. procedure FormCreate(Sender: TObject);
  30. procedure BerekenClick(Sender: TObject);
  31.  
  32.  
  33. private
  34. { Private declarations }
  35. public
  36. { Public declarations }
  37. end;
  38.  
  39. var
  40. Form1: TForm1;
  41. ondergrens, bovengrens, deelinterval, Fx, Fboven, Fonder, Fnum, Fout, FoutMax: Real;
  42. stap, i: integer;
  43. x_rij: array of Real;
  44. FIarr: array of Real;
  45. Farr: array of Real;
  46. FnumIarr: array of Real;
  47.  
  48. implementation
  49.  
  50. {$R *.dfm}
  51.  
  52.  
  53. function FI(x: real):real;
  54. begin
  55. FI := (0.25 * x*x*x*x) - ((5/3) * x*x*x) + (x*x) + 3 * x;
  56. end;
  57.  
  58. function F(x: real):real;
  59. begin
  60. F := (x*x*x) - 5 *(x*x) + 2*x + 3;
  61. end;
  62.  
  63. procedure TForm1.BerekenClick(Sender: TObject);
  64. begin
  65. ondergrens:=StrtoFloat(ondergr.Text);
  66. bovengrens:=StrtoFloat(bovengr.Text); // ik krijg steeds invalid floating point value bij kommagetal, weet niet hoe ik het moet fixen
  67. stap:=StrToInt(DeelIntervallen.Text);
  68. i:=0;
  69. SetLength(x_rij, stap + 2);
  70. SetLength(Farr, stap + 2);
  71. SetLength(FIarr, stap + 2);
  72. SetLength(FnumIarr, stap + 2);
  73. deelinterval:=(bovengrens-ondergrens)/stap;
  74. Fnum:=0;
  75. FoutMax:=0;
  76.  
  77. while (i <= stap) do
  78. begin
  79. x_rij[i] := ondergrens + deelinterval * i;
  80. Farr[i] := F(x_rij[i]);
  81. FIarr[i] := FI(x_rij[i]) - FI(ondergrens);
  82. Fonder := Farr[i];
  83. Fboven := Farr[i-1];
  84. FnumIarr[i] := deelinterval * 0.5 * (Fboven + Fonder) + FnumIarr[i-1];
  85. if i = 0 then FnumIarr[i] := 0;
  86. Resultaat.lines.add(Format('%10.4f %21.8f %21.8f',[x_rij[i], FIarr[i], FnumIarr[i]]));
  87.  
  88. Fout := abs(FIarr[i] - FnumIarr[i]);
  89. if Fout > FoutMax then FoutMax := Fout;
  90. i := i + 1;
  91.  
  92. end;
  93. memFout.Text := Format(' %3.8f',[FoutMax]);
  94. end;
  95.  
  96.  
  97.  
  98.  
  99.  
  100. procedure TForm1.FormCreate(Sender: TObject);
  101. begin
  102. Resultaat.Clear;
  103. memFout.Clear;
  104. end;
  105.  
  106. procedure TForm1.WisClick(Sender: TObject);
  107. begin
  108. Resultaat.Clear;
  109. memFout.Clear;
  110. end;
  111.  
  112. end.
Add Comment
Please, Sign In to add comment