Как Петя Бейсиков Тоню Соображалкину программировать учил
- Автор: Бруно Мартузан
- Жанр: Околокомпьютерная литература / Детская образовательная литература / Basic, Visual Basic, VB Script, VBA и т.п.
- Дата выхода: 1987
Читать книгу "Как Петя Бейсиков Тоню Соображалкину программировать учил"
ХРАНЕНИЕ ДАННЫХ В ПРОГРАММЕ
— Это действительно оператор. Оператор хранения данных. «Дейта» означает «данные». Этот оператор только хранит данные. И все. Интерпретатор, встретив такой оператор в программе, перескочит его. В значения переменных данные переносятся другим оператором — READ.
— «Рид» — это «читать». Выходит, что это оператор чтения…
— Или считывания. Из хранилища в операторах DATA он считывает данные в значения переменных. В программе оператор READ появляется в строке 220, где начинается цикл от 1 до 15, то есть по всем республикам. В этом цикле считываются все названия республик и их столиц.
Кто пришел за данными ко мне?
Само чтение происходит так. Проходя цикл первый раз, когда 1 = 1, интерпретатор, натолкнувшись на оператор READ с элементами символьных массивов R¤(I) и S¤(I) — сейчас R¤(1) и S¤(1), начинает искать, где в программе встречается оператор DATA. Находит, что в первый раз в строке 130 и что первые две символьные строки, там хранящиеся, это «РОССИИ» и «МОСКВА». Они и становятся значениями элементов R¤(1) и S¤(1). Можешь сказать, как узнать, где в операторе DATA кончается одна символьная строка и начинается другая?
— Они же отделены запятыми!
— Ну да. Если нужно было бы считывать значения не символьных переменных, а числовых, то никаких существенных изменений не произошло бы. Их записали бы таким же образом, отделяя запятыми. Проходя цикл второй раз, свои значения получают элементы R¤(2) и S¤(2). Оператор READ их считывает из хранилища по порядку. Так что на сей раз это будет «БЕЛОРУС» и «МИНСК». И так до конца цикла. Конечно, все должно быть согласовано. В операторах DATA все данные должны храниться в таком порядке, в каком они понадобятся оператору READ.
Во время работы интерпретатор отмечает, до какого места в операторах DATA он дошел. Если все данные уже считаны, но появляется еще один оператор READ, то возникает ошибка.
Иногда данные, хранящиеся в операторе DATA, могут понадобиться программисту несколько раз. Тогда надо привлечь оператор RESTORE. «Ристор» — это «восстановить». Когда интерпретатор найдет в программе этот оператор, он заставит следующий READ считывать данные с самого первого оператора DATA.
Данные собирайте с самого начала!
— Меня все время гложет вопрос, почему ты во всех операторах DATA так странно пишешь — «РОССИЙ», «ЛАТВИЙ»?
— Мне потом понадобится вывод названий республик в различных падежах. И поэтому я держу в массиве только основы слов, к которым буду добавлять окончания. Скоро увидишь. Сейчас смотри выбор режима в строках 270–340.
— Самый простой, наверно, режим показа.
— Нет, режим окончания проще, но показ в строках 370–430 тоже несложен: на экран столбиком выводятся порядковые номера республик, их названия и столицы. Фокус здесь в том, что мы к основе названия республики, которая хранится в массиве R¤, добавляем окончание. Это происходит в самом операторе печати в строке 410. А чуть раньше, в строке 405, мы вычислили, какое сокращение будет нужно: СФСР для Российской федерации или ССР для остальных республик.
— Неглупо. Стало яснее, зачем ты хранишь только основы названий республик.
— Потом идет режим повторения. Строки 440–480 ты, надеюсь, понимаешь?
— В особенности строку 480. Хоть один бы разочек за всю мою долгую жизнь сказали бы: когда тебе надоест заниматься, то… Поверь мне, ни разу!