Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
11 / тп / lections / Glava_2_-_DANNYE.doc
Скачиваний:
29
Добавлен:
19.05.2015
Размер:
204.29 Кб
Скачать

2. Данные

2.1. Понятие константы и переменной

Алгоритм, реализующий решение некоторой конкретной задачи, всегда работает с данными. Программа представляет собой набор команд, оперирующих данными. Данные — это любая информация, представленная в формализованном виде и пригодная для обработки алгоритмом.

Данные, известные перед выполнением алгоритма, являются на­чальными, исходными данными. Результат решения задачи — это ко­нечные, выходные данные. Например, в задаче нахождения максимума из после­довательности чисел исходными данными являются числа, а результатом (выходными данными) — максимальное число в последовательности.

Данные делятся на переменные и константы.

Одни именованные величины являются константами, которые сохраняют постоянное значение в той части программы, где они определены, другие – переменными, которым с помощью оператора присваивания в программе может быть присвоено любое новое значение. Но до тех пор, пока программа не начала выполняться, значения переменных не определено (языки C/C++/C#) или равно 0 (языкиVisualBasic, Паскаль).

Конкретное значение переменной хранится в ячейках оперативной памяти.

Среди средств, представляемых языками программирования высокого уровня, имеется возможность ссылаться на элемент данных, пользуясь присвоенным ему именем (идентификатором). При программировании на машинных языках программисту приходилось иметь дело с адресами ячеек памяти, что было не удобным и могло привести к ошибкам.

Переменная в программе представлена именем и служит для обращения к данным определенного типа. Имя каждой переменной (идентификатор) уникально и не может меняться в процессе выполнения программы. Имя переменной может состоять из различных символов (латинские и русские буквы, цифры), но должно обязательно начинаться с буквы. Примеры правильных идентификаторов:i,j,a12,CountBalls. Идентификатор не должен совпадать с зарезервированными словами языка программирования, например,for,ifи т.д.

Компилятор, транслирующий текст программы в двоичный код, связывает каждый идентификатор с определенным адресом памяти. Но для того чтобы компилятор смог это выполнить, нужно сообщить о «типе» каждой именованной величины. Человек, решающий какую-нибудь задачу «вручную», обладает интуитивной способностью быстро разобраться в типах данных и тех операциях, которые для каждого типа справедливы. Так, например, нельзя извлечь квадратный корень из слова или написать число с заглавной буквы. Одна из причин, позволяющих легко провести такое распознавание, состоит в том, что слова, числа и другие обозначения выглядят по-разному. Однако для компьютера все типы данных сводятся, в конечном счете, к последовательности битов, поэтому различие в типах следует делать явным.

Для описания константы на языке VisualBasicиспользуется следующий оператор:

Const<имя константы>As<тип константы> = <значение константы>,

Например

ConstPiAsDouble= 3.1415926

Значение константы определяется при ее описании и не может изменяться в ходе работы программы.

Переменная описывается следующим образом:

Dim<имя переменной>As<тип переменной>,

например

Dim i As Integer

Dimx10As Double

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

В некоторых языках программирования (JavaScript,PHP) тип каждой константы или переменной определяется компилятором по записи присваиваемого значения; наличие десятичной точки, например, может служить признаком вещественного числа. В других языках (Java, С/C++/C#) требуется, чтобы программист явно задал тип каждой переменной, и это дает одно важное преимущество. Хотя при выполнении программы значение переменной может многократно меняться, тип ее меняться не должен никогда; это значит, что компилятор может проверить операции, выполняемые над этой переменной, и убедиться в том, что все они согласуются с описанием типа переменной. Такая проверка может быть проведена путем анализа всего текста программы, и в этом случае она охватит все возможные действия, определяемые данной программой.

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

В языке VB, если компьютер не будет «знать», переменная какого типа используется в программе, он будет считать ее переменной универсального типаVariant (который может принимать значение любого типа) и отведет для ее хранения в памяти 16 или более байтов. Это будет приводить к неэффективному использованию памяти и замедлению работы программы. Поэтому желательно отказаться от этого типа данных.

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

OptionExplicit

В этом случае отсутствие описания переменной будет воспринято за ошибку и программа не будет запущена.

Соседние файлы в папке lections