- •Методическое пособие для самостоятельных работ «Основы интегрированной среды программирования delphi6»
- •6.100301 "Судовождение",
- •6.100302 "Эксплуатация судовых энергетических установок"
- •6.092201 "Электрические системы и комплексы транспортных средств",
- •Введение
- •Глава 1. Интегрированная среда Delphi. Принципы работы
- •1.1. Интегрированная среда Delphi
- •1.2. Принципы визуального программирования
- •Val(Edit1.Text,k1,sign);
- •Val(Edit2.Text,k2,sign);
- •Val(MaskEdit1.Text,r1,sig);
- •Val(МaskEdit2.Text,r2,sig);
- •1.3. Событийно-управляемые программы
- •1.4. Составление программ обработки массивов
- •I :integer;
- •I, j :integer;
- •1.5. Вывод на печать
- •Глава 2. Общие свойства компонентов
- •2.1. Иерархия компонентов
- •2.2. Имена и собственники компонентов
- •2.3. Родительские и дочерние компоненты
- •2.4. Положение, размеры и оформление компонентов
- •2.5.Указатели мыши
- •2.3. Окно редактора с готовым изображением указателя
- •2.6. Реакция на события от мыши и клавиатуры
- •2.6.1. События от мыши
- •2.6.2. События от клавиатуры
- •2.6.3. Клавиатура в ms-dos и Windows
- •2.6.4. Фокус ввода
- •2.7. Механизм действий Action
- •2.8. Иинтерфейс Drag&Drop
- •2.9. Иинтерфейс Drag&Dock
- •2.10. Поддержка справочной службы
- •2.11. Поддержка Сом
- •2.12. Свойства разного назначения
- •Глава 3. Использование компонентов общего назначения
- •3.1. Компоненты страницы Standard
- •3.1.1. TFrame - рама и шаблоны компонентов
- •6) Окно регистрации рамы в палитре компонентов
- •3.1.2. Создание шаблонов без рам
- •3.1.3. TMainMenu - главное меню формы (программы)
- •3.1.4. TPopupMenu - вспомогательное (локальное) меню
- •3.1.5. TLabel - метка для отображения текста
- •3.1.6. TEdit - ввод и отображение строки
- •3.1.7. TMemo - ввод и отображение текста
- •3.1.8. TButton - кнопка
- •3.1.9. TCheckBox - независимый переключатель
- •3.11. Компонент tCheckBox - независимый переключатель
- •3.1.10. TRadioButton - зависимые переключатели
- •3.1.11. TListBox - список выбора
- •3.1.12. TComboBox – комбинированный или раскрывающийся список выбора
- •3.1.13. TScrollBar - управление значением величины
- •3.1.14. TGroupBox - панель группирования
- •3.1.15. TRadioGroup - группа зависимых переключателей
- •3.1.16. TPanel - панель
- •3.1.17. TActionList - механизм действий
- •3.2. Компоненты страницы Аdditional
- •3.2.1. TBitBtn - кнопка с изображением
- •3.2.2. TSpeedButton - кнопка для инструментальных панелей
- •3.2.3. TMaskEdit - специальный редактор
- •3.2.4. TStringGrid - таблица строк
- •3.2.5. TDrawGrid - произвольная таблица
- •3.2.6. TImage - отображение картинок
- •3.2.7. TShape - стандартная фигура
- •3.2.8. TBevel - кромка
- •3.2.9. TScrollBox - панель с прокруткой
- •3.2.10. TСheckListBox - группа независимых переключателей
- •3.2.11. TSplitter - компонент для изменения размеров
- •3.2.12. TStaticText - метка для отображения текста
- •3.2.13. TControlBar - инструментальная панель
- •3.2.14. TApplicationEvents - обработчик сообщений Windows
- •3.2.15. TValueListEditor - специализированный редактор строк
- •3.2.16. TLabelEdit - однострочный редактор с меткой
- •3.2.17. TColorBox - список выбора цвета
- •3.2.18. TChart - построитель графиков
- •3.2.19. TActionManager - менеджер действий
- •3.2.20. TActionMainMenuBar - полоса меню для действий
- •3.2.21. TActionTollBar - полоса кнопок для действий
- •3.2.22. TCustomizeDIg - диалог настройки интерфейса
- •Глава 4. Многодокументный и однодокументный интерфейсы (mdi и sdi)
- •4.1. Mdi и sdi: сравнение
- •4.2. Разработка mdi—приложений
- •4.2.1. Разработка главного и информационного окон
- •4.2.2. Использование стандартных диалоговых окон
- •If OpenDialog1.Execute then
- •4.2.3. Разработка диалогового окна
- •Var dlg6:tokRightDlg;
- •X1,x2,x3:String;
- •If b1 or b2 then
- •4.2.4. Управление окнами
- •I:integer;
- •I:integer;
- •4.2.5. Работа с меню
- •Var tf5:tForm2;
- •4.3. Разработка sdi–приложения
- •4.3.1. Простое sdi–приложение
- •I,j :byte;
- •I,j :byte;
- •I,j :byte;
- •4.3.2. Управление окнами в sdi–приложениях
- •I :byte;
- •Var I :byte; ptr6 :tForm2;
- •I :byte;
- •Глава 5. Реализация алгоритмов решаемых задач на Delphi
- •5.1. Традиционный подход реализации алгоритмов на Delphi
- •5.2. Объектно-ориентированный подход
- •Val(Edit1.Text,k,sig);
- •Val(Edit2.Text,l,sig);
- •I,j :byte;
- •I,j :integer;
- •Inherited Create (Ni,Nj);
- •Val(Edit1.Text, p, sig1);
- •Val(Edit2.Text, q, sig2);
- •Val(Edit3.Text, r, sig3);
- •Vas :real;
- •Val(Edit4.Text,n,sig);
- •Глава 6. Тестирование и отладка приложений
- •6.1. Виды ошибок
- •6.2. Отладочные средства Delphi
- •6.3. Составление тестов
- •Глава 7. Исключительные ситуации
- •7.1. Обработка исключительных ситуаций
- •I, j, k : integer;
- •I:integer;
- •I, j, k : integer;
- •7.2. Обработка определенных исключительных ситуаций
- •Var I,j,k :shortint; p,q :real;
- •Заключение
- •Литература
- •Методическое пособие для самостоятельных работ «Основы интегрированной среды программирования delphi6»
- •6.100301 "Судовождение",
- •6.100302 "Эксплуатация судовых энергетических установок"
- •6.092201 "Электрические системы и комплексы транспортных средств",
3.2.20. TActionMainMenuBar - полоса меню для действий
Компонент служит настраиваемым контейнером для размещения связанных с действиями опций меню. Опции-заголовки размещаются “перетаскиванием” из окна менеджера действий категорий.
Большое количество свойств компонента связаны с динамически создаваемыми внутренними объектами, имеющими, в свою очередь, множество свойств (методов и событий). За подробной информацией о свойствах компонента и связанных с ними классами обратитесь к справочной службе. Компонент имеет свойство
property ActionClient: TActionClient;
Свойство Visible класса TActionClient управляет видимостью полосы. Для компонента TActionMainMenuBar (в отличае от TActionToolBar) это свойство не может иметь значение False (независимо от количества компонентов на форме). Иными словами, программа не может “спрятать” полосы главного меню.
3.2.21. TActionTollBar - полоса кнопок для действий
Компонент служит настраиваемым контейнером для связанных с действиями инструментальных кнопок. Кнопки реализуются техникой “перетаскивания” действий из окна менеджера действий.
Большое количество свойств компонента связано с динамически создаваемыми внутренними объектами, имеющими, в свою очередь, множество свойств (методов и событий).
3.2.22. TCustomizeDIg - диалог настройки интерфейса
Этот компонент служит для активизации окна менеджера действий. Для этого у него имеется единственный метод
procedure Show;
Свойство
property ActionManager: TCustomActionManager;
определяет экземпляр менеджера действий, окно которого нужно активизировать. Поскольку это окно не модальное, оно может перекрываться другими окнами. Если в свойство компонента
property StayOnTop: Boolean;
установить True, окно менеджера действий всегда будет располагаться поверх других окон.
Для вызова метода Show проще всего использовать дополнительное меню контейнера опций или кнопок. Например:
procedure TFormI.NIClick(Sender: TObject);
begin
CustomizeDlgl.Show
end;
Контрольные вопросы
Какой компонент определяет раму - контейнер для размещения других компонентов?
Какой класс устанавливает все необходимые свойства и методы для полос прокрутки?
Какие действия следует произвести для создания разветвленных меню, т. е. таких, у которых подопции вызывают новые списки подопций?
Как связываются с опциями меню небольшие изображения?
Для чего предназначены компоненты класса TLabel (метка)?
Какие действия можно производить с помощью компонента класса TEdit?
Какой компонент предназначен для ввода, редактирования и/или отображения достаточно длинного текста?
В каком обработчике события реализуется связанный с кнопкой TButton алгоритм управления программами?
Для чего используется независимый переключатель TCheckBox?
Какой компонент реализует выбор одного из нескольких взаимоисключающих решений?
Комбинацию каких компонентов представляет собой комбинированный список TComboBox?
Перечислите основные свойства компонента класса TRadioGroup.
Для чего можно использовать свойство Caption компонента TPanel?
Что определяется свойством Glyph TBitBtn?
Чем отличаются кнопки TSpeedButton от TBitBtn?
Каким свойством задается шаблон текста вводимого в специализированный редактор TMaskEdit?
Какой компонент предназначен для создания таблиц, в ячейках которых располагаются произвольные текстовые строки?
Какие возможности предоставляет программисту компонент TDrawGrid?
Для чего используется компонент TImage?
Перечислите множество простейших геометрических фигур, которые может рисовать компонент TShape.
Для чего предназначен компонент класса TBevel?
Какой компонент предназначен для ручного (с помощью мыши) управления размерами контейнеров TPanel1, TGroupBox или подобных им во время прогона программы?
Какой компонент предназначен для графического представления числовых данных?
Примеры составления программ
Иллюстрация работы со списком TList.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls;
type
TfmExample = class(TForm)
Panel1: TPanel;
bbRun: TBitBtn;
bbCancel: TBitBtn;
edInput: TEdit;
mmOutput: TMemo;
lbOutput: TLabel;
procedure bbRunClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmExample: TfmExample;
implementation
{$R *.dfm}
type
PDouble = ^Double;
Function Comp(Item1, Item2: Pointer): Integer;
// С помощью этой функции реализуется сортировка чисел
begin
if PDouble(Item1)^ < PDouble(Item2)^ then
Result := -1
else if PDouble(Item1)^ > PDouble(Item2)^ then
Result := 1
else
Result := 0
end;
procedure TfmExample.bbRunClick(Sender: TObject);
// Обработчик нажатий кнопки bbRun выполняет основную работу
var
k: Integer;
List: TList;
pD: PDouble;
begin
List := TList.Create; // Создаем список
for k := 1 to 20 do // Наполняем его
begin
New(pD); // Резервируем память
pD^ := Random; // Помещаем в нее случайное число
List.Add(pD); // Добавляем к списку
end;
List.Sort(Comp); // Сортируем список по возрастанию
mmOutput.Lines.Clear; { Очищаем редактор mmOutput. В следующем цикле наполняем mmOutput и уничтожаем элементы List }
for k := 0 to List.Count-1 do
begin
pD := List[k]; // Очередное число из списка
mmOutput.Lines.Add(FloatToStr(pD^)); // Помещаем в mmOutput
Dispose(pD) // Уничтожаем число
end;
List.Free; // Уничтожаем список
end;
end.
Проверка емкости TEdit
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, ExtCtrls;
type
TfmExample = class(TForm)
Panel1: TPanel;
bbRun: TBitBtn;
bbClose: TBitBtn;
edInput: TEdit;
lbOutput: TLabel;
mmOutput: TMemo;
procedure FormActivate(Sender: TObject);
procedure bbRunClick(Sender: TObject);
procedure edInputEnter(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmExample: TfmExample;
implementation
{$R *.DFM}
procedure TfmExample.FormActivate(Sender: TObject);
begin
edInput.SetFocus
end;
procedure TfmExample.bbRunClick(Sender: TObject);
var
MaxLength, k: Integer;
S: String;
begin
if edInput.Text='' then
Exit;
try
MaxLength := StrToInt(edInput.Text)
except
Exit
end;
S := '';
for k := 1 to MaxLength do
S := S+'0';
edInput.Text := S;
lbOutput.Caption := 'Длина свойства Text = '+IntToStr(Length(edInput.Text));
mmOutput.SetFocus
end;
procedure TfmExample.edInputEnter(Sender: TObject);
begin
edInput.Text := ''
end;
end.
Проверка емкости TMemo
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, ExtCtrls;
type
TfmExample = class(TForm)
Panel1: TPanel;
bbRun: TBitBtn;
bbClose: TBitBtn;
edInput: TEdit;
lbOutput: TLabel;
mmOutput: TMemo;
procedure bbRunClick(Sender: TObject);
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmExample: TfmExample;
implementation
{$R *.DFM}
procedure TfmExample.bbRunClick(Sender: TObject);
var
k, MaxLines: Integer;
S: String;
begin
if edInput.Text='' then
Exit;
try
MaxLines := StrToInt(edInput.Text);
except
MaxLines := 3000;
edInput.Text := '3000'
end;
mmOutput.Lines.Clear;
mmOutput.Hide;
Screen.Cursor := crHourGlass;
for k := 1 to MaxLines do
begin
S := IntToStr(k);
while Length(S)<14 do
S := '0'+S;
mmOutput.Lines.Add(S)
end;
mmOutPut.Show;
Screen.Cursor := crDefault;
lbOutPut.Caption := 'Длина Text = '+IntToStr(Length(mmOutput.Text))
end;
procedure TfmExample.FormActivate(Sender: TObject);
begin
edInput.SetFocus
end;
end.
Демонстрация компонента DrawGrid
unit DrawGridMain;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Grids;
type
TfmDrawGrid = class(TForm)
dgDraw: TDrawGrid;
procedure FormCreate(Sender: TObject);
procedure dgDrawGetEditText(Sender: TObject; ACol, ARow: Integer;
var Value: String);
procedure dgDrawSetEditText(Sender: TObject; ACol, ARow: Integer;
const Value: String);
procedure dgDrawDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
procedure FormResize(Sender: TObject);
procedure FormDeactivate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
slBitMap: TStringList;
end;
var
fmDrawGrid: TfmDrawGrid;
implementation
{$R *.DFM}
procedure TfmDrawGrid.FormCreate(Sender: TObject);
// Создает и наполняет список slBitMap
const
Bmp_Path = 'C:\Program Files\Common Files\Borland Shared\'+
'Images\Splash\16Color\';
FNames: array [0..3] of String = {Имена файлов с картинками}
('athena.bmp', 'construc.bmp', 'earth.bmp', 'technlgy.bmp');
var
k: Integer;
begin
// Создаем список строк:
slBitMap := TStringList.Create;
// Вставляем в него названия файлов и картинки:
with slBitMap do for k := 0 to 3 do
begin
Add(FNames[k]);
Objects[k] := TBitMap.Create;
(Objects[k] as TBitMap).LoadFromFile(Bmp_Path+FNames[k])
end
end;
procedure TfmDrawGrid.dgDrawGetEditText(Sender: TObject; ACol,
ARow: Integer; var Value: String);
// Передает редактору текст из ячейки
begin
Value := slBitMap[2 * ACol + Arow]
end;
procedure TfmDrawGrid.dgDrawSetEditText(Sender: TObject; ACol,
ARow: Integer; const Value: String);
// Получает текст из редактора и сохраняет его в slBitMap
begin
slBitMap[2 * ACol + ARow] := Value
end;
procedure TfmDrawGrid.dgDrawDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
// Рисует картинку из slBitMap.Objects и текст из slBitMap
var
k: Integer;
begin
// Пересчитываем координаты ячейки в индекс списка:
k := 2 * ACol + ARow;
with dgDraw.Canvas, Rect, slBitMap do
begin
// Уменьшаем высоту картинки для вывода под ней текста:
Bottom := Bottom - TextHeight('1') - 2;
// Рисуем картинку:
StretchDraw(Rect, (Objects[k] as TBitMap));
// Центрируем текст по горизонтали и выводим его:
TextOut(Left+(Right-Left-TextWidth(slBitMap[k])) div 2,
Bottom + 1, slBitMap[k])
end
end;
procedure TfmDrawGrid.FormResize(Sender: TObject);
// Изменяет размеры ячеек при изменении размеров окна.
// Запас в один пиксель необходим для предотвращения
// автопрокрутки
begin
with dgDraw do
begin
DefaultColWidth := ClientRect.Right div 2 - 1;
DefaultRowHeight := ClientRect.Bottom div 2 - 1
end;
end;
procedure TfmDrawGrid.FormDeactivate(Sender: TObject);
begin
slBitMap.Free
end;
end.
Иллюстрация возиожностей StringGrid
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Grids, StdCtrls, Buttons, ExtCtrls;
type
TfmStGrid = class(TForm)
Panel1: TPanel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
OpenDialog1: TOpenDialog;
StringGrid1: TStringGrid;
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmStGrid: TfmStGrid;
implementation
{$R *.DFM}
procedure TfmStGrid.BitBtn1Click(Sender: TObject);
Function GetWord(var S: String): String;
{ Вспомогательная функция для выделения очередного слова из строки }
const // Множество символов слова:
Letters: set of Char = ['a'..'z', 'A'..'Z', 'А'..'я'];
begin
Result := '';
{ Уничтожаем в начале строки все символы, не относящиеся к слову }
while (S <> '') and not (S[1] in Letters) do
Delete(S, 1, 1);
// Формируем очередное слово
while (S <> '') and (S[1] in Letters) do
begin
Result := Result + S[1];
Delete(S, 1, 1)
end;
end; //GetWord
var
F: TextFile; // Файл с текстом
S, Word: String; // Вспомогательные строки
NCol, NRow: Integer;// Номер текущей колонки и текущего ряда
Words: TStringList; // Список отсортированных слов из файла
begin
// С помощью стандартного диалога получаем имя файла
if not OpenDialog1.Execute then
Exit; // Пользователь отказался выбрать файл
// Пытаемся открыть файл
AssignFile(F, OpenDialog1.FileName);
try
Reset(F);
except
// Файл нельзя открыть:
ShowMessage('Невозможно открыть файл ' + OpenDialog1.FileName);
Exit;
end;
// Готовим список Words:
Words := TStringList.Create;
Words.Sorted := True; // Сортируем строки
Words.Duplicates := dupIgnore; // Отвергаем дубликаты
// Изменяем курсор перед длительной работой
Screen.Cursor := crHourGlass;
// Читаем файл по строкам
while not EOF(F) do
begin
ReadLn(F, S); // Читаем очередную строку
// Выделяем из строки слова и заносим их в список Words
while S <> '' do
begin
Word := GetWord(S);
if Word <> '' then
Words.Add(Word) // Не вставляем пустые строки
end
end;
Screen.Cursor := crDefault; // Восстанавливаем курсор
CloseFile(F); // Закрываем файл
if Words.Count=0 then
Exit; // Пустой файл – выходим
with StringGrid1 do
begin
NCol := 1; // Номер первого столбца слов
// Цикл формирования таблицы
while Words.Count > 0 do
begin
// Формируем заголовок столбца и начальное значение номера ряда
Cells[NCol, 0] := Words[0][1];
NRow := 0;
// Цикл заполнения очередного столбца
while (Words.Count > 0) and (Words[0][1] = Cells[NCol, 0]) do
begin
inc(NRow); // Номер текущего ряда
if NRow = RowCount then
begin // Расширяем длину таблицы
RowCount := RowCount + 1; {Для свойства RowCount нельзя
использовать функцию инкремента inc!}
Cells[0, NRow] := IntToStr(NRow);
end;
Cells[NCol, NRow] := Words[0];
Words.Delete(0);
end;
// Переходим к следующему столбцу
if Words.Count=0 then
Break; // Кончаем работу, если слов больше нет
inc(NCol); // Переходим к следующей колонке
ColCount := ColCount+1 // Расширяем таблицу справа
// на 1 колонку
end;
end;
end;
end.
Демонстрация компонента TAnimate
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
Animate1: TAnimate;
Button1: TButton;
Timer1: TTimer;
ProgressBar1: TProgressBar;
procedure Button1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
Animate1.FileName := 'cool.avi'; // Указываем файл с клипом
Animate1.Active := True; // Запускаем клип
ProgressBar1.Show; // Показываем ProgressBar
Timer1.Enabled := True; // Включаем таймер
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
ProgressBar1.Position := ProgressBar1.Position + 1;
if ProgressBar1.Position >= ProgressBar1.Max then
begin
Timer1.Enabled := False; // Выключаем таймер
ProgressBar1.Position := 0; // Готовим новый запуск
ProgressBar1.Hide; // Прячем ProgressBar
Animate1.Stop // Останавливаем клип
end
end;
end.
Демонстрация TComboBoxEx
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ImgList, StdCtrls, ComCtrls;
type
TForm1 = class(TForm)
ComboBoxEx1: TComboBoxEx;
ImageList1: TImageList;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
end.
Задания для самостоятельного выполнения
Ввести одномерный массив, состоящий из 10 элементов. Значения массива задать функцией Random(R), где R= 10. Вывести сформированный массив на экран в компонент Label1. Найти минимальный элемент массива и его индекс. Результат вывести на экран в компонент Label2. Процедуру выполнения данного задания оформить в событии Button1Click компонента Button1.
Ввести одномерный массив, состоящий из 10 элементов. Значения массива ввести в компонент StringGrid1. Вывести сформированный массив на экран в компонент Label1. Найти среднее арифметическое положительных элементов массива. Результат вывести на экран в компонент Label2. Процедуру выполнения данного задания оформить в событии Button1Click компонента Button1.
Ввести одномерный массив, состоящий из 5 элементов. Значения массива ввести в компонент StringGrid1. Вывести сформированный массив на экран в компонент Label1. Найти сумму положительных элементов массива. Результат вывести на экран в компонент Label2. Процедуру выполнения данного задания оформить в событии Button1Click компонента Button1.
Ввести одномерный массив, состоящий из 8 элементов. Значения массива задать функцией Random(R), где R= 9. Вывести сформированный массив на экран в компонент Label1. Найти максимальный элемент массива и его индекс. Результат вывести на экран в компонент Label2. Процедуру выполнения данного задания оформить в событии Button1Click компонента Button1.
Ввести одномерный массив, состоящий из 6 элементов. Значения массива ввести в компонент StringGrid1. Вывести сформированный массив на экран в компонент Label1. Найти количество положительных элементов массива. Результат вывести на экран в компонент Label2. Процедуру выполнения данного задания оформить в событии Button1Click компонента Button1.
Ввести одномерный массив, состоящий из 9 элементов. Значения массива задать функцией Random(R), где R= 10. Вывести сформированный массив на экран в компонент Label1. Найти минимальный и максимальный элементы массива и их индексы. Результат вывести на экран в компонент Label2. Процедуру выполнения данного задания оформить в событии Button1Click компонента Button1.
Ввести одномерный массив, состоящий из 7 элементов. Значения массива задать функцией Random(R), где R= 8. Вывести сформированный массив на экран в компонент Label1. Найти количество четных элементов массива. Результат вывести на экран в компонент Label2. Процедуру выполнения данного задания оформить в событии Button1Click компонента Button1.
Ввести одномерный массив, состоящий из 6 элементов. Значения массива ввести в компонент StringGrid1. Вывести сформированный массив на экран в компонент Label1. Найти произведение положительных элементов массива. Результат вывести на экран в компонент Label2. Процедуру выполнения данного задания оформить в событии Button1Click компонента Button1.
Ввести одномерный массив, состоящий из 8 элементов. Значения массива задать функцией Random(R), где R= 9. Вывести сформированный массив на экран в компонент Label1. Найти минимальный среди нечетных по значению элементов массива и его индекс. Результат вывести на экран в компонент Label2. Процедуру выполнения данного задания оформить в событии Button1Click компонента Button1.
Ввести одномерный массив, состоящий из 10 элементов. Значения массива задать функцией Random(R), где R= 10. Вывести сформированный массив на экран в компонент Label1. Найти максимальный среди четных по значению элементов массива и его индекс. Результат вывести на экран в компонент Label2. Процедуру выполнения данного задания оформить в событии Button1Click компонента Button1.
Задать двумерный массив (матрицу) 5х6 целочисленных значений функцией RANDOM(10). Вывести сформированный массив в компонент STRINGGRID1. Найти минимальный элемент MIN и его индексы IMIN, JMIN. Вывести полученный результат в поле компонента LABEL1. Процедуру выполнения данного задания оформить в событии ONCLICK компонента BUTTON1
Задать двумерный массив (матрицу) 4х4 целочисленных значений в компоненте STRINGGRID1.Найти среднее арифметическое каждой строки матрицы. Результат вывести в компонент LABEL1. Процедуру выполнения данного задания оформить в событии ONCLICK компонента BUTTON1.
Задать двумерный массив (матрицу)4х5 целочисленных значений функцией RANDOM(9). Вывести сформированный массив в компонент STRINGGRID1. Найти количество четных по значению элементов массива. Вывести полученный результат в поле компонента LABEL1. Процедуру выполнения данного задания оформить в событии ONCLICK компонента BUTTON1.
Задать двумерный массив (матрицу)5х5 целочисленных значений в компоненте STRINGGRID1. Найти среднее арифметическое положительных элементов каждой строки матрицы. Результат вывести в компонент LABEL1. Процедуру выполнения данного задания оформить в событии ONCLICK компонента BUTTON1.
Задать двумерный массив (матрицу)5х6 целочисленных значений функцией RANDOM(7). Вывести сформированный массив в компонент STRINGGRID1. Найти количество нечетных по значению элементов матрицы. Вывести полученный результат в поле компонента LABEL1. Процедуру выполнения данного задания оформить в событии ONCLICK компонента BUTTON1.
Задать двумерный массив (матрицу)6х6 целочисленных значений в компоненте STRINGGRID1. Найти среднее арифметическое положительных элементов каждого столбца матрицы. Результат вывести в компонент LABEL1. Процедуру выполнения данного задания оформить в событии ONCLICK компонента BUTTON1.
