
- •11 Раздаточный материал «Одномерные массивы» подготовлен Шаталовой л.М. Каф. 504
- •1. Ввод одномерного массива с использованием события Edit1KeyPress Исходная форма Форма с результатом
- •Текст программного модуля
- •Interface
- •Implementation
- •2. Ввод массива поэлементно в Edit с нажатием кнопки Button
- •В ид исходной формы
- •Список компонентов и их свойства
- •Текст программного модуля
- •Interface
- •Локальные переменные (procedure tForm1.Button2Click)
- •Implementation
- •Interface
- •Implementation
- •Function getchislo (str : string; n : integer ) string; // str-строка
- •Label5 - вывод массива а
- •Список компонентов и их свойства
- •И вывод массива в строку в компоненты edit и memo
- •Interface
- •Список компонентов
11 Раздаточный материал «Одномерные массивы» подготовлен Шаталовой л.М. Каф. 504
1. Ввод одномерного массива с использованием события Edit1KeyPress Исходная форма Форма с результатом
Текст программного модуля
unit Unit1;
Interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, Spin;
type
TForm1 = class(TForm)
SpinEdit1: TSpinEdit; Label1: TLabel; Label2: TLabel; Edit1: TEdit;
Memo1: TMemo; Label3: TLabel; BitBtn1: TBitBtn; Button1: TButton;
procedure FormActivate(Sender: TObject);
procedure SpinEdit1Change(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure Button1Click(Sender: TObject);
procedure Edit1Change(Sender: TObject);
private { Private declarations }
public { Public declarations }
end;
var
Form1: TForm1;
const M=10; // максимальное число элементов в массиве
var n: integer; // размерность массива
a: array [1..M] of integer; // массив целых чисел
i:integer; // текущий индекс массива
Implementation
{$R *.dfm}
//задаем начальное значение номера массива для ввода элементов, начиная с первого
procedure TForm1.FormActivate(Sender: TObject);
begin
i:=1;
end;
// ввод размерности и проверка введенного значения
procedure TForm1.SpinEdit1Change(Sender: TObject);
begin
if spinedit1.text='' then exit;
if (spinedit1.value>=1) and (spinedit1.value<=10)
then n:= spinedit1.value else exit;
edit1.SetFocus;
end;
//ввод элементов и проверка ввода на цифры от 0 до 9 и знака минус
procedure TForm1.Edit1Change(Sender: TObject);
var i,q :integer;
begin
q:=length(edit1.Text) ; // длина введенной в edit1строки
for i:=1 to q do //проверка каждого введенного символа
if ((edit1.Text[i]<'0') or (edit1.Text[i]>'9')) and
(edit1.Text[i] <> '-') //цифры от 0 до 9 и знак минус
then begin
showmessage ('введите цифру, а не символ');
edit1.Text:='';
end
end;
//ввод элементов массива по одному с нажатием клавиши Enter
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if ((key=#13) and (edit1.Text<>'')and (i<=n)) then
begin
a[i]:=strtoint(edit1.Text);
i:=i+1;
edit1.Text:='';
if i>n then begin
label2.Caption:='ввод завершен';
edit1.Hide;
end;
end;
end;
// вывод размерности массива и элементов массива (в строку)
procedure TForm1.Button1Click(Sender: TObject);
var j:integer;
begin
memo1.Text:=memo1.Text+ ' размерность массива равна ' + inttostr(n);
memo1.Lines.Add('') ;
for j:=1 to n do memo1.Text:=memo1.Text + ' ' + inttostr(a[j]);
end;
end. // конец модуля
Список компонентов и их свойств
object Form1: TForm1
Left = 247 Top = 143 Width = 303 Height = 433 OnActivate = FormActivate
object Label1: TLabel
Left = 64 Top = 32 Width = 155 Height = 13
end
object Label2: TLabel
Left = 64 Top = 104 Width = 177 Height = 33
Alignment = taCenter AutoSize = False WordWrap = True
end
object Label3: TLabel
Left = 16 Top = 216 Width = 130 Height = 13
end
object SpinEdit1: TSpinEdit
Left = 88 Top = 64 Width = 121 Height = 22
MaxValue = 10 MinValue = 1 Value = 1 OnChange = SpinEdit1Change
end
object Edit1: TEdit
Left = 80 Top = 160 Width = 121 Height = 21
OnChange = Edit1Change OnKeyPress = Edit1KeyPress
end
object Memo1: TMemo
Left = 40 Top = 248 Width = 225 Height = 89 Lines.Strings = ('')
ScrollBars = ssVertical
end
object BitBtn1: TBitBtn
Left = 192 Top = 360 Width = 75 Height = 25 Kind = bkClose
end
object Button1: TButton
Left = 176 Top = 216 Width = 75 Height = 25 OnClick = Button1Click
end
end