Переменные и константы

Lazarus IDE: Основы программирования в Windows Lazarus IDE: Основы программирования в Windows

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

Ну вот наконец-то мы с вами подбираемся к практической части программирования. И после изучения этого раздела вы уже сможете написать какую-нибудь более полезную программу, чем мы делали раньше.

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

Для чего нужны переменные? Конечно, можно записывать информацию непосредственно в память компьютера. Можно также читать информацию непосредственно из памяти. Когда-то так все и было. Но представьте, что требуется обработать несколько сотен чисел. Каждое из них нужно записать в какую-то ячейку памяти, а потом ещё не забыть, куда вы записали число 5, а куда – 25. Такая программа была бы очень сложной для понимания, и ошибок в ней было бы допущено немало. Поэтому в языках высокого уровня придумали такую вещь, как переменные.

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

Прежде чем работать с переменными, их надо объявить. Объявляются переменные в начале программы или в начале процедуры с помощью зарезервированного слова var. Например:

 
Var  X, Y : byte;
     a, b : integer;
     ch   : Char;

В этом примере мы объявили две переменные типа ByteX и Y, две переменные типа Integera и b, и одну переменную типа Char. Если объявляются переменные одного типа, то их можно записывать через запятую в одной строке.

Имена переменных и прочих данных называются идентификаторами. К идентификаторам предъявляются определённые требования. Основные требования к идентификаторам в Паскале:

  1. Идентификатор может содержать латинские буквы и цифры, но должен обязательно начинаться с буквы. В Паскале к буквам также приравнивается символ подчёркивания (_).
  2. Идентификатор не должен совпадать с ключевыми (зарезервированными) словами (список ключевых слов см. в справочном материале среды разработки).
  3. Идентификатор не должен содержать специальные символы. Специальные символы: + - * / = < > [ ] . , ( ) : ; { } ^ @ $ # & %.
  4. Идентификатор не должен содержать пробелов.

Регистр букв в Паскале роли не играет. Например, TYPE, type, Type и tYpe – это одно и то же имя с точки зрения компилятора Паскаля. То есть, объявив переменные X и Y, мы можем затем использовать их в программе как x и y – для компилятора это не имеет значения. Стоит отметить, что в некоторых языках (например, С++) это не так (Y и у в С++ – это не одно и то же).

Переменным можно присваивать значения. Для этого чаще всего используется оператор (операторы мы будем изучать в следующих разделах)

:=

двоеточие, за которым следует знак равно. Например, записать в переменную а число 1 можно так:

а := 1;

Есть и другие способы, но они сложнее для понимания. Поэтому мы пока не будем их рассматривать.

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

y := 1;
x := 100;
y := x;

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

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

 
Const Left = 2;
      Top = 4;
      Y = ‘Y’;

Что же происходит, когда мы объявляем переменные и константы? При объявлении переменной компилятор автоматически выделяет для неё память (например, для переменной типа Byte будет выделен один байт), запоминает объём выделенной памяти и начальный адрес выделенной памяти, а затем связывает с этой областью памяти переменную.

Допустим, что в нашем случае для переменной Х компилятор выделил один байт по адресу 100 (на самом деле адрес будет другим, но в данном случае это не важно). Тогда, если мы напишем:

Х := 50

то компилятор сделает все таким образом, что наша программа запишет число 50 в ячейку памяти по адресу 100. То есть всю чёрную работу за нас сделает компилятор, а нам только остаётся наслаждаться программированием на высоком уровне.

Листинг 14.1. Первая программа с использованием переменных и констант.
program perem;

{$mode objfpc}{$H+}

uses
  {$IFDEF UNIX}{$IFDEF UseCThreads}
  cthreads,
  {$ENDIF}{$ENDIF}
  Classes
  { you can add units after this };

{ Объявляем константы }
const X1 = 100;
      X2 = 50;
      SIM = 'Z';

{ Объявляем переменные }
var x       : byte;
    Simbol  : Char;

begin
  WriteLn('X1 = ', X1, ', X2 = ', X2);
  WriteLn('X1 + X2 = ', X1 + X2);
  Write('X = ');
  ReadLn(x);
  WriteLn('X1 + X2 + X = ', X1 + X2 + x);
  Write('Simbol = ');
  ReadLn(Simbol);
  WriteLn('Simbol + SIM = ', Simbol + SIM);
  ReadLn;
end.

В этой программе мы впервые использовали функцию ReadLn для ввода данных, то есть для получения информации от пользователя. Когда программа доходит до этой функции, то она останавливается и ждёт, пока пользователь введёт данные и нажмёт клавишу ENTER. Функция

ReadLn(x);

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

X1 + X2 + X = 155

так как константа Х1 = 100, а константа Х2 = 50.

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

Домашнее задание:

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

Создать свою программу - простой калькулятор. Пользователь вводит два числа, программа их складывает и выдаёт результат.


Инфо-МАСТЕР ®
Все права защищены ©
e-mail: mail@info-master.su

Яндекс.Метрика