
Министерство общего и профессионального образования
Российской Федерации
ОРЛОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
_______________________________________________
Квасова Л.Б., Подрез Е.А. Симанева Т.А.
Я З Ы К П Р О Г Р А М М И Р О В А Н И Я
Т У Р Б О П А С К А Л Ь
Учебно-методическое пособие по изучению языка Турбо Паскаль
( для учащихся школ, учителей и студентов педвузов)
(дополненное и переработанное)
Часть II.
ОРЕЛ – 2002
Печатается по разрешению редакционно-издательского совета
Орловского государственного университета и
методического совета Орловского областного ИУУ
Авторы: Квасова Л.Б. ст. пр. каф. информатики ОГУ, Подрез Е.А. – ст. пр. каф. информатики ОГУ, Симанева Т.А. к.п.н., доцент каф. информатики
Рецензенты: Иванова Е.А. – зав. каб. ИОВТ ИУУ. Мешков А.Г. – док.ф.-м. н., профессор, зав. каф. информатики ОГУ
Ответственный за выпуск: Веркеенко Г.П. – к.п.н., проф., проректор по НИР ОГУ.
Данное пособие представляет собой учебно-методические рекомендации по изучению языка Турбо Паскаль. В книге описана структура языка, даются методика написания и примеры программ. Пособие предназначено для студентов педвузов, учителей информатики и учащихся средних общеобразовательных школ, лицеев, гимназий.
§1. Строковый тип данных
В первой части пособия был рассмотрен структурированный тип данных - массив. Разновидностями массивов являются еще два структурированных типа: строка типа string и строка типа PChar.
1.1 Строка типа string
В Турбо Паскале тип-строка (стандартный тип string) -последовательность символов произвольной длины (до 255 символов). Строку можно рассматривать как массив символов, однако, в связи с некоторыми особенностями по сравнению со стандартными массивами, она выделена в отдельный тип данных.
Данные строкового типа могут быть объявлены в разделе описания типов или непосредственно в разделе описания переменных с помощью служебного слова string, после которого в квадратных скобках указывается длина строки. Если размер строки не указан, он считается равным 255. Строка может иметь различные длины в пределах объявленных границ.
Первый способ объявления переменной типа string (с использованием раздела типов Type ):
Type <имя типа> = string [<длина строки>];
Var <имя переменной> : <имя типа>;
Второй способ объявления переменной типа string (в разделе переменных Var):
Var <имя переменной> : string [<длина строки>];
Например,
Первый способ |
Второй способ |
type Str = string [80]; MaxStr = string; {строка в 255 символов} var s1, s2 : Str; s3 : MaxStr; |
. var s1, s2 : string [80]; s3 : string;
|
В переменных s1 и s2 мы можем хранить строковые значения длиной не более 80 символов, а в переменной s3 - не более 255.
Значением строки может быть любая последовательность символов, заключенная в апострофы, например:
'Турбо Паскаль 7.0',
'2a+d>0 ?',
'' - пустая строка,
'Turbo Basic'.
Для того чтобы поместить в стринговую переменную какое-либо значение, можно применить любой из доступных в Турбо Паскале методов. Например, присвоить переменной некоторое значение с помощью оператора присваивания:
s1 := 'a bc d12*4';
или с помощью оператора ввода данных: Read (s2).
При этом возможны следующие ситуации:
1) если длина вводимой строки меньше или равна длине строковой переменной, то длина строковой переменной становится равной длине текущей строки и значения их совпадают;
2) если длина вводимой строки больше длины строковой переменной (n - символов), то значением строковой переменной являются первые n символов вводимой строки.
Например,
program stroka1;
var s1,s2,s3:string[10];
begin
s1:='1234567891';
s2:='12345';
s3:='abcdefghijklmn';
writeln('s1=', s1, ', s2=', s2, ', s3=', s3)
end.
В результате исполнения программы переменные s1, s2, s3 получат значения '1234567891', '12345', 'abcdefghij' соответственно.
Строка в Турбо Паскале трактуется как цепочка символов. К любому символу можно обратиться точно также, как к элементу одномерного строкового массива array [0..N] of char.
Пусть s - переменная типа string . Если ее рассматривать как одномерный массив, то значениями элементов s[1], s[2], ... будут соответствующие символы переменной s. Левее самого первого элемента массива всегда присутствует еще один, формально выступающий как литера в позиции 0, но фактически содержащий численное значение текущей длины данного стринга.
Например, s:= 'информатика'. Тогда элементам массива s будут соответствовать: s[1] - литера 'и', s[2] - литера 'н', ... , s[9] - литера 'к', s[10] - литера 'а', а ord(s[0]) получит значение 10; если s := 'форма', то ord(s[0]) получит значение 5; если s='', то ord(s[0]) равно 0.