Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ахмадулин Р.К. технологии программирования.doc
Скачиваний:
9
Добавлен:
10.11.2019
Размер:
615.94 Кб
Скачать

Понятие переменной

Переменными называют элементы программы, которые предназначены для хранения, коррекции и передачи данных внутри нее.

Основными отличиями переменных от констант являются следующие:

  1. переменные, в отличие от констант, могут менять свое значение в процессе выполнения программы (самое важное отличие);

  2. в отличие от констант, для переменных начальное значение не задается.

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

Раздел описания переменных начинается с ключевого слова var. Далее следует имя переменной, знак «:» и указывается тип данных переменной (см. §2). Запись заканчивается символом «;». Если имеется несколько переменных одного типа, то их имена могут быть перечислены до двоеточия через запятую. Если требуется описать еще несколько переменных других типов, то слово var более не пишут.

Пример: ниже описаны 4 переменные 3-ех разных типов:

var

i: integer;

x,y: real;

c: char;

Тип данных указывается обязательно для всех переменных. Он определяет диапазон значений, которые может принимать переменная, множество допустимых к ней операторов, сколько байт для переменной необходимо выделить в памяти и т.п.

Пример: если Вы описали x как переменную типа integer, то в ней можно будет хранить целые числа в диапазоне –32768 до +32767. Если x содержит значение 32767, то, прибавив к ней 1, получим –32768. В памяти переменная x будет занимать 4 байта.

Требования к именам в языке Паскаль и к именам переменных в частности приводились в §1.

Переменные очень широко используются при разработке программ на языке Паскаль. В любой более-менее сложной программе используется множество различных переменных.

Переменные могут использоваться, например, для хранения результатов вычислений выражений.

Оператор присваивания

Ранее было рассмотрено понятие переменной и было отмечено, что она может менять свое значение в процессе выполнения программы. Для этого используется оператор присваивания.

Оператор представляет собой некоторый неделимый элемент программы, который позволяет выполнять некоторые определенные алгоритмические действия. Одним из простых операторов является оператор присваивания.

Оператор присваивания « := » заменяет текущее значение переменной новым значением, которое определяется выражением.

Записывается оператор присваивания следующим образом: сначала указывается имя переменной, далее – символ оператора присваивания, и справа от него – выражение. В процессе выполнения программы выражение вычисляется и его результат помещается в указанную переменную.

Пример: (для переменных, описанных выше)

i := 5;

x := 10/i;

y := sqr(x)+abs(2*i);

c := ’h’;

Совместимость типов данных

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

Наиболее высоким уровнем соответствия типов является эквивалентность. Два типа T1 и T2 являются эквивалентными, если выполняется хотя бы один из следующих пунктов:

  • T1 и T2 совпадают;

  • T1 и T2 определены в одном объявлении типа;

  • T1 эквивалентен некоторому T3, который эквивалентен типу T2.

Далее следует понятие совместимости. Совместимость означает, что для переменных этих типов возможна операция присваивания, но во время этой операции присваиваемое значение может измениться (неявное преобразование типов данных). Два типа T1 и T2 будут совместимыми, если выполняется хотя бы один из следующих пунктов:

  • T1 и T2 эквивалентны;

  • T1 и T2 оба целочисленные или оба вещественные;

  • T1 и T2 являются подмножествами одного типа;

  • T1 является некоторым подмножеством T2;

  • T1 – строка, а T2 – символ;

  • T1 – это тип pointer, а T2 – типизированный указатель;

  • T1 и T2 – оба процедурные, с одинаковым количеством попарно эквивалентных параметров, а для функций – с эквивалентными типами результатов.

Чтобы никаких изменений присваиваемого значения не произошло, в записи оператора присваивания тип переменной и тип выражения должны быть совместимы по присваиванию. Для этого необходимо, чтобы было выполнено одно из следующих условий:

  • тип переменной и тип выражения эквивалентны, но не файлы;

  • тип переменной и тип выражения совместимы, причем тип выражения – некоторое подмножество типа переменной;

  • тип переменной – вещественный, а тип выражения – целый.

Пример:

var

a, b: integer;

x, y: real;

t1, t2: boolean;

a:=b; a:=7; a:=3*sqr(b); a:=round(x); {можно}

a:=x; a:=sqrt(9); a:=4/2; a:=t1; a:=3+4.0 {нельзя}

x:=y; x:=sqrt(9); x:=3.4*a; x:=a/b; {можно}

x:=a; x:=3; x:=4*a; x:=trunc(4.53); {можно}

t1:=t2; t1:=a>b; t1:=odd(a); {можно}

t1:=x; t1:=a; {нельзя}

Пример:

присвоить переменной a целую часть суммы x и y:

a:=trunc(x+y).

Пример:

присвоить переменной a количество десятков числа b:

a:=b mod 100 div 10;