Современное программирование предлагает пользователям использовать самые разнообразные языки программирования. Но основой основ является Паскаль.Данный язык был разработан в 1971 году в Университете Цюриха профессором Никлаусом Виртом. Его предназначение изначально было учебным. Имея достаточно четко выраженную структуру и систему предоставления данных Паскаль имел ограничения в функциях ввода - вывода, при создании подпрограмм. |
---|
Оператор присваивания |
---|
С помощью оператора присваивания в программме записывают действия, связанные с изменеием значений переменных. Синтаксическая диаграмма конструкции <Оператор присваивания> При выполнении данного оператора вычисляется выражение, приведенное в правой части, его результат заносится в переменную, имя которой указано слева. Если оператор присваивания записывается в последовательности операторов, после него ставится точка с запятой. A) Var a, b, c:real; Begin ... c:=(a*a-sin(b))/(a+25.1);... B) Var v:boolean; a:integer; b:real; Begin a:=8; b:=1.5; v:=(a>5) and (b>=8); {v получит значение false}... Для корректного выполнения выражения, результат и переменная, записанная в правой части должны иметь одинаковые или совместимые типы Совместимыми считаются:
При несовпадении типов правой и левой части, для совместимых типов происходит неявное преобразование результата выражения к типу переменной, указанной в правой части. Например: Var L:lonint; {переменная типа longint} E, x:extended; {переменная типа extended} I:integer; {переменная типа integer} R:real; {переменная типа real} R:=I*E/(x+L); ... {результат выражения, записанного в правой части будет иметь тип extended, однако, так как переменная R типа real, то результат будет преобразован в этот тип} End. Если типы правой и левой части оператора несовместимы, следует использовать явное преобразование типов, его выполняют при помощи функций: 1. Trunc (x) - преобразует значение вещественного типа в значение целого типа, отбрасывая дробную часть. 2. Round (x) - преобразует значение вещественного типа в значение целого типа, округляя его до ближайщего целого. 3. Ord(x) - преобразует значение порядкового типа в его номер. 4. Chr(x) - преобразует номер символа по таблице ASCII в сам символ. Например: A) Var n, n1:integer; xn, xk, h:real; Begin xn:=1; xk:=5.7; h:=0.3; n:=Round ((xk-xn)/h); {n получит значение 16} n1:=Trunc ((xk-xn)/h); {n1 получит значение 15} B) Var c:=char; x, y:integer; Begin x:=3 y:=Ord(`A`); {y получит значение 65 - код символа A по таблице ASCII} c:=chr(Ord(`A`)+x);... {c получит значение `D`} Помимо этого, для явного преобразования типов можно использовать функции, имена которых соответствуют идентификатороам стандартных или определенных пользователем типов. Этот вид преобразования иногда называют автоопределенным, например: Var h:char; ...h:=char(65);... {h получит значение `A`} Отметим, что при данном преобразовании изменения значений не происходит, меняется только его тип. В результате может произойти усечение или увеличение размера значения по сравнению с исходным. В случаях усечения размера (приведение к меньшему по размеру типу), возможно изменение знака преобразуемого числа. В случаях расширения значения (приведение к большему по размерам типу), знак числа вегда сохраняется. Например: Type Month=(Jan, Fab, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec); Var M:Month A, B:integer C:char L:longint Begin A:=10; c:=`E`; B:=integer (c); {число 69 - код символа E - длиной 2 байта} M:=Month (A-2); {значение Sep} L:=longint (M);... {значение 8} |
---|