Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Выражения



Информация в алгоритмах представляется в виде величин. Величина в алгоритме или программе имеет обозначение и обладает значением.

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

Примеры констант:

- целочисленные константы: 48 -123,

- вещественные константы, т. е. целые и нецелые числа:

15.2 -25.0 (дробная часть отделяется точкой), 45.1E-4 (45.1, умноженное на 10 в степени -4),

- символьные константы (одиночные символы): 'A' '2' '-' '!',

- строковые константы (литерные константы, текст): "КГТУ", "Привет", "" (пустая строка).

- логические константы: TRUE (да, истина), FALSE (нет, ложь).

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

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

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

Например, в языке Pascal целочисленный тип данных обозначается служебным словом integer, вещественный (действительный) – real, логический – boolean, символьный - char, строковый (литерный)- string.

Пример определения переменных на языке Pascal:

Var

x,y:Real;

t, kol: Integer;

Переменные x и y являются вещественными, t, kol – целочисленными.

В языке Basic типы данных можно определить несколькими способами: по умолчанию, использовать команду описания типов DEF или команду объявления переменных DIM. Если в программе явно не указан тип переменной, то по принципу умолчания, такие переменные рассматриваются как короткие вещественные числа. Но если к имени переменной добавлен символ $, то это литерная (текстовая) переменная, например А$.

В языке Basic целочисленный тип данных обозначается служебным словом INTEGER (короткое целое) или LONG (длинное целое), вещественный (действительный) – SINGLE (короткие числа) или DOUBLE (длинные числа), текстовый (литерный, строковый) - STRING.

Пример определения переменных на языке Basic:

DEFINT A – C, K

DEFSNG Z, W

DEFSTR S

или

DIM A, B, C AS INTEGER, Z, W AS SINGLE

DIM S AS STRING*10

Переменные A, B, C, K являются переменными целого типа, Z, W – действительного короткого типа, а S – текстовая переменная (длиной до 10 символов в описании DIM S AS STRING*10). Перечисление переменных A, B, C можно записать как A – C.

Выражения пpедназначены для выполнения необходимых вычислений и состоят из констант, пеpеменных, указателей функций (напpимеp, sin(x)), объединенных знаками опеpаций.

Некоторые типы операций:

аpифметические опеpации +, —, *, /;

опеpации отношения <, >, <=, >=, = (равно), <> (не равно);

логические опеpации and (и), or (или), not (не);

опеpация сцепки (иначе, "присоединения", "конкатенации") символьных значений дpуг с другом с образованием одной длинной строки; изображается знаком "+".

Над величинами целого типа в языке Pascal допустимы еще две операции деления: div – деление нацело и mod – остаток от деления.

Например, 15 div 4 = 3, 25 mod 4 = 1.

Результатом операции целочисленного деления является целая величина. Обычное деление (операция /) над целыми величинами дает частное вещественного типа.

В языке Basic операция деление нацело обозначается символом \, а остаток от деления – mod. Над числами можно выполнить еще операцию возведения в степень: обозначается символом ^ или **.

Различают выражения арифметические, логические и строковые.

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

Например, (1+x)/2. Значение этого выражения при x=0 равно 0.5, а при x=1 — единице.

Логические выражения описывают некоторые условия, которые могут удовлетворяться или не удовлетворяться. Логическое выражение может принимать два значения — TRUE или FALSE ("истина" или "ложь").

Например, логическое выражение x * y > 0, может служить условием для определения одинаковые ли знаки у величин x и y. При x= -1, y= -2, значение этого выражения — "истина", а при x= -1, y=2, — "ложь".

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

Примеры сложных условий:

(A > 0) and (A <=10)

(X=0) or (X MOD 2 = 1)

Таблица значений логических операций над величинами типа boolean:

FALSE and FALSE = FALSE FALSE or FALSE = FALSE
FALSE and TRUE = FALSE FALSE or TRUE = TRUE
TRUE and FALSE = FALSE TRUE or FALSE = TRUE
TRUE and TRUE = TRUE TRUE or TRUE = TRUE
not FALSE = TRUE  
not TRUE = FALSE  

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

Например, А + В означает присоединение строки В к концу строки А. Если А = "День ", а В = "теплый", то значение выражения А + В есть "День теплый".

