Как Петя Бейсиков Тоню Соображалкину программировать учил
- Автор: Бруно Мартузан
- Жанр: Околокомпьютерная литература / Детская образовательная литература / Basic, Visual Basic, VB Script, VBA и т.п.
- Дата выхода: 1987
Читать книгу "Как Петя Бейсиков Тоню Соображалкину программировать учил"
ТОНЯ ЕЩЁ УЛУЧШАЕТ ВЫВОД
— Красивей-то красивей, но можно было бы еще краше. Не нравится мне, что основное сообщение о работе программы и просьба ввести температуру идут сплошным текстом. Я бы хотела, чтобы эти сообщения разделяла пустая строка, это же совершенно разные сообщения. Но так, наверно, сделать нельзя.
— Почему же. Ты можешь вставить просто PRINT без ничего, и выведется пустая строка.
— Ясненько… Но подожди! Я там ничего не могу втиснуть между строками с номерами 6 и 7. Так что же делать? Все заново вводить с другими номерами?
ПЕРЕНУМЕРАЦИЯ
— Разумеется, нет. В таких случаях нужно применять директиву RESEQ. Я это слово произношу «рисек», и, по-моему, оно является сокращением от английского слова resequence, что должно означать «заново упорядочить последовательность». В словаре я этого слова не нашел, хотя искал. Так вот, эта директива вызывает перенумерацию всех строк программы, начиная с первой, с шагом десять —10, 20, 30 и до конца.
— Интересно было бы попробовать.
RESEQ
LISTNH
10 PRINT "ПРОГРАММА ПРЕОБРАЗУЕТ ГРАДУСЫ"
20 PRINT "ФАРЕНГЕЙТА В ГРАДУСЫ ЦЕЛЬСИЯ"
30 PRINT "ВВЕДИТЕ ТЕМПЕРАТУРУ"
40 PRINT "В ГРАДУСАХ ФАРЕНГЕЙТА"
50 INPUT F
6 °C=(5/9)*(F-32)
70 PRINT "ЭТО БУДЕТ"
80 PRINT C
90 PRINT "ГРАДУСА ЦЕЛЬСИЯ"
100 END
Да, кое-что из твоих обещаний выполняется. А скажи мне вот что. Я хотела, чтобы у меня получилось красиво в одну строку: ЭТО БУДЕТ —45.5556 ГРАДУСА ЦЕЛЬСИЯ, а все напечаталось в три строки. Можно что-нибудь сделать?
— Без сомнений. Во-первых, одним и тем же оператором ты можешь выводить строки символов и числа, так что смело могла писать PRINT «ЭТО БУДЕТ»,С.
— Понятно. И через запятую — «ГРАДУСА ЦЕЛЬСИЯ».
— Опять спешишь. Дело вот в чем. Если оператор PRINT имеет список единиц вывода, в котором они, как и в этом примере, написаны через запятую, то происходит вот что: строка экрана разделяется на зоны длиной 14 знаков. И в каждой зоне появляется значение одной единицы вывода. Или в нескольких — если одной не хватает. Надеюсь, ты понимаешь, что значения числовых переменных всегда разместятся в одной зоне и только сообщения программы…
ЗОНА ВЫВОДА
— Надейся, надейся.
— Вывод размещается в левой части зоны, и если он короче 14 знаков, то правая часть зоны остается пустой. Помнишь, в первой твоей программе при выводе значений переменных А,В,С между ними получилось довольно большое расстояние?
— Да! Я еще удивилась, но спрашивать не стала.
— Если отделять запятыми, то у тебя получится много пустого места между числом —45.5556 и текстом ГРАДУСА ЦЕЛЬСИЯ. Этого легко избежать: единицы вывода нужно отделять не запятыми, а точкой с запятой, тогда их значения будут выводиться сплошной стеной, одно за другим.
— Тогда я введу такой оператор, как и хотела, но только эти, как ты их называешь, единицы вывода отделю не запятыми, а точками с запятыми.
— Только учти, что никаких пробелов между единицами вывода машина сама вставлять не будет, ты сама должна нужные пробелы спланировать и запрограммировать. На сей раз ты должна предусмотреть пробел после ЭТО БУДЕТ, так же как и перед ГРАДУСА ЦЕЛЬСИЯ.
— Очень уж хлопотно, но я попробую.
70 PRINT "ЭТО БУДЕТ";C;" ГРАДУСА ЦЕЛЬСИЯ"
Можно пускать?
— Нет, нельзя. Хотя… пускай, посмотрим, что получится.
RUNNH
ПРОГРАММА ПРЕОБРАЗУЕТ ГРАДУСЫ
ФАРЕНТЕЙТА В ГРАДУСЫ ЦЕЛЬСИЯ
ВВЕДИТЕ ТЕМПЕРАТУРУ
В ГРАДУСАХ ЦЕЛЬСИЯ
? -50
ЭТО БУДЕТ -45/5556 ГРАДУСА ЦЕЛЬСИЯ
-45.5556
ГРАДУСА ЦЕЛЬСИЯ
— Ерунда какая-то… Лишнее что-то вывела…