ВВЕДЕНИЕ
ИЛИ КАК РАБОТАТЬ С ЭТОЙ КНИГОЙ
Уважаемый читатель! Вы держите в руках не совсем обычную
книгу Общеизвестно, что книги пишутся и издаются для того, чтобы
их кто-то читал, во всяком случае авторы и издатели очень на это
рассчитывают. Мы же берем на себя смелость предложить Вам книгу,
читать которую вряд ли возможно. Это не книга для чтения - это
сборник компьютерных программ для самостоятельного набора.
Программистами, как известно, не рождаются, ими становятся
и простейший путь научиться программированию в том и состоит, чтобы
взять и начать программировать. Внимательный читатель может возра-
зить, что набор программ - это еше далеко не программирование. И он
будет прав до известной меры. Бездумный и безошибочный набор прог-
рамм (если такое сочетание возможно) действительно не заменит само-
стоятельного программирования. И здесь мы рассчитываем на Вашу ес-
тественную человеческую способность делать ошибка. А еще точнее
на Вашу способность не только делать их, но и находить н исправлять
Вот этот путь и является кратчайшим путем к освоению премудростей
составления программ.
Но ошибки ошибкам рознь. Первое, что приходит в голову на-
чинающему пользователю - мысль о том, что никаких ошибок в его
программе нет, а просто в книге полно опечаток. И здесь мы должны
сказать несколько слов. Действительно, очень редко можно встретить
в печати программу, свободную от опечаток. На это есть масса причин
и мы не будем на этом останавливаться. Скажем только, что мы сдела-
ли максимум возможного, чтобы избавиться от ошибок в листингах. Все
программы в этой книге опубликованы так, как они были в памяти
компьютера после полного завершения набора и отладки. То есть то,
что Вы видите на страницах книги, почти полностью соответствует то-
ну, что реально работало на стандартных машинах. В технологии пере-
носа листингов программ из памяти "Спектрума" на бумагу люди прини-
мали мало участия. Большинство операций выполнялось автоматически с
помощью специально разработанных для этого программ и это позволяет
нам надеяться, что появление опечаток в этой книге маловероятно.
Твердо и уверенно приступайте к набору. Обратите особое вни-
мание на принятые в программах условные обозначения (см. соответс-
твующую главу), разберитесь и освойте технику русификации игр (что-
бы не повторять это в каждой программе, мы описали эту методику
один раз) и внимательно проводите отладку и поиск ошибок, если они
при наборе возникнут. А мы желаем Вам творческих успехов в этом не-
легком, но удивительно интересном деле. И пусть програмна, ожившая
на Вашем компьютере, будет достойной наградой за Ваш нелегкий труд
Искренне Ваш! "Инфорком".
ОТЛАДКА НАБРАННОЙ ПРОГРАММЫ
Самостоятельный набор программ является прекрасной школой обу-
чения программированию. И дело даже не в том, что при наборе прог-
раммы начинающий программист осваивает клавиатуру, использует новые
для себя операторы и конструкции языка, узнает новые приемы. Основ-
ная прелесть состоит в том, что как бы ни старался читатель набрать
программу без ошибок, в 99 случаях из 100 у него это не выйдет.
Практически все (и при любом опыте) допускают ошибки. А вот поиск
этих ошибок и отладка программы и являются по-настоящему ценной
школой начинающего программиста.
Интерпретатор БЕЙСИКа устроен так, что от большинства ошибок
он Вас застрахует. Если при наборе строки Вы нарушите синтаксис
языка (забудете закрыть скобки или кавычки, например), он вас не-
медленно предупредит и строка не будет введена в программу клавишей
ENTER до тех пор, пока Вы эту ошибку не исправите. Тем не менее,
существуют еще сотни возможных видов ошибок, которые он не увидит.
Например, он ничего не сможет поделать, если Вы пропустите ка-
кую-либо строку (или же допустите ошибку, набирая номер строки). Об
этом Вы узнаете только запустив программу, причен ошибка проявится
совсем не в том месте, в котором Вы пропустили строку. Она проявит-
ся там, где компьютеру надо будет воспользоваться данными, содержа-
щимися в пропущенной строке.
Поэтому прежде, чем Вы приступите к набору программы, нам хо-
телось бы дать Вам некоторые приемы, которые помогут сделать мучи-
тельный процесс отладки чуть менее мучительным. Тем не менее, наст-
ройтесь все-таки на тяжелую и кропотливую работу.
Все программы, вошедшие в эту книгу, нами проверены, их лис-
тинги получены методом конвертирования "живой" Бейсик-программы в
текстовый файл, поэтому ошибки в листингах маловероятны. Но опыт
показал, что основную трудность для начинающих представляет схо-
жесть написания некоторых символов. Так, например, часто путают
букву "I", и цифру "1". Путают букву "О" и цифру "0". Легко спутать
буквы "О" и "Q" между собой. Можно спутать букву "В" н цифру "8" и
т.д. имея дело с этими символами, относитесь к ним предельно осто-
рожно. Часто вместо графических символов "А"-"2" вводят обычные
буквы.
Теперь о ходе отладки. Вы, конечно понимаете, что предусмот-
реть все возможные виды ошибок, которые Вы наделаете, заранее никто
не сможет, хотя кое-какая статистика у нас имеется. Можно сказать,
что до 90 процентов самых больших неприятностей связано с тремя ви-
дами ошибок, которые проявятся во время отладки в виде остановки
работы программы и вывода сообщений:
Variable not found (переменная не найдена).
Out of screen (печать вне пределов экрана).
End of DATA (нехватка данных).
Что касается "Variable not found", - это наиболее часто встре-
чающаяся неприятность. К ней, как правило, и приводит путаница в
символах, о которой мы говорили выше. Хотя это, конечно, не единс-
твенный способ напороться на данную ошибку-
Когда компьютер сообщает об этой ошибке, он указывает и номер
строки, в которой она произошла. Например:
2 Variable not found, 1025:1
Внимательно сверьте эту строку с исходным текстом. Предполо-
жим, она имеет вид:
1025 PRINT "УРОВЕНЬ ";LEV;" ЭНЕРГИЯ ";АО
Если все в порядке, попробуйте распечатать переменные "подоз-
рительного" выражения прямой командой:
PRINT LEV затем PRINT АО
Та, которая ошибочна, распечатана не будет и вы опять получите
сообщение "Variable not found". Предположим, это случилось при по-
пытке распечатать переменную АО. Теперь надо найти программную
строку, в которой эта переменная была в первый раз определена. Мо-
жет быть, эту строку вы и пропустили или неправильно набрали там
имя переменной. Предположим, что это оказалась строка:
110 LET LEV=1: LET HI=100: LET A0=10
Видим, что вместо переменной АО набрано АО (то есть вместо
буквы "О" в имени переменной набран ноль). Теперь необходимо све-
рить строки 110 и 1025 с листингом программы и устранить ошибку.
Ошибка "Out of screen" возникает при печати (PRINT, PLOT,
DRAW, CIRCLE), если координаты печати выходят за пределы экрана.
Бороться с этой ошибкой весьма трудно. Поскольку ошибка возникает в
тех случаях, когда параметры координат позиции печати выражены не
числом, а переменными, распечатайте их прямой командой PRINT. Пос-
мотрите, какой параметр "врет". Вернитесь по программе назад, най-
дите строку, в которой этот параметр вычисляется. Пусть это будет
например строка 5550. Поставьте после нее отладочную строку:
5551 PRINT AT 0,0;<имя переменной»: PAUSE 0
Так, постепенно "раскручивая" эту переменную, вы и найдете в
какой строке вычисления с ней портят Вашу программу.
Ошибка "Out of DATA" возникает в случае несоответствия коли-
чества данных, прочитанных программой по оператору READ и имеющихся
в строках DATA. Борьба с ней довольно проста и требует только вни-
мательности и точности.