Использование компонента Memo

ИНФОРМАТИКА И ОСНОВЫ ПРОГРАММИРОВАНИЯ

1-53 01 01 «Автоматизация технологических процессов и производств»

 

ЛАБОРАТОРНАЯ РАБОТА №2

ИЗУЧЕНИЕ ОСНОВНЫХ ПРИЕМОВ РАБОТЫ С МАССИВАМИ В DELPHI


1-53 01 01 «Автоматизация технологических процессов и производств»

Проверила Выполнила

студентка группы АТПП-101

 

«» 2012г. «» 2012г.

 

 

Могилев 2012

 

 

Цель работы: изучить на практических примерах основные приемы работы с массивами в среде программирования Delphi.

 

Массив − это структура данных, представляющая собой набор переменных одинакового типа, имеющих общее имя. Массивы удобно использовать для хранения однородной по своей природе информации, например, таблиц и списков.

Типичными операциями при работе с массивами являются:вывод массива, ввод массива, поиск максимального или минимального элемента массива, поиск заданного элемента массива, сортировка массива.

 

1.Вывод массива на экран.

В программе необходимо вывести значения всех элементов массива, для этого использовали инструкцию for, при этом переменную-счетчик инструкции for использовали в качестве индекса элемента массива.

 

 

Рисунок 1- Форма и диалоговое окно приложения Вывод массива

 

Программа

unitoutar_;

interface

uses

Windows, Messages, SysUtils, Variants,

Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TForm1 = class(TForm)

Button1: TButton;

Label1: TLabel;

procedureButtonlClick(Sender: TObject);

private

{ Private declarations } public

{ Public declarations } end;

var

Form1: TForm1;

implementation

($R *.dfm}

const

NT = 5;

var

team: array[1..NT] of string[10] = ('Зенит','Динамо','Ротор','Спартак','СКА');

procedureTForml.ButtonlClick(Sender: TObject);

var

st:string; // список команд

i:integer; // индекс, номер элемента массива

begin

// формирование списка для отображения в форме

for i:=l to NT do st:= st + IntToStr(i)+ ' '+ team[i] + #13; // выводсписка Label1.Caption:= st;

end;

end.

 

Ввод массива

Ввод массива – это процесс получения от пользователя во время работы программы значений элементов массива. Организовали ввод массива с использованием компонента StringGrid.

Значок компонента StringGrid находится на вкладке Additional (рисунок 2).

 

Рисунок 2- Компонент StringGrid

Компонент StringGrid представляет собой таблицу, ячейки которой содержат строки символов. В примере использовали компонентStringGrid для ввода массива программы, которая вычисляет среднее арифметическое значение элементов массива.

Компонент StringGrid использовали для ввода массива, компоненты Label1 и Label2 − для вывода пояснительного текста и результата расчета, Button− для запуска процесса расчета.

 

 

Рисунок 3- Диалоговое окно программы Ввод и обработка массива

 

После того ка добавили компонент к форме,выполнили его настройку в соответствии с таблицей 1.

 

Таблица1-Значения свойств компонента StringGrid1

Свойство Значение
ColCount  
FixedCols  
RowCount  
DefaultRowHeight  
Height  
DefaultColWidth  
Width  
Options. goEditing True
Options. AlwaysShowEditing True
Options.goTabs True

 

Программа

Ввод и обработка массива целых чисел

unitgetar;

interface

Windows, Messages, SysUtils, Variants,

Classes, Graphics, Controls, Forms, Dialogs, Grids, StdCtrls;

type

TForm1 = class(TForm)

Label1: TLabel;

StringGridl: TStringGrid;

Button1: TButton;

Label2: TLabel;

procedureButtonlClick(Sender: TObject); private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForml;

implementation

{$R *.dfm}

procedureTForml.ButtonlClick(Sender: TObject);

var

a:array[1..5] of integer; // массив

summ: integer; // сумма элементов

sr: real; // среднее арифметическое

i: integer; // индекс

begin

// вводмассива

// считаем, что если ячейка пустая, то соответствующий

// ей элемент массива равен нулю

fori:= 1 to 5 do

if Length(StringGridl.Cells[i-1, 0]) <>0 then a[i]:= StrToInt(StringGridl.Cells[i-1,0])

else a[i]:= 0;

// обработкамассива

summ:= 0;

for i:=1 to 5 do

summ:= summ + a[i]; sr:= summ/5;

//выводрезультата

Label2.Caption:= 'Суммаэлементов: ' + IntToStr(summ)+ #13+ 'Среднееарифметическое: ' + FloatToStr(sr);

end;

 

procedure TForm1.StringGridlKeyPress(Sender: TObject;

var

Key: Char;

begin

case Key of #8,'0'..'9':; // цифрыиклавиша<Backspace>

#13: // клавиша<Enter>

ifStringGridl.Col<StringGridl.ColCount — 1 then StringGridl.Col:= StringGridl.Col + 1;

elsekey:= Chr(0); // остальные символы запрещены

end;

end;

end.

 

 

Использование компонента Memo

Для ввода массива можно использовать также компонент Memo. Компонент Memo позволяет вводить текст, состоящий из достаточно большого количества строк. Компонент Memo добавляется в форму обычным образом. Значок компонента находится на вкладке Standard

Рисунке 4- Компонент Memo

При использовании компонента Memo значение каждого элемента массива вводили в отдельной строке и после ввода каждого элемента массива нажимали клавишу <Enter>.

 

Рисунок 5-Диалоговое окно приложения Ввод массива

Программа

unitfr_memo_;

interface

uses

Windows, Messages, SysUtils, Classes,

Graphics, Controls, Forms, Dialogs, Menus, StdCtrls;

type

TForm1 = class(TForm)

Memo1: TMemo;

Button1: TButton;

Label1: TLabel;

procedureButtonlClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Forml: TForm1;

implementation

($R *.DFM}

procedureTForml.ButtonlClick(Sender: TObject);

const

SIZE=5; // размермассива

var

a:array[l..SIZE]of string[30]; //массив

n: integer; // количество строк, введенных в поле Memo

i:integer; // индекс элемента массива

st:string;

begin

n:=Memo1.Lines.Count;

ifn = 0 then

begin

ShowMessage('Исходные данные не введены!');

Exit; // выход из процедуры обработки события

end;

// в поле Memo есть текст

if n > SIZE then

begin

ShowMessage('Количество строк превышает размер массива.');

n:=SIZE; // будем вводить только первые SIZE строк

end;

for i:=1 to n do

a[i]:=Form1.Memol.Lines[i-1]; // строки Memo пронумерованыснуля

// вывод массива в окно сообщения

if n > 0 thenbegin

st:='Введенныймассив:'+#13;

for i: =1 to n do

st:=st+IntToStr(i)+' '+ a[i]+#13;

ShowMessage(st);

end;

end;

end.

 

 

Список рекомендуемой литературы

1 Фаронов, В.В. Delphi 2005. Язык, среда, разработка приложений/ В.В. Фаронов. −Питер, 2005.−560 с.

2 Архангельский, А.Я. Программирование в Delphi для Windows. 2006, 2007, TurboDelphy / А. Я. Архангельский. М.: БИНОМ, 2007. −1239 с.

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: