Как Петя Бейсиков Тоню Соображалкину программировать учил
- Автор: Бруно Мартузан
- Жанр: Околокомпьютерная литература / Детская образовательная литература / Basic, Visual Basic, VB Script, VBA и т.п.
- Дата выхода: 1987
Читать книгу "Как Петя Бейсиков Тоню Соображалкину программировать учил"
СОВСЕМ ПРОСТАЯ ПОДПРОГРАММА
— Все. Кончаю. Продолжаем. Смотрим строку 550. Начинается вывод. Строка 560 отсылает к подпрограмме, начинающейся со строки 1000… Что это за подпрограмма?
— Всего будут две подпрограммы. Первая для печати строки с декоративными символами. В ней содержится цикл, который выпечатывает по одному символу столько раз, сколько нужно.
— Вижу цикл. А что это за PRINT перед ним?
— Ах да! О функции TAB ты еще ничего не знаешь. Эту функцию можно вызывать только в операторе PRINT, и она указывает позицию строки, с которой надо продолжать печать. Поясню ее работу на примерах.
PRINT «ПРИВЕТ»;ТАВ(40);«ТОНЯ»
Такой оператор слово ПРИВЕТ выведет, начиная с первой позиции, а слово ТОНЯ — с сороковой.
PRINT ТАВ(40); «ПРИВЕТ»; «ТОНЯ» Этот оператор текст ПРИВЕТТОНЯ выведет, начиная с сороковой позиции.
В аргументе функции не обязательно указывать число, там может быть любое арифметическое выражение. А сейчас скажи — что делает такой оператор?
PRINT ТАВ(5);
— Не знаю. По-моему, он… ничего не делает.
— Не забудь про точку с запятой в конце. Она означает, что следующий оператор PRINT начнет вывод с шестой позиции. Похожий оператор я пишу в строке 1010, чтобы печать начиналась не с самого края бумаги, а с отступлением на пять пробелов.
— Но тогда же и другие строки нужно будет печатать, начиная с шестой позиции.
— Так я и поступлю.
— А на что этот одинокий оператор PRINT после цикла?
— Чтобы напечатать целую строку одинаковых символов, в конце оператора PRINT, стоящего в цикле, ставлю точку с запятой. Влияние этой точки с запятой сохранится и после окончания цикла, так что следующий вывод после цикла продолжит декоративную строчку. Нужный перескок на следующую строку обеспечивает тот оператор PRINT после цикла, о котором ты говорила. Он как бы прекращает действие точки с запятой.
— А возвратившись из подпрограммы, натыкаемся на какой-то сложный расчет в строке 570.
— Здесь рассчитываем, сколько пустых строк оставить между верхней декоративной строчкой, которую только что напечатали, и текстом поздравления. Пустые строки будут еще и после текста. Их количество я рассчитываю так. Значение переменной R — общее количество строк в поздравлении — мне известно: 16. Отнимаем от него 10 — количество строк в тексте поздравления. Получаем общее количество пустых строк. А сколько из них оставить вверху над текстом? Считаю, что половину. Потом беру целую часть частного (R—10)/2 просто потому, чтобы R1 получилось целым числом, поскольку в дальнейшем я эту переменную собираюсь использовать в местах, где нужны целые числа, ты увидишь.
— Где я это увижу?