Как Петя Бейсиков Тоню Соображалкину программировать учил
- Автор: Бруно Мартузан
- Жанр: Околокомпьютерная литература / Детская образовательная литература / Basic, Visual Basic, VB Script, VBA и т.п.
- Дата выхода: 1987
Читать книгу "Как Петя Бейсиков Тоню Соображалкину программировать учил"
АВТОМАТИЗАЦИЯ ПЕДАГОГИКИ
— Здесь мы начинаем режим повторения присваиванием нулей переменным, которые означают количество заданных вопросов и ошибочных ответов.
— Сначала выбираем случайное число. Странно, что с ним ничего не делаем. Обычно на что-то умножали и брали целую часть…
— На сей раз нужно случайное число как раз из отрезка [0; 1]. Оно определяет, какой зададим вопрос: назовем ли республику и спросим столицу или наоборот. При этом используется значение U1, о котором уже говорили.
— Это ничего. Можно еще поговорить. Хочу разобраться, что здесь произойдет. У тебя значение U1 было 0,5?
— Это означает, что оба типа вопросов будут встречаться одинаково часто.
— Хорошо. А если U1=0… Тогда полученное случайное число R из отрезка [0;1] обязательно будет больше 1 и мы уйдем на строку 670.
— То же самое было бы, если задали значение U1 меньше нуля.
— Другой случай. Если число R больше U1. Тогда управление всегда перейдет на следующую строку —580. А если это значение, например, 0,9, то почти всегда будет выполняться следующая строка, и только в одном случае из десяти перейдем на строку 670. Думаю, что в этих трюках разобраться можно. Продолжим.
— Если оператор ветвления в строке 570 пропускает на следующую строку, то мы сразу выводим вопрос и обращаемся к подпрограмме, начинающейся со строки 1000. Она сделает случайный выбор номера республики.
— Посмотреть бы эту подпрограмму.
— Она совсем простая. Выбираем случайное число между 1 и 15. Если оно 9, то есть придется спрашивать про Латвийскую ССР, выбираем еще раз, так как человек, живущий в Риге, должен знать, столицей какой республики она является.
— И в конце оператор RETURN, как это положено в подпрограммах.
— На сей раз этот оператор передаст управление назад на строку 610, где оператор PRINT выведет нужную столицу, и оператор INPUT в следующей строке обеспечит ввод ответа.
— Последующее сравнение тоже достаточно обычное. Смотрим, не ввел ли ученик знак номера, и если ввел, то переходим на 750. А что там? Ага! Выводим результаты труда и возвращаемся на выбор режима. А если ему еще не надоело? Если не надоело, то почему-то переменной N¤ присваиваем… что же присваиваем?
— N¤ — это переменная, значение которой — правильный ответ. В данном случае название республики, которое ученик должен ввести. Опять приходится использовать старый фокус с добавлением окончания в названии республики. Конечно, я считаю, что ученик должен ввести полное название, например: ЛИТОВСКАЯ ССР, а не только основу слова, которую я храню в массиве R¤: ЛИТОВ.
— Потом опять уходим на подпрограмму?
— Да, но сейчас это другая подпрограмма. Она сравнивает введенный ответ с правильным и сообщает, что получилось. Можешь посмотреть текст программы. Если ответ неправильный, приходится работать дополнительно — нужно увеличить количество допущенных ошибок на единицу.
— И, возвратившись из подпрограммы, идем на строку 560, чтобы все начать сначала.
— Следующая часть программы, называющая республику и требующая ввести столицу, почти такая же, как только что изученная. Немножко отличается вывод, а правильный ответ, конечно, берем из массива столиц.