Песни о Паскале - [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


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


Рекомендуем почитать
Зазеркалье. Фея для демона

Добрая и наивная сказка о любви.


Хранители. Посвящаемая

«Наша цель заключается в сохранении человеческого разума и сознания, ведь именно их наличие делает человека человеком, а не простым млекопитающим. Вы думали, что вы сами умеете мыслить? Что вы сами можете беречь свою память? Свои чувства? Эмоции? Тогда вы ошибались. Всё это существует благодаря нам.»Жизнь Сандры Вайтфейс была обычной, пока она не узнала о Хранителях, которые хранят за людей все их мысли, чувства, эмоции. Однако не всех устраивает эта система, которая пошатнулась уже семнадцать лет назад.


Воровка

Воровство — тяжёлое и опасное ремесло. А уж в будущем, где идёт масштабная борьба технологий — и подавно! Одно-единственное дело может прославить исполнителя на всю обитаемую вселенную, а может безвозвратно погубить его карьеру. За свою небольшую жизнь Аля успела испытать на себе все прелести и блага известности, по чистой случайности не наткнувшись на изнанку успеха. Однако за спокойствие всегда приходится платить, и чем дольше оно будет длиться, тем дороже выйдет расплата. Свежие задания, новые знакомства, неожиданные встречи и непредсказуемые ситуации… Ни одному вору не дано знать, чем обернётся очередная вылазка, и не придётся ли после неё в спешном порядке менять привычный уклад жизни.Наконец и Але пришёл припозднившийся счёт.


Ли Кахори: Космическая любовь

На календаре 2283г. и у тебя светлое будущее.Ты — сын Советника Земного Союза и красивый парень. Отличник на курсе и прекрасный спортсмен. Просто тебе не повезло, Ли Кахори. Первой твоей ошибкой было влюбиться в сестру близкого друга, ну а второй — не отказаться от ваших взаимных чувств в угоду ее будущему жениху.Ты думал, что потерять ногу — это самое плохое в твоей жизни? Ты глубоко заблуждался, Лирой, мясорубка только начинается. Но ты ведь пройдешь этот путь до конца, так, Кахори? История про сильных духом, чья любовь разрушает любые преграды.Присутствует сёнэн-ай среди второстепенных героев.


Правила экстрасенса

Дело происходит в Питере. Молодой оперативник одного из убойных отделов Леонид Воронцов вызывает на допрос некоего бизнесмена Рыбкина с целью весьма низкой, а именно, получение взятки. Однако у Рыбкина, обвиняющегося в организации убийства своего зама, на этот счет совсем другие планы. Он подстраивает всё так, чтобы Воронцов получил сильный удар током, обычно в таких случаях ведущий к смерти. И Лёня действительно оказывается в морге. Однако в то время, когда для остальных такое путешествие, как правило, является последним, Лёнина история с него только начинается...


Воля Параболы

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