Строковые переменные
Сравним две программы:
Var a: Integer;Begina:=98;WriteLn(a);End. | Var a: String;Begina:='Привет всем!';WriteLn(a);End. |
В первой программе описание Var a: Integer говорит о том, что переменная a обязана иметь числовое значение, а оператор a:=98 записывает в ячейку a число 98.
Во второй программе описание Var a: String говорит о том, что переменная a обязана иметь строковое (текстовое) значение, то есть её значением будет не число, а произвольная цепочка символов, например, «Привет всем!» или «pnH2H(*fD6:uf». Оператор a: = 'Привет всем!' записывает в ячейку a строку «Привет всем!». Оператор WriteLn(a), поскольку он обязан всегда выводить на экран содержимое ячейки a, выведет на экран текст «Привет всем!».
Обратите внимание, что в программе текст должен браться в апострофы, а в памяти он хранится без апострофов и на экран выводится без апострофов.
Слово String читается «стринг», переводится «СТРОКА».
Информация в ячейке памяти под строковую переменную может в процессе выполнения программы меняться точно также, как и в ячейке для числовой переменной. Например, при выполнении фрагмента -
a:='Минуточку!';
WriteLn(a);
a:='Здравствуйте!';
a:='До свидания!';
WriteLn(a);
в ячейке a будут по очереди появляться строки -
| Переменная | Значение |
| a | Минуточку! |
| a | Здравствуйте! |
| a | До свидания! |
а на экран будут выведены строки -
Минуточку!
До свидания!
Строковую переменную можно задавать не только оператором присваивания, но и оператором ReadLn. Пример:
Var a: String;
Begin
WriteLn('Введите какое-нибудь слово');
ReadLn(a);
WriteLn('Вы ввели слово - ', a);
End.
Во время паузы, вызванной оператором ReadLn, вы должны ввести какой-нибудь набор символов, например «Зима», и затем нажать клавишу «Enter» в знак того, что ввод закончен. В результате на экране будет напечатан текст:
Вы ввели слово - Зима.
Ещё раз об интерфейсе пользователя
В большинстве сред программирования при запуске программы появляется чёрный экран, аналог окна вывода PascalABC.NET. На нём нам подсвечивают, где сейчас находится курсор. Как выглядит запущенная программа на Turbo Pascal:

Исполним просьбу программы и введём слово. Что печатаем на клавиатуре появляется на экране с места, где раньше находился курсор.

Закончив ввод, нажимаем клавишу «Enter». Наблюдаем результат работы программы.

Выполнив программу до конца, среда программирования закрывает окно вывода (чёрный экран). Это не совсем удобно. Если добавить перед служебным словом End пустой оператор ReadLn, то программа будет замирать в конце выполнения, пока не нажмём клавишу «Enter».
Поговорим о среде программирования PascalABC.NET
PascalABC.NET позволяет видеть код программы и окно вывода ОДНОВРЕМЕННО. А чтобы ввести данные с клавиатуры, нужно использовать форму ввода.
Перепишем и запустим ту же программу в PascalABC.NET.

Появилась специальная форма для ввода. Туда и напечатаем наше слово и нажмём кнопку «Ввести».

Что написали в форму ввода, то дополнительно появится на экране, а уже потом программа продолжит своё выполнение.
Всё, что мы вводим с клавиатуры в PascalABC.NET отображается в окне вывода.
Запомните
Диалог с компьютером
Напишем программу, которая осуществляла бы такой диалог человека с компьютером:
| КОМПЬЮТЕР ВЫВОДИТ НА ЭКРАН: | Здравствуй, я компьютер, а тебя как зовут? |
| ЧЕЛОВЕК ВВОДИТ С КЛАВИАТУРЫ: | Коля |
| КОМПЬЮТЕР ВЫВОДИТ НА ЭКРАН: | Очень приятно, Коля. Сколько тебе лет? |
| ЧЕЛОВЕК ВВОДИТ С КЛАВИАТУРЫ: | 16 |
| КОМПЬЮТЕР ВЫВОДИТ НА ЭКРАН: | Ого! Целых 16 лет! Ты уже совсем взрослый! |
Вот программа:
Var imya:String;
vozrast:Integer;
Begin
WriteLn('Здравствуй, я компьютер, а тебя как зовут?');
ReadLn(imya);
WriteLn('Очень приятно, ',imya, '. Сколько тебе лет?');
ReadLn(vozrast);
WriteLn('Ого! Целых ' ,vozrast, ' лет! Ты уже совсем взрослый!');
End.
Диалог будет отличаться только той информацией, которую вводит человек. Так, в другой раз по этой же программе будет осуществлен следующий диалог:
| КОМПЬЮТЕР: | Здравствуй, я компьютер, а тебя как зовут? |
| ЧЕЛОВЕК: | Фантомас! |
| КОМПЬЮТЕР: | Очень приятно, Фантомас!. Сколько тебе лет? |
| ЧЕЛОВЕК: | 100 |
| КОМПЬЮТЕР: | Ого! Целых 100 лет! Ты уже совсем взрослый! |
Не подумайте, что эта программа очень умная. Она совершенно не анализирует, какую информацию человек ввел с клавиатуры. Поэтому с ней возможен и такой диалог:
| КОМПЬЮТЕР: | Здравствуй, я компьютер, а тебя как зовут? |
| ЧЕЛОВЕК: | Сгинь с моих глаз! |
| КОМПЬЮТЕР: | Очень приятно, Сгинь с моих глаз!. Сколько тебе лет? |
| ЧЕЛОВЕК: | -2 |
| КОМПЬЮТЕР: | Ого! Целых -2 лет! Ты уже совсем взрослый! |
Задание 1
Напишите программу для следующей задачи:
Компьютер спрашивает названия двух планет, радиусы их орбит (в миллионах километров) и скорости движения по орбите (в миллионах километров в сутки). Компьютер вычисляет продолжительность года на планетах и выдает результат в таком виде:
Продолжительность года на планете Земля - 365 суток, а на планете Эоэлла - 12 суток.
Турбо-Паскаль 7.0 - Самоучитель
Лукин С.Н.