Главная » Просмотр файлов » В.Г. Абрамов, Н.П. Трифонов, Г.Н. Трифонова - Введение в язык Паскаль

В.Г. Абрамов, Н.П. Трифонов, Г.Н. Трифонова - Введение в язык Паскаль (1107618), страница 18

Файл №1107618 В.Г. Абрамов, Н.П. Трифонов, Г.Н. Трифонова - Введение в язык Паскаль (В.Г. Абрамов, Н.П. Трифонов, Г.Н. Трифонова - Введение в язык Паскаль) 18 страницаВ.Г. Абрамов, Н.П. Трифонов, Г.Н. Трифонова - Введение в язык Паскаль (1107618) страница 182019-04-28СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

До главы, посвященной функциям, мы будем использовать только стандартные функции, определяемые самим я з ы к о м — снекоторыми из таких функций мы познакомились при рассмотрении стандартных типов данных в главе 2.С другой стороны, поскольку каждое выражение должно определятьзначение какого-то определенного типа, то в нем могут фигурироватьоперанды тоже определенных типов. Кроме того, как мы это уже знаемна примере стандартных скалярных типов, над каждым типом значенийв языке определен свой набор операций.

В связи с этим на данном этапе изложения паскаля довольно трудно дать единое синтаксическое определение для выражений всех допустимых в паскале типов, которое было бы идостаточно компактным, и достаточно понятным. Поэтому выраженияразных типов мы будем рассматривать отдельно, по мере изложения имеющихся в паскале типов значений. В настоящей главе мы будем рассматривать выражения стандартных скалярных типов и соответствующие имоператоры присваивания.4.2.1. Арифметический оператор присваиванияАрифметический оператор присваивания служит для присваивания значения63переменной арифметического типа, т.е.

типа real или integer. В связи с этими в правой части такого оператора должно фигурировать арифметическоевыражение, т.е. выражение, задающее правило вычисления значения одногоиз этих типов.Если переменная в левой части оператора присваивания имеет тип real, тоарифметическое выражение может определять значение как типа real, таки типа integer — в последнем случае предполагается, что получаемое целочисленное значение автоматически преобразуется в вещественное значение(типа real).

Если же переменная в левой части имеет тип integer, то арифметическое выражение обязательно должно определять значение этого жетипа. Правда, иногда требуемое целочисленное значение бывает невозможновычислить непосредственно, а правила его вычисления приходится задаватьс помощью арифметического выражения, которое искомое целочисленноезначение определяет приближенно, т.е. в виде значения типа real. В такихслучаях правило преобразования вещественного значения в целое (путемотбрасывания дробной части или путем округления до ближайшего целогочисла) должно быть явно задано в самом выражении.Все операнды арифметического выражения должны иметь тип real илиinteger.

В качестве основных операндов используются: константа (числобез знака или имя константы), переменная и функция. Напомним, что впаскале предусмотрены две категории арифметических операций: мультипликативные (*, /, div, mod) и аддитивные (+, —). Операции в каждой изэтих категорий имеют одинаковый ранг (старшинство), причем мультипликативные операции имеют более высокий ранг, чем аддитивные, т.е.выполняются в первую очередь.

Операции одного и того же ранга, если онивстречаются в выражении подряд, выполняются в порядке их следованияслева направо. В случае необходимости желаемый порядок выполненияопераций можно задать с помощью круглых скобок: подвыражения(части выражения), заключенные в скобки, вычисляются независимо ираньше, чем будут выполняться предшествующие и последующие операции.Заметим, что операции сложения и вычитания в начале выражения (или подвыражения, заключенного в круглые скобки), могут использоваться ик а к одноместные операции. Например, запись вида —А является сокращением записи вида О—А.Примеры арифметических выражений (справа от выражения указан порядок его вычисления с учетом типа результата каждой из операций итипа значений используемых функций) :2*3+4*59 div 4/240/5/10((2*3)+(4*5)=26)((9 div 4)/2-1.0)(<40/5)/10=0.8)-sqrt(sqr(3J+32/2)((2+4)/10+2/4)*2(- sqrt(sqr <3) + <32/2> >=-5.0)((((2+4)/10)+(2/4))*2=2.2)2*trunc(6.9)-round(-1.8)((2*trunc(6.9))-round(-1.B)=14)Примеры арифметических операторов присваивания (в предположении,что х^ а, Ь, с, г - переменные типа real, i— переменная типа integer, pi —константа, являющаяся именем вещественного числа 3.14159) :64х := 0 (переменной х присваивается значение, равное нулю);i := i + 1 (текущее значение переменной i увеличивается на единицу);с := sqrt (а * а + b * Ь)(вычисление длины гипотенузы по длинамкатетов а, Ь);х := 2 * pi * г (вычисление длины окружности х по радиусу г).Следующие записи либо не являются операторами присваивания по синтаксису, либо недопустимы в языке паскаль:3 := i + 2 (в левой части не может фигурировать константа);х = 2* pi * г (символ "=" не есть знак операции присваивания):i : = 5 / 4 (целочисленной переменной присваивается вещественное значение) :х := а * — Ь/2 (недопустимы два знака операций подряд).В заключение приведем синтаксическое определение арифметического выражения :арифметическое выражение)::*^слагаемое)Т+ ~ т—J• слагаемое >: :множительТ ~ 1*/J _ Jт — Тd1Vmod1))"".множитель) : : =—^константа без знак^ <переменная)Функция)" 1 — а р и ф м е т и ч е с к о е выражение) "(константа без знака>::=%•(число без знака)(имя константы) —1—'4.2.2.

Логический оператор присваиванияЕсли в левой части оператора присваивания указана переменная типаboolean, то в правой части оператора должно быть задано логическое выражение. задающее правило вычисления логического значения (true илиfalse).В логическом выражении используются те же виды операндов, что и варифметическом выражении (константы, переменные и функции), толькокаждый операнд логической операции должен иметь тип boolean.

Специфическим видом операнда какой-либо логической операции в логическом выражении является отношение. Поскольку мы знакомы еще не со всеми типами значений паскаля, то дадим пока частичное определение этого понятия: запись вида( арифметическое выражение X операция сравнения >(арифметическое выражение >5. В.Г. Абрамов65является отношением, где(операция сравнения > ::= < | < | = | Ф | >.| >Отношение имеет значение true, если заданное в нем с помощью операции сравнения соотношение между значениями арифметических выраженийдействительно имеет место, и значение false — в противном случае. Например, отношение 3 < 5 имеет значение true, а отношение 3 > 5 - значение false.Любое из фигурирующих в отношении арифметических выраженийможет быть как вещественным, так и целочисленным — предполагается, чтопри сравнении целого числа с вещественным оно предварительно преобразуется в вещественное число.Как видно, в логическом выражении из-за наличия в нем отношениймогут присутствовать как арифметические,так и логические операции.

Приэтом самой старшей операцией является операция not, применимая к логическомуоперанду,затемследуютмультипликативныеоперации(*, /. div, mod,and), потом - аддитивные операции (+, —, o r ) , и самый низкий приоритет имеют операции сравнения (т.е. они выполняются в последнюю очередь). Операции одинакового старшинства выполняются в порядкеих следования в выражении слева направо. Для задания любого желаемогопорядка выполнения операций, как обычно, используются круглые скобки.Более точно логическое выражение можно определить следующимобразом:(логическое выражение 4 ::=~ ^'отношение•простое выражениет-простое выражение>::=-.логическое слагаемое;Z<логическое слагаемое;::=логический множитель~СandJчлогический множитель>::=константа>•переменнаяфункция/логическии множитель• not -:- (—"•Г-ЦМР?СК ое выражение —При этом имеется в виду, что здесь < константа >, (переменная >и < функция > должны иметь тип boolean.66Примеры логических выражений (d.

b, с — логические, х, у - вещественные, к - целочисленная переменные):х<2 *у(отношение)true(константа)d(переменная)odd(K)(функция)not not d(логический множитель)(х > у/2)(логический множитель)d and (х Ф у) and b (логическое слагаемое)(с or d) and (х = у) or not b (простое выражение)Еще раз подчеркнем, что в паскале операции отношения являются самыми младшими, так что если отношение является не самостоятельнымвыражением, а одним из операндов какой-либо логической операции, тооно должно быть заключено в круглые скобки.

Так, если dлогическаяпеременная, а х, у — вещественные переменные, то записьd or х > убессмысленна, ибо в силу принятого старшинства операций она будеттрактоваться как ( d o r х) > у, где один из операндов логической операции (or) является вещественным числом. Если мы хотим, чтобы логическая операция or применялась к значениям переменной d и отношения х > у,то логическое выражение должно быть записано в виде d or ( х > у ) . Впрочем, эта особенность использования отношений отражена и в синтаксическом определении логического выражения.Правила вычисления значения логического выражения достаточно очевидны. Например, при вычислении значения выраженияd or (х * у/2 > х + у) and not b or (х > 2 * z)Надо вместо всех фигурирующих здесь переменных взять их текущиезначения и выполнить над ними заданные в выражении операции с учетомих старшинства и расставленных скобок:(d ог((((х * у)/2) > (х + у )) and (not b)))or(x > (2 * z))Выше мы исходили из того, что операндами операции отношения являются арифметические выражения, однако это не обязательно.

В связи с тем,что в паскале упорядочены значения ряда скалярных типов (в том числезначения типа boolean и char), в отношении могут фигурировать выражениялюбых из этих типов (разумеется, оба выражения должны быть одного итого же типа) . Так что если d, b, с — логические переменные, a sym — литерная переменная, то на паскале допустимы, например, отношенияd or b < not с, sym Ф ' + '.В силу специфики логических операций значение логического выражения может оказаться известным еще до окончания всего выражения. Например, для выражения( x > 0 ) a n d ( x < Г)(которое принимает значение true, если точка М ( х ) , лежащая на осиабсцисс, принадлежит отрезку [0, 1], и значение false в противном случае)при отрицательном значении х уже но вычислении первого множителя (значения отношения х > 0) становится ясным значение всего выражения это значение есть false, так что вычислять второй множитель, вообще гово5*67ря, нет необходимости.

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

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

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

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