Студопедия — Лабораторная работа №7. Тема: Программирование задач обработки строковых данных.
Студопедия Главная Случайная страница Обратная связь

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

Лабораторная работа №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; просмотров: 525. Нарушение авторских прав; Мы поможем в написании вашей работы!



Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...

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

Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...

Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Упражнение Джеффа. Это список вопросов или утверждений, отвечая на которые участник может раскрыть свой внутренний мир перед другими участниками и узнать о других участниках больше...

Влияние первой русской революции 1905-1907 гг. на Казахстан. Революция в России (1905-1907 гг.), дала первый толчок политическому пробуждению трудящихся Казахстана, развитию национально-освободительного рабочего движения против гнета. В Казахстане, находившемся далеко от политических центров Российской империи...

Виды сухожильных швов После выделения культи сухожилия и эвакуации гематомы приступают к восстановлению целостности сухожилия...

Билиодигестивные анастомозы Показания для наложения билиодигестивных анастомозов: 1. нарушения проходимости терминального отдела холедоха при доброкачественной патологии (стенозы и стриктуры холедоха) 2. опухоли большого дуоденального сосочка...

Сосудистый шов (ручной Карреля, механический шов). Операции при ранениях крупных сосудов 1912 г., Каррель – впервые предложил методику сосудистого шва. Сосудистый шов применяется для восстановления магистрального кровотока при лечении...

Трамадол (Маброн, Плазадол, Трамал, Трамалин) Групповая принадлежность · Наркотический анальгетик со смешанным механизмом действия, агонист опиоидных рецепторов...

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