Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
Delphi. 
«Обробка рядкових даних»
«Обработка строковых данных» 
План темы: 
1. Понятие символа и строки. 
2. Описание символов и строк в программе. 
3. Операция сцепления строк. 
4. Операции сравнения строк. 
5. Строковые процедуры и функции. 
6. Примеры обработки строк.
•Символ – это элемент кодовой таблицы 
компьютера (буква, знак, управляющий 
символ). Каждый символ имеет свой 
уникальный численный код. 
• Каждый символ занимает в памяти 1 
байт (в кодировке ANSI), или 2 байта (в 
кодировке Unicode).
•Строка - это последовательность (массив) 
символов. 
• ‘При использовании в выражениях 
символ и строка-константа заключается в 
кавычки-апострофы’. 
• Количество символов в строке (длина 
строки) может динамически изменяться 
от 0 до 255 (статические строки), или 
практически неограниченны 
(динамические строки).
•Для определения переменных 
символьного типа используются 
служебные слова: Char, AnsiChar (1 байт); 
WideChar (2 байта). Пример: 
Var c1:Char; 
c2:WideChar;
•Для определения переменных строкового 
типа используются служебные слова 
String или ShortString, за которым может 
следовать заключенное в квадратные 
скобки значение максимально 
допустимой длины строки (статические 
строки), или LongString (динамические 
строки). Пример: 
Var S1, S2 : String[20]; 
S : LongString;
Соединяет несколько строк слева на право в 
одну. Знак операции: + (плюс). Примеры:
(=, <>, >, <, >=, <=) проводят сравнение двух строк. 
Сравнение строк производится слева направо до 
первого несовпадающего символа, и та строка 
считается больше, в которой первый 
несовпадающий символ имеет больший номер в 
кодовой таблице. Результат выполнения операций 
имеет логический тип - (True, или False).
• Delete(St,Poz,N) - удаление N символов 
строки St, начиная с позиции Poz. 
Delete(‘Алгоритм’,1,4) = ‘ритм’ 
• Insert(Str1, Str2, Poz) - вставка строки 
Str1 в строку Str2, начиная с позиции 
Poz. 
Insert(‘форма’,’интика’,3)=‘информатика’
• Str (N,St) - преобразование числового значения 
величины N и помещение результата в строку St. 
После N может записываться формат 
преобразования. 
Str(5,S) ==> S = ‘5’; 
Str(pi:4:2,S) ==> S = ‘3.14’ 
• Val (St,N,Cod) - преобразует строку St в величину 
целочисленного или вещественного типа и 
помещает результат в N. В переменной Cod 
возвращается код операции (0 - нет ошибки; n - n-й 
символ не может быть частью числа). 
Val(‘5.2’,R,Code) ==> R = 5.2; Code = 0 
Val(‘10 А кл.’,R,Code) ==> R- не определено; Code = 3
Copy (St,Poz,N) - возвращает из строки St 
подстроку длиной N символов, начиная с 
позиции Poz. 
Copy(‘информатика’,3,5) = ‘форма’ 
• Chr(N) - возвращает символ с кодом N. 
Chr(192) = ‘А’ 
• Ord(C) – возвращает код символа C. 
Ord(‘А’) = 192 
• Trim(St) – возвращает строку St, удалив в ней 
начальные и конечные пробелы.
• Length (St) - вычисляет и возвращает текущую 
длину в символах строки St. Результат имеет 
целочисленный тип. 
Length(‘Я учусь программировать!’) = 24 
• Pos (Str1,Str2) - обнаруживает первое появление 
в строке Str2 подстроки Str1. Возвращаемый 
результат имеет целочисленный тип и равен 
номеру той позиции в строке Str2, где находится 
первый символ подстроки Str1. Если в Str2 
подстроки Str1 не найдено, результат равен 0. 
Pos(‘о’,’программирование’) = 3 
Pos(‘не’,’алгоритм’) = 0
•AnsiUpperCase(St) - возвращает строку, 
преобразовав все буквы к верхнему регистру 
(большие буквы). 
AnsiUpperCase(‘Среда Delphi!’) = ‘СРЕДА DELPHI!’ 
• AnsiLowerCase(St) - возвращает строку, 
преобразовав все буквы к нижнему регистру 
(маленькие буквы). 
•AnsiLowerCase(‘Среда Delphi!’) = ‘среда delphi!’
1. Задан текст. Заменить в нём ‘и’ на ‘i’. 
Подсчитать количество таких замен. 
var S:string; 
i, k : Integer; 
Begin 
{…Ввод строки S} 
k := 0; 
For i := 1 to length(S) do 
If S[i] = ‘и’ then begin 
S[i] := ‘i’; 
k := k + 1; 
end; 
{…Вывод S, k} 
End.
2. Вывести в компонент Memo кодовую 
таблицу отображаемых символов. 
var i:Integer; 
Begin 
Memo1.Lines.Clear; 
For i := 32 to 255 do 
Memo1.Lines.Add(chr(i) + ‘ = ‘ + IntToStr(i)); 
End.

More Related Content

07 string

  • 2. «Обработка строковых данных» План темы: 1. Понятие символа и строки. 2. Описание символов и строк в программе. 3. Операция сцепления строк. 4. Операции сравнения строк. 5. Строковые процедуры и функции. 6. Примеры обработки строк.
  • 3. •Символ – это элемент кодовой таблицы компьютера (буква, знак, управляющий символ). Каждый символ имеет свой уникальный численный код. • Каждый символ занимает в памяти 1 байт (в кодировке ANSI), или 2 байта (в кодировке Unicode).
  • 4. •Строка - это последовательность (массив) символов. • ‘При использовании в выражениях символ и строка-константа заключается в кавычки-апострофы’. • Количество символов в строке (длина строки) может динамически изменяться от 0 до 255 (статические строки), или практически неограниченны (динамические строки).
  • 5. •Для определения переменных символьного типа используются служебные слова: Char, AnsiChar (1 байт); WideChar (2 байта). Пример: Var c1:Char; c2:WideChar;
  • 6. •Для определения переменных строкового типа используются служебные слова String или ShortString, за которым может следовать заключенное в квадратные скобки значение максимально допустимой длины строки (статические строки), или LongString (динамические строки). Пример: Var S1, S2 : String[20]; S : LongString;
  • 7. Соединяет несколько строк слева на право в одну. Знак операции: + (плюс). Примеры:
  • 8. (=, <>, >, <, >=, <=) проводят сравнение двух строк. Сравнение строк производится слева направо до первого несовпадающего символа, и та строка считается больше, в которой первый несовпадающий символ имеет больший номер в кодовой таблице. Результат выполнения операций имеет логический тип - (True, или False).
  • 9. • Delete(St,Poz,N) - удаление N символов строки St, начиная с позиции Poz. Delete(‘Алгоритм’,1,4) = ‘ритм’ • Insert(Str1, Str2, Poz) - вставка строки Str1 в строку Str2, начиная с позиции Poz. Insert(‘форма’,’интика’,3)=‘информатика’
  • 10. • Str (N,St) - преобразование числового значения величины N и помещение результата в строку St. После N может записываться формат преобразования. Str(5,S) ==> S = ‘5’; Str(pi:4:2,S) ==> S = ‘3.14’ • Val (St,N,Cod) - преобразует строку St в величину целочисленного или вещественного типа и помещает результат в N. В переменной Cod возвращается код операции (0 - нет ошибки; n - n-й символ не может быть частью числа). Val(‘5.2’,R,Code) ==> R = 5.2; Code = 0 Val(‘10 А кл.’,R,Code) ==> R- не определено; Code = 3
  • 11. Copy (St,Poz,N) - возвращает из строки St подстроку длиной N символов, начиная с позиции Poz. Copy(‘информатика’,3,5) = ‘форма’ • Chr(N) - возвращает символ с кодом N. Chr(192) = ‘А’ • Ord(C) – возвращает код символа C. Ord(‘А’) = 192 • Trim(St) – возвращает строку St, удалив в ней начальные и конечные пробелы.
  • 12. • Length (St) - вычисляет и возвращает текущую длину в символах строки St. Результат имеет целочисленный тип. Length(‘Я учусь программировать!’) = 24 • Pos (Str1,Str2) - обнаруживает первое появление в строке Str2 подстроки Str1. Возвращаемый результат имеет целочисленный тип и равен номеру той позиции в строке Str2, где находится первый символ подстроки Str1. Если в Str2 подстроки Str1 не найдено, результат равен 0. Pos(‘о’,’программирование’) = 3 Pos(‘не’,’алгоритм’) = 0
  • 13. •AnsiUpperCase(St) - возвращает строку, преобразовав все буквы к верхнему регистру (большие буквы). AnsiUpperCase(‘Среда Delphi!’) = ‘СРЕДА DELPHI!’ • AnsiLowerCase(St) - возвращает строку, преобразовав все буквы к нижнему регистру (маленькие буквы). •AnsiLowerCase(‘Среда Delphi!’) = ‘среда delphi!’
  • 14. 1. Задан текст. Заменить в нём ‘и’ на ‘i’. Подсчитать количество таких замен. var S:string; i, k : Integer; Begin {…Ввод строки S} k := 0; For i := 1 to length(S) do If S[i] = ‘и’ then begin S[i] := ‘i’; k := k + 1; end; {…Вывод S, k} End.
  • 15. 2. Вывести в компонент Memo кодовую таблицу отображаемых символов. var i:Integer; Begin Memo1.Lines.Clear; For i := 32 to 255 do Memo1.Lines.Add(chr(i) + ‘ = ‘ + IntToStr(i)); End.