Лекция 6 Строки и








Лекция 6 Строки и алгоритмы их обработки 7 октября 2015 года Автор Бабалова И. Ф.
Проверка ввода данных • В среде Delphi: • В консольном приложении: a: = Str. To. Int(Edit 1. text); {$I-} или Readln(a); Val(Edit 1. text, a, code); {$I+} Try If not (IOResult<>0) then x: =a; Except x: =a; …… < Секция обработки ошибки> else on EZerodivide do Exit; ……………. . on EConvert. Error do Или if IOResult=0 then else exit; end;
Стандартные числовые функции Таблица Функция Действие Abs(x) Модуль вещественного числа x Frac(x) Дробная часть числа х Trunc(x) Целая часть вещественного числа результат будет типа Int 64 Round(x) Ближайшее целое числа Int(x) Целая часть вещественного числа Exp(x) ex Ln(x) Ln x натуральный логарифм х 3
Таблица не стандартных функций Функция в Действие Использование этих языке функций возможно Log. N (a, b) Log a b только при включении в Power (a, b) ab программу модуля Arcsin (x) Arcsin x Math. Tan (x) Tg x Uses …… , Math; Запись математических формул на языке: ln sin x +sin 2 x –x/(1+x) ln(abs(sin(x)) + sin(2*x) –x/(1+x) 4
Определение данных типа Char Этот тип данных используется для обработки некоторых важных кодов. Символы - порядковый тип данных. Все символы имеют свои коды. В языке определены два типа символов: Ansi. Char (Char) - 0÷ 255 длина 1 байт Wide. Char - 0÷ 65535 длина 2 байта Наиболее часто используемые символы в кодировке ANSI: 32 <про 33 ! 34 “ 35 # бел> 65 - A - Z 97 - a - z 192 - А - Я 224 - а -я 90 122 223 255 Кодировка символов в консольном приложении другая – ASCII. Русский алфавит в этой кодировке закодирован иначе: Коды 128 -175 для букв А. . Я а. . п, а коды 224 – 239 определяют буквы р. . я. Функции для работы с символами: Ord(ch), Chr(i), Pred(ch), Succ(ch), High(ch), Low(ch). Пример: Х=‘A’ Ord(x)=65, Chr(65)=‘A’ Обобщением для работы с символами является строка.
Функции и процедуры для работы Таблица типов строк Строки со строками Type Длина Наличие Функция Пример нулевого k: =Length(s) Длина строки S будет символа равна 7 Shortstring 255 байт нет Delete(s, 4, 1) Строка s будет равна ANSI ‘Bes of’ Insert(’e’, s, 3) Строка s будет равна Ansisting 4 байта - есть ‘Beest of’ ANSI 2 гб Trim(s) Строка s будет равна String/ 255 нет/есть ‘Best of’ PString байт/2 гб Lower. Case(s) ‘best of’ Upper. Case(s) ‘BEST OF’ Widestring 4 байта - есть Unicode(0 - 2 гб k: =Pos(‘o’, s) Позиция символа o в строке равна 6 65535) s 1: =Copy(s, 6, 2) Новая строка s 1 Pchar Ansistring Есть (#0) будет равна’of’ Нуль Widestring 6 терминальная строка S=‘Best of’
Правила использования строк • Для типов String нумерация символов в строке начинается с 1. var s: string; s: =‘fsdgahdm’; s[1] =‘f’ • Для типа PChar или Pstring нумерация символов начинается с 0. var ss: Pstring; s_p: Pchar; begin ss: =string(s_p); Определяется строка по ее указателю s_p: =Pchar(ss); Задается указатель на строку end; Указателем называется адрес строки или символа • Для типов данных String надо всегда задавать конечную длину: Type sss=string[80]; var ss: sss; Но запись L: = Ord(ss[0]) определяет текущую длину строки. • Операции над строками: +, =, <, > • Ss 1: =‘ad’; Ss 2: =‘bc’ ; SS: =Ss 1+Ss 2; SS=adbc 7
Функции и процедуры для работы со строкой типа PChar • STRLen – длина строки Функция для преобразования • Str. ECopy- Копирование кодировки ASCII в ANSI одной строки в другую Uses Sysutils, Windows; • Str. Lower - ……………… преобразование PСhar - строки символов к строчным символам. Function To. Dos(Winstr: String); string; • Str. Pos - возвращает begin указатель на последнее setlength(Result, length(Winstr)); вхождение символа Chr Char. To. OEM(Pchar(Winstr), Pchar(Result)); в PChar – строку end; • Str. Upper - преобразование символов PСhar - строки Пример использования строки PChar в прописные буквы для преобразования кодов символов Полный перечень функций в Help среды Delphi Сравните методы для обработки типов данных PChar и String 8

