' 1. Исходная неструктурированная Basic-программа
Input "Предположение";
Ответ
label: Улов = Ответ
For Рыбак = 1 To 3
Улов = Улов — 1
Улов = Улов - Улов / 3
If Улов > Int(Улов) Then Ответ = Ответ - 1: Goto label
Next
Print "Ответ "; Ответ;
"рыб"
' 2. Первый шаг структурирования - разбег
Input "Предположение";
Ответ
Ответ = Ответ + 1 ' Шаг назад
label: Ответ = Ответ
- 1 ' Шаг вперед
Улов = Ответ
For Рыбак = 1 To 3
Улов = Улов — 1
Улов = Улов - Улов / 3
If Улов > Int(Улов) Goto label
Next
Print "Ответ "; Ответ;
"рыб"
' 3. Второй шаг структурирования — ввод признака
Input "Предположение";
Ответ
Ответ = Ответ + 1
label: Ответ = Ответ
— 1
Улов = Ответ
Поделили = "да" ' Признак дележа улова
For Рыбак = 1 To 3
Улов = Улов — 1
Улов = Улов - Улов / 3
If Улов > Int(Улов) Then Поделили = "нет"
Next
If Поделили
= "нет" Goto label
Print "Ответ "; Ответ;
"рыб"
' 4. Третий шаг структурирования — отказ от метки
Input "Предположение";
Ответ
Ответ = Ответ + 1
Do ' Начало цикла с постпроверкой
Ответ = Ответ — 1
Улов = Ответ
Поделили =
"да"
For Рыбак = 1 To 3
Улов = Улов — 1
Улов = Улов - Улов / 3
If Улов > Int(Улов) Then Поделили = "нет"
Next
Loop Until Поделили = "да" ' Конец цикла
Print "Ответ "; Ответ; "рыб"