Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тurbo Pascal 7+.doc
Скачиваний:
12
Добавлен:
24.12.2018
Размер:
10.09 Mб
Скачать

4.6. Описание переменных (var)

Пример программы:

VAR a,b: Integer;

BEGIN

a:=100;

b:=20;

WriteLn(a+b)

END.

Очевидно, эта программа напечатает число 120. В программе новостью для нас является только первая строка. Называется она, описанием переменных величин а и b. Пока не будем излагать правила составления описаний переменных. Скажем только, что описание начинается со служебного слова VAR (читается - "вар", эта сокращение от английского variable - "переменная"). После него записываются имена всех переменных, встречающихся в программе с указанием через двоеточие типа значений, которые каждая переменная имеет право принимать. В нашем случае записаны имена переменных а и b, так как только они встречаются между BEGIN и END. Слово Integer (читается - "интеджер", переводится как "целый") указывает, что а и b имеют право быть целыми числами, а не дробными. Смысл подобного ограничения в том, что Паскаль по-разному работает с целыми и дробными числами, а поскольку он язык строгий, то требует, чтобы программист точно указал, к какому из этих двух типов относятся числа. Зачем нужно описание? Для понимания этого сначала нужно вспомнить; для чего нужна компьютеру память и как она устроена (см. раздел 3.2), а также порядок работы человека на компьютере (см. раздел 2.7).

После того как программист ввел программу в память, он приказывает компьютеру ее исполнить. Но компьютер при этом не сразу принимается выполнять программу, а сначала совершает компиляцию, то есть перевод программы с Паскаля на собственный машинный язык. (Часто вместо термина "компиляция" употребляют более общий термин "трансляция".) Во время компиляции компьютер производит некоторые подготовительные действия, одним из которых является отведение в памяти места под переменные величины, упомянутые в программе. При этом компьютер "рассуждает" так: "Раз в программе упомянута переменная величина, значит, она в каждый момент времени будет иметь какое-то значение, которое надо помнить. Лучше, заранее отвести в памяти определенное место для запоминания текущего значения каждой переменной величины и только потом уже выполнять программу". Будем называть место, отведенное в памяти под данную переменную, ячейкой.

Теперь нам понятно, зачем в паскалевской программе нужно описание - чтобы перечислить компьютеру переменные, под которое он должен отвести ячейки в памяти. Если мы забудем упомянуть в описании какую-нибудь переменную, то под нее в памяти не будет отведена ячейка и компьютер не сможет ее запомнить, а значит и вообще не сможет с ней работать. Паскаль строг к программисту, он заставляет его самого перечислять в описании все переменные, встречающиеся в программе. Бэйсик более добр - если программист поленился написать описание, Бэйсик сам просматривает программу и выискивает переменные величины, чтобы отвести для них место.

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

Integer и LongInt

Итак, в Паскале принято правило, что если человек описал переменную как Integer, то он разрешает ей принимать значения только целого числа. Число типа Integer занимает в памяти 2 байта. Значит, под переменные а и b компьютер отводит в памяти ячейки по 2 байта каждая. Два байта - это маленький объем памяти, и уместиться в него может лишь небольшое целое число, а именно число в диапазоне от -32768 до 32767. Если бы в предыдущем примере вам понадобилось взять а=40000, то Паскаль получил бы неправильную сумму.

Для того чтобы переменная имела право принимать значения больших целых чисел, она должна быть описана не как Integer, a как LongInt (сокращение от LongInt - "длинное целое", читается - "лонг'инт"). Под переменную типа LongInt компьютер отводит в памяти 4 байта, и она может принимать значения в диапазоне от -2147483648 до 2147483647.

Задание 5

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

Задание 6

Попробуйте ввести ошибку. Опишите переменные величины не как LongInt, а как Integer. Какова реакция Паскаля?