Выражения

Арифметическое выражение представляет собой совокупность одного или нескольких арифметических констант, переменных, функций, соединенных знаками арифметических операций и круглыми скобками.

Следовательно, константа, переменная, функция являются частными случаями арифметического выражения.

При записи выражений необходимо выполнять следующие правила:

1. Все составные части выражения записываются в одну строку. Поднимать и опускать символы над строкой не разрешается.

2. Использовать в выражениях можно скобки только одного типа -круглые. Применение в выражениях фигурных и квадратных скобок запрещается, так как они имеют особое назначение.

3.Нельзя записывать последовательно два знака арифметических операций, их необходимо разделить круглой скобкой.

4. Вычисление выражений производится слева направо в соответствии со старшинством операций.

Старшинство операций в порядке убывания приоритета:

1. умножение, деление;

2. DIV, MOD;

3. сложение, вычитание.

Необходимый порядок вычислений в выражениях задается с помощью скобок. Выражения в скобках вычисляются первыми. Если выражений в скобках несколько и они вложены друг в друга, то вычисление начинается в самых внутренних скобках и далее последовательно переходит во внешние скобки.

Если аргумент функции задан в виде выражения, то сначала определяется значение этого выражения, а затем значение функции.

Если операции, следующие одна за другой, имеют одинаковое старшинство, то они выполняются последовательно в порядке их записи.

Логические выражения строятся из логических данных, логических операций и операций отношения.

В операциях отношения могут участвовать арифметические и логические выражения, а также символьные данные.

Результатом логического выражения является значение TRUE или FALSE.

При вычислении логических выражений принят следующий приоритет операций (по старшинству):

1) арифметические операции;

2) операции отношений;

3) логические операции.

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

Старшинство операций в порядке убывания приоритета:

1. Not

2. *, /, Div, Mod, And.

3. +, -, or.

4. <, <=, =, <>, >=, >, in.

Приоритет вычисления функций выше, чем приоритет выполнения операций. Операции, имеющие одинаковый приоритет выполняются слева на право в порядке следования выражений.

Тип результата выражения определяется последовательным вычислением типов результатов всех операций, выполненных при вычислении значения выражения, т.е. зависит от типа операндов (величин) участвующих в операции:

Пример: (TLR-LN(X)>2.5*KL)AND(ORD(S)<N1)

1) A1=LN(X) – REAL

2) A2=2.5*KL – REAL

3) A3=TLR-A1 – REAL

4) A4=A3>A2 – BOOLEAN

5) A5=ORD(S) – INTEGER

6) A6=A5<N1 – BOOLEAN

7) A4 AND A6 – BOOLEAN

При записи выражений:

  1. Нельзя опускать знак умножения. Х:=2А+В; Х:=2*А+В;
  2. Слева всегда должна стоять одиночная переменная. Х-2*Z:=B+3-D*C;

X:= B+3-D*C+2*Z;

  1. В правой части последовательность операндов, соединенных знаками арифметических операций, должна записываться в одну строку.

Примеры записи математических выражений:

Математическая запись Запись на Pascal
x 2 – 7 x + 6 Sqr(x) - 7 * x + 6
(Abs(x) - Abs(y)) / (1 + Abs(x * y))
Ln(Abs((y - Sqrt(Abs(x))) * (x - y / (z + Sqr(x) / 4))))
y:=(b*x+a)/(a*x+c);

Примечания:

В Turbo Pascal нет операции возведения в степень. При необходимости вычисления , используют имеющиеся стандартные функции, например:

4.9 Объявление констант

Для записи программ в разделе описаний могут потребоваться объявления констант и переменных.

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

Объявление констант имеет вид: ключевое слово Const, после которого записываются имена используемых констант и их значения. Имена и значения разделяются знаком равенства. Каждое определение константы заканчивается точкой с запятой.

Пример:

Const

Year = 2000; {целочисленные константы}

Time = 12.05; { вещественные константы}

A1= ‘a’; a2=’7’; { символьные константы}

STR =’язык программирования Турбо-Паскаль’; {строковые константы}

4.10 Объявление переменных

Переменной называют элемент программы, который предназначен для хранения, коррекции и передачи данных внутри нее.

Общий вид описания переменных:

Var

A, B, C..Z: T;

где A, B, C.. Z - имена переменных данного типа; Т - тип переменных.

В разделе объявления, который следует после зарезервированного слова Var, однотипные переменные могут перечисляться через запятую перед объявлением их типа.

Пример:

Var

a,b,c: real;

Fam, Name: string;

Flag: Boolean;

Summa, sila_toka: integer;


Тема 5 «Операторы для записи линейных процессов»

5.1 Оператор присваивания

Этот оператор относится к простым операторам, т.к. не содержит внутри себя других операторов.

Общий вид оператора:

V:= A;

Где V - имя переменной;

":= " - знак присваивания;

А - выражение.

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

5.2 Оператор ввода числовых данных

Ввод числовых данных на Turbo Pascal выполняется оператором READ и READLN. Общий вид операторов следующий:

READ(a1, a2,..., an);

READLN(a1, a2,..., an);

READLN;

где а1, а2,..., аn - имена переменных, которым последовательно присваиваются вводимые с клавиатуры числовые значения.

При выполнении оператора READ вычислительная система приостанавливает работу и ждет ввода значений переменных, указанных в данном операторе. Если в операторе указано два и более переменных, то значения этих переменных при наборе на клавиатуре печатаются через пробел или <Enter>.

При выполнении оператора READLN(а1, а2,..., аn); вводятся значения всех переменных, а затем осуществляется переход на новую строку.

Допускается применение оператора ввода без параметров - READLN. Этот оператор выполняет переход на новую строку и приостанавливает работу компьютера до тех пор, пока пользователь не нажмет клавишу <Enter>.

Следует помнить, что значения переменных и их имена должны соответствовать одному и тому же типу.

5.3 Оператор вывода числовых данных

Вывод числовых данных выполняется операторами WRITE и WRITELN.

Общий вид операторов следующий:

WRITE(b1, b2,..., bn);

WRITELN (b1, b2,..., bn);

WRITELN;

Оператор Write выполняет вывод значений b1, b2,..., bn в одной строке. Оператор WriteLn с параметрами после вывода последнего значения осуществляет переход на новую строку. Оператор WriteLn без параметров осуществляет переход к новой строке.

Примеры:

1) Write(a, b); Write(c); - вывод а, b, с в одну строку;

2) Writeln(a, b); Write(c); - вывод а и b на одной строке, с - на следующей строке.

5.4 Вывод числовых данных с форматом и без формата

1. Вывод данных без формата.

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

Пример:

A:= 27.3; write(‘A=’,a); на экран будет выведено: A= 2.7300000000Е-01

2. Вывод данных с форматом.

Формат вывода указывается после переменной через двоеточие -:L:D. Для целых чисел формат состоит из одной величины L, равной количеству цифр в числе и символа под знак. Для вещественных чисел формат состоит из двух величин, указывающих соответственно общее поле выводимого значения L и количество цифр в дробной части D. L включает позиции под знак, целую часть, десятичную точку и дробную часть числа.

Общий вид оператора следующий:

Write (v:L) - для целых переменных;

Write (v:L:D) - для вещественных переменных.

Здесь v - переменная, значение которой выводится на экран;

L - общая длина поля числа;

D - количество символов в дробной части числа.

Пример:

Var

a,b: Integer;

c: Real;

Begin

A:=25; B:=7; C:=2.09;

Writeln(A:5, B:3);

Writeln;

Write(C:7:2);

End.

После запуска программы на экране появится следующее

- - -25- -7

- - - 2.09

где ‘-‘ это пробел.

Рассмотрим примеры задач, где алгоритм решения является линейным.

Задача 1. Скорость первого автомобиля v 1 км/ч, второго — v 2 км/ч, расстояние между ними s км. Какое расстояние будет между ними через t ч, если автомобили движутся в разные стороны?

Согласно условию задачи искомое расстояние s 1= s +(v 1+ v 2) t (если автомобили изначально двигались в противоположные стороны) или s 2=|(v 1+ v 2) t-s| (если автомобили первоначально двигались навстречу друг другу).

Чтобы получить это решение, необходимо ввести исходные данные, присвоить переменным искомое значение и вывести его на печать.

Program Car;

Var V1, V2, T, S, S1, S2: Real;

Begin

Write('Введите скорости автомобилей, расстояние между ними и время движения:');

ReadLn(V1, V2, S, T);

S1:= S + (V1 + V2) * T;

S2:= Abs((V1 + V2) * T - S);


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: