Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Обработка одномерных массивов в среде программи...doc
Скачиваний:
4
Добавлен:
01.09.2019
Размер:
254.98 Кб
Скачать

2 Практическая часть

Выполнить обработку одномерного массива по индивидуальному заданию. Предусмотреть 2 варианта ввода массива:

  1. в строке Edit по одному элементу;

  2. в редакторе Memo или в строке Edit ввести весь массив.

Вывод массива выполнить с помощью компонент ListBox и ComboBox. Выводить нужно как исходный массив, так и результирующий.

2.1 Задание

Даны целые числа X(n). Переписать в новый массив все числа, лежащие в диапазоне [-3,7].

Рисунок 5 – Экранная форма

2.2 Листинг программы

unit Unit1;

{$mode objfpc}{$H+}

interface

uses

Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,

StdCtrls;

type

{ TForm1 }

TForm1 = class(TForm)

Button1: TButton;

Button2: TButton;

Button3: TButton;

Button4: TButton;

Button5: TButton;

ComboBox1: TComboBox;

ComboBox2: TComboBox;

Edit1: TEdit;

Edit2: TEdit;

GroupBox1: TGroupBox;

GroupBox2: TGroupBox;

GroupBox3: TGroupBox;

GroupBox4: TGroupBox;

GroupBox5: TGroupBox;

ListBox1: TListBox;

ListBox2: TListBox;

Memo1: TMemo;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ private declarations }

public

{ public declarations }

end;

var

Form1: TForm1;

X, Y: array [1..100] of integer;

n, m: integer;

implementation

{ TForm1 }

procedure TForm1.FormCreate(Sender: TObject);

begin

n:= 0;

end;

procedure TForm1.Button1Click(Sender: TObject);

var i: integer;

begin

// обнуление массива

n:= 0;

for i:= 1 to 100 do X[i]:= 0;

// заполенние массива Х из строк мемо

n:= Memo1.Lines.Count; // установить длину массива

for i:= 1 to n do

X[i]:= StrToInt(Memo1.Lines[i-1]); // занесения значения элемента из строки мемо

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

inc(n); // увеличиваем счетчик элементов

X[n]:= StrToInt(Edit1.Text); // занесение значения из эдит1

end;

procedure TForm1.Button3Click(Sender: TObject);

var

s: string;

i: integer;

begin

// обнуление массива

n:= 0;

for i:= 1 to 100 do X[i]:= 0;

// выделение элементов между пробелами в эдит2

s:= Edit2.Text+' ';

i:= pos(' ', s);

while i<>0 do

begin

inc(n);

X[n]:= StrToInt(copy(s, 1, i-1)); // занесение значения из эдит1

delete(s, 1, i); // удаление выделенного элемента из строки

i:= pos(' ', s);// поиск следующего элемента

end;

end;

procedure TForm1.Button4Click(Sender: TObject);

var i: integer;

begin

// обнуление результата

m:= 0;

ListBox1.Clear;

ComboBox1.Clear;

// перебор исходного массива

for i:= 1 to n do

// сравнение значения элемента с диапазоном

if (X[i]>=-3)and(X[i]<=7) then

begin

// занесение нового элемента в результирующий массив Y

inc(m);

Y[m]:= X[i];

// вывод элемента массива Y на экранные компоненты

ListBox1.Items.Add(IntToStr(Y[m]));

ComboBox1.Items.Add(IntToStr(Y[m]));

end;

end;

procedure TForm1.Button5Click(Sender: TObject);

var i: integer;

begin

ListBox2.Clear;

ComboBox2.Clear;

// перебор исходного массива

for i:= 1 to n do

begin

ListBox2.Items.Add(IntToStr(X[i]));

ComboBox2.Items.Add(IntToStr(X[i]));

end;

end;

initialization

{$I unit1.lrs}

end.