Примеры 1) возвести x в пятую степень
x*x*x*x*x или sqr(x)*sqr(x)*x или sqr(sqr(x))*x, последнее показывает, что результаты одних функций могут быть аргументами других – это называют вложением функций. Разумеется, тип результата, возвращаемый вложенной функцией, должен быть подходящим для аргумента внешней функции. 2) возвести величину a в произвольную степень x
Так как в Паскале нет функции возведения в произвольную степень, воспользуемся формулой ax=ex*ln a
a:=2.5; x:=0.25;
ax:=exp(x*ln(a));
обратите внимание, что все скобки в выражении должны быть парными. Или:
= exp(1/3ln(x)). 3) вычислить sin2x => sqr(sin(x)).
Нельзя писать sin*x или sin x, после имени функции может следовать только аргумент в круглых скобках. 4) вычислить k=tg(t). Т.к. функции tg нет, пишем k:=sin(t)/cos(t);
5) вычислить: При необходимости изменить обычное старшинство операций в записи выражения используются круглые скобки.
Правильная запись: y:=(a+b)/2; Неправильно y:=a+b/2, т.к. это означает .
6) В записи выражений нельзя пропускать знак *, как часто делается в математике.
b2-4ac -> sqr(b)-4*a*c
Тип выражения Турбо Паскаль построен на основе строгого соблюдения концепции типов, в соответствии с которой все применяемые в языке операции определены только для операндов совместимых типов. Поэтому для всех операций оговариваются допустимые типы операндов и тип получаемого результата.
В программе данные одного типа могут преобразовываться в данные другого типа. Такое преобразование может быть явным и неявным. При явном преобразовании типов используются вызовы специальных функций преобразования, аргументы которых принадлежат одному типу, а значение – другому. Например, это функции ORD, TRUNC, ROUND и т.д. Неявное преобразование типов возможно в выражениях, составленных из вещественных и целочисленных переменных. Тип выражения в этом случае определяется старшим из типов входящих в него операндов (т.е. стандартных функций, переменных, констант). Пример:
var i,j,x:integer;
f:real;
. . .
i+4*j целый тип выражения, можно записать результат в целую переменную.
f+i*0.5 вещественный, результат пишется в вещественную переменную.
Оператор x:= i+4*j будет синтаксически правильным, а x:= f+i*0.5 будет неверным. Среда разработчика при компиляции сообщит об ошибке несовместимости типов.
Операция деления / в Паскале всегда дает вещественное число. Для деления целых чисел с целым результатом (остаток отбрасывается) используйте div, для взятия остатка от деления двух целых – mod.
Тип переменной позволяет не только устанавливать длину её внутреннего представления, но и контролировать те действия, которые выполняются над ней в программе. Такой контроль осуществляется на этапе компиляции программы и это важное преимущество Турбо Паскаля перед другими языками.
|