Литмир - Электронная Библиотека

Ввод данных в переменную выполняется знакомой вам процедурой 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

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

Песни о Паскале (СИ) - _34.jpg

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

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

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

Фамилия?

Скотинин

Имя?

Тарас

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

Нажми Enter

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

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

var N : string;

      S : string;

Здесь переменные N и S названы мною по первым буквам слов Name (имя) и Surname (фамилия). Объявить несколько переменных одного типа можно и в одной строке, перечислив их через запятую.

var N, S : string;

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

Далее, после ввода данных, надо напечатать в одной строке несколько параметров: приветствие, имя, фамилию, и восклицательный знак в конце, чтобы обратиться к Тарасу Скотинину так:

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

Достаточно ли здесь одного оператора печати? Конечно! Вот он.

Writeln(’Здравствуй, ’, N, ’ ’, S, ’!’);

Тут мы втиснули в процедуру Writeln аж пять параметров! Обратите внимание: в конце добавлен восклицательный знак, а между именем и фамилией печатается пробел, иначе эти слова слипнутся на экране.

После всех пояснений следующая программа должна быть вполне ясной.

var N, S : string;

begin

Writeln(’Фамилия?’); Readln(S);

Writeln(’Имя?’); Readln(N);

Writeln(’Здравствуй, ’, N, ’ ’, S,’!’);

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

end.

Обязательно скомпилируйте её и проверьте в действии.

Из пустого в порожнее

Итак, нам удалось скроить уже два «кармана» для хранения данных. Действительно, переменные сродни карманам, здесь можно и хранить данные, и копировать из одного «кармана» в другой. Для копирования данных в Паскале применяют оператор присваивания, вот примеры копирования данных.

A := 'Привет, Мартышка!'; <– копирование строковой константы

B := A;       <– копирование из переменной A в переменную B

Пара символов «:=» – «двоеточие» и «равно» – означают операцию присваивания. Слева от знака операции указывают переменную, в которую будут помещены данные, а справа можно указать переменную или константу. Что, по вашему мнению, напечатает следующая программа?

var A, B : string;

begin

A:= 'Первая строка';

B:= 'Вторая строка';

Writeln(A);       Writeln(B);

B:= A;

Writeln(B);       Readln

end.

Очевидно, что на экране появятся следующие строки.

Первая строка

Вторая строка

Первая строка

12
{"b":"596178","o":1}