Песни о Паскале | страница 32




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

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


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


>var A, B : string;

>begin

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

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

>Writeln(A);       Writeln(B);

>B:= A;

>Writeln(B);       Readln

>end.


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


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

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

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


Первые два оператора заносят в переменные A и B две строковые константы, которые затем печатаются. Третий оператор присваивания B:=A скопирует в переменную B значение переменной A, где уже содержится «Первая строка», – она и будет напечатана последней.

Но, к чему здесь было копировать данные из одной переменной в другую? Сейчас это не имело смысла, согласен. Но последнее слово ещё не сказано!

Сцепление строк

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

Не пугайтесь этого заумного слова, сцепление строк – простейшее дело! Руками это делается так: берете несколько полос бумаги и пишите что-либо, – это ваши строки, – а затем склеиваете полоски. Это и есть конкатенация строк.



Рис.22 – «Склеивание» отдельных строк оператором сцепления «+»

На рис. 22 представлено строковое выражение. Знаки «+» здесь обозначают операцию сцепления строк, – точно так же она обозначается и в Паскале. Показанный ниже оператор присваивания занесет в переменную R строку, «склеенную» из пяти других строк (здесь N и S – это переменные, содержащие имя и фамилию человека).


>R:= ’Здравствуй, ’ + N + ’ ’ + S + ’!’;


Стало быть, справа от операции присваивания «:=» может быть не только константа или переменная, но и строковое выражение.

Испытайте теперь второй вариант приветствующей программы с тремя строковыми переменными.


>var N, S, R : string;

>begin

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

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

>R := ’Здравствуй, ’ + N + ’ ’ + S +’!’;

>Writeln(R);

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

>end.


Инициализация переменных

Если найдете силы, испытайте и эту программку (в ней есть ошибка!).