А как напечатать содержимое переменной? Справится ли с этим процедура 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
Примечание. Тарас Скотинин — персонаж комедии Д.И. Фонвизина «Недоросль».
Очевидно, что для хранения имени и фамилии одной переменной мало, нужны две. Памятуя о том, что секция объявления переменных допускает несколько операторов, объявим там парочку переменных.
>var N : string;
> S : string;
Здесь переменные N и S названы мною по первым буквам слов Name (имя) и Surname (фамилия). Объявить несколько переменных одного типа можно и в одной строке, перечислив их через запятую.
>var N, S : string;
Тут две переменные объявлены одним оператором, – этот способ ничуть не хуже.
Далее, после ввода данных, надо напечатать в одной строке несколько параметров: приветствие, имя, фамилию, и восклицательный знак в конце, чтобы обратиться к Тарасу Скотинину так:
> Здравствуй, Тарас Скотинин!
Достаточно ли здесь одного оператора печати? Конечно! Вот он.
>Writeln(’Здравствуй, ’, N, ’ ’, S, ’!’);
Тут мы втиснули в процедуру Writeln аж пять параметров! Обратите внимание: в конце добавлен восклицательный знак, а между именем и фамилией печатается пробел, иначе эти слова слипнутся на экране.
После всех пояснений следующая программа должна быть вполне ясной.