
- •Информатика
- •Работа с программой Проводник
- •2.1. Файловая структура, файлы, папки
- •2.2. Работа с программой Проводник
- •2.2.1. Навигация по файловой структуре
- •2.2.2. Запуск программ и открытие документов
- •2.2.3. Создание папок
- •2.2.4. Копирование и перемещение файлов и папок
- •2.2.5. Удаление файлов и папок
- •2.2.6. Создание ярлыков файлов, представление объектов
- •3. Выполнение работы
- •4. Форма отчета
- •2.2. Содержимое стандартного набора вкладок
- •2.3. Ввод, редактирование, форматирование и рецензирование текста
- •2.4. Основы работы с таблицами
- •2.5. Ввод формул
- •2.6. Сохранение и печать созданного документа
- •3. Выполнение работы
- •4. Форма отчета
- •5. Контрольные вопросы
- •6. Литература
- •Основы работы с пакетом Microsoft Excel
- •2. Основные сведения
- •2.1. Элементы окна Excel
- •2.2 Создание электронных таблиц пакетом Microsoft Excel
- •Ячейки и их адресация
- •Ввод, редактирование и форматирование данных
- •Вычисления в электронных таблицах
- •Копирование содержимого ячеек
- •Использование стандартных функций
- •Построение диаграмм и графиков
- •2.3 Сохранение и печать созданной книги
- •3. Выполнение работы
- •4. Форма отчета
- •5. Контрольные вопросы
- •6.Литература
- •Создание электронной таблицы
- •Построение диаграммы
- •Создание электронной таблицы
- •Построение диаграммы
- •Построение гистограммы
- •Построение гистограммы
- •2.2. Основные этапы составления программы
- •2.3. Оформление окна программы (размещение компонентов на форме)
- •2.4. Назначение и основные свойства некоторых компонентов
- •Компонент Form
- •Компонент Label (Метка)
- •Компонент Edit (Редактор)
- •Компонент Memo (Многострочный текстовый редактор)
- •Компонент Button
- •Компонент ComboBox (Блок с комбинированным раскрывающимся списком)
- •3. Выполнение работы
- •4. Форма отчета
- •2.2. Создание заготовок процедур-обработчиков событий. Текст модуля программы
- •2.2. Оформление окна программы
- •2.3. Изменение свойств компонентов. Получение заготовки процедуры
- •2.4. Программирование вычислений определенных интегралов
- •2.1.2. Сложение и вычитание матриц
- •2.1.3. Умножение матрицы на число
- •2.1.4. Умножение матриц
- •2.1.5. Транспонирование матрицы
- •2.1.6. Линейные преобразования
- •2.2 Массивы и переменные с индексами
- •2.3. Составление программ реализующих основные матричные операции
- •Задание 1
- •Оформление эскиза окна программы
- •Размещение компонентов на форме и задание им нужных свойств
- •Составление программы
- •3. Выполнение работы
- •4. Перечень заданий
- •5. Форма отчета
- •6. Контрольные вопросы
- •7. Литература
Размещение компонентов на форме и задание им нужных свойств
После первого запуска, Delphi автоматически открывает страницу Standard(Стандартные) палитры компонентов. В других случаях выбираем страницу Standard ( ЩЛК на закладке Standard) палитры компонентов и находим кнопки с выплывающими подсказками Edit, Memo, Button, которые отображают нужные нам компоненты в палитре.
Затем размещаем компоненты на форме:
- в палитре компонентов выбираем компонент (ЩЛК по нему);
- ЩЛК в точке рабочей области формы, где должен располагаться левый верхний угол компонента.
ЩЛК на кнопке Edit, а затем ЩЛК в точке рабочей области формы разместим компонент Edit1. Аналогично размещаем компонент Edit2. Затем разместим компонент Memo1 и три компонента Button1, Button2, Button3 согласно рис.1. Компоненты можно перетаскивать по форме и менять их размеры.
Компоненты размещенные на форме будем называть объектами.
Изменение свойств объектов производится в окне Object Inspector(Инспектор объекта). Это окно имеет 2 страницы: страницу Properties(Свойства),которая открывается при ЩЛК на закладке Properties, и страницу Events(события), которая открывается при ЩЛК на закладке Events. После первого запуска, Delphi автоматически открывает страницу Properties.
Изменяются свойства следующим образом:
- выбирается нужный объект (ЩЛК на нем) на форме или в выпадающем списке в верхней части окна Инспектора объекта;
- в левой колонке страницы находится названия свойства, а в правой колонке – его значение которое меняется на новое. Изменения можно производить вводом нового значения с клавиатуры или выбором одного из предопределенных значений из списка.
Свойства могут быть простыми (определяемые одним значением) или сложными (многосоставными), определяемые совокупностью значений. Слева от названия сложного свойства ставится символ +, при двойном щелчке ЩЛК (2 ЩЛК) на его названии оно раскрывается и показывает все свои вложенные подсвойства.
Изменим нужные свойства формы Form1 и размещенных на ней объектов:
Изменим, текст заголовка окна Form1. Для этого выберем Form1(ЩЛК на пустом месте рабочей области Form1). Затем на странице Properties окна Object Inspector в левой колонке найдем свойство Caption(Заголовок) и правой колонке введем с клавиатуры новый заголовок окна, т.е. текст “Перемножение матриц”.
Аналогично изменим тексты заголовков объектов:
Button1 на “Ввод a[i,j]”;
Button2 на “Ввод b[i,j]”;
Button3 на “Вычислить”.
Для объектов Edit1 и Edit2 свойству Text в правой колонке зададим, пустую строку (т.е. с клавиатуры удалим автоматически отображаемое значение Edit1)
Внимание. Заголовок объекта Memo1 не изменять.
Составление программы
В создаваемой программе необходимо запрограммировать 4 события:
1. ЩЛК на кнопке “Ввод a[i,j]” (OnClick).
2. ЩЛК на кнопке “Ввод b[i,j]” (OnClick).
3. ЩЛК на кнопке “Вычислить” (OnClick).
4. Создание формы окна (OnCreate).
С событием OnCreate (при создании) связана процедура-обработчик Form Create, заголовок которой Delphi выдает автоматически:
procedure TForm1.FormCreate (Sender: TObject);
Эту процедуру мы используем для ввода начальных значений, с которыми начинает работать программа.
Чтобы получить заготовку процедуры-обработчика FormCreate необходимо:
- выбрать форму Form1, т.е. ЩЛК на пустом месте рабочей области
формы;
- в окне Инспектора объекта открыть страницу Events, т.е. ЩЛК на
вкладке Events;
- в левой колонке найти строку с названием события OnCreate и
произвести двойной щелчок (2ЩЛК) в правой колонке этой же строки.
При этом Delphi вызовет редактор программы, в окне кода автоматически создаст нужный текст и разместит курсор в месте начала ввода операторов:
procedure TForm1.FormCreate (Sender : TObject);
begin
end;
Эта процедура – обработчик часто называется методом класса TForm1 и описывает главную форму Form1. Параметр Sender ( передающий тип) характеризует источник сообщения о случившемся событии.
Чтобы получить заготовку процедуры-обработчика события Click на кнопке ’’Ввод a[i,j]’’, надо дважды щелкнуть на ней левой клавишей мыши (2ЩЛК). При этом Delphi сделает активным окно кода, вызовет редактор программы, автоматически создаст нужный текст и разместит курсор в том месте, где можно начинать ввод операторов процедуры:
procedure TForm 1.Button1Click (Sender : TObject);
begin
end;
Аналогично создаются заготовки процедур-обработчиков, вызываемых при ЩЛК на кнопках ’’ Ввод b[i,j]’’ и ’’ Вычислить ’’.
Перед созданием очередной заготовки процедуры необходимо переместить курсор в начало пустой строки, следующей после end; (т.е. в начало строки очередной заготовки).
В каждую из 4-х полученных заготовок введем операторы, реализующие нужные алгоритмы.
1. В процедуре TForm1.FormCreate присвоим начальные значения 1 переменным i,j, определяющим соответственно номера строк и столбцов массива а, и переменным k,l, определяющим номера строк и столбцов массива b. Отображение в строке Edit1.Text подсказки ’’a[1,1]=’’ реализуем оператором присваивания:
Edit1.Text := ’a[’+IntToStr(i)+’,’+IntToStr(j)+’]=’;
Текст процедуры может выглядеть так:
procedure TForm1.FormCreate(Sender: TObject);
begin
i:=1;j:=1;k:=1;l:=1;
Edit1.Text:='a['+IntToStr(i)+','+IntToStr(j)+']=';
end;
2. В процедуре TForm1.Button1Click (Sender: TObject) запишем операторы ,реализующие:
- присвоение элементу массива a числа, введенного в строке Edit2.Text;
- отображение в строке Edit1.Text подсказки очередного вводимого
элемента матрицы a;
- нужные изменения значений переменных i,j, обеспечивающие «построчный» ввод элементов матрицы a;
- отображение в Мемо1 текста «Элементы матрицы А введены», а в строке Edit1. Text - подсказки «b[1,1] =» о начале ввода элементов матрицы В. Условием отображения этой информации является равенство i=5.
Текст процедуры может выглядеть так:
procedure TForm1.Button1Click(Sender: TObject);
begin
if i<5 then begin
a[i,j]:=StrToFloat(Edit2.Text);
Memo1.Lines.Add('a['+IntToStr(i)+','+IntToStr(j)+']='+FloatToStr(a[i,j]));
if i<=4 then j:=j+1;
if j>4 then
begin
i:=i+1;j:=1;
end;
if i<5 then Edit1.Text:=’a[‘+IntToStr(i)+’,’+ IntToStr(j)+’]=’;
end else
begin
Memo1.Lines.Add(‘Элементы матрицы А введены’);
Edit1.Text:=’b[‘+IntToStr(k)+’,’+IntToStr(l)+’]=’;
end;
end;
3. Аналогично в процедуре TForm2.Button2Click (Sender: TObject) запишем операторы, реализующие:
- присвоение элементу массива b числа, введенного в строке Edit2.Text;
- отображение в строке Edit1.Text подсказки очередного вводимого
элемента матрицы b;
- нужные изменения значений переменных l,k, обеспечивающие «построчный» ввод элементов матрицы b;
- отображение в Мемо1 текста «Элементы матицы В введены».
Условием отображения этой информации является равенство k=5.
Текст процедуры может выглядеть так:
procedure TForm1.Button2Click(Sender: TObject);
begin
if k<5 then begin
b[k,l]:=StrToFloat(Edit2.Text);
Memo1.Lines.Add('b['+IntToStr(k)+','+IntToStr(l)+']='+FloatToStr(b[k,l]));
if k<=4 then l:=l+1;
if l>4 then
begin
k:=k+1; l:=1;
end;
if i<5 then Edit1.Text:=’b[‘+IntToStr(k)+’,’+ IntToStr(l)+’]=’;
end else
Memo1.Lines.Add(‘Элементы матрицы В введены’);
end;
4. В процедуре TForm1.Button3Click (Sender: TObject) запишем операторы, реализующие:
- очистку строк редактора Memo1, которая производится стандартной процедурой Clear (Очистить);
- вычисления элементов матрицы C по формуле (5);
- отображение в строках редактора Memo1 значений элементов матрицы C.
Текст процедуры:
procedure TForm1.Button3Click(Sender: TObject);
begin
Memo1.Lines.Clear;
For i:=1 to 4 do
for j:=1 to 4 do
begin
c[i,j]:=0.0;
for k:=1 to 4 do
c[i,j]:=c[i,j]+a[i,k]*b[k,j];
Memo1.Lines.Add('c['+IntToStr(i)+','+IntToStr(j)+']='+floatToStr(c[i,j]));
end;
end;
5. Областью видимости переменных i, j, l, k и массивов a, b, c, называется связь места их описания(объявления) в модуле и места их использования. Дадим их описания в интерфейсном разделе модуля, сделав их видимыми и доступными внутри модуля (из всех процедур-обработчиков событий) и из внешних модулей:
…
var
Form1: TForm1;
i, j, l, k: integer;
a, b, c: array[1..4,1..4] of real;
…
Тогда окончательно получим текст модуля:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Memo1: TMemo;
Button1: TButton;
Button2: TButton;
Button3: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
i,j,l,k: integer;
a,b,c: array[1..4,1..4] of real;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
i:=1;j:=1;k:=1;l:=1;
Edit1.Text:='a['+IntToStr(i)+','+IntToStr(j)+']=';
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if i<5 then begin
a[i,j]:=StrToFloat(Edit2.Text);
Memo1.Lines.Add('a['+IntToStr(i)+','+IntToStr(j)+']='+FloatToStr(a[i,j]));
if i<=4 then j:=j+1;
if j>4 then
begin
i:=i+1; j:=1;
end;
if i<5 then Edit1.Text:='a['+IntToStr(i)+','+IntToStr(j)+']=';
end else
begin
Memo1.Lines.Add('Элементы матрицы А введены');
Edit1.Text:='b['+IntToStr(k)+','+IntToStr(l)+']=';
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if k<5 then begin
b[k,l]:=StrToFloat(Edit2.Text);
Memo1.Lines.Add('b['+IntToStr(k)+','+IntToStr(l)+']='+FloatToStr(b[k,l]));
if k<=4 then l:=l+1;
if l>4 then
begin
k:=k+1; l:=1;
end;
if k<5 then Edit1.Text:='b['+IntToStr(k)+','+IntToStr(l)+']=';
end else
Memo1.Lines.Add('Элементы матрицы В введены');
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Memo1.Lines.Clear;
for i:=1 to 4 do
for j:=1 to 4 do
begin
c[i,j]:=0.0;
for k:=1 to 4 do
c[i,j]:=c[i,j]+a[i,k]*b[k,j];
Memo1.Lines.Add('c['+IntToStr(i)+','+IntToStr(j)+']='+FloatToStr(c[i,j]));
end;
end;
end.