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

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

Лабораторная работа №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 оперирует с двумя категориями...


Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

Закон Гука при растяжении и сжатии   Напряжения и деформации при растяжении и сжатии связаны между собой зависимостью, которая называется законом Гука, по имени установившего этот закон английского физика Роберта Гука в 1678 году...

Характерные черты официально-делового стиля Наиболее характерными чертами официально-делового стиля являются: • лаконичность...

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

Основные структурные физиотерапевтические подразделения Физиотерапевтическое подразделение является одним из структурных подразделений лечебно-профилактического учреждения, которое предназначено для оказания физиотерапевтической помощи...

Почему важны муниципальные выборы? Туристическая фирма оставляет за собой право, в случае причин непреодолимого характера, вносить некоторые изменения в программу тура без уменьшения общего объема и качества услуг, в том числе предоставлять замену отеля на равнозначный...

Тема 2: Анатомо-топографическое строение полостей зубов верхней и нижней челюстей. Полость зуба — это сложная система разветвлений, имеющая разнообразную конфигурацию...

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