Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Лабораторная работа №7. Тема: Программирование задач обработки строковых данных.





Тема: Программирование задач обработки строковых данных.

Цель: получение навыков работы со строками в Паскале.

1. Теоретический материал.

Понятие строковой переменной.

Тип STRING (строка) в Паскале широко используется для обработки текстов. Он во многом похож на одномерный массив символов ARRAY [O.. N] OF CHAR, однако, в отличие от последнего, количество символов в строке – переменной может меняться от О до N, где N – максимальное количество символов в строке. Значение N определяется объявлением типа STRING [N] и может быть любой константой порядкового типа, но не более 255, например:

Const N = 25;

Type Stroka = String [n];

Var S: Stroka;

B: String [50];

C: String [230];

D: String [270]; Ошибка, 270>255

Разрешается не указывать N. В этом случае длина строки принимается максимально возможной, а именно N=255. Т.о. согласно описания

Var A: String;

B: String [255];

переменные А и В могут содержать до 255 символов каждая.

Строка в Паскале трактуется как цепочка символов. К любому символу в строке можно обратиться точно так же, как к элементу одномерного массива ARRAY [O.. N] of Char, например:

Var St: String [20];

Begin …….

If St [5] = ‘A’ then …..

end

Занесение значений в строковую переменную.

Значение в строковую переменную может быть занесено с помощью оператора присваивания: =, например:

St: = ‘How do you do!’

При этом будут соблюдаться следующие правила:

1. Позиция символа в строке соответствует номеру позиции в строковой переменной,

т.е. St [1] = ¢H¢ (см. последний пример), St [2] = ¢о¢ St [3] = ¢w¢ St [4] = ¢ ¢

St [5] = ¢d ¢, ……, St [14] = ¢!¢.

2. Если в правой части количество символов в строке превышает максимально возможный размер значения строковой переменной, расположенный слева от знака присваивания, “лишние” символы отбрасываются. Например, если при описании

Var st: string [10];

в программе встретится оператор

St: = ¢Hoy do you do!¢;

то переменная St получит значение ‘Hoy do you’, а оставшиеся четыре символа будут отброшены.

3. Если в переменной St уже содержались какие-либо значения, оно полностью уничтожается, а в переменную заносится новое значение. Например, если

St = ‘Hoy do you’, то после оператора

St: = ¢Hello!¢;

переменная St = ‘Hello!’ (а не St = ‘Hello! you do’)

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

Var A: string [20];

B: string [10];

C: string [2];

Занести значение в строковую переменную можно и с помощью оператора ввода Readln. При этом соблюдаются все выше перечисленные правила.

Длина строки.

Длинна строки, определяется с помощью стандартной функции Length (St), которая возвращает целое число, равное количеству символов в строке St, например:

Lenght (¢Hello!¢) = 6

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

Lenght (¢ ¢) = 0

Самый первый байт строковой переменной имеет индекс 0, и содержит символ, код которого равен длине строки:

Ord (St [0]) = Lenght (St).

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

Сложение строк.

К строкам можно применять операцию “+” – сцепление, например:

St: = ¢a ¢ + ¢b¢;;

Аналогичным образом функция типа String

Concat (St1, St2, …., Stn), n = 1,2,..

возвращает строку, представляющую собой сцепление строк St1, St2,.., Stn, например:

St = (¢com¢, ¢pu ¢, ¢ter ¢); {St = ¢computer¢}.

Строки можно не только сцеплять, но и вставлять одну в другую. Это осуществляется с помощью процедуры

Insert (SubSt, St, N),

которая вставляет подстроку SubSt в строку St, начиная с символа с номером N, например:

Удаление, вырезка, поиск подстрок.

Процедура

Delete (St,N,Kol)

удаляет Kol символов из строки St, начиная с символа с номером N.

Если число символов, которые требуется удалить, превышает число символов в строке St, начиная с указанной позиции (т.е. Length (St)-N+1<Kol), то удаляются все символы, начиная с указанного, и до конца строки.

Если второй параметр превышает длину строки, из которой удаляется подстрока (т.е. Length (St)<N), в этом случае ни один символ из строки не будет удален.

При решении многих задач используется не вся строка, а только ее часть (подстрока). Выделить подстроку из строки можно с помощью функции типа String.

Copy (St,N,Kol),

копирующий из строки St Kol символов, начиная с символа с номером N. Строка St не изменяется.

Если в строке, начиная с указанной позиции, количество символов меньше, чем требуется, скопировать (Length (St)-N+1<Kol), функцией возвращается реально существующая часть строки.







Дата добавления: 2015-09-15; просмотров: 548. Нарушение авторских прав; Мы поможем в написании вашей работы!




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


Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...


Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...


Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Типовые примеры и методы их решения. Пример 2.5.1. На вклад начисляются сложные проценты: а) ежегодно; б) ежеквартально; в) ежемесячно Пример 2.5.1. На вклад начисляются сложные проценты: а) ежегодно; б) ежеквартально; в) ежемесячно. Какова должна быть годовая номинальная процентная ставка...

Выработка навыка зеркального письма (динамический стереотип) Цель работы: Проследить особенности образования любого навыка (динамического стереотипа) на примере выработки навыка зеркального письма...

Словарная работа в детском саду Словарная работа в детском саду — это планомерное расширение активного словаря детей за счет незнакомых или трудных слов, которое идет одновременно с ознакомлением с окружающей действительностью, воспитанием правильного отношения к окружающему...

Подкожное введение сывороток по методу Безредки. С целью предупреждения развития анафилактического шока и других аллергических реак­ций при введении иммунных сывороток используют метод Безредки для определения реакции больного на введение сыворотки...

Принципы и методы управления в таможенных органах Под принципами управления понимаются идеи, правила, основные положения и нормы поведения, которыми руководствуются общие, частные и организационно-технологические принципы...

ПРОФЕССИОНАЛЬНОЕ САМОВОСПИТАНИЕ И САМООБРАЗОВАНИЕ ПЕДАГОГА Воспитывать сегодня подрастающее поколение на со­временном уровне требований общества нельзя без по­стоянного обновления и обогащения своего профессио­нального педагогического потенциала...

Studopedia.info - Студопедия - 2014-2025 год . (0.007 сек.) русская версия | украинская версия