Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Строковый тип данных
Строковый тип (идентификатор типа String) используется для обработки строк (цепочки символов). Описание переменных строкового типа осуществляется двумя эквивалентными способами: 1) с определением типа Type <имя типа> = string[<максимальная длина строки>]; Var <имя переменной>:<имя типа>;
2) без определения типа Var <имя переменной>: string[<максимальная длина строки>];
Максимальная длина строки должна лежать в диапазоне 1..255. Если максимальная длина строки не указана, то по умолчанию она принимается равной 255 символам. Например: Type L25 = string [25]; Lmax = string [80]; Var screen: Lmax; {явное описание типа} y: L25; x: string; {по умолчанию максимальная длина строки – 255} z: string [40]; {неявное описание}
Все символы в строке нумеруются от 1 до максимального значения длины строки. К любому символу строки можно обратиться как к элементу одномерного массива. Например: Var st: string [10]; ................ Begin .......... for i:=1 to 10 do if st[i]=’?’ then … ........... end. В нулевую позицию автоматически записывается текущее значение длины строки – динамическая длина. Значением строковой переменной может быть последовательность символов, взятая в апострофы. Если апостроф входит в состав строки, то он записывается дважды. Например: st1:=’Интегрированная среда’; st2:=’Под’’езд’; st3:=’’ {пустая строка}.
К строковым переменным применимы следующие операции: 1). Операция присваивания. Например: MyStr: =’Turbo Pascal’; YourStr: = MyStr; Если при присваивании превышается максимальная длина строки, то лишние символы справа отсекаются. 2). Операции отношения (=, <>, <, >, >=, <=). Стоки сравниваются посимвольно слева направо. При сравнении используются коды соответствующих символов. Строки считаются равными только при одинаковом наборе символов и одинаковой длине. Результат сравнения строк имеет значения False или True. Например, следующие операции дадут True: ’N’<’n’; ’2’>’123’; ’while’>=’wHile’; ’Паскаль’>’Turbo Pascal’. 3). Операция сцепления (объединения). Обозначается символом “+”. При выполнении операции к первой строке добавляется вторая строка, ограничивая общую длину в 255 символов или максимально допустимой длиной; "лишние" символы отбрасываются. Например: c:=’A’+’B’+’CDE’; writeln(c); {результат – ABCDE} x:=’Интегрированная’; y:=’ среда’; z:=x+y; writeln(z); {результат – Интегрированная среда} Ввод строковых переменных осуществляется только оператором Readln. Одним оператором можно ввести только одну строку. Вывод строки осуществляется с помощью операторов Write и Writeln. К строковым переменным можно также применять форматированный вывод (как для целых чисел). Например: A: =’student’; writeln(A: 10); {результат – student} writeln(A); {результат – student} writeln(A: 4); {результат – stud} Для большинства необходимых преобразований строки в ТР предусмотрены специальные процедуры и функции: 1) function Length (s: string): integer; возвращает динамическую длину строки. Например: c:=length(’1230’+’456’); writeln(c); {результат – 7} 2) function Concat (s1 [,s2, …,sN]: string): string; выполняет конкатенацию (объединение) последовательности строк. Действия этой функции и операции сцепления “+” одинаковы. Например: st1:=’Студент’; st2:=’ – отличник’; st3:=concat(st1,’ Петров’, st2); {результат – st3=’Студент Петров - отличник’} 3) function Copy (s: string; Index, Count: integer): string; возвращает подстроку из строки s, начиная с позиции Index длиной Count символов. Например: st1:=’Программа’ st2:=copy(st1, 2, 3); {результат – st2=’рог’} st3:=copy(st1, 4, 5); {результат – st3=’грамм’} 4) function Pos (subS, s: string): byte; возвращает позицию, начиная с которой в строке s располагается подстрока subS. Если фрагмент в строке не найден, то Pos =0. Например: S:=’Airplane’; N1:=pos(’plan’, s); {результат – N1=4} N2:=pos(’nn’, s); {результат – N2=0} N3:=pos(’bar’, ’Barbara’); {результат – N3=4} 5) procedure Delete (var s: string; Index, Count integer); удаляет Count символов из строки s, начиная с позиции Index со смещением остатка строки на освободившееся место. Например: а) удаление пробелов из начала строки: while st[1]=’ ’ do delete (st, 1, 1); б) удаление всех пробелов из строки: while Pos(’ ’,st)<>0 do Delete (st, Pos (’ ’, st), 1) 6) procedure Insert (subS: string; var S: string; Index: integer); вставляет подстроку subS в строку s, начиная с позиции Index. Если Index превышает исходную длину строки, то subS присоединяется к строке s справа. Например: вставить в строку ’студент – отличник’ свою фамилию: Var st1, fam: string; begin writeln (’Введите свою фамилию’); readln (fam); st1:=’студент – отличник’; insert (fam,st1,9); writeln (st1); {результат: студент Иванов – end. отличник}
7) procedure Str (x[: Size[: Dec]], var s: string); преобразует числовое значение х (целое или вещественное) в его строковое представление. Size и Dec поля, отводимые соответственно под запись всего числа и его дробной части (как в операторе write). Например: A:= -6; B:= 8.1E-4; str (A: 4, st1); {результат – st1=’ -6’} str (B: 15: 10, st2); {результат – st2=’ 0.0008100000’} 8) procedure Val (s: string; var x: real (или integer); code: integer); преобразует строковое значение s в его численное представление х. Параметр code содержит признак ошибки преобразования (0 – нет ошибки). Если в строке встречается недопустимый символ, то его номер сохраняется в параметре code (т.е. если строка не соответствует формату числа, то code содержит номер первого ошибочного символа). Например: st1:=’1234’; val (st1, R1, Ier1); {результат – R1=1234; Ier1=0} st2:=’7.7E5’; val (st2, R2, Ier2); {результат – R2=770000; Ier2=0} st3:=’1+1’; val (st3, R3, Ier3); {результат – R3=0; Ier3=2}
При решении задач с символьными данными в качестве начальных значений переменных можно использовать типизированные константы. Задание констант строкового и символьного типов аналогично заданию констант простых числовых типов. Например: Const str: string = 'Turbo Pascal'; no: char = 'N';
Date: 2016-02-19; view: 452; Нарушение авторских прав |