Главная » Просмотр файлов » Н. Вирт - Программирование на языке Модула-2

Н. Вирт - Программирование на языке Модула-2 (1160777), страница 30

Файл №1160777 Н. Вирт - Программирование на языке Модула-2 (Н. Вирт - Программирование на языке Модула-2) 30 страницаН. Вирт - Программирование на языке Модула-2 (1160777) страница 302019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 30)

ОперацииСинтаксис операций определяет старшинство операций в соответствии с четырьмяклассами операций. Операция NOT имеет наивысший приоритет, за ней следуют так называемыеоперации типа умножения, затем операции типа сложения и, наконец, с низшим приоритетом,операции отношения. Последовательности операций одного приоритета выполняются слеванаправо.$$$$Выражение = ПростоеВыражение[Отношение ПростоеВыражение].Отношение = "=" | "#" | "<" | "<="| ">" | ">=" | IN.149$ПростоеВыражение = ["+"|"-"] Слагаемое${ОперацияТипаСложения Слагаемое}.$ОперацияТипаСложения = "+" | "-" | OR.$Слагаемое = Множитель$${ОперацияТипаУмножения Множитель}.ОперацияТипаУмножения = "*" | "/" | DIV$$| MOD | AND.Множитель = Число | Цепочка | Множество |$Обозначение [ФактическиеПараметры] |$"(" Выражение ")" | NOT Множитель.$Множество = [КвалИдент]"{"[Элемент{","Элемент}]"}".$Элемент = Выражение [".." Выражение].

(!)$ФактическиеПараметры = "(" [СписВыражений]")".Имеющиеся операции перечислены ниже в таблице. В некоторых случаях одним и тем жезнаком операции обозначаются несколько различных операций. В этих случаях конкретнаяоперация определяется типами операндов.8.2.1. Арифметические операцииСимволОперация+Сложение-Вычитание*Умножение/Действительное делениеDIVЦелое делениеMODОстаток от деленияЭти операции (за исключением /) применимы к операндам типа INTEGER, CARDINAL илиих диапазонов. Оба операнда должны быть типа CARDINAL или диапазон с базовым типомCARDINAL, и в этом случае результат имеет тип CARDINAL, или они оба должны иметь типINTEGER или диапазон базового типа INTEGER, и в этом случав результат имеет тип INTEGER.Операции +, - и * применимы также к операндам типа REAL.

В этом случае оба операндадолжны иметь тип REAL и результат имеет тип REAL. Операция деления / применима только коперандам типа REAL. При использовании в качестве одноместной операции "-" означаетизменение знака, а "+" - тождественную операцию. Изменение знака применимо только коперандам типа INTEGER и REAL. Операции DIV и MOD определяются следующими правилами:х DIV у равно округленному частному х/ух MOD у равно остатку от деления х DIV у (для у>0)х=(х DIV y)*y+(x MOD у)1508.2.2. Логические операцииСимволОперацияORЛогическое сложениеANDЛогическое умножениеNOTОтрицаниеЭти операции применимы к операндам типа BOOLEAN, и их результат имеет типBOOLEAN.р OR q означает "если р, то TRUE, иначе q"р AND q означает "если р, то q, иначе FALSE"8.2.3.

Операции над множествамиЭти операции применимы к операндам любого типа множества, и результат операции имеет тот жетип.Символ Операция+Объединение множеств-Разность множеств*Пересечение множеств/Симметрическая разность множествх IN (sl+s2) эквивалентно (х IN s1)OR(x IN s2)x IN (si-s2) эквивалентно (x IN s1)AND NOT(x IN s2)x IN (sl*s2) эквивалентно (х IN s1)AND(x IN s2)x IN (si/s2) эквивалентно (х IN s1)#(x IN s2)8.2.4. ОтношенияОтношения дают логический результат. Отношения порядка применимы к основнымтипам INTEGER, CARDINAL, BOOLEAN, CHAR, REAL, к перечислениям и диапазонам.СимволОтношение=Равно#Не равно<Меньше<=Меньше или равно (включение множеств)>Больше>=Больше или равно (включение множеств)INСодержится в (членство во множестве)151Отношения "=" и "#" применимы, кроме того, к множествам и указателям. В применении кмножествам "<=" .

и ">= " означают (собственное) включение. Отношение IN означает членство вмножестве. В выражении вида х IN s выражение s должно быть типа SET OF Т, где Т - тип(совместимый с) х. Примеры выражений (см. примеры в гл. 7):1980(CARDINAL)k DIV 3(INTEGER)NOT p OR q(BOOLEAN)(i+j)*(i-j)(CARDINAL)s-{8,9,13}(BITSET)a[i]+a[j](CARDINAL)a[i+j]*a[i-j](CARDINAL)(0<=k)&(k<100)(BOOLEAN)t^.ключ=0(BOOLEAN)(13..15}<=s(BOOLEAN)i IN {0,5..8,15}(BOOLEAN)9.

ОПЕРАТОРЫОператоры означают действия. Имеются простые и структурные операторы. В простыеоператоры в качестве составных частей не входят другие операторы. Простые операторы присваивание, вызов процедуры, возврат и выход. Структурные операторы состоят из частей,являющихся операторами. Они используются для организации выполнения последовательности,условий, выбора и повторений.$Оператор = [Присваивание | ВызовПроцедуры |$УсловныйОператор | ОператорВыбора |$ЦиклПока | ПиклДо | БезусловныЦикл |$ЦиклСШагом | ОператорПрисоединения |$EXIT | RETURN [Выражение]].Оператор может быть пустым, и в этом случае он соответствует отсутствию каких-либодействий.9.1.

