Програмування. Середовище Turbo Pascal 0



Сторінка5/8
Дата конвертації04.12.2016
Розмір1,69 Mb.
1   2   3   4   5   6   7   8
§12. КОНСТРУЮВАННЯ АЛГОРИТМУ «ЗВЕРХУ ДОНИЗУ».
Розглянемо задачу.

Нехай ділянка кола, що складається з чотирьох резисторів (див мал) споживає різницю потенціалів U. Визначити силу струму I, яка протікає через дане коло.



Якби нам був відомий загальний опір R усієї ділянки, то струм в колі ми знайшли б за законом Ома (мал. 1):



Дана структура (блок-схема мал. 2 та текст програми мал. 3) – це «хребет» майбутньої програми або, іншими словами, ми описали верхівку нашої майбутньої програми. Бачимо, що наша задача містить в собі ще одну задачу про знаходження опору R.

Розв’яжемо дану задачу.



Якщо ми уважно подивимося на наше коло, то помітимо, що воно складається з двох паралельно з’єднаних ділянок R12 та R34. А з курсу фізики відомо, що опір двох паралельно з’єднаних провідників визначається за формулою:


R1



R2

R12

R34

R3


R4

Тільки що ми деталізували нашу задачу. Нижче подано блок-схему алгоритму та програму нашої деталізованої програми.




Програма нашої деталізованої задачі
Var

R,R1,R2,R3,R4,U,I:real;

R12,R34:real;

Begin


Write(‘R1 = ‘); read(R1);

Write(‘R2 = ‘); read(R2);

{Тут має міститися текст підзадачі знаходж. R12}

{Тут має міститися текст підзадачі знаходж. R34}

R:=R12*R34/(R12+R34);

I:=U/R;


Writeln(‘I = ‘,I:5:2);

End.

Нам залишилось розв’язати задачі про знаходження опорів R12 та R34.

З курсу фізики відомо, що R12=R1+R2, R34=R3+R4

Результуюча програма має вигляд:

Var


R,R1,R2,R3,R4,U,I:real;

R12,R34:real;

Begin

Write(‘R1 = ‘); read(R1);



Write(‘R2 = ‘); read(R2);

R12:=R1 + R2; R34:=R3 + R4;

R:=R12*R34/(R12+R34);

I:=U/R;


Writeln(‘I = ‘,I:5:2);

End.


Такий підхід до розв’язання задач носить назву «Конструювання алгоритму зверху донизу». Особливість даного підходу полягає в тому, що спочатку, аналізуючи умову задачі та будуючи математичну модель для її розв’язання, необхідно розбити цю задачу на під задачі та розв’язати їх окремо (кожну з виділених під задач розв’язувати за тим же принципом: розбивати на інші під задачі). В нашому випадку на верхньому рівні задача зводиться до задачі про знаходження загального опору R. Опускаючись з верхнього рівня до низу (розглядаючи окремо цю підзадачу), бачимо що вона містить ще дві підзадачі (знайти опір R12 та опір R34).
Використовуючи підхід «зверху-донизу» конструювати алгоритм слід за такими правилами:

  1. Усі під задачі повинні бути розв'язані.

  2. Розв’язки кожної під задачі по можливості повинні якомога менше впливати одне на одне (так знаходження опору R12 не впливає на знаходження R34 ). При такому підході помилка, допущена при розв’язанні однієї під задачі не призводить до помилок в інших під задачах.

  3. Вирішення кожної під задачі повинно спрощувати задачу вцілому. Так, розв’язавши під задачу про знаходження R, дозволяє розв’язати основну задачу за однією формулою: I = U/R.

  4. Окрема під задача може розбиватися на ряд інших під задач. Так під задача про знаходження опору R розбивається на дві під задачі: знаходження опору R12 та знаходження опору R34.





Поділіться з Вашими друзьями:
1   2   3   4   5   6   7   8


База даних захищена авторським правом ©refos.in.ua 2019
звернутися до адміністрації

увійти | реєстрація
    Головна сторінка


завантажити матеріал