5 PRINT "ПРОГРАММА ПРЕОБРАЗУЕТ ГРАДУСЫ"
6 PRINT "ФАРЕНГЕЙТА В ГРАДУСЫ ЦЕЛЬСИЯ"
7 PRINT "ВВЕДИТЕ ТЕМПЕРАТУРУ"
8 PRINT "В ГРАДУСАХ ФАРЕНГЕЙТА"
10 INPUT F
2 °C=(5/9)*(F-32)
25 PRINT "ЭТО БУДЕТ"
30 PRINT C
35 PRINT "ГРАДУСА ЦЕЛЬСИЯ"
40 END
Ну, посмотри, мучитель, на этот шедевр программирования!
Колоссально! Но надо посмотреть, как она работает. Запусти ее и задай перевести те же самые 50 градусов Фаренгейта.
RUNNH
ПРОГРАММА ПРЕОБРАЗУЕТ ГРАДУСЫ
ФАРЕНТЕЙТА В ГРАДУСЫ ЦЕЛЬСИЯ
ВВЕДИТЕ ТЕМПЕРАТУРУ
В ГРАДУСАХ ЦЕЛЬСИЯ
? -50
ЭТО БУДЕТ
-45.5556
ГРАДУСА ЦЕЛЬСИЯ
READY
Результат тот же самый, следовательно, ты, по крайней мере, ничего не испортила. Ну и как, красивей сейчас выводятся результаты?
Почему же. Ты можешь вставить просто 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
ГРАДУСА ЦЕЛЬСИЯ
Ерунда какая-то Лишнее что-то вывела
Пожалуйста!
LISTNH 7090
70 PRINT "ЭТО БУДЕТ";C;" ГРАДУСА ЦЕЛЬСИЯ"
80 PRINT C
90 PRINT "ГРАДУСА ЦЕЛЬСИЯ"
Посмотри внимательно. Оператор вывода в строке 70 выведет тебе все, что нужно. А операторы в строках 80 и 90? Добавят еще вывод. Совершенно лишний и ненужный. Эти строки надо убрать. Ах да! Я же еще не сказал, как это делают. Просто набираешь номер строки и нажимаешь клавишу ввода. Строка стирается. Нельзя только ошибиться, а то не ровен час сотрешь самую свою любимую и нужную строку.
Хорошо, я это буду делать чрез-вы-чай-но осторожно.
80
90
Все в порядке. Я запускаю.
Насчет отношения программистов к ошибкам не берусь судить, но хочу возразить по существу рассматриваемого вопроса. Почему программу не запустить? Будет работать правильно хорошо, а если неправильно, тогда и начну думать, что и как. Неправильная программа же машину не испортит.
Размышление наилучшее средство против ошибок в программах
Разумеется, нет. Но речь не о том. Важно, сколько времени ты потратишь и своего, и машинного. Могу открыть секрет машинное
время тоже деньги. А если деньги тебя не интересуют, то остается спортивная сторона: лучше тот программист, кто быстрее работает быстрее исправляет свои ошибки. А быстрее получится, если думать, а не пускать программы на авось.