- •1. Нарисуйте и опишите структуру главного окна системы Delphi. Для чего нужно окно инспектора объектов и как им пользоваться?
- •2. Объясните назначение окна формы. Как на нём размещать компоненты и настраивать их параметры?
- •4. Что собой представляет программа решения задачи в системе Delphi? Как организуются процедуры обработки событий: «щелчок мыши на кнопке», «создание формы»?
- •8. Как запустить программу? Как работать с программой? Как остановить программу для её редактирования?
- •9. Какие файлы содержит программа, их структура? Как организовать запись программы в отдельный каталог? Как создать новый каталог?
- •12. Приведите примеры схем циклических алгоритмов и их программ с использованием оператора repeat.
- •13. Приведите примеры схем циклических алгоритмов и их программ с использованием оператора while.
- •14.Приведите примеры схем циклических алгоритмов и их программ с использованием оператора for.
- •15.Как организуется работа с массивами в языке Pascal: описание, обращение к элементам, операции над массивами? Проиллюстрируйте на примерах.
- •16. Понятия статического и динамического распределения памяти. Что такое указатель? Операции над указателями. Что такое динамическая переменная? Наложение переменных с помощью указателя.
- •17. Понятие множеств в языке Pascal. Как они описываются? Какие операции над ними допустимы? Привести примеры их полезного использования.
- •18. Что такое строки в языке Pascal? Как они описываются, что такое текущая и максимальная длина строки? Опишите процедуры и функции обработки строк.
- •Var [описание используемых переменных];
- •Var [описание используемых переменных];
18. Что такое строки в языке Pascal? Как они описываются, что такое текущая и максимальная длина строки? Опишите процедуры и функции обработки строк.
Строка – это упорядоченная последовательность из определенного количества символов. Количество символов последовательности называется длиной строки. Синтаксис: var s: string[n]; var s: string; n - максимально возможная длина строки - целое число в диапазоне 1..255. Если этот параметр опущен, то по умолчанию он принимается равным 255.
Текущая длина строки- показывает количество символов строки в каждый конкретный момент времени.
Переменные строкового типа вводятся следующим образом:
Var
s1 : String[N] ; // Короткая строка, N ≤ 255
s2 : ShortString; // Короткая строка, N = 255
s3 : String; // Длинная строка, N ≤ 2 ГБайт
s4 : WideString; // Широкая строка
s5 : PChar; // Нуль-терминальная строка
Короткие строки занимают фиксированное количество байт. Строка типа String[N] может содержать nt (0≤nt≤255) символов. Под переменную типа String[N] отводится N+1 байт. В s1[0] содержится текущая длина строки. Строка ShortString эквивалентна String[255].
Длинная строка типа String. При работе с этим типом данных, в отличие от String[N] память выделяется по мере необходимости (динамически) и может занимать практически всю доступную программе память. Переменные этого типа явл типизированными указателями.
Широкая строка типа WideString. Введена для обеспеч совместимости с компонентами, основанными на OLE-технологии. От типа String отличается только тем, что для представления каждого символа используется не один, а два байта.
Нуль-терминальная строка типа PChar. Представляет собой цепочку символов, ограниченную символом #0. Максимальная длина строки ограничена только доступной программе памятью. Нуль-терминальные строки широко используются при обращениях к API-функциям Windows (API – Application Program Interface – интерфейс прикладных программ).
К каждому элементу строки можно обращаться с помощью индекса, аналогично обращению к элементу массива символов: s[i]:=s[j].
Строковые константы запис-тся как последовательности символов, ограниченные апострофами. Допускается формирование строк с исп-нием записи символов по десятичному коду (в виде комбинации # и кода символа) и управляющих символов (комбинации ^ и некоторых заглавных латинских букв).
Пример: 'Текстовая строка'; #54#32#61; 'abcde'^A^M. Пустой символ обозначается двумя подряд стоящими апострофами. Выражения типа char можно присваивать любым строковым переменным.
В системе Pascal имеется несколько полезных стандартных процедур и функций, ориентированных на работу со строками.
Процедуры:
Delete (St:String; pz,n:integer) - процедура удаляет из строки-параметра n символов начиная с позиции pz;
Пример.
s := 'Система Turbo Pascal';
delete(s,8,6); {s будет равно 'Система Pascal'};
Insert (St,St1;string;pz:integer); - процедура предназначена для вставки строки St внутрь строки St1 начиная с позиции pz;
Пример.
s := 'Система Pascal';
Insert ('Turbo ',s,9); {s будет равно 'Система Turbo Pascal'};
Str(X: арифметическое выражение; var st: string)
Процедура преобразует численное выражение X в его строковое представление и помещает результат в st.
Val (st: string; x: числовая переменная; var code: integer).
Процедура преобразует строковую запись числа, содержащуюся в st, в числовое представление, помещая результат в x. x - может быть как целой, так и действительной переменной. Если в st встречается недопустимый (с точки зрения правил записи чисел) символ, то преобразование не происходит, а в code записывается позиция первого недопустимого символа. Выполнение программы при этом не прерывается, диагностика не выдается. Если после выполнения процедуры code равно 0, то это свидетельствует об успешно произошедшем преобразовании.
Функции:
St: =Copy (St1,pz,n); - выделяет из строки St1 подстроку St из n символов начиная с позиции pz, при этом St1 сохраняется;
Пример.
s := 'Система Turbo Pascal';
s2 := copy(s, 1, 7); {s2 будет равно 'Система'}
s3 := copy(s, 9, 5); {s3 будет равно 'Turbo'}
s4 := copy(s, 15, 6); {s4 будет равно 'Pascal'}
N:=Length(St); - определяет текущую длину строки;
Пример.
n := length('Pascal'); {n будет равно 6}
pz:=pos(St,St1); - определяет номер позиции, начиная с которой внутри строки St1 расположена строка St, если внутри St1 нет St тогда pz=0;
Пример.
s := 'Система Turbo Pascal';
x1 := pos('Pascal', s); {x1 будет равно 15}
x2 := pos('Basic', s); {x2 будет равно 0}
Concat(s1,[s2,...,sn]:string):string
Функция выполняет слияние строк-параметров, которых может быть произвольное количество. Каждый параметр является выражением строкового типа. Если длина строки-результата превышает 255 символов, то она усекается до 255 символов. Данная функция эквивалентна операции конкатенации "+" и работает немного менее эффективно, чем эта операция.
В дополнение приведем некоторые функции, связанные с типом char, но которые тем не менее часто используются при работе со строками.
Chr(n: byte): char
Функция возвращает символ по коду, равному значению выражения n. Если n можно представить как числовую константу, то можно также пользоваться записью #n.
Ord(ch: char): byte;
В данном случае функция возвращает код символа ch.
UpCase(c: char): char;
Если c - строчная латинская буква, то функция возвращает соответствующую прописную латинскую букву, в противном случае символ c возвращается без изменения.
19. Понятие подпрограммы, для чего они нужны? Как описывается подпрограмма в виде Procedure? Что такое формальные и фактические параметры? В чём различие параметров-значений и параметров-переменных? Как вызвать процедуру?
Подпрограмма – это определенным образом оформленная группа операторов, которая м.б вызвана по имени любое количество раз из любой точки основной программы.
Подпрограммы подразделяются: на процедуры и функции. Под описанием подпрограммы понимается указание ее заголовка и тела. Процедура имеет следующую структуру:
Procedure <имя процедуры> ([список имен формальных параметров с указанием их типов]);
Const [описание используемых констант];
Type [описание используемых типов];