- •Коренькова Татьяна Николаевна
- •Часть 2
- •Практическая часть
- •Типизированные файлы.
- •Нетипизированные файлы.
- •Библеотека graph
- •Практическая часть Основные графические операторы для построения изображений:
- •Процесс построения изображений с помощью графических процедур разбивается на отдельные этапы:
- •Пример программы построения графика функции.
- •Практическая часть
- •Практическое занятие №24. Изучение интегрированной среды разработчика.
- •Ход работы
- •1. Загрузите систему визуального программирования Delphi.
- •Закройте окно программы Forml, минимизируйте главное окно Delphi и создайте на рабочем диске папку с названием группы, а в ней папку, названную вашей фамилией. Снова активизируйте окно Delphi.
- •Сохраните созданную программу в своей папке.
- •6. Визуально ознакомьтесь со свойствами формы Left, Тор, Width и Height.
- •7. Исследуйте, как изменение значений свойств Left, Тор, Width или Height формы в окне ObjectInspector ведет к изменению расположения или размера формы.
- •8. Измените цвет фона формы.
- •Выполните программу еще раз (см. Пункт 3).
- •Вставьте в форму текстовое поле (объект типа Label) с текстом «Анкета студента».
- •12. Вставьте в форму объект типа Image (картинка).
- •13. Вставьте свою портретную фотографию с помощью свойства Picture (иллюстрация) объекта Imagel.
- •14. Наложите свою художественную фотографию на портретную, вставив в форму еще один объект типа Image.
- •15. Поэкспериментируйте со свойством Visible (видимость) двух изображений, каждый раз выполняя программу (см. Пункт 3).
- •16. Вставьте в форму кнопки для поочередного отображения наложенных одна на другую фотографий - два объекта типа Button с названиями Buttonl и Button2.
- •17. Запрограммируйте кнопку «Портретная фотография» так, чтобы после ее нажатия в форме появлялась портретная фотография.
- •18. Запрограммируйте кнопку «Художественная фотография» соответственно ее назначению (см. Пункт 17).
- •Запустите программу и убедитесь, что кнопки выполняют свои функции. Закройте окно программы «Анкета студента».
- •Создайте ехе-файл проекта
- •Практическое занятие №25 Создание простого проекта. Задачаобобменевалюты
- •Ход работы
- •1. Вставьте в форму два объекта типа RadioButton (переключатель), как показано на рис. 7.
- •2. Задайте начальное значение второго переключателя как активное.
- •16. Запустите программу и убедитесь, что переключатели выполняют предписанные им функции.
- •17. Запрограммируйте кнопку «Выход».
- •18. Запрограммируйте кнопку «Вычислить».
- •24. Создайте ехе-файл Вашей программы.
- •25. Закройте среду Delphi, запустите созданную программу и выполните вычисления для разных входных данных.
- •26. Продемонстрируйте созданную форму преподавателю. За- кончите работу.
- •Практическое занятие №26 Объявление класса, создание экземпляров класса.Задачатабулированияфункции Объекты Memo, MainMenu, PopupMenu, CheckBox, GroupBox. Программирование циклов
- •Ход работы
- •Загрузите среду визуального программирования Delphi.
- •Поменяйте заголовок (Caption) формы с «Forml» на «Табулирование функции» (без кавычек) и увеличьте размеры формы в вертикальном направлении.
- •Смените пиктограмму в левом Верхнем углу формы, указав конкретный файл с рисунком пиктограммы в поле значения свойства Icon (пиктограмма) формы.
- •21. Запрограммируйте команду «Табулировать».
- •Практическое занятие №27 Создание наследованного класса. Задачаобиржеценныхбумаг
- •Ход работы
- •8. В окне текста программы перед разделом implementation введите описание констант и переменных программы:
- •10. В окне текста программы после раздела implementation введите описание метода Refresh формы.
- •Сохраните выполненную на данный момент работу в своей папке.
- •Практическое занятие №28 Перегрузка методов. Задачаотелефонномсправочнике
- •Ход работы
- •8. Сохраните выполненную на данный момент форму в своей папке.
- •9. С помощью мыши задайте ширину столбцов таблицы, на- пример так, как показано на рис. 16.
- •10. Добавьте на форму главное меню и введите названия его команд, как показано на рис. 16 и рис. 17.
- •11. Создайте окно формы «о программе» (см. Рис. 18).
- •Сохраните работу и запустите проект на выполнение.
- •18. Добавьте на форму два объекта - стандартные диалоги Windows для открытия и сохранения файлов.
- •19. Запрограммируйте процедуры открытия и сохранения фай- лов телефонного справочника (команды главного меню «Прочитать из файла» и «Записать в файл»).
- •20. Напишите процедуру создания формы.
- •21. Напишите процедуру заполнения полей редактирования NewEdit.
- •22. Напишите процедуру заполнения комбинированного списка NewComboBox.
- •Сохраните работу, запустите программу, заполните таблицу данными и убедитесь в том, что программа правильно записывает на диск и считывает с диска файлы телефонных справочников.
- •Запрограммируйте команду главного меню «Сохранить изменения в списке записей».
- •Практическое занятие №29 Создание проекта с использованием кнопочных компонентов.
- •Ход работы
- •5. Дважды щелкните на первом таймере и запрограммируйте мигание сообщения «Обязательно нажмите на кнопку «Готово» после размещения рисунков!!» так:
- •6*. Введите описание глобальных переменных программы:
- •6**. Введите описания глобальных констант и переменных программы:
- •Аналогично запрограммируйте соответствующие события для перетягивания двух других рисунков.
- •Создайте еще один метод формы tForml — функцию ImagelnShape для проверки расположения рисунка (объекта Image) в середине некоторой геометрической фигуры (объекта Shape).
- •11*. Запрограммируйте кнопку "Готово", проверяющую правильность расположения рисунков в середине фигур и выводящую информационное окно с сообщением "Правильно!" или "Неправильно!":
- •11**.Запрограммируйте кнопку "Готово", проверяющую правильность расположения рисунков в середине фигур:
- •Сохраните программу и проект в своей папке.
- •Запустите программу. Перетягивайте мышью рисунки на середину соответствующих фигур.
- •Создайте ехе-файл программы и поупражняйтесь с ней.
- •Упражнения. Совершенствование проекта
- •Практическое занятие №31 Создание проекта с использованием компонентов ввода и отображения чисел, дат и времени. Калькулятор
- •Постановка задачи.
- •Ход работы.
- •Упражнения. Совершенствование проекта.
- •Практическое занятие №33 Разработка оконного приложения. Создание новых форм с меню, геометрическими фигурами, палитрой и со шкалой.
- •Практическое занятие №34 Разработка оконного приложения с несколькими формами. Разработка проекта Halfbottle.
- •Постановка задачи.
- •Ход работы
- •Упражнения. Совершенствование проекта.
- •Практическое занятие №35 Разработка многооконного приложения. Проект “Худой или полный?”.
- •Упражнения
- •Сообщения и коды ошибок
- •50. Do expected (Нуженоператор do).
- •54. Of expected (Требуется of).
- •55. Interface expected (Требуется интерфейсная секция).
- •57. Then expected (Требуется then).
- •58. To or downto expected (ТребуетсяТОили downto).
- •73. Implementation expected (Отсутствует исполняемая часть модули).
- •102. String constant expected (Нужнаконстантастроковоготипа).
- •106. Character expression expected (Предшествующее выражение должна иметь символьный тип).
- •161. Code generation error (Ошибка генерации кода).
- •162. Asm expected (Отсутствует зарезервированное слово asm). Ошибки, возникающие во время выполнения программ
- •Ошибки ввода-вывода
- •Критические ошибки
- •Фатальные ошибки
- •Литература
21. Запрограммируйте команду «Табулировать».
Свойство Lines объекта типа Memo комплексное, то есть оно также является объектом со своими свойствами и методами. Результат работы данной программы - это таблица, которая состоит из нескольких строк. Чтобы добавить в поле Memol новую строку таблицы, надо поменять значения комплексного свойства Lines (строки) с помощью его метода Add (добавить) с одним аргументом - символьной строкой: Memol.Lines.Add('cTpoKaсимволов'). Щелкните на команде «Табулировать» из главного меню один раз. Появится заготовка к процедуре, которую заполните так:
procedureTforml.N2Click(Sender: TObject); var x, у, h, a, b : real;
cod : integer;
strl, str2 : string;
begin
{В объект Memol вставляем строку с подписями столбцов
значений аргумента и функции) Memo 1. Lines.Add(' X F(X)');
{Получаем числовое значение левой границы) Val(Editl.Text, a, cod);
{Получаем числовое значение правой границы)
Val(Edit2.Text, Ъ, cod);
{Получаем числовое значение шага)
Val(Edit3.Text, h, cod);
х:=а; {Табулируем функцию)
whilex<=b+h/2 do{пока аргумент х не превысит ) begin {правую границу с определенным запасом)
y:=sm(x)+l; {Вычисляем значения функции) {Формируем символьные строки из значений ) Str(x:8:2,strl); { аргумента и функции) Str(y:8:3, str2); ifCheckBoxl.Checkedthen
{Вставляем строку в поле Memol)
Memol.hmes.Add(strl+str2); x:=x+h; {Увеличиваем аргумент на величину шага) endend;
Выполните программу и поупражняйтесь с разными значениями левой, правой границы и шага аргумента. Закройте окно программы «Табулирование функции».
Сохраните созданную программу в своей папке.
Создайте ехе-файл программы.
Закройте Delphi, запустите созданную программу и выполните вычисления для различных входных данных.
Продемонстрируйте созданную форму преподавателю. Закончите работу.
Задача 3.1. Добавьте к контекстному меню команду «Выход» и запрограммируйте ее.
Задача 3.2. Создайте и запрограммируйте еще одно контекстное меню, содержащее команды "Убрать все флажки", "Включить все флажки", "Включить инверсивно". Такое меню должно появляться после щелчка правой клавишей мыши в любой точке панели с флажками. Не забудьте "привязать" это меню (PopupMenu2) к панели с флажками (см. пункт 19).
Задача 3.3. Модифицируйте программу, предусмотрев возможность табулирования функции и ее производной. Выбор варианта (с производной или без неё) осуществить с помощью дополнительного флажка.
Подсказка. Выполните такие действия: • вставьте в форму объект типа CheckBox (флажок), его свойству Caption присвойте значение «Производная», выберите для подписи кирилизованный шрифт 12-го размера, выровняйте вставленный объект.
• поменяйте программный код кнопки «Табулировать», использовав в тексте процедуры ButtonlClick такие команды:
{Объявите переменные strl, str2, str3 как string в начале процедуры}
ifCheckBox.Checkedthen{если флажок установлен} Memol.Lines.Add(' X F(X) F "(X)')
{Строка содержит подписи для столбцов значений аргумента, функции и ее производной} else{Иначе - если флажок не установлен} {Строка содержит лишь подписи для столбцов значений аргумента и функции} Memol. Lines.Add(' X F(X)');
• • •
{А в цикле задаем:}
y:=sin(x)+l; {Вычисляем значение функции}
yl:=cos(x); {Вычисляем значение производной}
if CheckBox.Checked then {Еслифлажокустановлен} begin
Str(x:8:2, strl); Str(y:8:2, str2); Str(yl:8:2, str3); str3 := strl + str2 + str3
end; {Формируем символьную строку из значений аргумента, функции и ее производной, между которыми вставляем несколько пропусков}
else{Если флажок не установлен} begin
Str(x:8:2, strl); {Формируем символьную строку} Str(y:8:2, str2); {из значений аргумента и функции) str3 :== strl + str2 end;
• • •
Замечание. Номера объектов'в Вашей программе могут отличаться от приведённых выше.
Задача 3.4. Определите количество элементов массива больших 0,5 и меньших 1.
Задача 3.5. Предусмотрите в созданной программе дополнительную возможность для определения максимального и минимального значений функции.
Подсказка. В теле процедуры ButtonlClick, описывающей программный код кнопки «Табулировать», воспользуйтесь такими командами:
{В начале процедуры:}
max:=sin(a)+l;
• • •
{Вцикле:}
if max<y then max:=y;
• • •
{Послецикла:}
Str(max:8:3, strl); Memol.LinesAdd( 'max=' + strl);
Задача 3.6. Поменяйте процедуру команды «Табулировать» так, чтобы для включенного флажка «В массив» вывод результатов выполнялся в одномерный массив.
Задача 3.7. Вставьте в форму объект ChartFX из закладки OCX для построения графика функции. Дважды щелкните на нем и на закладке Appearance из списка Gallery Туре выберите пиктограмму нужного графика. На закладке 3DView уберите флажок 3D. На закладке DataValues задайте ожидаемые (ориентировочно) максимальное и минимальное значения функции. Создайте дополнительный пункт меню или вставьте кнопку «Нарисовать график» для получения графика. Запрограммируйте кнопку так, например:
procedureTForml.ButtonlClick(Sender: TObject); vari, n : integer;
x : real;
s : string;
begin
x:=0;
n:=10; {n- количествоточек} ChartFXl.OpenDataEx(COD_VALUES, 1, n); for i := 0 to n-1 do begin
ChartFXl.Value[i].:= sin(x)+l ; {Формируемлегендуоси OX} str(x:5:2,s);
ChartFX 1. Legend[i]:=s;
x:=x+0.5;
end;
ChartFXl .CloseData(COD_VALUES);
end;
Задача 3.8. Совместите процессы табулирования функции и построения графика.
