Опрацювання величин логічного типу. Вказівка розгалуження

 Мета: ознайомити з правилами опису алгоритмів розгалуження в середовищі Lazarus, формувати вміння реалізовувати алгоритми розгалуження, використовувати величини логічного типу.

Хід заняття

Створити проект товарного чеку, який передбачає введення значень:
1) кількість товару
2) вартість товару,
3) отримана сума.
Запрограмувати кнопки:
1) Сплатити
2) Решта
3) Очистити 
4) Вихід

1) Кнопка "Вихід" 
procedure TForm1.Button4Click(Sender: TObject);
begin
  Form1.Close;
end;            
2) Кнопка "Очистити"
procedure TForm1.Button3Click(Sender: TObject);
begin
  Edit1.Text:=' ';
  Edit2.Text:=' ';
  ....
end;      
3) Кнопка "Сума до сплати"
      procedure TForm1.Button1Click(Sender: TObject);
var x: integer; y,z:real;
begin
 x:=strtoint(edit1.Text);
 y:=strtofloat(edit2.Text);
 z:=x*y;
 edit3.Text:=floattostr(z);
end;      
4) Кнопка "Решта"
procedure TForm1.Button2Click(Sender: TObject);
var x,y,z:real;
begin
 x:=strtofloat(edit3.Text);
 y:=strtofloat(edit4.Text);
 z:=y-x;
 edit5.Text:=floattostr(z);
end;                          

Виконати проект для значень:
1) кількість товару - 5
2) вартість товару, - 10,2
3) отримана сума - 200    
Проаналізувати результат
    Виконати проект для значень:
1) кількість товару - 5
2) вартість товару, - 10,2
3) отримана сума - 25
        Проаналізувати результат

Отже, чи завжди ми можемо обчислити решту? Що потрібно додати до програмного коду, щоб алгоритм працював при будь-яких значеннях? Якого типу є даний алгоритм?

Так в даному випадку ми повинні перевірити чи отримана сума більша або рівна "Сумі до сплати" і лише тоді обчислювати решту або повідомити, що даних коштів не вистачає. Алгоритми такого типу ми називаємо "Алгоритми з розгалуженням"
 Як описати алгоритмічну структуру розгалуження мовами програмування? (ст.159-160)
Зверніть увагу: 
- Оператор неповного розгалуження Таблиця 24.5
- Оператор повного розгалуження Таблиця 24.6
- Вкладені розгалуження Таблиця 24.7
 Кнопка "Решта"
procedure TForm1.Button2Click(Sender: TObject);
var x,y,z:real;
begin
 x:=strtofloat(edit3.Text);
 y:=strtofloat(edit4.Text);
 if y>=x then
             begin z:=y-x;
                    edit5.Text:=floattostr(z);
               end
          else  edit5.Text:='Коштів не вистачає'
end;                                 

Домашнє завдання: Прочитати п. 24 стор. 157-161
Переглянути відеоматеріал: 
Індивідуальне завдання: Виконати вправу 2 стор. 161 "Агрегатний стан води"

              

Немає коментарів:

Дописати коментар