Теперь преобразуем нарисованную нами блок-схему алгоритма определения следующего числа месяца в программу на basic. И так, во-первых, необходимо ввести текущее число месяца. Сделаем это при помощи уже знакомого нам оператора ввода - Input Day. В данном случае Day - это имя переменной, в которой будет храниться текущее число месяца. Далее, в соответствии с блок-схемой необходимо проверить, значение переменной Day меньше чем 31 или нет. Для осуществления подобного рода проверок в любом языке программирования (и в Basic в частности также) существует условный оператор. Код целиком можно записать в следующем виде
Input Day
If Day<31 then
Day=Day+1
Else
Day=1
EndIf
Print Day
Stop
Наберите эту программку в окне редактирования SmallBASIC и попробуйте с ней поработать. Убедитесь, что она в ответ на введенное вами число от 1 до 31 будет печатать следующее число месяца от 1 до 31. Условный оператор можно использовать в полной и сокращенной форме. Полная форма в общем виде выглядит примерно ("примерно" потому, что я, по возможности, буду придерживаться "среднего" синтаксиса многочисленных клонов Бейсика) следующим образом
If логическое выражение then
Инструкция 1
Инструкция 2
…
Инструкция n
Else
Инструкция 1
Инструкция 2
…
Инструкция m
EndIf
Таким образом, в нашей программке мы использовали именно полную форму условного оператора. Сокращенная форма записывается в одной строке и выглядит примерно следующим образом
If логическое выражение Then Инструкция
В этом случае Инструкция выполняется лишь, когда значение логического выражения = "Истина".
В приведенном выше программном коде имеется одна "фраза", которая не может не вызывать протест у нормального человека, а именно Day=Day+1. Никогда x не может быть равным x+1. Дело в том, что в программировании (на Бейсике и некоторых других языках) знак "=" обозначает не привычный нам знак равенства, а является исполняемой инструкцией, предписывающей присвоить переменной, стоящей слева, значение выражения справа. Таким образом, запись Day=Day+1 на Бейсике означает: - "Присвоить переменной Day значение, равное ее текущему значению, увеличенному на единицу". Во избежание коллизий в некоторых других языках программирования оператор присваивания обозначают иначе, например "<" или ":=".
Ну вот, на сегодня хватит. Теперь вы знаете достаточно для того, чтобы в качестве домашнего задания попробовать присоединить к нашему 31-дневному колесику еще одно 12-ти месячное. То есть, попробуйте написать программу, которая бы в ответ на два введенных числа (число от 1 до 31 и месяц от 1 до 12) печатала бы завтрашнюю дату. Программа должна корректно обрабатывать ситуацию, когда введено 31 12, и в ответ печатать 1 1. Ну и разумеется после 31 3 должно наступать 1 4 и т. д. Пока предположим, что в месяце всегда 31 день, а про год временно забудем.
Колесников А.
andr61@mail.ru