Песни о Паскале - [15]

Шрифт
Интервал

Укладывая предметы, вы учитываете их размеры, вес и назначение. Пылесосу удобно в своей коробке, а монете – в кошельке. «Каждый сверчок – знай свой шесток». Встретив в программе объявление переменной, компилятор отводит ей место в оперативной памяти с тем, чтобы хранимые данные поместились там. То есть, кроит «карман» подходящего размера. Это первое.

А ещё компилятору надо знать набор допустимых действий с теми данными, что «лежат» в переменной: можно ли их складывать и умножать? Или это строка текста, предназначенная для вывода на экран? Ответ на эти вопросы заключен в типе переменной. По нему компилятор определяет и размер переменной, и набор допустимых операций с нею.

Паскаль содержит ряд встроенных типов данных, со временем вы познакомитесь с ними, но сейчас нам позарез нужен только один из них. Это тип STRING, что в переводе значит «строка» – это ключевое слово языка. Переменная этого типа может хранить в себе строчку какого-нибудь текста.

Объявим переменную для хранения в ней имени пользователя. Как назовем её? Да так и назовем – Name, что переводится как «имя». Итак, объявление переменной Name строкового типа STRING выглядит так:


>var Name : string;


Напомню, что имя и тип переменной разделяются двоеточием, а завершается оператор точкой с запятой.

Ввод и вывод данных

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

Ввод данных в переменную выполняется знакомой вам процедурой Readln. Мы уже пользовались ею, чтобы заставить компьютер ждать нажатия Enter. Но процедура придумана в основном не для этого, а для ввода разнообразных данных, в том числе строк. С этой целью процедуре передают параметры – переменные, куда вводятся данные. В нашем случае оператор ввода имени будет таким:


>      Readln(Name);


Выполняя этот оператор, компьютер тоже остановится в ожидании нажатия Enter. Но символы, которые пользователь напечатает до этого нажатия, попадут в переменную Name и сохранятся там. Так в строковую переменную можно ввести слово, и даже целое предложение, завершив ввод нажатием Enter.

А как напечатать содержимое переменной? Справится ли с этим процедура Writeln? Без сомнения! Ведь нечто подобное мы уже проделывали с константой. Вот оператор печати для этого случая:


>      Writeln(Name);


Все хорошо, да вот незадача! Этот оператор напечатает имя в отдельной строке, а нам хочется объединить его со словом «Привет» в одной строчке. Как это сделать? Очень просто! Ведь в процедуре печати можно указать несколько параметров, разделяя их запятыми, и тогда все они напечатаются в одной строке. В нашем случае через запятую укажем два параметра:


>Writeln(’Здравствуй, ’, Name);


Здесь первый параметр – строковая константа «Здравствуй,» (с пробелом в конце), а второй – переменная Name.

Теперь все готово для рождения новой программы. Создайте пустой файл с именем «P_08_1.PAS», а затем введите в него плод наших размышлений.


>var Name : string;

>begin

>Writeln(’Как тебя зовут?’);

>Readln(Name);

>Writeln(’Здравствуй, ’, Name);

>Writeln(’Нажми Enter’); Readln;

>end.


Откомпилируйте программу и проверьте, работает ли она.

Итоги

• Константы полезны для именования неизменяемых данных. Они облегчают работу и повышают надежность программ. Но константы не могут изменяться в ходе выполнения программы.

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

• Каждая переменная относится к некоторому типу данных, который определяет и объём занимаемой ею памяти и правила действия с переменной.

• Ввод данных в переменные выполняется оператором Readln, а вывод – оператором Writeln.

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

• Имена констант и переменных – это идентификаторы. Программист составляет их по своему усмотрению из латинских букв, цифр и знака подчеркивания.

А слабо?

А) Что напечатает следующая программа, если ваша любимая команда – «Спартак»?


>const

>      Champ = ’ – чемпион!';

>var

>      Team : string;

>begin

>Writeln(’Ваша любимая команда?’);

>Readln(Team);

>Writeln(Team, Champ);

>Readln

>end.


Б) Найдите (и исправьте, если можно) ошибки в следующих программах.


>begin

>const Pele = ’Эдсон Арантес ду Насименту’;

>Writeln(’Лучший футболист мира – ’, Pele);

>Readln

>end.

>begin

>Writeln(’Как тебя зовут?’);

>var Name : string;

>Readln(Name);

>Writeln(’Здравствуй, ’, Name);

>Writeln(’Нажми Enter’); Readln;

>end.

>const Pele = ’Эдсон Арантес ду Насименту’;

>begin

>Writeln(’Лучший футболист мира’);

>Readln(Pele);

>Writeln(Pele);

>Readln

>end.

Глава 9

Переменные: продолжение знакомства



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

Представьтесь, пожалуйста!

Наша следующая программа «P_09_1» спросит у пользователя имя и фамилию, после чего обратится к нему уважительно, как следует. Вот пример такой «беседы» (выделенное курсивом печатал пользователь).


>Фамилия?

>Скотинин

>Имя?

>Тарас

>Здравствуй, Тарас Скотинин!

>Нажми Enter


Примечание. Тарас Скотинин — персонаж комедии Д.И. Фонвизина «Недоросль».


Рекомендуем почитать
Патруль Миров

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


Одиночество

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


Это элементарно, Ватсон, или Шерлок Холмс в 22 веке

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


Эффект пристутствия

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


Между Мирами

Никому не дано знать, куда судьба забросит его завтра. Может — на обычную вечеринку, а может — и в иной мир, изнывающий под колдовским гнетом зловещего Владыки, где на всех, не поддавшихся его магии, ведется безжалостная охота, из казней устраиваются шоу, а право выступить в роли палачей разыгрывается в лотерею. Сумеет ли выжить в Скайлене еще вчера обычный парень, сумеет ли одолеть темные чары и одержать победу над силами зла, и что окажется для этого самым важным и нужным: подаренные магией сверхъестественные способности или любовь?


Иосиф Рюрикович-Дракула

Сталин, Иван Грозный и Дракула — что между ними общего? Все эти люди вошли в историю Европы как самые одиозные и кровожадные правители, поработители народов и тираны. Но не только! Они были родственниками! В книге на основе анализа секретных архивных документов и исторических изысканий приводятся убедительные тому доказательства! Сталин был потомком двух самых жестоких и беспринципных политиков человечества, что и стало роковым для истории России фактором!