- •Лабораторная работа № 1 рациональные числа
- •Теоретические сведения
- •Синтаксис объявления класса tRational
- •Программа работы
- •Исходные данные
- •Контрольные вопросы
- •Лабораторная работа № 2 комплексные числа
- •Теоретические сведения
- •Синтаксис объявления класса tComplex
- •Программа работы
- •Исходные данные
- •Контрольные вопросы
- •Лабораторная работа № 3 векторы
- •Теоретические сведения
- •Синтаксис объявления класса tVector
- •Программа работы
- •Контрольные вопросы
- •Лабораторная работа № 4 матрицы
- •Теоретические сведения
- •Арифметические операции с матрицами
- •Синтаксис объявления класса tMatrix
- •Основные свойства и методы компонента StringGrid
- •Программа работы
- •Исходные данные
- •Исходные данные
- •Контрольные вопросы
- •Лабораторная работа № 5 строки
- •Теоретические сведения
- •Программа работы
- •Исходные данные
- •Контрольные вопросы
- •Лабораторная работа № 6 стек
- •Теоретические сведения
- •Синтаксис объявления класса tStack
- •Программа работы
- •Контрольные вопросы
- •Лабораторная работа № 7 очередь
- •Теоретические сведения
- •Синтаксис объявления класса tQueue
- •Программа работы
- •Контрольные вопросы
- •Лабораторная работа № 8 деревья
- •Теоретические сведения
- •Синтаксис объявления класса tTreeNode
- •Синтаксис объявления класса tTree
- •Программа работы
- •Контрольные вопросы
- •Библиографический список
- •Содержание
Программа работы
Создать новый проект String на закладке Classes в меню ФайлðНовыйðДругое и сохранить все его файлы в папке с именем ‘…\Лабораторная работа № 13’.
Создать на форме компоненты Edit1 ¸ Edit10 и кнопку Button1.
В обработчике нажатия кнопки Button1 объявить пять строковых переменных с типами array [0..N] of Char, ShortString, AnsiString, WideString и PChar, присвоить любое значение с числом символов не более 10, вывести их значения в компоненты Edit1 ¸ Edit5, а длину строк в компоненты Edit6 ¸ Edit10.
Запустить программу на выполнение и записать в отчет обработчик нажатия кнопки Button1, а также полученные результаты.
Установить в обработчике нажатия кнопки Button1 точку прерывания после инициализации всех строковых переменных, открыть диалоговое окно наблюдения (сочетание клавиш Ctrl+Alt+W) и задать в нем пять ранее объявленных переменных.
Запустить программу на выполнение и просмотреть в окне наблюдения значения символов всех переменных, начиная с 0 до 12, используя оператор индексации [ ]. Полученные результаты записать в отчет.
Используя оператор @ перед именами пяти переменных, в окне наблюдения просмотреть адреса ячеек памяти, начиная с которых расположены объявленные переменные, и подсчитать, какой объем памяти каждая из них занимает. Полученные результаты записать в отчет.
Используя стандартные процедуры и функции языка Object Pascal для работы со строками, написать программу, которая бы изменяла порядок слов в строке ‘Фамилия Имя Отчество’ на ‘Имя Отчество Фамилия’, и проверить её работоспособность для своих данных.
Разработать и протестировать указанный метод в таблице №3 в соответствии с номером Вашего варианта, не используя стандартные процедуры и функции обработки строк языка Object Pascal, кроме операторов присваивания ( := ) и индексации ( [ ] ).
Таблица №3
Исходные данные
№ Варианта |
Процедура или функция |
1 |
function Copy(S: String; Index, Count: Integer): String; Возвращает подстроку строки S, начинающуюся с позиции Index и содержащую до Count символов. |
2 |
function Concat(Sl , S2: String): String; Возвращает строку, склеенную из строк S1 и S2. |
3 |
procedure Delete(var S: String; Index, Count: Integer); Удаляет из S подстроку, начинающуюся с позиции Index и содержащую до Count символов. |
4 |
procedure Insert(Source: String; var S: String; Index: Integer) ; Вставляет строку Source в строку S, начиная с позиции Index. |
5 |
procedure Replace (Source: String; var S: String; Index: Integer); Заменяет символы строки S, начиная с позиции Index, на символы строки Source. |
6 |
procedure Reverse (var S: String); Переставляет символы из конца строки S в её начало. |
7 |
function PosFirst(Symbol: Char; S: String): Integer; Возвращает позицию первого вхождения символа Symbol в строку S. Если символа нет в строке S, то возвращается 0. |
8 |
function PosLast(Symbol: Char; S: String): Integer; Возвращает позицию последнего вхождения символа Symbol в строку S. Если символа нет в строке S, то возвращается 0. |
9 |
function Pos (Symbol: Char; S: String; Count: Integer): Integer; Возвращает позицию Count вхождения символа Symbol в строку S. Если символ входит в строку S меньше Count раз, то возвращается 0. |
10 |
function Count (Symbol: Char; S: String): Integer; Возвращает число вхождений символа Symbol в строку S. Если символа нет в строке S, то возвращается 0. |
11 |
function StrComp (Str1, Str2: String): Integer; Сравнивает две строки Str1 и Str2 c учетом регистра. Возвращает: -1, если Str1 < Str2; 0, если Str1 = Str2; и 1, если Str1 > Str2. |
12 |
function StrEnd (S: String): Integer; Возвращает позицию символа конца строки S. |