• Характеристика обєкта автоматизації
  • 3 Проектна частина
  • 3.2 Опис блок-схеми алгоритму програми
  • 3.3 Обгрунтування вибору мови програмування
  • 3.4. тестування
  • 3.5 Інструкція користувача


  • Дата конвертації14.06.2017
    Розмір31.62 Kb.
    Типкурсова робота

    Скачати 31.62 Kb.

    Метод Золотого перетину на Delphi

    зміст

    1. Введення

    2. Характеристика об'єкта автоматизації

    3. Проектна частина

    математичний опис

    Опис блок-схеми алгоритму програми

    Обгрунтування вибору мови програмування

    тестування

    Інструкція користувача

    4. Висновок

    5. Додаток

    1. Введення

    Метою курсової роботи є обчислення наближеного значення інтеграла методом Сімпсона, шляхом введення функції, відрізка і кроку dx. Історія появи і розвитку персональних комп'ютерів є одним з найбільш вражаючих явищ нашого століття. З моменту появи перших зразків персональних комп'ютерів пройшло менше 25 років, але зараз без них вже немислимо величезна кількість областей людської діяльності - економіка, управління, наука, інженерна справа, видавнича справа, освіта, культура і т.д. Інтерес до персональних комп'ютерів постійно росте, а коло їх користувачів безперервно розширюється. У число користувачів ПЕОМ залучаються як новачки в комп'ютерному справі, так і фахівці з інших класів ЕОМ. Завдяки новітнім технологіям в комп'ютерній сфері рішення інженерних, математичних, технічних і комерційних завдань допомагає швидко і точно вирішити ту чи іншу задачу. Актуальність вирішення завдання методом Сімпсона з допомогою ПЕОМ для навчальних закладів - є швидкість і точність рішення певного інтеграл від функції, що має Неелементарні первісну.

    2 Характеристика об'єкта автоматизації

    Об'єктами автоматизації є навчальні заклади, оснащені комп'ютеризованої аудиторією. Автоматизація навчального процесу для вирішення задач по предмету - чисельні методи.

    Темпи науково - технічного прогресу, посилення ролі науки в значній мірі визначаються якістю і номенклатурою засобів обчислювальної техніки і їх програмним забезпеченням. Саме розвиток цих коштів забезпечує успіхи в автоматизації виробничих процесів, в розробці нових технологій, в підвищенні ефективності праці та управління, в удосконаленні системи освіти і в прискоренні підготовки кадрів. Використання комп'ютера в процесі навчання математики дозволяє реалізувати можливості новітніх педагогічних технологій особистісно-орієнтованого навчання. Завдяки математичного програмування з'явилася можливість розширити навчальний план завдяки швидкому і якісному розв'язання математичних задач на комп'ютері.

    Вирішуючи проблему використання комп'ютера в процесі навчання математики, слід виходити не стільки з функціональних можливостей комп'ютера і бажання використовувати його в навчальному процесі, скільки з методичної системи навчання математики, аналіз якої повинен показати, які навчальні завдання можуть бути вирішені тільки засобами комп'ютера, бо інші дидактичні кошти менш ефективні або взагалі не застосовні.

    Навчання з використання комп'ютерної техніки носить діалоговий характер, при якому вчитель в будь-який момент може внести корективи. На заняттях добре поєднуються індивідуальна і групова форма роботи. Учні знаходяться в стані комфорту при роботі на комп'ютері.

    Комп'ютер може бути використаний на різних етапах навчання математики, і це застосування засноване, перш за все, на його графічних можливостях. Використання інформаційно-навчальної програми «Уроки алгебри і геометрії» Кирила і Мефодія дозволяють моделювати і наочно демонструвати вміст досліджуваних тем. Табличний процесор Excel і математичний пакет Mathcad є зручним інструментом для вирішення різних математичних задач.

    Неоціненним є комп'ютер і при комплексному тестуванні. Можна використовувати будь-які навчальні програми або контролюючі вправи. Завжди необхідно ретельно підбирати відповідні вправи, так як вони повинні відповідати цілям тестування. Застосування тестують програм дозволяє вчителю отримати об'єктивну інформацію про володіння учнями певним набором знань, умінь і навичок для продовження освіти, а також про рівень цих знань.

    Таким чином, застосування нових технологій в освіті має розглядатися як стратегічне, управлінське рішення, орієнтоване на формування і розвиток нової освітньої системи, спрямованої на підвищення якості освіти, підвищувати мотивацію навчання, сприяти поглибленню міжпредметних зв'язків.

    3 Проектна частина

    Постановка задачі

    3.1 Математичний опис. Формула Сімпсона

    Значення певного інтеграла знаходиться методом Сімпсона (парабол). Відрізок [a, b] розбивається на n = 2m частин x 0 = a, x 1 = a + h, ..., x n = b з кроком h = (ba) / n. Обчислюються значення y i = F (x i) функції в точках x i і знаходиться значення інтеграла за формулою Сімпсона:

    Потім кількість точок розбиття подвоюється і проводиться оцінка точності обчислень

    Якщо R n > E, то кількість точок розбиття подвоюється. Значення суми 2 (y 1 + y 2 + ... + y 2m-1) зберігається, тому для обчислення інтеграла при подвоєнні кількості точок розбиття потрібно обчислювати значення y i лише в нових точках розбиття.

    3.2 Опис блок-схеми алгоритму програми

    1. Введення змінних a, b, dx і функції f (x);

    2. Обчислення значень Xi на відрізку a, b з кроком h. Продовження циклу до кінця відрізка а, b

    3. Виведення всіх значень F (xi) в масив;

    4. Обчислення F (xi) і висновок в масив;

    5. Перевірка на значення натурального логарифма;

    6. Перевірка на значення косинуса;

    7. Перевірка на значення синуса або кореня;

    8. Перевірка на значення цифри;

    9. Взяти формулу в масиві в дужки;

    10. Присвоєння значенням х - значення xi в масиві;

    11. Підсумовування значень F (x2, x4..xn-1);

    12. Підсумовування значень F (x1, x3..xn);

    13. Обчислення значення F (x);

    14. Висновок результату.

    3.3 Обгрунтування вибору мови програмування

    Для створення програми курсового проекту я вибрав мову програмування - Delphi. Delphi - це мова програмування, який використовується для створення різноманітних продуктів ПО. До недавнього часу він мав іншу назву - Object Pascal. Delphi являє собою об'єктно-орієнтоване програмування, яке передбачає існування певної об'єктної бібліотеки або так званої бібліотеки прототипів, використання якої більше не характеризує процес програмування як громіздке і складне захід.

    Освіта представленого засоби програмного забезпечення відбувалося в рамках компанії Borland, яка зараз займається розробкою системи управління життєвим циклом додатків.

    Специфічною особливістю і разом з тим недоліком Delphi було те, що використання подібного мови програмування на перших порах можливо було лише в рамках операційної системи Microsoft Windows. Зараз же робота з Delphi здійснюється і на таких платформах, як GNU / Linux, Mac OS X і Windows CE.

    Багато в чому Delphi став основою для створення такої мови програмування як С #.

    Поширена також використання Delphi при розробки різних компонентів програмного забезпечення. Прикладом категорій програмних продуктів можуть бути: утиліти, інформаційне забезпечення в Інтернеті, веб-проектування, музичне оформлення, інженерне програмне забезпечення, створення баз даних та ін.

    Delphi має особливість постійно модернізуватися, про що свідчить періодичне оновлення у вигляді появи нових версій. На сьогоднішній день, останній, 12 версією програмного засобу є Delphi 2009, яка має на увазі деякі вдосконалення в системі мови програмування. По-перше, модернізація елементів Delphi стосується УНІКОД, а саме, передбачається повна його підтримка. По-друге, наявність елементів для здійснення узагальненого програмування, яке має на увазі розробку алгоритмів, які можна застосувати до різних типів даних. По-третє, використання безіменних функцій, які не передбачають лексичного токена, а іменування сутностей уможливлює посилання на них, які можуть використовуватися пізніше.

    3.4. тестування

    Апаратне, програмне забезпечення, на якому проводилося тестування:

    Дані комп'ютера:

    Процесор - Celeron 1.7;

    ОЗУ - 256 Мб;

    Відео - 64 Мб;

    HDD - 20 Gb;

    Привід CD-Rw

    Операційна система:

    Windows Xp.

    Рішення завдання

    Наведемо приклад рішення задачі методом Сімпсона

    Обчислити значення інтеграла

    Рішення завдання без допомоги програмного забезпечення:

    n = 10 [0,1]

    h = 0,1

    fx = xcosx

    xi

    F (xi)

    0

    0

    0.1

    0.0995004

    0.2

    0.196013

    0.3

    0.286601

    0.4

    0.368424

    0.5

    0.438791

    0.6

    0.495201

    0.7

    0.5353895

    0.8

    0.557365

    0.9

    0.559449

    1

    0.540302

    Рішення завдання за допомогою програми Метод Сімпсона.exe:

    Дана програма працює коректно, тому що відповіді збігаються.

    3.5 Інструкція користувача

    Дана програма складається з 1 відкомпільованого exe файлу - Метод Сімпсона.exe і rar-архіву містить всі компоненти програми написаних на мові програмування - Delphi 7.0.

    1. Запуск програми здійснюється шляхом відкриття файлу Метод Сімпсона .exe.

    2.

    Введення значень проводиться таким чином:

    Введення функції f (x) - в це вікно виробляється введення формули призначеної для обчислення значення інтеграла. Для перегляду використовуваних арифметичних дій при введенні необхідно натиснути лівою кнопкою мишки на, після чого на екран виводиться наступне вікно (див. Рис. 3).

    Введення відрізка [a, b] проводиться шляхом введення - точка а (початкова точка), - точка b (кінцева точка відрізка).

    Крок h або dx - введення в.

    3. Після введення всіх значень інтеграла необхідно натиснути кнопку (див. Рис.4).

    де - таблиця значень Xi b F (xi);

    - наближене значення інтеграла.

    -

    4. Для виведення довідкової інформації про користування програмою необхідно натиснути кнопку, після чого на екран виводиться наступне вікно (див. Рис.7)

    4. Висновок

    Дана програма була написана на мові Delphi 7.0. При розробці програми були враховані всі вимоги до програми і виконані в повній мірі.

    При розробці даної програми Я закріпив знання з програмування в середовищі Delphi 7.0, також отримав деякі нові знання при розробці цієї програми.

    додаток

    лістинг програми

    unit Unit1;

    interface

    uses

    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

    Dialogs, StdCtrls, Grids, ExtCtrls;

    type

    TForm1 = class (TForm)

    Edit_F: TEdit;

    Button_Itogo: TButton;

    Edit_A: TEdit;

    Label1: TLabel;

    Label4: TLabel;

    Edit_B: TEdit;

    SS: TStringGrid;

    Edit_Int: TEdit;

    Label3: TLabel;

    Image1: TImage;

    Label6: TLabel;

    Label7: TLabel;

    Label8: TLabel;

    Label5: TLabel;

    Label9: TLabel;

    Label10: TLabel;

    Label11: TLabel;

    Label12: TLabel;

    Label13: TLabel;

    Button1: TButton;

    procedure Button_ItogoClick (Sender: TObject);

    procedure Label5Click (Sender: TObject);

    procedure Button1Click (Sender: TObject);

    private

    {Private declarations}

    public

    {Public declarations}

    end;

    var

    Form1: TForm1;

    implementation

    uses Unit_help, Unit_h;

    {$ R * .dfm}

    procedure Formula (Var Vivod: string; Var Gl_massiv: Array of string);

    Var

    Sk_massiv: Array [0..100] of string;

    Tmp_st, st: integer; // Змінна ступеня

    i_sk: integer; // Номер комірки c початку масиву дужки

    j_sk: integer; // Змінна по переміщенню по масиву дужки

    z: integer; // Номер комірки від кінця гл. масиву

    i: integer; // Номер комірки c початку гл. масиву

    j: integer; // Змінна по переміщенню по гл. масиву

    // Булевой типи (брехня) або (Істина) для гл. масііва і дужки

    Y, Ysk: Boolean;

    ch: Real; // Число

    Itog: Real; // Змінна значень обчислень

    begin // Початок

    {---- Обчислення значень в дужках -----}

    For z: = 1 to 100 do // Читання то кінця гл. масиву

    Begin

    // Якщо ліва дужка знайдена

    if Gl_massiv [100-z] = (then

    Begin

    i: = 100-z; j: = 0; Y: = False;

    Repeat

    Begin

    if Gl_massiv [i + 1] <>) then // Знайдена след.закривающая дужка

    Begin

    Sk_massiv [j]: = Gl_massiv [i + 1];

    // Приховуємо чило використане для обчислення

    Gl_massiv [i + 1]: = #;

    j: = j + 1;

    i: = i + 1;

    end

    else Begin Gl_massiv [i + 1]: = #; Y: = True; end;

    end;

    Until Y = True;

    Y: = False;

    {--------- Обчислення в дужках ---------------}

    For i_sk: = 0 to 100 do

    Begin

    Ysk: = False;

    {-------------- Косинус ---------------}

    if Sk_massiv [i_sk] = cos then

    Begin j_sk: = 1; Ysk: = False;

    repeat

    if Sk_massiv [i_sk + j_sk] <> # then

    begin

    itog: = cos (Strtofloat (Sk_massiv [i_sk + j_sk]));

    Sk_massiv [i_sk]: = Floattostr (itog);

    Sk_massiv [i_sk + j_sk]: = #; Ysk: = True;

    end else j_sk: = j_sk + 1;

    until Ysk = True;

    Ysk: = False;

    end;

    {-------------- Синус ---------------}

    if Sk_massiv [i_sk] = sin then

    Begin j_sk: = 1; Ysk: = False;

    repeat

    if Sk_massiv [i_sk + j_sk] <> # then

    begin

    itog: = sin (Strtofloat (Sk_massiv [i_sk + j_sk]));

    Sk_massiv [i_sk]: = Floattostr (itog);

    Sk_massiv [i_sk + j_sk]: = #; Ysk: = True;

    end else j_sk: = j_sk + 1;

    until Ysk = True;

    Ysk: = False;

    end;

    end;

    {-------------- ^ квадрат ---------------}

    For i_sk: = 0 to 100 do

    Begin

    Ysk: = False;

    if Sk_massiv [i_sk] = ^ then

    Begin j_sk: = 1; Ysk: = False;

    repeat

    if Sk_massiv [i_sk-j_sk] <> # then begin

    itog: = Strtofloat (Sk_massiv [i_sk-j_sk]);

    Sk_massiv [i_sk-j_sk]: = #; Ysk: = True;

    end else j_sk: = j_sk + 1;

    until Ysk = True;

    Tmp_st: = StrToInt (Sk_massiv [i_sk + 1]);

    ch: = itog;

    For st: = 2 to Tmp_st do

    begin

    itog: = itog * ch;

    end;

    Sk_massiv [i_sk]: = Floattostr (itog);

    end;

    end;

    {-------------- Множення / Ділення ---------------}

    For i_sk: = 0 to 100 do

    Begin

    Ysk: = False;

    {-------------- Множення ---------------}

    if Sk_massiv [i_sk] = * then

    Begin j_sk: = 1; Ysk: = False;

    repeat

    if Sk_massiv [i_sk-j_sk] <> # then begin

    itog: = Strtofloat (Sk_massiv [i_sk-j_sk]);

    Sk_massiv [i_sk-j_sk]: = #; Ysk: = True;

    end else j_sk: = j_sk + 1;

    until Ysk = True;

    j_sk: = 1; Ysk: = False;

    repeat

    if Sk_massiv [i_sk + j_sk] <> # then begin

    itog: = itog * Strtofloat (Sk_massiv [i_sk + j_sk]);

    Sk_massiv [i_sk]: = Floattostr (itog);

    Sk_massiv [i_sk + j_sk]: = #; Ysk: = True;

    end else j_sk: = j_sk + 1;

    until Ysk = True;

    end; Ysk: = False;

    {--------------------- Розподіл ----------------}

    if Sk_massiv [i_sk] = / then

    Begin j_sk: = 1; Ysk: = False;

    repeat

    if Sk_massiv [i_sk-j_sk] <> # then begin

    itog: = Strtofloat (Sk_massiv [i_sk-j_sk]);

    Sk_massiv [i_sk-j_sk]: = #; Ysk: = True;

    end else j_sk: = j_sk + 1;

    until Ysk = True;

    j_sk: = 1; Ysk: = False;

    repeat

    if Sk_massiv [i_sk + j_sk] <> # then begin

    itog: = itog / Strtofloat (Sk_massiv [i_sk + j_sk]);

    Sk_massiv [i_sk]: = Floattostr (itog);

    Sk_massiv [i_sk + j_sk]: = #; Ysk: = True;

    end else j_sk: = j_sk + 1;

    until Ysk = True;

    end; Ysk: = False;

    end;

    {-------------- cложеніе / віднімання -----------------}

    For i_sk: = 0 to 100 do

    Begin

    Ysk: = False;

    {-------------- складання ---------------}

    if Sk_massiv [i_sk] = + then

    Begin j_sk: = 1; Ysk: = False;

    repeat

    if Sk_massiv [i_sk-j_sk] <> # then begin

    itog: = Strtofloat (Sk_massiv [i_sk-j_sk]);

    Sk_massiv [i_sk-j_sk]: = #; Ysk: = True;

    end else j_sk: = j_sk + 1;

    until Ysk = True;

    j_sk: = 1; Ysk: = False;

    repeat

    if Sk_massiv [i_sk + j_sk] <> # then begin

    itog: = itog + Strtofloat (Sk_massiv [i_sk + j_sk]);

    Sk_massiv [i_sk]: = Floattostr (itog);

    Sk_massiv [i_sk + j_sk]: = #; Ysk: = True;

    end else j_sk: = j_sk + 1;

    until Ysk = True;

    end; Ysk: = False;

    {------------------- Віднімання ----------------}

    if Sk_massiv [i_sk] = - then

    Begin j_sk: = 1; Ysk: = False;

    repeat

    if Sk_massiv [i_sk-j_sk] <> # then begin

    itog: = Strtofloat (Sk_massiv [i_sk-j_sk]);

    Sk_massiv [i_sk-j_sk]: = #; Ysk: = True;

    end else j_sk: = j_sk + 1;

    until Ysk = True;

    j_sk: = 1; Ysk: = False;

    repeat

    if Sk_massiv [i_sk + j_sk] <> # then begin

    itog: = itog-Strtofloat (Sk_massiv [i_sk + j_sk]);

    Sk_massiv [i_sk]: = Floattostr (itog);

    Sk_massiv [i_sk + j_sk]: = #; Ysk: = True;

    end else j_sk: = j_sk + 1;

    until Ysk = True;

    end; Ysk: = False;

    end;

    For i_sk: = 0 to 100 do

    Begin

    Ysk: = False;

    {-------------- Натуральний логарифм --------------}

    if Sk_massiv [i_sk] = ln then

    Begin j_sk: = 1; Ysk: = False;

    repeat

    if Sk_massiv [i_sk + j_sk] <> # then

    begin

    ch: = Strtofloat (Sk_massiv [i_sk + j_sk]);

    If ch> 0 then

    Begin

    itog: = ln (Strtofloat (Sk_massiv [i_sk + j_sk]));

    Sk_massiv [i_sk]: = Floattostr (itog);

    Sk_massiv [i_sk + j_sk]: = #; Ysk: = True;

    end else Begin

    Showmessage (Натуральний логарифм менше нуля);

    Sk_massiv [i_sk]: = 0;

    Ysk: = True;

    end;

    end else j_sk: = j_sk + 1;

    until Ysk = True;

    Ysk: = False;

    end;

    {-------------- Корінь кв.--------------}

    if Sk_massiv [i_sk] = sqrt then

    Begin j_sk: = 1; Ysk: = False;

    repeat

    if Sk_massiv [i_sk + j_sk] <> # then

    begin

    ch: = Strtofloat (Sk_massiv [i_sk + j_sk]);

    If ch> 0 then

    Begin

    itog: = sqrt (Strtofloat (Sk_massiv [i_sk + j_sk]));

    Sk_massiv [i_sk]: = Floattostr (itog);

    Sk_massiv [i_sk + j_sk]: = #; Ysk: = True;

    end else Begin

    Showmessage (Значення квадратного кореня менше нуля);

    Sk_massiv [i_sk]: = 0;

    Ysk: = True;

    end;

    end else j_sk: = j_sk + 1;

    until Ysk = True;

    Ysk: = False;

    end;

    end; Ysk: = False;

    j_sk: = 0;

    Repeat

    Begin

    if Sk_massiv [0 + j_sk] <> # then Begin

    // Запис у гл. масив значення дужки

    Gl_massiv [100-z]: = Sk_massiv [0 + j_sk];

    Ysk: = true; end

    else j_sk: = j_sk + 1;

    end;

    Until Ysk = true;

    end;

    end;

    {----- Вичіленіе значення в дужках закінчено -----}

    // showmessage (Gl_massiv [0]);

    Vivod: = Gl_massiv [0];

    end; // Кінець процедури

    {------------------------------------------------- -------}

    procedure TForm1.Button_ItogoClick (Sender: TObject);

    Var

    a, b, h: real; // Відрізок а, b і крок h

    Fx, Fa, Fb: Real; // Результат і суми значень F (xi)

    My_vivod: string; // Значення F (xi)

    mas, z, j: integer; // Номер комірки масиву

    i: integer; // Номер символу в рядку формул

    s, st, ch: string; // Символ

    // Булевой тип (брехня) або (Істина) для виходу з циклу підрахунку цифр

    Bool: Boolean;

    // Масив символів формули

    My_massiv: Array [0..100] of string;

    begin

    // Присвоєння до змінних значень відрізка а, b і кроку h

    a: = StrToFloat (Edit_A.Text);

    b: = StrToFloat (Edit_B.Text);

    h: = StrToFloat (Edit_Int.Text);

    z: = 0;

    // Обчислення значень Xi на відрізку a, b з кроком h

    Repeat

    Begin // Початок циклу

    // Висновок в масив значення Xi

    SS.Cells [0, z]: = FloatToStr (a);

    z: = z + 1; // Перехід на осередок нижче

    a: = a + h; // Крок

    end;

    Until a> b; // Продовження циклу до кінця відрізка а, b

    mas: = 0;

    // Виведення всіх значень F (xi) в масив

    Repeat

    begin

    i: = 1; j: = 1;

    Repeat

    // Обчислення F (xi) і висновок в масив

    Begin

    s: = Copy (Edit_F.text, i, 1); // Копіювати i-й символ в рядку формул

    // Перевірка на значення натурального логарифма

    if s = l then Begin

    s: = ln; i: = i + 1; end;

    // Перевірка на значення косинуса

    if s = c then Begin

    s: = cos; i: = i + 2; end;

    // Перевірка на значення синуса або кореня

    if s = s then Begin

    i: = i + 1; st: = Copy (Edit_F.text, i, 1);

    if st = i then begin

    s: = sin; i: = i + 1; end

    else begin s: = sqrt; i: = i + 2; end; end;

    // Перевірка на значення цифри

    if (s = 0) or (s = 1) or (s = 2) or (s = 3) or (s = 4)

    or (s = 5) or (s = 6) or (s = 7) or (s = 8) or (s = 9) then

    Begin

    ch: = s; Bool: = False;

    Repeat

    Begin

    i: = i + 1; // Перехід до слід. символу

    s: = Copy (Edit_F.text, i, 1); // Копіювати i-й символ в рядку формул

    // Перевірка на значення цифри

    if (s = 0) or (s = 1) or (s = 2) or (s = 3) or (s = 4)

    or (s = 5) or (s = 6) or (s = 7) or (s = 8) or (s = 9) or (s =,) then

    Begin // Якщо Так

    // Об'єднання декількох цифр підрив

    ch: = ch + s;

    end

    else Bool: = True; // Якщо немає Bool - Істина

    end;

    Until Bool = True; // Вихід, якщо Bool - Істина

    My_massiv [j]: = ch; j: = j + 1 // Запис значень цифр в масив

    // Якщо значення не цифри - запис в масив поточного символу

    end else Begin My_massiv [j]: = s; j: = j + 1; i: = i + 1; end;

    end;

    // Продовження циклу до кінця кількості символів в рядку формул

    Until i> Length (Edit_F.Text);

    // Взяти формулу в масиві в дужки

    My_massiv [0]: = (;

    My_massiv [Length (Edit_F.Text) +1]: =);

    // Присвоєння значенням х - значення xi в масиві

    For i: = 0 to 100 do begin

    if My_massiv [i] = x then

    My_massiv [i]: = SS.Cells [0, mas];

    end;

    Formula (My_vivod, My_massiv [0]);

    SS.Cells [1, mas]: = My_vivod; // Висновок F (xi) в масив

    mas: = mas + 1; // переміщених в масиві на рядок нижче

    end;

    // Продовження циклу до останнього значення xi

    Until mas> z-1;

    Fa: = 0; i: = 0; // Обнулення змінних

    // Підсумовування значень F (x2, x4..xn-1)

    Repeat

    Begin

    Fa: = Fa + StrtoFloat (SS.Cells [1, i]);

    i: = i + 2;

    end;

    Until i> = z;

    i: = 0;

    // Підсумовування значень F (x1, x3..xn)

    Repeat

    Begin

    Fb: = Fb + StrtoFloat (SS.Cells [1, i + 1]);

    i: = i + 2;

    end;

    Until i> = z-1;

    // Обчислення значення F (x)

    Fx: = (h / 3) * (StrToFloat (SS.Cells [1,0]) + (4 * Fb) + (2 * Fa));

    // Висновок результату

    Label3.Caption: = FloatToStr (h) + / 3 * (+ SS.Cells [1,0] +

    * 4 * (+ FloattoStr (Fb) +) + 2 * (+ FloattoStr (Fa) +) =;

    Label13.Caption: = FloatToStr (Fx);

    end;

    procedure TForm1.Label5Click (Sender: TObject);

    begin

    Form2.showmodal;

    end;

    procedure TForm1.Button1Click (Sender: TObject);

    begin

    Form_help.ShowModal;

    end;

    end.