52
Раздел «Искусство программирования» ведется в нашем журнале начиная с № 9 прошло года. Его цель двоякая: во-первых, разъяснить общие вопросы, связанные с ЭВМ, — что такое алгоритм и программа, что такое память и процессор компьютера, как взаимодействуют человек и машина; во-вторых, обучить некооторым машинным языкам, научить писать программы и отладывать их на реальных ЭВМ.
Развивать эти навыки призвана «Заочная школа программирования» (см. «Квант», 1979, № 9). Новые подписи «Квант» могут включаться в нее начиная с этого урока, если они самостоятельно ознакомятся с основными идеями программирования на языке Робик («Квант», 1979, № 9—11).
Напоминаем нашим старым учащимся и сообщаем новым, что все задания одного номера следует выполнять В ОДНОЙ УЧЕНИЧЕСКОЙ ТЕТРАДИ (а не на отдельных листах!) и высылать нам простым (НЕ ЗАКАЗНЫМ!) письмом (не бандеролью) не позже 20 числа следующого места, написав на конверте в правом нижнем углу слова «КВАНТ», по адресу: 630090, Новосибирск 90, проспект Нууки 6, ВЦ СО АН, отдел информаники, Заочная школа программирования. Просим волжить в ваше отправление конверт с вашим адресом и 6-конечной маркой для ответа.
Новый учащимся к заданием 5 урока следует приложить заявление, написанное по образцу, указанному в «Квант», 1979, № 9, с. 45.
Заочная школа программирования
Урок 5: Основные операторы учебно-производственного языка Рапира
На предыдущих уроках мы познакомились с учебным языком Робик, предназначенным для обучения основным понятиям программирования и важнейшим навыкам, необходимым для решения задач на ЭВМ. Сегодня мы приступаем к изучению нового, значительной более мощного языка, позволяющего решать не только учебные, но и практические важные научные и производственные задачи.
Прежде, чем читать дальше, проверьте себя, ответив на следующие вопросы:
-
Что такое предписание? процедура? оператор? директива?
-
Как описывать и как вызывать процедуры в Робике?
-
Как составлять и читать синтаксические диagrams?
-
Что такое имя? Что может быть значением имени? Как присвоить имени новое значение?
-
Как записывать и как выполнять предписание приваивания? предписание печати? условия и циклическое предписание?
-
Что такое параметры и для чего они используют?
Если какие-то из этих вопросов вызывали у вас затруднения, перейтите материалы уроков 1—4 («Квант», 1979, № 9—11).
Основные правила языка Рапира
Основные правила языка Рапира очень похожи на правила Робика. Любая программа состоит из предложений; после каждого из них ставится точка с запятой. Предписания состоит из отдельных слов. Под словами в большинстве языков программирования, в том числе в Робике и Рапике, подзаумевают числа, тексты, имена, специальные знаки (например, скобки,
53
знаки арифметических операций и т. д.) и так называемые ключевые слова (например, слова ЕСЛИ, ТО, ИНАЧЕ в условиях оператора Робика). Правила записи в Рапире в основном знакомы вам по Робику:
Имена состоит из букв и цифр, причем первым символом в имени должно быть буква, например:
А5, ЗАЯЦ, ЛИДI, ПУТЬ, ВРЕМЯ.
Число символов в имени может быть любым, но машина различает имена по первым шести символам, так что с ее точки зрения имена
КРОКОДИЛ, КРОКОДИЛ5, КРОКОД и КРОКОДИЛЬЧИК
— это одно и то же имя. Во избежание ошибок не рекомендуется без крайней необходимости употреблять в программе имена длинее шести символов. Кроме того, запрещено употреблять имена, совпадующие с ключевыми словами. Слово ЕСЛИ, например, не может быть именем.
Тексты состоит из любых символов, заключенных в apostrophes:
‘ЭТО ТЕКСТ НА РАПИРЕ’
‘A+B+C9090=33/—/’.
Числа состоит из цифр; для отделения целой части от дробной используется точка:
2.521 21393 2345.00098
В числах должно быть не больше 12 цифр.
Со специальными знаками и ключевыми словами мы познакомимся по мере изучения отдельных предложений.
В Рапире, в отличие от Робика, разрешается располагать несколько предложений на одной строке или, наоборот, — одно предложение записьать в несколько строк. Переходить на новую строку можно в любом месте предложения, но разрывать слова языка при этом нельзя.
Предписание присаивания
Знакомство с предложениями языка Рапира мы научем с предложения присаивания. Его синтаксическая диаграмма очень проста и наполняет сокращенную до предела диаграмму, соответствующую предписанию Робика:
Стрелка —> читается «присвонть». На клавиатуре obчичных терминалов такого знака нет, так что для изображения стрелки приходится нажать две клавиши: «—» (минус) и «>» (больше).
В отличие от Робика, значением переменного поля выражение в Рапире может быть не только имя, число или строка, но и любая последовательность чисел и имен, соединенных правилно расставленныхми знаками арифметических операций и круглыми скобками. В математике также конструкция называется, как известно, арифметический выражением. (Несколько позже мы встречались с другими разновидностями выражений в Рапире.)
В языке Рапира используется следующие знаки арифметических операций:
- сложение
— вычитание
- умножение
/ деление
! возведение в степень*)
Порядок выполнения операций такой же, как обычно в математике; сначала выполняется возведение в степень, затем умножение и деление и в последнюю очередь — сложение и вычитание; при этом, как обычно, учитывается наличие скобок. Результат присаивания имена, стоящему после стрелки.
Ясно, что специальные вычислительные операторы (СЛОЖИТЬ, ВЫЧЕСТЬ и т. д.), имеющиеся в Робике, оказываются совершеннеными в Рапире: любые вычисления могут быть использованы в самом операторе присаивания, при этом формулы записываются почти так же, как в школьной математике.
*) Наример, записывается так: .
54
Например, для вычисления по формуле
достаточно написать
При переходе от математической записи к программе на Рапире следует учитывать, однako, что знак умножения в Рапире, в отличие от обычной математики, нельзя пропускать: вместо 2АВ нужно писать 2AB, вместо пишется .
Задание 5.1. Записать на языке Рапира последовательность предписаний для вычисления по формулам:
Задание 5.2. Составить таблицу значений и определить, чем будет равны значения этих имен после использования программы:
Задание 5.3. Записать на Рапире формулы для отискания корней X1 и X2 квадратного уравнения*) .
(Указание для шести- и семи-классников: можно записать в виде .)
*) Сообщаем шестиклассником эту формулу: .
Условное предложение и цикл
Условное и циклическое предложения в Рапире выглядает так:
Специальный знак :: (два двое-точия) в циклическом предложении читается «повторять».
Основное отличие этих диаграмм от диаграммы Робика, как легко заметить, состоит в том, что после слов TO и ИНАЧЕ в условном предложении и после знака :: в циклическом может стать любое число предложений, разделенных точками с запятой, а не одно-единственное предложение, как в Робике. В конце обихих предложений ставится ключевое слово BCE.
Условие в простейшем случае имеет вид:
В Рапире использует такие знаки сравнения:
= равно
/ = не равно
> больше
< меньше
> = больше или равно
= < меньше или равно
Например, после выполнения предложения
ECЛИ TO
ИНАЧЕ ВСЕ;
значение имен становится меньше из значений имен и .
Рассмотрим более подробно работу такой программы: