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

Что делать, чтобы стать программистом Что делать, чтобы стать программистом

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

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

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

Для чего нужны переменные? Конечно, можно записывать информацию непосредственно в память компьютера. Можно также читать информацию непосредственно из памяти. Когда-то так все и было. Но представьте, что требуется обработать несколько сотен чисел. Каждое из них нужно записать в какую-то ячейку памяти, а потом ещё не забыть, куда вы записали число 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

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