Лабораторная работа 2.10. Представление и обработка табличных данных с помощью компонентов Delphi

Задание. Используя компонент TStringGrid, сформировать две квадратные матрицы, вычислить след матриц, транспонировать и вывести ту, у которой след наименьший.

Замечание. Используйте результаты лабораторной работы 2.9.

  • 1. В секции реализаций модуля Implementation задайте с помощью служебного слова const размерность квадратной матрицы (количество строк/столбцов), опишите тип целочисленной квадратной матрицы и объявите две переменные этого типа.
  • 2. Удалите ненужные визуальные компоненты и поместите на форму три компонента класса TStringGrid (стр. Additional) для ввода исходных матриц и вывода результирующей матрицы.
  • 3. В обработчике события OnActivate формы задайте размерность компонентов для работы с матрицами (используйте поля RowCount и ColCount).
  • 4. Введите с клавиатуры элементы двух исходных матриц (для редактирования ячеек компонентов класса TStringGrid задайте значение Options — goEditing = true).
  • 5. Реализуйте в виде отдельной процедуры процедуру определения следа матрицы.
  • 6. В обработчике события bbRunClick реализуйте вызов процедур определения следа матрицы для двух исходных матриц. Выведите на экран результаты расчетов.
  • 7. Поместите на форму еще одну кнопку. В обработчике события OnClick реализуйте вывод на экран транспонированной матрицы с наименьшим следом.
  • 8. Запустите программу на выполнение и проверьте правильность ее работы
  • 9. Используя метод OnGetEditMask для проверки вводимых в ячейки данных, разрешите ввод только целых чисел.
  • 10. Запустите программу и проверьте ее работу.

Контрольные вопросы

  • 1. Какие компоненты Delphi можно использовать для представления и обработки табличных данных?
  • 2. Как определить количество строк и столбцов компонента TStringGrid?
  • 3. Как проверить правильность ввода данных в ячейки компонента TStringGrid?

Лабораторная работа 2.11. Обработка текстовых файлов

Задание 1. Составить программу, которая считывает текст из файла, создает и сохраняет текст в файле.

  • 1. Начните новый проект (не используйте шаблон «Учебная программа»).
  • 2. Измените свойство Caption формы на текст «Текстовый редактор». Свойство Name компонента Form измените на fmMain.
  • 3. На форме разместите компоненты MainMenu — главное иерархическое меню — с пунктами Файл (подопции Создать, Открыть и Сохранить) и Выход. Присвойте объектам соответствующие имена mnFile, mnNew, mnOpen, mnSave, mnExit.
  • 4. Разметите на форме компонент PopupMenu (стр. Standard) — контекстное вспомогательное меню, которое появляется при нажатии правой кнопки мыши. Дважды щелкните на компоненте PopupMenul. Введите в это окно Создать, Открыть, Сохранить, Выход.
  • 5. Свойству PopupMenu формы присвойте имя компонента — PopupMenul.
  • 6. Разместите на форме компоненты OpenDialog и SaveDialog (стр. Dialog).
  • 7. Разместите на всем свободном пространстве формы многострочный редактор (компонент Мето) с именем Name — Memol. Очистите область ввода (свойство Lines). Добавьте вертикальные и горизонтальные линии скроллинга.
  • 8. Для команды Открыть пункта меню Файл создайте обработчик события, содержащего следующие операторы:

if not OpenDialogl .Execute then exit;

if FileExists(OpenDialogl.FileName) then

Memol .Lines.LoadFromFile(OpenDialogl .FileName)

else

begin

ShowMessagefОшибка при открытии файла' + OpenDialogl .FileName);

exit

end;

  • 9. Функция Execute любого модального окна (в данном случае диалогового окна) возвращает true при успешном завершении диалога и false при нажатии клавиши Отмена. Функция FileExists возвращает true, если файл с выбранным в окне диалога именем FileName имеется на диске, или false, если его там нет (в данном случае создается новый пустой файл). Метод LoadFronFile загружает текст из файла и помещает его в компонент Мето.
  • 10. Для команды Сохранить создайте обработчик события, содержащий следующие операторы:

if not SaveDialogl .Execute then exit;

Memo 1 .Lines.SaveToFile(SaveDialogl.FileName); {сохранение в файле текста из окна редактора}

  • 11. Создайте обработчик события для пункта меню Создать, введя в него очистку компонента Memol.
  • 12. Создайте обработчик события пункта меню Выход.
  • 13. Чтобы иметь возможность отмены решения о завершении программы при выборе пункта меню Выход, создайте для формы следующий обработчик события OnCloseQuery:

if MessageDlg('3aeepiuumb программу?',

mtConfirmation, [mbYes,mbNo],0) = mrYes

then CanClose:=true

else CanClose:=false;

  • 14. Функция MessageDlg создает диалоговое окно с сообщением и двумя кнопками, позволяющими либо завершить программу (CanClose:=true) при нажатии кнопки Yes, либо продолжить работу (выбор кнопки No).
  • 15. Путем копирования создайте такие же обработчики для всех команд контекстного меню.

Задание 2. Добавьте в программу возможность преобразования строчных букв текстового файла в прописные, т.е. заглавные.

  • 1. Добавьте в пункт меню Файл и в контекстное меню еще одну подопцию Преобразовать.
  • 2. В секцию Implementation модуля поместите подпрограмму замены строчных букв прописными.

Procedure Perevod(var s: string);

begin

s: = ANSIUpperCase(s);

end;

  • 3. В обработчик события OnClick команды Преобразовать в раздел описаний введите описание переменной S типа String и файловой переменной типа TextFile.
  • 4. В тело обработчика события добавьте следующие операторы:
    • - связывание файловой переменной с выбранным файлом и открытие его на чтение (предупредите возникновение исключительной ситуации, если имя файла не определено);
    • - построчное считывание в цикле текста, перевод каждой строки с помощью подпрограммы и вывод результата в компонент Memol;
    • - закрытие файла командой.

Текст процедуры.

procedure TfmMain.N5Click(Sender: TObject);

var s: string;

T: TextFile;

begin

if not OpenDialogl .Execute then Exit;

if FileExists(OpenDialogl.FileName) then

Memol .Lines.LoadFromFile(OpenDialogl .FileName)

else

begin

ShowMessage('Ouiu6Ka при открытии файла

'+OpenDialogl. FileName);

Exit;

end;

Memol.Lines. Clear;

AssignFile(T, OpenDialogl. FileName);

Reset(T);

while not(EOF(T)) do

begin

Readln(T,S);

perevod(s);

Memol.Lines. Add(S);

end;

CloseFile(T);

end;

5. Запустите программу и проверьте ее работу.

Контрольные вопросы

  • 1. Как происходит выбор файла?
  • 2. Каким образом текст считывается из файла?
  • 3. Каким образом текст сохраняется в файле?
 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ   След >