русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Строковые функции и процедуры


Дата добавления: 2015-07-23; просмотров: 766; Нарушение авторских прав


 

Строковые функции и процедуры введены в систему программирования Turbo Pascal для облегчения манипуляции со строками. Имеется восемь строковых функций и процедур.

1. Функция CONCAT (склеивание)

Синтаксис: concat (S1, S2, ..., Sn: string): string. Возвращает строку, полученную конкатенацией строк S1,...,Sn. Если длина результата больше 256, то излишние символы отбрасываются. Эта функция фигурирует в правой части «:=» и в строковых выражениях.

П р и м е р:

 

NUMBER := concat ('12', '34', '50'); NUMBER = '123450'.

 

2. Функция LENGTH (длина)

Синтаксис: length (S: string): integer. Возвращает длину строки S.

П р и м е р :

 

N := length ('345'); N = 3.

 

3. Функция POS (позиция)

Синтаксис: pos (S,T: string): integer. Функция POS в качестве аргументов использует две строки и определяет, содержится ли первая строка во второй. Возвращает номер символа, начиная с которого S входит в T. Если вхождения нет, то возвращает 0.

П р и м е р :

 


N := pos ('E', 'HELLO');

N = 2.

N := pos ('A', 'HELLO');

N = 0 .


 

4. Функция COPY (копирование фрагмента)

Синтаксис: copy (S: string; N1, N: integer): string. Возвращает подстроку, полученную из N символов строки S, начиная с позиции N1. Значение переменной S при этом не меняется.

 

П р и м е р :

 

FRAGMENT := copy ('PROGRAMM', 2, 3);

FRAGMENT = 'ROG'.

 

5. Процедура DELETE (стирание фрагмента)

Синтаксис: delete (var S: string; POS, LEN: integer). Убирает из строки S LEN символов, начиная с POS, при этом длина строки уменьшается на LEN позиций.

 

П р и м е р :

 

FRAGMENT := 'PROGRAMM';

delete (FRAGMENT, 2, 3);

FRAGMENT = 'PRAMM'.

 

6. Процедура INSERT (вставка)

Синтаксис: insert (S: string; var D: string; POS: integer). Вставляет строку S в строку D перед символом с номером POS, при этом длина строки D увеличивается на LENGTH (S) позиций.



 

П р и м е р :

 

FRAGMENT := 'PRAMM';

insert ('ROG', FRAGMENT, 2);

FRAGMENT = 'PROGRAMM'.

 

7. Процедура STR (преобразование в строку)

Синтаксис: str (I: integer; var S: string); str (R: real; var S: string).

Преобразует I или R из числа в строку и записывает эту строку в S, причем R и I могут записываться форматно, как в процедуре WRITE.

 

П р и м е р :

 

a) R := 123.654; str (R:5:2, S); S = '123.65';

б) I := 5683; str (I, S); s = '5683'.

 

8. Процедура VAL (преобразование в число)

Синтаксис: val (S: string; var I, J: integer); val (S: string; var I: real; var J: integer).

Преобразует строковую переменную S в число типа I. Переменная J получает значение 0, если перевод прошел без ошибок. Если же сделана попытка конвертировать в число строку, где есть нецифровые символы, то переменная J принимает значение позиции первого нецифрового символа. При этом работа процедуры прерывается.

 

П р и м е р :

 

a) S := '4326'; б) S := '43p8';

val (S, I, J); val (S, I, J);

I = 4326, J = 0; I – не определено, J = 3.

 

Рассмотрим теперь пример на применение указанных функций и процедур обработки строк.

 

П р и м е р . Изменение порядка слов в строке.

 

program REVERSE;

var OLD_LINE, NEW_LINE: string [50];

PROBEL: integer; WORD: string [50];

begin

NEW_LINE := ''; readln (OLD_LINE);

OLD_LINE := concat (OLD_LINE,' ');

while OLD_LINE <> '' do

begin

PROBEL := pos (' ', OLD_LINE);

word := copy (OLD_LINE, 1, PROBEL);

NEW_LINE := concat (WORD, NEW_LINE);

Delete (OLD_LINE, 1, PROBEL);

end;

writeln (NEW_LINE)

end.

 

Пояснение. С клавиатуры вводится строка OLD_LINE, и к ней справа подклеивается пробел. Это делается для того, чтобы строка имела одну и ту же структуру: слово плюс пробел. Затем в цикле, признаком конца которого является пустая константа, выделяется очередное по порядку слово и подклеивается слева в переменную NEW_ LINE. После выборки очередного слова из OLD_LINE оно оттуда выбрасывается, что приводит к постепенному уменьшению самой строки. Здесь переменная PROBEL служит для хранения позиции первого пробела в строке, а WORD – для выбранного из OLD_LINE слова.

Например, строка 'Наша Таня громко плачет' преобразуется в строку 'плачет громко Таня Наша'.

 

Контрольные вопросы

 

1. Что является значением величины типа CHAR?

2. К каким типам могут принадлежать величины 5 и ’5’?

3. Что объявляется строкой VAR STR: ARRAY [1..17] OF CHAR?

4. На что указывает N в объявлении VAR <имя переменной>: STRING [N] ?

5. Какие операции возможны с величинами типа STRING?

6. Каким образом можно склеивать (объединять) строки?

7. Какую функцию можно использовать, чтобы узнать последний символ строки?

8. Как можно определить вхождение того или иного символа в строку?

9. Как вывести на экран второе слово текста (слова разделены одним пробелом, длина слова – 10 символов)?

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



<== предыдущая лекция | следующая лекция ==>
Тип данных STRING | Задания для самостоятельной работы


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 4.315 сек.