КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Записи (комбинированные типы) и их объявления
Begin Begin Функции и процедуры ВР для работы со строками Begin Var Дополнительные операции над строками в ВР Var Begin Var Строковый тип ВР (string) End else S:=S + (j – d[t[s + j]]; {(1)} end; t[s+j] – индекс стоп-символа. Если не обращать внимания на присваивание (1), то алгоритм БМ совпадает с простейшим алгоритмом поиска подстроки. Здесь для каждого символа из строки Т находится его самое правое вхождение в образец Р, т.е. наибольшее k, при котором P[k]=c. Эти сведения хранятся в массиве d. Если символ «с» вовсе не встречается в массиве, то d[c]=0. Если обнаружен стоп-символ, то сдвиг увеличивается на значение j – k. Формирование массива d из наибольших k, при которых P[k]=c для каждого символа с, входящего в Р, можно выполнить с помощью следующего кода. { формирование массива d } for c:=’A’ to ‘z’ do d[c]:=0; { если «с» в нет в Р, то d[c]=0 и S=i } For k:=1 to m do d[p[k]]:=k; {d – равно последнему индексу символа с }
i – стоп-символ S на j – d[i] s: string; s:= ’паскаль’; Максимальный объем – 256 байт (0..255). 0-позиция – это длина строки (хранится в виде кода символа).
writeln(s); writeln(ord(s[0]); { = > 7 } s[0]:=chr(3); wrtieln(s); { = > «пас» } Также длину строки можно ограничить: s: string[11] { занимает 12 байт } 1) Конкатенация (объединение, обозначается как «+») 2) Разрешено сравнивать строки разной длины (существующий символ всегда больше отсутствующего) 3) Строки можно вводить с помощью read (вводится количество символов равное длине строки или меньшее, если раньше достигнут код клавиши Enter) s1, s2, s3:string[15]; q:boolean; s1:=’london’; s2:=’jack’; s3:= s2 + ‘ ‘ + s1; { конкатенация s3=’jack london’ } q:= ‘ borland pascal’ < ‘ turbo’ { true } q:= ‘tu r bo pascal’ > ‘ turbo’ { true } ü Функция copy(str1, start, n) возвращает подстроку str1, cостоящую из n символов начиная с позиции start. s:=’ turbo pascal ’; s:=copy(s,7,6); { s=’pascal’ } ü Процедура instert(insrt, str, start) предназначена для вставки строки insrt в строку str, начиная с позиции start. s1:= ’frnd’ insert(‘ ie’, str, 3); { s1=’friend’ } s1:=’ children ’; delete(s1, 6, 3); { s1=’child’ } ü Функция pos(substr, str) возвращает начальную позицию подстроки substr в строке str pos(‘ f(x) ’, ‘ let f(x)=2x’ ); { результат 5 } Если подстрока не встречается pos вернет 0. ü Функция length(str) возвращает длину строки str ü Процедура str(num,strnum) преобразовывает числовое значение num в строку strnum. ü Процедура val(strnum, num, errcode) выполняет обратное преобразование, где errcode - 0, при условии выполнения преобразования им номеру позиции strnum …. n=160.236; str(n:5:2,s2); { s 2=’160,24} s1:=’150’; val(s1, num, code); { num=150 code=0 } Пример. Заменить все вхождения подстроки w в строке str на подстроку v. procedure subst(w, v:string, var str: string); var k:byte; while pos(w, str)<>0 do begin k:=pos(w, str); delete(str, k, length(w)); insert(v, str, k); end; end; Пример. Посчитать сумму цифр, встречающихся в str. function summa(str:string):integer; var I,k,d,s:integer; s:=0; for i:=1 to length(str) do begin val(str[i], d, k); if k=then s:=s + d; end; summa:=s; end; ЛЕКЦИЯ №14. Запись(комбинированный тип) – это структурированный тип данных, состоящий из нескольких компонент, которые часто называют полями. В отличии от массивов компоненты (поля), образующие запись могут относиться к разным типам, и доступ к ним осуществляется по имени поля. При объявлении записи указывают имя и тип каждого поля. Описание записи начинается служебным словом record и заканчивается словом end.
Дата добавления: 2014-01-07; Просмотров: 306; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |