Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тurbo Pascal 7+.doc
Скачиваний:
12
Добавлен:
24.12.2018
Размер:
10.09 Mб
Скачать

4.14. Строковые переменные

Сравним две программы:

VAR a :Integer; VAR a :String;

BEGIN BEGIN

a:=98; а:='Привет всем';

WriteLn(a) WriteLn(a)

END. END.

В первой программе описание VAR a: Integer говорит о том, что переменная а обязана иметь целочисленное значение, а оператор а:=98 записывает в ячейку а число 98.

Во второй программе описание VAR а :String говорит о том, что переменная а обязана иметь строковое (текстовое) значение, то есть ее значением будет не число, а произвольная цепочка символов, например Привет всем! или рпН2Н(*fD6u. Оператор а:='Привет всем!' записывает в ячейку а строку Привет всем!. Оператор WriteLn(а), поскольку он обязан всегда выводить на экран содержимое ячейки а, выведет на экран текст Привет всем!.

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

Слово String (читается - "стринг") переводится как "строка".

Какой смысл переменным иметь текстовое значение, выяснится в разделе 4,15

Информация в ячейке памяти под строковую переменную может в процессе выполнения программы меняться точно так же, как и в ячейке для числовой переменной. Например, при выполнении фрагмента

а:='Минутонку',WriteLn(a),а:='3дравстзуйте!'а:='До свидания!',WriteLn(a)

в ячейке а будут по очереди появляться строки

Минуточку! Здравствуйте! До свидания!

а на экран будут выведены строки

Минуточку! До свидания!

Строковую переменную можно задавать не только оператором присваивания, но и оператором ReadLn.

Пример:

VAR a :String;

BEGIN;

WriteLn ('Введите какое-нибудь слово');

ReadLn(a);

WriteLn ('Вы ввели слово ',a);

END.

Во время паузы, вызванной оператором ReadLn, вы должны ввести какой-нибудь набор символов, например Изнакурнож, и затем нажать клавишу Enter в знак того, что ввод закончен. Ваш набор уйдет в ячейку а. В результате на экране будет напечатан текст

Вы ввели слово Изнгкурнож

4.15. Диалог с компьютером

Напишем программу, которая осуществляла бы такой диалог человека с компьютером:

Компьютер выводит на экран:

Здравствуй, я компьютер, а тебя как зовут?

Человек вводит с клавиатуры:

Коля

Компьютер выводят на экран:

Очень приятно, Коля. Сколько тебе лет?

Человек вводит с клавиатуры:

16

Компьютер выводит на экран:

Ого! Целых 16 лет! Ты уже совсем взрослый!

Вот программа:

VAR imya :String;

vozrast :Integer;

BEGIN

WriteLn ('Здравствуй, я компьютер, а тебя как зовут?');

ReadLn (imya);

WriteLn ('Очень приятно,', imya,', Сколько тебе лет?');

ReadLn (vozrast);

WriteLn ('Ого! Целых' ,vozrast,' лет! Ты уже совсем взрослый!');

END.

Диалог будет отличаться только той информацией, которую вводит человек. Так, в другой раз по этой же программе будет осуществлен следующий диалог:

Компьютер:

Здравствуй, я компьютер, а тебя как зовут?

Человек:

Фантомас!

Компьютер:

Онень приятно, Фантомас! Сколько тебе лет?

Человек:

100

Компьютер:

Ого! Целых 100 лет! Ты уже совсем взрослый!

Не подумайте, что эта пpограмма очень умная. Она совершенно не анализирует, какую, информацию человек ввел с клавиатуры. Поэтому с ней возможен и такой диалог:"

Компьютер:

Здравствуй, я компьютер, а тебя как зовут?

Человек:

Сгинь с моих глаз!

Компьютер:

Очень приятно, Сгинь с моих глаз!. Сколько тебе лет?

Человек:

-2

Компьютер:

Ого! Целых -2 лет! Ты уже совсем взрослый'

Задание 17

Напишите программу для следующей задачи: компьютер спрашивает названия двух планет, радиусы их орбит (в миллионах километров) и скорости движения по орбите (в миллионах километров в сутки). Компьютер вычисляет продолжительность года на планетах и выдает результат в таком виде: Продолжительность года на планете Земля - 365 суток, а на планете Эоэлла -12 суток.

При вводе одним оператором ReadLn нескольких строковых переменных (или строковых переменных вместе с числовыми) заканчивайте ввод каждой переменной нажатием клавиши Enter.