Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Информация в алгоритмах представляется в виде величин. Величина в алгоритме или программе имеет обозначение и обладает значением.
Величины могут быть постоянные (константы) и переменные. Константа не изменяет своего значения в процессе выполнения алгоритма и обычно записывается в алгоритме в виде обозначения, показывающего ее значение.
Примеры констант:
- целочисленные константы: 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 + 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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!