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

Помечено: ,

В этой теме 0 ответов, 1 участник, последнее обновление  Васильев Владимир Сергеевич 11 мес. назад.

Просмотр 1 сообщения - с 1 по 1 (всего 1)
  • Автор
    Сообщения
  • #3729

    Общие сведения

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

    Переменные имеют тип и объявляются в специальном разделе Var (от англ. Variable – переменная):

    Var <имя переменной>: <тип данных>;

    Константы в Pascal

    Те переменные, которые не изменяются, называются константами. Также как и переменные, они должны быть объявлены в специальном разделе – Сonst (от англ. Constant — константа). Различают следующие типы констант:

    1) Целочисленные константы. Содержат десятичные или шестнадцатеричные числа с положительным, либо отрицательным знаком;

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

    Пример:

    Const A=0.5; B=-1e+5;

    3) Символьные константы. Единичный символ, записанный в апострофы.

    Пример:

    ‘А’, ‘В’

    4) Строковые константы. Некоторая произвольная последовательность символов, заключенная в апострофы.

    Пример:

    ‘Pascal programming language’

    5) Типизированные константы. Инициализированные переменные, которые, несмотря на свою «константность» могут использоваться в программе, также как и обычные переменные.

    Пример:

    Сonst
    Pencil: Real = 5;

    Типизированные константы инициализируются всего один раз – в начале программы.

    Рассмотрим программу «Hello world!» с использованием константы.

    Program Hello_World_With_Const;
    Uses Crt;
    
    Const hello = 'Привет, ';
    
    Var name:string;
    
    Begin
    	ClrScr;
    	Write('Введите имя: ');
    	Read(name);
    	Write(hello, name, '!');
    	ReadLn
    End.

    В данном случае мы объявили константу hello равную значению ‘Привет, ‘. Далее в программе достаточно в нужном месте подставить эту константу. Теперь если нам вдруг понадобиться вместо программы, которая здоровается, сделать программу, которая прощается, достаточно в начале программы поменять «Привет, » на «До свидания, » и программа будет прощаться с пользователем.

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

    Помимо обычных констант существуют Типизированные константы. Тип таких констант объявляется явно:

    Const
    	Stroka :string = 'Привет';
    	Number :Integer = 777;
    	Pi :Real = 3.14159;

    Дополнительно хочется обратить внимание на апострафы в константах. Если Вам в константе понадобится использовать апострофы, то просто продублируйте их:

    Const
    	stroka = 'I''m a programmer!';

    Переменные в Pascal

    Для хранения данных, полученных от пользователя, в программе вводятся переменные. К примеру для того, чтобы передать программе имя какого-то человека нам нужно в коде программы записать строчку:

    Read(name);

    Данная строка сообщает нашей программе о том, что нужно получить данные от пользователя и сохранить их в переменную name, которую мы указываем в скобках оператора Read(с англ.: читать). Более подробно про ввод/вывод в Pascal читайте в уроке «Pascal. Операторы ввода-вывода«.

    Хочу обратить Ваше внимание на тот факт, что все идентификаторы(переменные, название программы) в коде Turbo Pascal могут состоять исключительно из символов латинского алфавита (A-Z, a-z), цифр (0-9) и символа нижнего подчеркивания («_»). Также идентификаторы не должны начинаться с цифр.

    /* Примеры правильных имен переменных */
        variable
        Variable
        var1
        var_1234
        VARIABLE
    /* Примеры не правильных имен переменных */
        -variable
        123Var
        Var-123	

    Для разного формата данных(целые числа, дробные числа, строки) в Pascal введено понятие типов переменных. К примеру для хранения строк имеется тип string. В таких переменных лучше всего хранить текст, к примеру: «Привет», «Добро пожаловать», «Программирование на Turbo Pascal». Конечно в формате string можно хранить и числа любого формата, но учтите что в таком случае они будут иметь строковый тип и не смогут участвовать в математических вычислениях.

    Для целых чисел часто используются два основных типа: Integer и LongInt. Единственным отличием типов переменных, используемых для одного формата данных, — это Диапазон допустимых значений. К примеру для Integer диапазон допустимых значений [-32768, 32767], то есть минимальным значением для переменной типа Integer является число -32768, а максимальным — 32767. Более подробно про типы данных читайте в уроке «Типы данных языка Pascal«.

    Примеры

    Пример 1

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

    Для получения информации от пользователя в процессе работы программы в Turbo Pascal существуют операторы Read и Readln.

    Данные операторы отличаются лишь тем, что после считывания Readln делает перевод строки, а Read не переводит (существует оператор Writeln, который после печати на экран также переводит каретку на первую позицию следующей строки).

    Program Hello_World_With_Variable;
    Uses Crt;
    
    Var name:string;
    
    Begin
        ClrScr;
        Write('Введите имя: ');
        Read(name);
        Write('Привет, ', name, '!');
        ReadLn
    End.

    Теперь разберем, что я тут написал.

    Uses Crt; — в этой строке подключается модуль с именем Crt. Прочитать про модули можно в уроке «Pascal. Пользовательские модули«, хотя Crt является стандартным модулем и все что нам нужно знать в настоящее время — эта строчка нужна для использования функции ClrScr, которая очищает экран.

    Var name:string; - здесь мы объявляем переменную name типа string(строка), в которой будем хранить введенное пользователем имя.

    Begin — начало раздела описания. Собственно отсюда и начинается выполнение тела нашей программы.

    ClrScr; — от английского Clear Screen, что значит «очистить экран» . Этот оператор служит для очистки экрана вывода. Если им не пользоваться, то после очередного запуска программы мы будем видеть предыдущий результаты работы компилятора.

    Write('Введите имя: '); — здесь мы выводим печатаем строку "Введите имя: ".

    Read(name); — сохраняем введенную пользователем информацию в переменную name. В нашем случае мы сохраняем в переменную name введенное имя.

    Write('Привет, ', name, '!'); — для того чтобы вывести несколько разных строк (переменных), совсем не обязательно для каждой строки писать свой write или writeln, достаточно перечислить их в скобках через запятую. В данном примере я одним оператором write вывел сразу три строчки: 1)’Привет, ‘ ; 2)name ; 3)’!’ .

    ReadLn — а это своеобразная задержка, чтобы после выполнения компилятор сразу не закрывал окно результата, а дождался нажатия клавиши пользователем.

    End. — конец программы тела программы.

    У некоторых из Вас наверняка возник вопрос: «А почему в предпоследней строчке после оператора Readln не стоит точка с запятой?». Так вот, точка с запятой является разделителем между операторами, который сообщает компилятору о конце одного и начале второго оператора. Но поскольку после последнего оператора идет End., то знак ; можно опустить.

    Пример 2

    Теперь попробуем объявить несколько переменных разного типа. Допустим мы хотим знать имя пользователя, его возраст и его рост. Для этого возьмем код программы их первого примера и изменить в соответствии с новыми требованиями.

    Program Hello_World_With_Variable;
    Uses Crt;
    
    Var name :string;
        years, height :Integer;
    Begin
        ClrScr;
        Write('Введите Ваше имя: ');
        ReadLn(name);
        Write('Сколько Вам лет? ')
        ReadLn(years);
        Write('Какой у Вас рост?(в см) ')
        ReadLn(height);
        Write('Привет, ', name, '! Я знаю что тебе ', years, ' лет', ' и твой рост составляет', height, ' см');
        ReadLn
    End.

    Хочу обратить ваше внимание на 5 строчку кода. Когда у нас есть несколько переменных одного типа, мы можем объявить их в одной строке, описав их через запятую и после последнего поставить знак двоеточия и написать требуемый тип.

Просмотр 1 сообщения - с 1 по 1 (всего 1)

Для ответа в этой теме необходимо авторизоваться.