- •11 Раздаточный материал «Одномерные массивы» подготовлен Шаталовой л.М. Каф. 504
- •1. Ввод одномерного массива с использованием события Edit1KeyPress Исходная форма Форма с результатом
- •Текст программного модуля
- •Interface
- •Implementation
- •Interface
- •Локальные переменные (procedure tForm1.Button2Click)
- •Implementation
- •2. Ввод массива поэлементно в Edit с нажатием кнопки Button
- •В ид исходной формы
- •Список компонентов и их свойства
- •Текст программного модуля
- •Interface
- •Implementation
- •Function getchislo (str : string; n : integer ) string; // str-строка
- •Label5 - вывод массива а
- •Список компонентов и их свойства
- •И вывод массива в строку в компоненты edit и memo
- •Interface
- •Список компонентов
2. Ввод массива поэлементно в Edit с нажатием кнопки Button
ЗАДАНИЕ: Дан одномерный массив А, размерностью 10. Найти максимальный и минимальный элементы массива Сформировать новый массив, в котором максимальный и минимальный элементы массива А поменять местами. Ввод массива – Edit1 и Button1. Вывод результата в ListBox
В ид исходной формы
Список компонентов и их свойства
Form1
Left = 192 Top = 114 Width = 366 Height = 506 Caption = 'Form1' Color = clBtnFace
OnCreate = FormCreate
Label1
Left = 40 Top = 16 Width = 268 Height = 13
Caption = Введите 10 элементов массива по одному элементу
Label2
Left = 40 Top = 104 Width = 218 Height = 13
Caption = Нажмите для поиска MAX и MIN и обмена
Label3
Left = 136 Top = 440 Width = 109 Height = 13
Caption =Закрыть приложение
Edit1
Left = 40 Top = 48 Width = 121 Height = 21 Text = ' '
Button1
Left = 192 Top = 48 Width = 75 Height = 25
Caption = Ввод OnClick = Button1Click
Button2
Left = 120 Top = 128 Width = 75 Height = 25
Caption = Решение OnClick = Button2Click
ListBox1
Left = 8 Top = 216 Width = 137 Height = 201 ItemHeight = 13
ListBox2
Left = 184 Top = 216 Width = 121 Height = 201 ItemHeight = 13
BitBtn1
Left = 256 Top = 432 Width = 75 Height = 25 Kind = bkClose
StaticText1
Left = 32 Top = 184 Width = 96 Height = 17 BevelOuter = bvSpace
BorderStyle = sbsSunken Caption =Исходный массив
Color = clSkyBlue ParentColor = False
StaticText2
Left = 184 Top = 184 Width = 103 Height = 17
Caption =Результат решения Color = clSkyBlue ParentColor = False
Текст программного модуля
unit Unit1;
Interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;
type
TForm1 = class(TForm)
Edit1: TEdit; Button1: TButton; Button2: TButton;
ListBox1: TListBox; ListBox2: TListBox; BitBtn1: TBitBtn;
Label1: TLabel; Label2: TLabel; StaticText1: TStaticText;
StaticText2: TStaticText; Label3: TLabel;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
private
Глобальные
переменные: A[I] -
одномерный массив целых чисел, содержит
10 элементов I
- параметр цикла I=
1..10 Min,
max
– минимальный и максимальный элементы
массива А Imin,
imax
– координаты минимального и максимального
элементов массива А K
– параметр цикла (перебирает
элементы массива)
Локальные переменные (procedure tForm1.Button2Click)
public
{ Public declarations }
end;
var
Form1: TForm1;
a: array [1..10] of integer;
i, min, max, imax, imin : integer;
Implementation
{$R *.dfm}
// Процедура очистки поля компонентов ListBox1, ListBox2
// и обнуления параметра цикла I во время создания исходной формы
procedure TForm1.FormCreate(Sender: TObject);
begin
i:=0;
listbox1.Clear;
listbox2.Clear;
end;
// Процедура ввода 10 элементов массива А и вывода массива в компонент ListBox1
..// Вариант 1
procedure TForm1.Button1Click(Sender: TObject);
begin
listbox1.Items.Add(edit1.text);
i:=i+1;
if i=10 then listbox1.Items.Add('ввод массива завершен');
a[i]:=strtoint(edit1.Text);
edit1.setfocus
end;
{..// Вариант 2
procedure TForm1.Button1Click(Sender: TObject);
begin
listbox1.Items.Add(edit1.text);
i:=i+1; a[i]:=strtoint(edit1.Text);
if i=10 then begin
listbox1.Items.Add('ввод массива завершен');
edit1.Text:= 'ввод завершен' ;
button1.Hide;
end;
edit1.setfocus
end;}
// Процедура поиска MIN, MAX и вывода массива после обмена в компонент ListBox2
procedure TForm1.Button2Click(Sender: TObject);
var k: integer;
begin
max:=a[1]; imax:=1;
min:=a[1]; imin:=1 ;
for k:=2 to 10 do
begin
if max < a[k] then begin
max:=a[k];
imax:=k;
end;
if min > a[k] then begin
min:=a[k];
imin:=k;
end;
end;
a[imax]:=min;
a[imin]:=max;
listbox2.Items.Add('максимум = '+ inttostr(max));
listbox2.Items.Add('минимум = '+ inttostr(min));
listbox2.Items.Add('массив после обмена ');
for k:=1 to 10 do listbox2.Items.Add(inttostr(a[k]));
end;
// Процедура установки фокуса в поле редактора ввода Edit1
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if ((key) = (13)) then button1.SetFocus
end;
end. // конец модуля
