Системы программирования и для Бэйсика, и для Паскаля содержат средства для создания собственных, пользовательских или нестандартных функций, о чем речь пойдет ниже.
3.3 Выражения.
Выражение – это последовательность констант, переменных и функций соединённых знаками операций. Тип и значение данных, используемых в выражении, определяют тип выражения в целом.
3.3.1. Арифметические выражения
АВ формируется из данных числового типа и соответствующих знаков операций. Так как числовой тип может быть как вещественным, так и целым, то знаки операций так же делятся на вещественные и целые. К вещественным операциям и в Бэйсике, и в Паскале относятся "+" - сложение, "-" - вычитание, "*" – умножение и "/" – деление. Кроме того, в Бэйсике имеется операция возведения в степень – "^". К операциям целого типа относятся те же операции, кроме деления, а так же имеются операция получения частного от деления двух целых чисел ( в Бэйсике - “\”, в Паскале – "div" ) и операция получения остатка от деления двух целых чисел – "mod" и в Бэйсике, и в Паскале (например, 17 mod 7, результат равен 3 ).
При написании выражений нужно следовать определенным правилам системы программирования. Так в некоторых случаях запрещено смешивать вещественные операнды и целые операции и наоборот. Особенно строг в этом отношении Паскаль. Такие ошибки легко исправляются, поскольку сообщения о них выдаются на этапе трансляции программы.
Тип выражения в целом определяется полученным значением, причём если хотя бы один из операндов (величины, участвующие в операциях) имеет вещественный тип, то результат так же имеет вещественный тип.
При написании арифметических выражений следует использовать скобки, которые наилучшим образом определяют порядок выполнения операций в выражении:
1. Вычисления начинаются с самых внутренних скобок.
2. Вычисляются значения функций.
3. Возведение в степень.
4. Операции умножения и деления в порядке записи.
5. Сложение и вычитание в порядке записи
3.3.2.Логические выражения.
Для их формирований используются знаки логических операций, а также логические и арифметические операнды.
Арифметические операнды используются для формирования простейших логических выражений (называются отношения).
В отношении 2 арифметические выражения связаны знаком отношения.
> >= =
< <= <>
Результатом операции отношения является истина (1) или ложь (0).
Эти отношения, а также логические константы, логические переменные и логические функции могут связываться между собой в логические выражения с помощью знаков логических операций.
Знаков логических операций в языках программирования от 5 до 8 штук. Рассмотрим основные из них, общие для Pascal и Basic – OR, AND и NOT.
OR и AND - двуместные операции(связывают два высказывания и делают одно),
Not-одноместная операция.
X | Y | X not Y | X and Y | Not X | Not Y |
f | f | F | f | t | t |
f | t | T | f | t | f |
t | f | T | f | f | t |
t | t | T | t | f | f |
Результат логического сложения есть истина, если хотя бы одно из слагаемых истина.
Результат логического умножения истина, если оба сомножителя истинны.
Результат логического отрицания противоположен значению операнды.
Порядок вычисления логических выражений:
В Basic:
1.вычисляется операция отношения
2.операция not
3.операция and
4.операция OR
В Pascal:
1.высисляются арифметические выражения
2.вычисляется операция not
3.операция and
4.операция OR
5.операция отношения
3.3.3 Строковые выражения.
Последовательность строковых операций, соединенных строковыми значениями операций.
Всего одна операция- +-конкатенация (объединение, склеивание).
Результатом операции является новая строка, являющаяся объединением двух слагаемых, в котором первый символ второго слагаемого следует за последним символом первого слагаемого.
"Маша" + "Вася"→ «МашаВася» (Basic)
'Маша'+'+'+'Вася'→'Маша+Вася' (Pascal)
С помощью одной операции решить серьезную задачу по обработке текстовых величин невозможно, поэтому системы программирования содержат библиотеки стандартных функций в Бейсике, а так же стандартных функций и процедур в Паскале (термин "процедура" будет рассмотрен нами позже).
3.4.Основные исполняемые операторы языков.
Термин «исполняемые» взят из Basic.
Неисполняемый оператор: DIM.
В Pascal нет понятия неисполняемый оператор. Там все операторы исполняемые.
Среди неисполняемых операторов в Basic существует так же оператор REM (от слова Remark -помечать)-оператор для вставки комментариев на русском языке в текст Бейсик-программы. Его формат:
REM <любая последовательность символов>
Кроме того, если в строке Бейсик-программы встретился знак ' – апостроф, то все символы за апострофом считаются комментарием.
В Паскале комментарий заключается в фигурные скобки {}, причем скобки могут находиться в разных строках.
Теперь об исполняемых операторах:
3.4.1 Оператор присваивания.
Этот оператор соответствует блоку присваивания в блок-схемах
Оператор присваивания имеет следующий формат в Бейсике:
<имя переменной> = <выражение>
и в Паскале
<имя переменной>: = <выражение>;
Например: y:=x+1, x:=x+1 , y=y-3
Порядок выполнения операторов:
1.вычисляется значение выражения справа от знака присваивания
2.результат вычисления присваивается переменной слева от знака присваивания.
Поэтому запись х=х+1 имеет в программировании вполне определенный смысл – увеличение величины х на 1, и не следует его путать с подобным алгебраическим уравнением, не имеющим решения.
3.4.2 Условный оператор.
Этот оператор соответствует условному блоку блок-схем:
В Бейсике существуют два формата записи этого оператора:
1) Оператор "в строчку":
IF <условие> THEN<операторы”да”> [ELSE <операторы”нет”>]
Здесь и далее квадратные скобки означают, что часть оператора, заключенная в них, может отсутствовать.
2) Оператор "в столбец"
IF <условие> THEN
<операторы”да”>
[ELSE
<операторы”нет”>]
ENDIF
В Pascal:
If <условие> then <оператор”да”> [else <оператор”нет”>];
Отличия:
В Basic каждый оператор, как правило, записывается в строчку. Несколько коротких операторов можно записать в одну строку, разделяя их двоеточием. Это правило распространяется на оператор IF "в строчку", где после слов THEN и ELSE можно записать группу операторов через двоеточие.
В Pascal операторы отделяются друг от друга двоеточием. При этом допустимо оператор начинать в одной строчке, а заканчивать в другой, пробелов в написании операторов может быть сколько угодною.Особенностью оператора IF в Паскале является то, что после слов THEN и ELSE может быть записан только один оператор. Если надо записать несколько операторов, то они должны быть заключены в так называемые операторные скобки begin…end, образуя тем самым единственный оператор, который в Паскале называется составным.
3.4.3 Оператор выбора по ключу.
Ключ-выражение целого типа, которое может принимать значение из некоторой совокупности значений, и в зависимости от выбранного значения происходит выполнение соответствующего данному значению оператора.
k→k1, k2,…km.
Выполнение этого оператора происходит в соответствии со следующей блок-схемой:
Формат записи оператора выбора по ключу таков:
Для Basic :
SELECT CASE < ключ >
CASE < К1 > : < Oператор 1 >
CASE < К2 > : < Oператор 2 >
. . .
CASE < Кm > : < Oператор m >
CASE ELSE : < Oператор “ иначе ” >
END SELECT
Для Pascal :
CASE < ключ > of
< К1 > : < Oператор 1 > ;
< К2 > : < Oператор 2 > ;
. . .
< Кm > : < Oператор m > ;
ELSE : < Oператор “ иначе ” > ;
END ;
В качестве примера запишем выполнение арифметического действия над числами a и b, заданного знаком операции в переменной znak (на Паскале):
Сase znak of
“+” : c : = a + b;
“-” : c : =a – b;
“ ” : c : = a * b;
“/” : if b < > 0 then c : = a / b else Writeln( ‘ b = 0 ‘ )
else Writeln ( ‘ ошибка в знаке ’ ) ;
end ;
3.4.4 Операторы цикла