Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛПЗ поОАиП.doc
Скачиваний:
55
Добавлен:
18.05.2015
Размер:
3.08 Mб
Скачать

Работа со строками в объектно-ориентированном программировании. Оператор цикла с параметрами

Для языков программирования характерны не только возможности работы с числовой информацией, но и со строковой. Напомним, что для работы с числами мы использовали два основных типа данных: Integer (целый) иReal (вещественный).

Например, var a: integer; b: real;

Для работы со строками необходимо использовать тип данных string (var s: string). Отличительной чертой этого типа данных является то, что мы можем обратиться как к строке целиком, так и посимвольно, то есть к каждой букве в отдельности. Для этого нам необходимо использовать оператор цикла.

Цикл- многократное повторение последовательности действий по некоторому условию. Известны три типа циклических алгоритмических структур, но при работе со строками будем использовать одну из них – цикл с параметром. Он имеет две формы записи:

For <параметр>:=<нач. значение> to <кон. значение> do <тело цикла>;

For <параметр>:=<кон. значение> downto <нач. значение> do <тело цикла>;

Цикл повторяется пока значение параметра лежит в интервале между начальным и конечным значениями параметра. Причем эти выражения (начального и конечного значение) вычисляются только один раз в начале выполнения цикла. Параметр обязательно должен быть целого типа.

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

При работе со строкой запишем оператор цикла следующим образом: for i:=1 to length(s) do (обращение к символам от первого до последнего в строкеs). Кроме того, используются следующие процедуры и функции:

  1. Функция length(s) определяет длину строки. Результат - целое число 0..255

Пример: дана строка, подсчитать количество цифр в строке.

var s: string; k: integer;

k:=length(s);

  1. Процедура Delete (s,pos,n)- удаление части строки. Удаляет из строкиsn-символов начиная с символа №pos.

Пример: s:='рогатка'; Delete(s,5,3) => рога

  1. Процедура Insert (s1,s2,pos). Вставка части строки.

S1-что,S2-куда,Pos-с какой позиции

Пример: S1:='свет'; Insert(s1,'o',2) => 'совет'

  1. Функция Copy (s,pos,n)- возвращает часть строкиsдлинойn, начиная с позицииpos.

Пример: S:='пароход'; t:=copy(s,1,3) => 'пар'

  1. Сцепление строк - функция Concat (s1,s2,s3,…,sn)

Пример: Concat ('к','о','т')=> 'кот'

  1. Функция Pos (s1,s2)- поиск одной строки в другой. Возвращает номер символа, начиная с которого строкаs1 является частьюs2.

Пример: pos ('cd','abcdf')=> 3

Рассмотрим алгоритм решения задачи, в которой нужно подсчитать количество вхождений символа «а» в строку. Используем компоненты классовTEdit иTMemoдля ввода строки и вывода результата.

Var s: string;

i, k: integer;

Procedure TForm1.Button1Click(Sender: TObject);

Begin

s:=edit1.text; //ввод строки

For i:=1 to length(s) do //идем по строке

If s[i]=’athen k:=k+1; {если i-ый символ а, тогда увеличивай счетчик k}

Memo1.text:=IntToStr(k) //вывод результата

End;

Пусть форма будет выглядеть следующим образом:

Задания для самостоятельной работы:

  1. Дана строка s: Найти количество вхождений буквa,c,dв строку.

  2. Найти количество цифр в строке.

  3. Сцепить несколько строк в одну.

  4. Из данной строки выбрать цифры и сформировать из них новую строку.

  5. Найти количество слов, начинающихся на букву с.

  6. Подсчитать количество слов в строке.

  7. Определить начинается и заканчивается ли слово одной буквой.

  8. Удалить каждую четную букву в строке.

  9. Проверить одинаковое ли число открытых и закрытых скобок в строке.

  10. По введенным: фамилии, имени, отчеству выводить информацию о том, является ли пользователь автором программы, его теской или являются ли теской отец автора и пользователя программы.