Понедельник, 29.04.2024
Small Basic
Меню сайта
Форма входа
Поиск
Разветвленный алгоритм

Немного теории
Разветвленный алгоритм
– это алгоритм, в котором в зависимости от условия выполняется одна или другая серия команд.
Блок-схема разветвленного алгоритма

Плевдокод разветвленного алгоритма
если условие
то серия 1
иначе серия 2
кон если

Командная структура ветвления в Small Basic
В Small Basic для записи разветвленного алгоритма используется следующая серия команд:
  If условие Then
     серия 1
  Else
     серия 2
  EndIf

Например:
  If b<>0 Then
     c=a/b
     TextWindow.WriteLine("Отношение равно " + c)
  Else
     TextWindow.WriteLine("делить на 0 нельзя!")
  EndIf


При выполнении данной программы, если (If) переменная b не равна 0, то (Then) будет вычислено и выведено значение с=а/b. Иначе (Else) будет выведено сообщение, что на 0 делить нельзя.

Условие
Условие — это выражение логического типа, которое может принимать одно из двух значений: "истина" или "ложь". Простое условие состоит из двух выражений и знака сравнения между ними: < (меньше), > (больше), = (равно), <> (не равно), <= (меньше равно), >= (больше равно).

Например:
  a < 0
  m > n
  x + y = 6
  Mach.Sin(x) <> 0.5
  s1 <= s2
  t/2 >= (-1)*z


Сложные условия строятся с помощью логических операторов: And (и), Or (или), Not (не).

Например:
  a < 0 And b > 0
  m = n Or m <> k
  Not (s = v*t)

Программа "Разность чисел"
Напишем программу вычисления разности двух чисел при условии, что всегда следует вычитать из большего числа меньшее.

План
1. Ввести два числа а и b
2. Сравнить числа (a>b)
3. Вычислить разность согласно условию


Код программы
  'разность двух чисел
  TextWindow.WriteLine("Введи два числа: ")
  a = TextWindow.ReadNumber()
  b = TextWindow.ReadNumber()

  If a>b Then
     c=a-b
  Else
     c=b-a
  EndIf
  TextWindow.WriteLine("Разность чисел равна " + c)


Программа "Треугольник"
Напишем программу, которая определяет существование треугольника по условию, что сумма двух любых его сторон должна быть больше третьей.

План
1. Ввести три стороны треугольника а, b и с
2. Сравнить стороны треугольника: a<b+c и b<a+c и c<a+b
3. Вывести результат

Код программы
  'треугольник
  TextWindow.WriteLine("Введи три стороны треугольника:")
  a = TextWindow.ReadNumber()
  b = TextWindow.ReadNumber()
  c = TextWindow.ReadNumber()
  If a<b+c And b<a+c And c<a+b Then
     TextWindow.WriteLine("Треугольник существует")
  Else
     TextWindow.WriteLine("Треугольник не существует")
  EndIf
 

Программа "Времена года"
При помощи нескольких инструкций If можно осуществить множественный выбор. Напишем программу, которая определяет время года по его месяцу.

План
1. Ввести название месяца
2. Сравнить название месяца
3. Вывести результат по условию


Код программы
 

Для многих такая сложная ступенчатая структура с многочисленными If, Else. EndIf выглядит пугающе. Во многих языках программирования множественный выбор задается специальной командой, которая облегчает восприятие и написание программы, но её нет в Small Basic.
В случае возникновения проблем с множественным выбором можно посоветовать использовать краткую форму записи условия. Например предыдущую программу можно записать следующим образом.


Восприятие программы стало проще, но пропала возможность контроля некорректного ввода названия месяца.

Вопросы и задания
  1. Почему алгоритм с условием называют разветвленным алгоритмом?
  2. Можно ли было в программе "Разность чисел" использовать условие b>a? Что ещё при этом пришлось бы изменить?
  3. Напишите программу тест: верно - неверно
  4. Напишите программу сравнения двух чисел: больше, меньше, равны
  5. Напишите программу вычисления корней квадратного уравнения.

Файлы программ


Разность двух чисел (скачать архив zip)
Треугольник (скачать архив zip)
Времена года (скачать архив zip)
Тест (скачать архив zip)
Сравнение двух чисел (скачать архив zip)
Квадратное уравнение (скачать архив zip)

Наш опрос
Какой язык программирования вы используете (знаете)?
Всего ответов: 271
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    Copyright MyCorp © 2024
    Создать бесплатный сайт с uCoz