В выражения, наряду с константами и переменными, можно включать функции. В каждом языке имеются стандартные функции не требующие определения в программе. Некоторые стандартные функции алгоритмического языка, языка Pascal и Basic представлены в табл. 6.1.

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

Например, sin(1.5), cos(y), sin(x*x+ 2*y), abs(5+х),

Выражения подобны обычным алгебраическим выражениям, но, в отличие от них, не допускают многоэтажной записи дробей, индексов и степеней. Поэтому дробная черта заменяется знаком деления '/', индексы пишутся в скобках после имени переменной. Знаком умножения служит звездочка '*'. Нельзя опускать знак умножения между сомножителями и ставить рядом два знака операций. Операции выполняются в порядке старшинства: сначала вычисление функций, затем возведение в степень, потом умножение и деление и в последнюю очередь — сложение и вычитание. При вычислении логического выражения самый высокий приоритет у операций сравнения, затем следует операция not, операция and имеет приоритет операции умножения, а or - сложения. Можно изменить порядок выполнения операций, используя скобки.


Табл.6.1. Некоторые стандартные функции

Название и математическое обозначение функции Указатель функции в алгоритм. языке Указатель функции в языке Pascal Указатель функции в языке Basic
Абсолютная величина - | х | abs(x) abs(x) abs(x)
Корень квадратный - sqrt(x) sqrt(x) sqr(x)
Возведение в квадрат x2   sqr(x)  
Натуральный логарифм - ln x ln(x) ln(x) log(x)
Экспонента ex (е ~ 2.72) exp(x) exp(x) exp(x)
Целая часть числа х (т.е. максимальное целое число, не превосходящее х) int(x) trunc(x) int(x)
Частное от деления целого х на целое y div(x,y) Операция x div y Операция x \ y
Остаток от деления целого х на целое y mod(x,y) Операция x mod y Операция x mod y
Синус (угол в радианах) – sin x sin(x) sin(x) sin(x)
Косинус (угол в радианах) – cos x cos(x) cos(x) cos(x)
Тангенс (угол в радианах) – tg x tg(x) tg(x) tan(x)

Упражнения:

1. Запишите по правилам алгоритмического языка выражения:

 
 


x y z  
x y z  
-b + b 2 – 4 a c 2 a
а) б) в)

  sin2 x 5,2 x – e 2x
x - y x + z x + 1 xz  
г) д)

Решение:

Запись по правилам алгоритмического языка:

а) x * y / z б) x / (y * z)

в) (-b + sqrt(b*b - 4*a*c)) / (2*a)

2. Вычислите значения арифметического выражения при x=10:

а) div(12,x - 5)*mod(10,x-3) + min(100,x)

Решение:

div(12,x - 5)*mod(10,x-3) + min(100,x) = 2 * 3 + 10 = 16

б) abs(x - 17)*mod(100,x+1)/max(1,x)*mod(2,3)

3. Вычислите значения логического выражения:

а) x*x+y*y<=10, при x=2, y=-1

Решение: да (истина);

б) b*b-4*a*c <0, при a = 1, b = 2, c = -3;

в) (a >= 10) and (a <= 25), при a=10.5;

Решение: да (истина, т.к. истинны оба выражения)

(a >= 10) and (a <= 25), при a=30.5;

Решение: нет (ложь, т.к. первое подвыражение истинно, но второе ложно, значит все выражение в целом ложно)

г) (a<5) or (a>10), при a=10.5;

д) (mod(a,7)=2) and (div(a,7)=2), при a=16;

3. Запишите логические выражения, истинные при выполнении указанных условий:

а) величина x положительная;

Решение: x > 0

б) целая величина x положительная и четная;

Решение: (x >0) and (mod (x, 2) = 0)

в) целая величина а трехзначная и кратна 3;

Решение: (a >99) and (a < 1000) and(mod(a,3) = 0)

г) точка x принадлежит отрезку [a, b];

Решение: (x >= a) and (x <= b)

д) среди целых чисел x, y, z есть хотя бы одно четное;

е) из двух чисел x и y, большим является первое число;

ж) каждое из трех целых чисел x, y, z кратно пяти;





Дата публикования: 2015-01-14; Прочитано: 537 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.011 с)...