Программирование арифметических выражений примеры

Язык программирования TurboPascal

Turbo Pascal. Программирование арифметических выражений

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

Оператор присваивания является одним из основных операторов любого языка программирования.

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

Формат оператора присваивания:

В операторе присваивания слева от знака присваивания «:=» записывается переменная, а справа – выражение, численное значение которого присваивается этой переменной.

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

Обязательным является требование, чтобы выражение и переменная были совместимы по присваиванию.

Например, оператор присваивания

означает, что переменной y присваивается число, полученное в результате вычисления выражения x+h/2 при известных числовых значениях переменных x и h .

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

Здесь переменной t присваивается значение, которое до этого момента имела переменная t, плюс 1. Если переменная t имела до выполнения этого оператора значение равное 7, то после исполнения оператора t:=t+1 значение переменной будет равно 8.

Арифметические выражения

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

Правила записи и смысл арифметических выражений в Паскале почти не отличаются от обычной математической записи.

В арифметических выражениях используются следующие операции и соответствующие знаки:

Операция Знак операции
Сложение +
Вычитание
Умножение *
Деление /
Деление целых чисел div
Остаток от деления целых чисел mod

Операции +, -, *, / имеют очевидный смысл. Результатом операции div будет целое значение, равное целой части результата деления первого числа на второе. Результатом операции mod будет целое значение, равное остатку от деления (но не дробной части).

Примеры арифметических операций:

 Var

a,b,c:integer;

Begin

a:=10; b:=3;

c:=a mod b;

c:= a div b;

b:=a+b;

End.

Арифметические операции выполняются в порядке старшинства: сначала вычисление функции, затем умножение, деление, сложение, вычитание.

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

Рассмотрим арифметическое выражение

В таблице приведен порядок выполнения операций:

Операция Операция
1 a*x 7 -a*x*x+b/x*c+y
2 a*x*x 8 c*n
3 -a*x*x 9 (a-b)
4 b/x 10 c*n/(a-b)
5 b/x*c 11 -a*x*x+b/x*c+y-c*n/(a-b)
6 -a*x*x+b/x*c

ЗАМЕЧАНИЕ. Все данные, входящие в арифметическое выражение, должны быть одного типа.

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

Пример. Пусть переменные x и y описаны следующим образом:

Рассмотрим оператор y:= x+2 , в котором используются переменные целого, вещественного типов и константа. Результат операции будет вещественного типа, поэтому оператор y:=x+2; является допустимым, хотя справа от присваивания стоит целая переменная и константа;

Следующие операторы являются ошибочными:

Для обеспечения совместимости типов необходимо выполнять преобразования данных. Для преобразования Real в Integer имеются две функции:

Round() – округляет Real до ближайшего целого;

Trunc() – усекает Real путем отбрасывания дробной части.

Правильная запись рассматриваемых операторов: x:=y+2; и x:=y/x; имеет вид:

 

x:=round(y)+2;

x:=round(y/x);

x:=trunc(y)+2;

x:=trunc(y/x);

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

  • Два знака арифметических операций нельзя писать рядом. Например, следующие записи будут неправильными:
    +–a –b — следует писать +(–a) –b
    a*–b — следует писать a*(–b)
  • Знак умножения опускать нельзя, например, при записи произведения: a*b и 2*n , запись ab и 2n будет неправильной, так как ab воспринимается как идентификатор, а запись 2n не является идентификатором, потому что начинается с цифры.
  • В арифметических выражениях допускается использовать только круглые скобки. Количество открывающих круглых скобок должно соответствовать количеству закрывающих круглых скобок. Применение фигурных и квадратных скобок запрещается, так как они имеют особое значение.
  • Все данные, входящие в выражения должны быть одного типа. Если в выражении используются данные целого и вещественного типа, результат операции будет вещественного типа.

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

Функция Назначение
Abs(x) Абсолютное значение аргумента x
Sqr(x) Вычисляет квадрат аргумента x
Sqrt(x) Вычисляет квадратный корень аргумента x
Exp(x) Возвращает экспоненту аргумента e x (степень числа e=2,72)
Ln(x) Вычисляет натуральный логарифм аргумента x
Pi Значение числа p=3.1415926
Frac(x) Дробная часть числа x
Int(x) Целая часть числа x
Sin(x) Синус аргумента x (угол в радианах)
Cos(x) Косинус аргумента x (угол в радианах)
Arctan(x) Арктангенс аргумента x (угол в радианах)
Randomize Инициализация генератора случайных чисел
Random(x) Если x отсутствует, то значением функции является случайное число типа real из диапазона 0

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

