- •Часть 2
- •Лабораторная работа № 6. Программирование циклических вычислительных процессов. Итерационные циклы
- •Отладка модулей проекта
- •Отладка синтаксических ошибок
- •Отладка логических ошибок
- •Итерационные циклы
- •Текст модуля UnIterate
- •Пример создания приложения
- •Сохранение проекта
- •Размещение компонентов на Форме
- •6.4. Выполнение индивидуального задания
- •Лабораторная работа № 7. Программирование с использованием строк
- •Краткие теоретические сведения
- •7.1.1. Символьные типы
- •7.1.2. Строковые типы
- •7.1.3. Процедуры и функции для работы со строками
- •Применение компонентов ListBox и ComboBox для работы со строками
- •7.3. Пример создания приложения
- •7.3.1. Сохранение проекта
- •7.3.2. Размещение компонентов на Форме
- •7.3.3. Создание процедуры-обработчика события активизации Формы FormActivate.
- •7.3.4. Создание процедуры-обработчики события ComboBox1KeyPress
- •7.3.5. Создание процедуры-обработчики события нажатия клавиши «мыши» ComboBox1Click
- •7.3.6. Работа с приложением
- •7.4. Текст модуля UnStr
- •7.5. Выполнение индивидуального задания
- •С использованием записей
- •8.1. Краткие теоретические сведения
- •8.2. Пример создания приложения
- •8.2.1. Указания по созданию приложения
- •8.2.2. Размещение компонентов по Форме
- •8.2.3.Создание процедур обработки событий FormCreate и ButtonClick
- •8.2.4. Работа с приложением
- •8.2.5. Текст модуля UnZap
- •8.3. Выполнение индивидуального задания
- •Лабораторная работа № 9. Програмирование с использованием файлов
- •9.1. Краткие теоретические сведения
- •9.2. Пример создания приложения
- •9.2.1. Указания по созданию приложения
- •9.2.2.Размещение компонентов по Форме.
- •9.2.3.Создание процедур обработки событий
- •9.2.4. Текст модуля UnFile
- •9.2.5. Работа с приложением
- •9.3. Выполнение индивидуального задания
- •Лабораторная работа № 10. Программирование с использованием функций и процедур. Процедурные типы. Создание модулей
- •10.1. Краткие теоретические сведения
- •10.1.1. Объявление и описание функций и процедур
- •10.1.2. Различные варианты передачи параметров в функции и процедуры
- •10.1.3. Процедурные типы
- •Текст модуля UnFancProc
- •Текст модуля UnModul
- •Выполнение индивидуального задания
- •Лабораторная работа № 11. Программирование с использованием динамических структур данных
- •11.1. Краткие теоретические сведения
- •11.1.1. Указатели
- •11.2. Использование динамических переменных
- •Пример создания приложения
- •11.3.1. Сохранение проекта
- •Размещение компонентов на Форме
- •11.3.3. Создание процедуры обработки событий FormCreate
- •Текст модуля UnDinMas
- •11.5. Выполнение индивидуального задания
- •Лабораторная работа № 12. Программирование с использованием средств для построения и отображения графиков
- •12.1. Методика построения графиков с помощью компонента tChart
- •12.2. Пример написания программы
- •12.2.1. Настройка формы
- •12.2.2. Работа с компонентом tChart
- •12.2.3. Написание программы обработчика события создания формы
- •12.2.4. Написание программ обработчика событий нажатия на кнопки
- •12.3. Модуль программы построения и отображения графиков
- •12.4. Выполнение индивидуального задания
- •Приложение 1 п1. Свойства и методы компонентов п1.1. Общие свойства компонентов
- •2. Компоненты страницы standard
- •3. Компоненты страницы additional
- •4. Компоненты страницы dialogs
- •П2. Простые типы данных языка object pascal
- •П3. Процедуры и функции для работы со строками
- •Литература
10.1.3. Процедурные типы
Процедуры в Delphi разрешается использовать при описании новых типов, На основании таких типов, обладающих равными правами с другими типами, можно описывать переменные, что позволяет передавать подпрограммы в качестве параметров. Это удобно, когда над аргументами надо выполнять сложные различные действия в зависимости от некоторых условий.
Описание типов осуществляется после ключевого слова Type, например в виде, показанном в модуле UnModul UnModul (см. пример, 10.3):
type
func=function (x:real):real;
proc=procedure (x:real; var s:real);
Пример создания приложения
Задание.
Создать Windows-приложение,
которое выводит таблицу значений функции
и ее разложения в ряд в виде суммы
для значений x
от xn
до xk
с шагом h=(xk-
xn)/8.
Создать модуль, в котором вычисление
значений Y(x)
оформить в виде функции, а вычисление
S(x)
– в виде процедуры. Подключить модуль
к проекту и выполнить созданное
приложение.
Сохранение проекта
Для нового проекта создайте новую папку, например, X: \ 35эи \ LAB10.
Сохраните проект File | Save Project As…Сначала сохраните модуль под именем UnModul, затем файл проекта под именем PrModul.
Размещение компонентов на Форме
Один из возможных вариантов панели интерфейса создаваемого приложения показан на рисунке 10.1.
Разместим на форме компоненты Label, Edit, SpinEdit, BitBtn и Memo.
SpinEdit
Edit
BitBtn
Label
Memo
Рис. 10.1. Размещение компонентов на форме
Текст модуля UnModul приведен в пункте 10.2.5.
Создание модуля и подключение его к проекту
В соответствии с заданием создадим модуль, в котором вычисление значений Y(x) оформим в виде функции, а вычисление S(x) – в виде процедуры. Для создания модуля откроем в главном меню пункт File, выберем опцию New (Новый…), затем Unit. Откроется окно с «пустым» модулем Unit2. С помощью опции Save As… меню File сохраним модуль в папке с файлами проекта, присвоив ему имя, например, UnFuncProc.
В этом модуле операторы вычисления Y(x) в виде подпрограммы-функции F и операторы вычисления S(x) в виде подпрограммы-процедуры Summa оформим по правилам создания модулей. Текст модуля UnFuncProc приведен в пункте 10.2.4.
Для подключения модуля UnFuncProc к проекту необходимо сделать активным окно с текстом модуля UnModul, затем в меню File выбрать опцию Use Unit… и в открывшемся окне Use Unit указать имя используемого модуля UnFuncProc. Убедитесь в том, что в разделе Implementation модуля UnModul появился оператор Uses UnFuncProc, который Delphi вставила в текст модуля UnModul.
Откройте главный файл проекта и убедитесь в том, что проект не содержит посторонних модулей и файлов.
Текст модуля UnFancProc
unit UnFuncProc;
interface
Function F(x:real):real;
Procedure Summa(x:real;var s:real);
implementation
Function F(x:real):real;
begin
F:=2*(sqr(cos(x))-1) ;
end;
Procedure Summa(x:real; var s:real);
var
n,i: byte;
p: real;
begin
p:=1; s:=0;
for i:=1 to n do
begin
p:=p*(-sqr(2*x))/((2*i-1)*2*i);
s:=s+p;
end;
end;
end.