ПрисваиванияПрисваивание служит для замены текущего значения переменной новым значением,определяемым значением выражения. Знаком операции присваивания служит ":=", которыйчитается "присвоить".$Присваивание - Обозначение ":=" Выражение.Слева от знака присваивания находится переменная. После исполнения присваиванияпеременная имеет значение, полученное в результате вычисления выражения. Старое значениетеряется (затирается). Тип переменной должен быть совместим по присваиванию с типомвыражения. Говорят, что типы операндов совместимы по присваиванию,если они либо152совместимы, либо оба имеют тип INTEGER или CARDINAL, либо являются диапазонамиосновных типов INTEGER или CARDINAL.Цепочка длины n1 может быть присвоена переменной типа цепочка длины n2 > n1. В этомслучае цепочка дополняется пустой литерой (0С). Цепочка длины 1 совместима с типом CHAR (!).Примеры присваиваний:i:=kp:=i=jj:=log2(i+j)F:=log2s:={2,3,5,7,11,13}a[i]:=(i+j)*(i-j)t^.ключ:= i w[i+1].ch:="A"9.2.

Вызовы процедурВызов процедуры служит для активации процедуры. Вызов процедуры может содержатьсписок Фактических параметров, которые подставляются вместо соответствующих Формальныхпараметров, определенных в описании процедуры (см. гл. 10). Это соответствие устанавливаетсяпо позициям параметров в списках Фактических и Формальных параметров соответственно.Имеется два вида параметров: параметры-переменные и параметры-значения.В случае параметров-переменных Фактический параметр должен быть обозначениемпеременной. Если он обозначает компоненту структурной переменной, селектор вычисляется приподстановке Фактического параметра на место Формального, т.е.

до исполнения процедуры. Вслучае параметра—значения соответствующий Фактический параметр должен быть выражением.Это выражение вычисляется до активации процедуры, и получающееся значение присваиваетсяФормальному параметру, который в этом случае представляет собой локальную переменную.Типы соответствующих Формальных и Фактических параметров должны быть идентичны вслучае параметров-переменных и совместимы по присваиванию в случае параметров-значений.$ВызовПроцедуры =$Обозначение [ФактическиеПараметры].Примеры вызовов процедур:Read(i)(см.

гл. 10)Write(a*2+1,6)INC(a[i])9.3. Последовательности операторовПоследовательность операторов означает последовательное выполнениеопределяемых входящими в нее операторами, разделяемых точкой с запятой.$действий,ПослОператоров = Оператор {";" Оператор}.9.4. Условный оператор$УсловныйОператор * IF Выражение THEN ПослОператоров153${ELSIF Выражение THEN ПослОператоров}$[ELSE ПослОператоров] END.Выражения, следующие за символами IF и ELSIF, имеют тип BOOLEAN.

Онивычисляются в порядке их следования, пока какое-либо из них не даст значения TRUE. В этомслучае исполняется соответствующая ему последовательность операторов.Если присутствует предложение ELSE, соответствующая ему последовательностьоператоров исполняется тогда и только тогда, когда все логические выражения дали значениеFALSE. Пример:IF( литера> = "А")&(литера<="Z")THENЧтениеИдентиФикатораELSIF(литера> = "0")&(литера<=")")THEN ЧтениеЧислаELSIF литера='"' THEN ЧтениеЦепочки('"')ELSIF литера="'" THEN ЧтениеЦепочки("'")ELSE СпецЛитераEND9.5. Оператор выбораОператор выбора определяет выбор и исполнение последовательности операторов всоответствии со значением выражения.

Сначала вычисляется выражение выбора, после чегоисполняется та последовательность операторов, список меток выбора которой содержитполученное значение. Типом выражения выбора должен быть либо основной тип (за исключениемREAL), либо перечислимый тип, либо тип диапазон, и все метки должны быть совместимы с этимтипом. Метки выбора должны быть константами, и ни одно из значений не может встретитьсяболее одного раза.

Если среди меток выбора ни одного из вариантов нет значения выражения,выбирается последовательность операторов, следующая за символом ELSE.$ОператОрВыбора - CASE Выражение OF Альтернатива$${"|" Альтернатива} [ELSE ПослОператоров] END.Альтернатива • [СписокМетокВарианта ":"$ПослОператоров]. (!)Пример:CASE i OF0:p:=p OR q; x:=x+У |l:p:=p OR q; x:=x-y |2:p:=p AND q; x:=x*yEND9.6. Цикл с условием продолженияЦикл с условием продолжения определяет повторяющееся исполнение последовательностиоператоров в зависимости от значения логического выражения. Это выражение вычисляется до154очередного исполнения последовательности операторов.

Повторение прекращается, как толькорезультатом этого вычисления становится значение FALSE.$ЦиклПока = WHILE Выражение DO ПослОператоров END.Примеры:WHILE j>0 DOj:=j DIV 2; i: = i+lENDWHILE i#j DOIF i>j THEN i:=i-jELSE j:=j-iENDENDWHlLE(t#NIL)&(t^.ключ#i) DOt:=t^. левыйEND9.7. Цикл с условием окончанияЦикл с условием окончания определяет повторяемое исполнение последовательностиоператоров в зависимости от значения логического выражения. Это выражение вычисляется послекаждого исполнения последовательности операторов, и повторение прекращается, как толькорезультатом этого вычисления становится значение TRUE.

Характеристики

Тип файла
PDF-файл
Размер
2,76 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6353
Авторов
на СтудИзбе
311
Средний доход
с одного платного файла
Обучение Подробнее