Примеры записи простых арифметических выражений и операторов присваивания приведены в таблице:

Обычная математическая запись Запись на Турбо Паскале
x/(y*z) или x/y/z
y*x/z
(x+a)/(y+b)
1/(m*sqrt(a+b))
formula5 x1:=(-b+sqrt(b*b-4*a*c))/(2*a)
y:=sin(x)
sqr((x+y-z)/2/a)

Типичные ошибки в записи выражений:

4x+1 Пропущен знак умножения между 4 и x

a+sinx Аргумент x функции sinx не заключен в скобки

((a+b)/sqr(c*7) не хватает закрывающей скобки

ЗАДАЧА2 . Вычислить корни квадратного уравнения

Формула вычисления корней квадратного уравнения

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

  
Program a2;

Var

X1:real;

X2:real;

D:integer;

A:integer;

B:integer;

C:integer;

Begin

Write(‘Введите коэффициенты a,b,c:’);

Readln(a,b,c);

D:=sqrt(b*b-4*a*c);

X1:=(-b+d)/(2*a);

X2:=(-b-d)/(2*a);

Write(‘Корни уравнения равны: ’, x1:8:2, x2:8:2);

End.

Результаты работы программы:

Введите коэффициенты a,b,c:2 –6 4

Корни уравнения равны: 2.00 1.00

Источник

2.5. Арифметические выражения

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

В бесскобочных арифметических выражениях операции выполняются слева направо в соответствии с их приоритетом.

1. * (умножение); / (деление); % ( остаток от деления целых чисел).

Изменить порядок выполнения операций можно с помощью круглых скобок. Выражение, заключенное в круглые скобки, выполняется в первую очередь. Например, выражению: а/b*с соответствует математическая запись: , а выражению а/(b*с) – запись .

Тип арифметического выражения определяется типом входящих и него операндов.

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

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

Операция выделения остатка или деление по модулю ( % ) применима только к целым числам. Результат ее выполнения имеет целый тип.

Исключение составляет операция деления с использованием символа ‘/’ (косая черта). Результат выполнения этой операции всегда зависит от типа операндов.

Например, значением выражения 2/5 будет число 0.

Источник

2.5. Арифметические выражения

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

В бесскобочных арифметических выражениях операции выполняются слева направо в соответствии с их приоритетом.

1. * (умножение); / (деление); % ( остаток от деления целых чисел).

Изменить порядок выполнения операций можно с помощью круглых скобок. Выражение, заключенное в круглые скобки, выполняется в первую очередь. Например, выражению: а/b*с соответствует математическая запись: , а выражению а/(b*с) – запись .

Тип арифметического выражения определяется типом входящих и него операндов.

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

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

Операция выделения остатка или деление по модулю ( % ) применима только к целым числам. Результат ее выполнения имеет целый тип.

Исключение составляет операция деления с использованием символа ‘/’ (косая черта). Результат выполнения этой операции всегда зависит от типа операндов.

Например, значением выражения 2/5 будет число 0.

Источник

2.5. Арифметические выражения

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

В бесскобочных арифметических выражениях операции выполняются слева направо в соответствии с их приоритетом.

1. * (умножение); / (деление); % ( остаток от деления целых чисел).

Изменить порядок выполнения операций можно с помощью круглых скобок. Выражение, заключенное в круглые скобки, выполняется в первую очередь. Например, выражению: а/b*с соответствует математическая запись: , а выражению а/(b*с) – запись .

Тип арифметического выражения определяется типом входящих и него операндов.

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

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

Операция выделения остатка или деление по модулю ( % ) применима только к целым числам. Результат ее выполнения имеет целый тип.

Исключение составляет операция деления с использованием символа ‘/’ (косая черта). Результат выполнения этой операции всегда зависит от типа операндов.

Например, значением выражения 2/5 будет число 0.

Источник

Читайте также:  Языки программирования общие понятия
Оцените статью