Розділ 6.
У цьому розділі ви дізнаєтесь про:
Змінні величини та
константи, їх властивості
Компоненти поле,
прапорець, поле з
розкривним списком, їх
властивості й
використання
Змінні та їх властивості
Налагодження проектів
Використання в
проектах розгалуження,
циклів з лічильником і з
процедурою
Створення графічних
об’єктів у ході виконання
проектів
Урок 38.
Ви вже знаєте, що алгоритми можуть
містити розгалуження. Ви також знаєте, що
розгалуження як фрагмент алгоритму
починається з команди перевірки умови і
результатом виконання цієї команди може бути:
Істина (Так, true) Хиба (Ні, false)
І залежно від
результату виконання цієї
команди будуть виконуватися
ті чи інші команди.
У загальному випадку в цій команді
визначається значення певного логічного виразу,
яке може бути,
або true або false
У загальному випадку блок-схеми
розгалужень мають такий вигляд:
Повне розгалуження
Неповне
розгалуження
Команда повного розгалуження в мові
програмування Object Pascal має такий загальний
вигляд:
if<логічний вираз>
Then begin
<послідовність команд 1>
end
Else begin
<послідовність команд 2>
end;
(англ. if - якщо, then - тоді, else - інакше).
Виконання цієї команди відбувається так:
обчислюється значення логічного виразу:
Якщо це значення
true
то виконується
послідовність команд 1
і після цього
виконується команда,
наступна за
розгалуженням
Якщо це значення
false
то виконується
послідовність команд 2
і після цього
виконується команда,
наступна за
розгалуженням
Є в Object Pascal і команда неповного
розгалуження:
If <логічний вираз>
Then begin
<послідовність команд >
end;
Виконання цієї команди відбувається так:
обчислюється значення логічного виразу;
Якщо це значення true
то виконується послідовність команд і після цього
виконується команда, наступна за розгалуженням
Розглянемо задачу, алгоритм розв'язування
якої містить розгалуження.
Задача 1. Обчислити значення виразу
(а + 2Ь) / (а - Зb), де а, b - дійсні числа.
Оскільки вираз містить дію ділення
на вираз, який може дорівнювати нулю
(наприклад, при а = 3 і b = 1), алгоритм
Значення виразу а — 3b дорівнює 0
Значення виразу а — 3b не дорівнює 0
розв'язування цієї задачі повинен містити
розгалуження, у якому буде ураховано два
можливих випадки:
Блок-схема алгоритму
розв'язування цієї
задачі матиме такий
вигляд
Якщо записати мовою Object Pascal алгоритм,
наведений на попередній блок-схемі, то він
матиме такий вигляд:
а := StrToFloat(Edit1.Text);
Ь := StrToFloat(Edit2.Text);
х := a-3*b;
If x = 0
Then Label1.Caption := 'Вираз значення
не має: ділення на нуль‘
Else begin
у := a+2*b; z := у/х;
Label1.Caption := FloatToStr(z);
end;
Звертаємо вашу
увагу, що обчислення
значення виразу а – 3b
можна було б не
здійснювати в окремій
команді і не
запам'ятовувати як
значення мінної х, а
здійснити безпосередньо
в команді розгалуження.
Також можна обчислення значення виразу
(а + 2b) / (а - Зb) записати не двома командами, а
однією. Тоді цей фрагмент проекту матиме
такий вигляд:
а :- StrToFloat(Edit1.Text);
b := StrToFloat(Edit2.Text);
If a-3*b = 0
Then Label1.Caption := 'Вираз значення не
має: ділення на нуль“
Else begin
z := (a+2*b) /(a-3*b);
Label1.Caption := FloatToStr(z);
end;
Увага! Під час роботи з комп’ютером дотримуйтеся
правил безпеки та санітарно-гігієнічних норм.
1. Який вигляд має команда
повного розгалуження в Object Pascal?
2. Який вигляд має команда
неповного розгалуження в
Object Pascal?
3. У чому полягають відмінності
у виконанні повного і неповного розгалуження?
Проаналізувати
ст. 200-206

Урок 38. Алгоритми з розгалуженням

  • 1.
    Розділ 6. У цьомурозділі ви дізнаєтесь про: Змінні величини та константи, їх властивості Компоненти поле, прапорець, поле з розкривним списком, їх властивості й використання Змінні та їх властивості Налагодження проектів Використання в проектах розгалуження, циклів з лічильником і з процедурою Створення графічних об’єктів у ході виконання проектів
  • 2.
  • 3.
    Ви вже знаєте,що алгоритми можуть містити розгалуження. Ви також знаєте, що розгалуження як фрагмент алгоритму починається з команди перевірки умови і результатом виконання цієї команди може бути: Істина (Так, true) Хиба (Ні, false) І залежно від результату виконання цієї команди будуть виконуватися ті чи інші команди.
  • 4.
    У загальному випадкув цій команді визначається значення певного логічного виразу, яке може бути, або true або false
  • 5.
    У загальному випадкублок-схеми розгалужень мають такий вигляд: Повне розгалуження
  • 6.
  • 7.
    Команда повного розгалуженняв мові програмування Object Pascal має такий загальний вигляд: if<логічний вираз> Then begin <послідовність команд 1> end Else begin <послідовність команд 2> end; (англ. if - якщо, then - тоді, else - інакше).
  • 8.
    Виконання цієї командивідбувається так: обчислюється значення логічного виразу: Якщо це значення true то виконується послідовність команд 1 і після цього виконується команда, наступна за розгалуженням Якщо це значення false то виконується послідовність команд 2 і після цього виконується команда, наступна за розгалуженням
  • 9.
    Є в ObjectPascal і команда неповного розгалуження: If <логічний вираз> Then begin <послідовність команд > end; Виконання цієї команди відбувається так: обчислюється значення логічного виразу; Якщо це значення true то виконується послідовність команд і після цього виконується команда, наступна за розгалуженням
  • 10.
    Розглянемо задачу, алгоритмрозв'язування якої містить розгалуження. Задача 1. Обчислити значення виразу (а + 2Ь) / (а - Зb), де а, b - дійсні числа. Оскільки вираз містить дію ділення на вираз, який може дорівнювати нулю (наприклад, при а = 3 і b = 1), алгоритм Значення виразу а — 3b дорівнює 0 Значення виразу а — 3b не дорівнює 0 розв'язування цієї задачі повинен містити розгалуження, у якому буде ураховано два можливих випадки:
  • 11.
  • 12.
    Якщо записати мовоюObject Pascal алгоритм, наведений на попередній блок-схемі, то він матиме такий вигляд: а := StrToFloat(Edit1.Text); Ь := StrToFloat(Edit2.Text); х := a-3*b; If x = 0 Then Label1.Caption := 'Вираз значення не має: ділення на нуль‘ Else begin у := a+2*b; z := у/х; Label1.Caption := FloatToStr(z); end;
  • 13.
    Звертаємо вашу увагу, щообчислення значення виразу а – 3b можна було б не здійснювати в окремій команді і не запам'ятовувати як значення мінної х, а здійснити безпосередньо в команді розгалуження.
  • 14.
    Також можна обчисленнязначення виразу (а + 2b) / (а - Зb) записати не двома командами, а однією. Тоді цей фрагмент проекту матиме такий вигляд: а :- StrToFloat(Edit1.Text); b := StrToFloat(Edit2.Text); If a-3*b = 0 Then Label1.Caption := 'Вираз значення не має: ділення на нуль“ Else begin z := (a+2*b) /(a-3*b); Label1.Caption := FloatToStr(z); end;
  • 15.
    Увага! Під часроботи з комп’ютером дотримуйтеся правил безпеки та санітарно-гігієнічних норм.
  • 17.
    1. Який виглядмає команда повного розгалуження в Object Pascal? 2. Який вигляд має команда неповного розгалуження в Object Pascal? 3. У чому полягають відмінності у виконанні повного і неповного розгалуження?
  • 18.