- •Символьный и строковой типы.
- •Операции над символами и строками
- •Преобразование строк
- •Строки в Delphi
- •Множества и операции с ними
- •Модули в Delphi
- •Событийно – ориентированное программирование
- •Объективно-ориентирование программирование
- •Классы и объекты
- •Объявление класса
- •Абстрактные методы
- •Перегружаемые методы
- •Структура проекта Делфи
- •Визуальное программирование
- •Реакция на события.
- •Компоненты Делфи
- •Фокус ввода
- •Общие свойства объектов
- •Модуль Math
- •Класс tLabel
- •Панели и их назначение
- •Обработка исключительных ситуаций
- •Класс tExeption
- •Создание нового класса исключения
- •Компоненты страницы Dialogs
- •Компоненты tOpenDilog, tSaveDialog
- •Графика в Делфи
- •Класс tCanvas
- •Метод класса tCanvas
- •Класс Tpen
- •Класс tFont
- •Класс tBrush
- •Класс tGraphics Tpicture
- •Класс TpaintBox
- •Класс tBitMap
- •Методы BitMap
- •Класс tImage
- •Подрограмма формирования преобразования строк.
- •Класс tForm
- •Печать из программы
- •Работа с файлами
- •Работа с файловой системой Windows.
Truncate <имя файловой переменной>;
Файл может быть открыт для добавления записи в конец файлы. APPEND Append <имя файловой переменной>;
Repeat until false; - бесконечный цикл.
Прекратить работу цикла можно с помощью следующих операторов; Break; Exit; завершает работу текущего программного блока Halt; Halt(n); завершение всей программы
Символьный и строковой типы.
Кроме классические формы записей символов паскаля. Допускается представление символа его АСКИ кодом. ‘_’ # n
Writeln(‘привет’,#32,’!’);
Символы от 1 до 31 – управляющие. Могут быть представлены клавиатурными обозначением ^ и буква алфавита с тем же номером. ^G: #7 ^F: #9 – Tab
При необходимости включить в строку можно пользоваться их клавиатурными обозначениями или аскикод. Строку рассматриваем как массив символов. Следовательно любой символ из строки можно изъять по его номеру.
Var s:string; //уже массив s[i] //обращение
Begin s:=строка_символ
s[5]:=’и’
writeln(‘s=’,s);
Операции над символами и строками
Символы можно присваивать и сравнивать друг с другом. Символы равны, если равны их аскикоды. Если не равны, то больше символ, у которого больше АСКИ код. #50 > #49 ‘r’ > ’R’
Каждый символ можно рассматривать как элемент множества Set of char (базовый символьный тип) var a:char; //символ
К такому символу можно применять операцию in(операцию проверки вхождения элемента в множество)
Var ch:char; b:byte: begin ch:=’a’; if ch in [‘a’..’z’] then b:=ord(ch);
К символу значении и переменные применяются функции:
ord(c:char):byte
ord – возвращает аски код символа с
che(x:byte):char; получение символа по аскикоду.
Для перебора символов
Pred(c:char):char; (предыдущий символ) sicc(c:char):char; (следующий символ)
Upcase(c:char):char; (переводит строчные в прописные)
Строки можно присваивать, сливать и сравнивать.
Слияние происходит с помощью знака + s:=s+’ : ‘;
Сравнение строк происходит посимвольно, строки равны если имею одинаковую длину и посимвольно эквивалентно.
‘abc’=’abc’ ‘abc’=’abxd’ (попарное сравнение по АСКИ коду)
Любой символ больше пуского
Пр. ‘abc’ >’aba’
Функции, процедуры для работы со строками:
Length (s:string):byte; Выдает текущую длину строки s.
Concat(s1,s2,..,sn:string):string Конкотинации или слияние строк в одну.
Copt (s:string; start,len:integer):string; возвращает подстроку длиной len с позиции start с строки s p:=copy (s,0,6); writeln(‘s=’,p);
Delete (var s:string; start,len:integer); Удаляет из s подстроку длиной len начиная с позиции старт.
Insert (var s:string;subs:string,start:integer); вставка в исходную строку s в строку subs с позиции start
Pos(subs,s:string):byte; ищет вхождение подстроки subs в строке s и возвращает номер 1 символ subs в s. Если subs не содержит s, то subs =0
a:=’учебный год’ b:=’год’ byte (c:=pos(b,a);
Преобразование строк
Процедуры:
Str(x[:f[:n]], var s:string числовое х в строковое s.Возможно задание формата для х.
X – не прописной тип. Х может быть переменной или значением целого или вещественного типа. Если задать формат, то F- общее количество, n – количество знаков после запятой. Число выравнивается по правому краю, избыток слева пробелами, если задать F<0, то выравнивание по левому краю, а излишки стираются.
Val (s:string; var x; var Errcode:integer); Преобразует строковое s в числовое х, если преобразование возможно, то Errocod=0, иначе Errcode выдаст номер символа с которой застопорилось преобразование. Тип х должен соответствовать содержимому строки s.