Теми рефератів
Авіація та космонавтика Банківська справа Безпека життєдіяльності Біографії Біологія Біологія і хімія Біржова справа Ботаніка та сільське гос-во Бухгалтерський облік і аудит Військова кафедра Географія
Геодезія Геологія Держава та право Журналістика Видавнича справа та поліграфія Іноземна мова Інформатика Інформатика, програмування Історія Історія техніки Комунікації і зв'язок Краєзнавство та етнографія Короткий зміст творів Кулінарія Культура та мистецтво Культурологія Зарубіжна література Російська мова Маркетинг Математика Медицина, здоров'я Медичні науки Міжнародні відносини Менеджмент Москвоведение Музика Податки, оподаткування Наука і техніка Решта реферати Педагогіка Політологія Право Право, юриспруденція Промисловість, виробництво Психологія Педагогіка Радіоелектроніка Реклама Релігія і міфологія Сексологія Соціологія Будівництво Митна система Технологія Транспорт Фізика Фізкультура і спорт Філософія Фінансові науки Хімія Екологія Економіка Економіко-математичне моделювання Етика Юриспруденція Мовознавство Мовознавство, філологія Контакти
Українські реферати та твори » Информатика, программирование » Обробка одновимірних масивів в середовищі програмування Lazarus

Реферат Обробка одновимірних масивів в середовищі програмування Lazarus

Зміст

Введення

1 Теоретичні відомості

2 Практична частина

2.1 Завдання

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

2.3 Екранні форми

Висновки

Література


Введення

Тема роботи В«Обробка одновимірних масивів в середовищі програмування LazarusВ»

Мета роботи: отримання практичних навичок створення віконних додатків для обробки одновимірних масивів в середовищі Lazarus.

Lazarus - вільна середу розробки програмного забезпечення для компілятора Free Pascal Compiler. Інтегроване середовище розробки надає можливість кроссплатформенной розробки додатків в Delphi-подібному оточенні.

На даний момент є єдиним інструментом, що дозволяє досить нескладно переносити Delphi-програми з графічним інтерфейсом в різні операційні системи: Linux, FreeBSD, Mac OS X, Microsoft Windows.


1 Теоретичні відомості

У середовищі Lazarus для введення масивів не передбачені ніякі спеціальні компоненти, тому можна використовувати компоненти Edit, Memo або будь-які інші, призначені для введення даних.

Можна вводити елементи у вікні по одному. У цьому випадку при одноразовому натисканні кнопки введення в обробнику подій повинні виконатися наступні оператори:

i: = i +1;

a [i]: = StrToInt (Edit1.Text);

Це означає, що натискання кнопки приводить до додавання одного елемента з вікна Edit в масив. При виконанні подальших дій по обробці масиву значення змінної i визначить кількість елементів масиву. Початкове значення i = 0 можна задати в розділі опису типізованих констант або в методі OnCreate для форми (див. нижче) і скидати його кожного разу при введенні нового масиву. У масив запишеться стільки елементів, скільки разів буде натиснута кнопка введення. Якщо не скидати значення i, то навіть після обробки масиву можна продовжити введення елементів в масив.

На малюнку 1 представлена ​​форма для введення елементів масиву.

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

З кнопкою Button1 пов'язаний метод procedure Button1Click - ( Введення ). Метод edit 1. SetFocus встановлює фокус на рядку введення Edit1.

type

{TForm1}

TForm1 = class (TForm)

Button1: TButton;

Button2: TButton;

Button3: TButton;

Edit1: TEdit;

Label1: TLabel;

Label2: TLabel;

ListBox1: TListBox;

procedure Button1Click (Sender: TObject);

procedure Button2Click (Sender: TObject);

procedure Button3Click (Sender: TObject);

procedure FormCreate (Sender: TObject);

private

{private declarations}

public

{public declarations}

end;

var

Form1: TForm1;

a: array [1 .. 20] of integer;

j, i, n: integer;

implementation

{TForm1}

procedure TForm1.FormCreate (Sender: TObject);

begin

i: = 0;

listBox1.Clear;

end;

procedure TForm1.Button1Click (Sender: TObject);

begin

edit1.SetFocus;

i: = i +1;

a [i]: = strToInt (edit1.text);

edit1.Clear;

end;

procedure TForm1.Button2Click (Sender: TObject);

begin

for j: = 1 to i do

listBox1.Items.Add (IntToStr (a [j]));

end;

procedure TForm1.Button3Click (Sender: TObject);

begin

i: = 0;

listBox1.Clear;

end;

initialization

{$ I unit2.lrs}

end.

На малюнку 2 представлений результат роботи програми.

Малюнок 2 - Результат роботи програми введення і виведення масиву

В компоненті Edit можна ввести відразу всі елементи масиву, розділяючи їх пробілами. Потрібно пам'ятати, що кількість прогалин-роздільників може бути будь-яким.

Цикл для пропуску пробілів між словами:

while (st [i] = ' ') And (i <= length (st)) do

inc (i);

Слова можна пропустити аналогічним циклом:

while (St [i] <> '') and (i <= length (st)) do

inc (i);

Ці два цикли повинні бути включені в зовнішній цикл, який закінчується тоді, коли закінчиться рядок.

Приклад виділення всіх слів рядки st:

i: = 1;

while i <= length (st) do

begin

while (st [i] = ' ') And (i <= length (st)) do

inc (i);

k: = i;

while (St [i] <> '') and (i <= length (st)) do

inc (i);

sl: = copy (st, k, i-k);

{обробка виділеного слова sl}

end;

На відміну від рядка введення, текстовий редактор Memo може містити будь кількість рядків. Його властивість text представляє собою рядок, складається з знаходяться в полі Memo рядків, розділених послідовністю символів з кодами 13 та 10 (кінець рядка і перехід на нову рядок). Ці символи в поле Memo при натисканні хто клав Enter. Для виділення підрядка, містить елемент масиву, потрібно знайти символ з кодом 13 (# 13), скопіювати в нову підрядок, а потім видалити її разом з кодами 13 і 10 і продовжити пошук кінця рядка.

У наведеному нижче фрагменті програми спочатку в рядок st записується вміст всього вікна memo1. Потім відшукується позиція кінця першого рядка (n) і цей рядок копіюється в st1 і видаляється з st. На малюнку 3 наведено результат роботи програми.

procedure TForm1.Button1Click (Sender: TObject);

var

st, st1: string;

n: integer;

begin

st: = memo1.Text;

n: = pos (# 13, st);

st1: = copy (st, 1, n-1);

label1.Caption: = 'Перший елемент =' + st1;

delete (st, 1, n +1);

ShowMessage ('решта елементів:' + # 13 + st);

end;

Рисунок 3 - Результат обробки memo . text

Наведений вище приклад не враховує тієї обставини, що будь-яка підрядок може містити будь-яку кількість прогалин. Їх потрібно видалити перед перетворенням рядка в число.

Функція GetLine повертає підрядок з номером n з рядка.

Function GetLine (s: string; n: integer): string;

var

p: integer;

begin

{видалити пробіли на початку рядка}

While (pos ('', s) = 1) and (length (s)> 0) do

delete (s, 1,1);

if n> 1 then

repeat

p: = pos (# 13, s);

if p <> 0 then

begin

s: = copy (s, p +2, length (s)-p);

While (pos ('', s) = 1) and (length (s)> 0) do

delete (s, 1,1);

n: = n-1;

end

until (n = 1) or (p = 0);

if n> 1 then result: =''

else

begin

p: = pos (# 13, s);

if p <> 0 then result: = copy (s, 1, p-1)

else result: = s;

end;

end;

procedure TForm1.Button1Click (Sender: TObject);

Var a: array [1 .. 10] of string [20];

i: integer;

st: string;

begin

For i: = 1 to k do

a [i]: = GetLine (Memo1.Text, i);

st: ='';

For i: = 1 to k do

st: = st + a [i] + # 13;

ShowMessage (st);

end;

Малюнок 4 - Результат роботи програми введення масиву

Для відображення на екрані списку значень в Lazarus призначений компонент ListBox . Цей компонент має в своєму складі об'єкт-список, що містить набір рядків з асоційованими з ними довільними об'єктами. Для того, щоб відобразити послідовно на екрані дані, які вводяться в рядок введення, можна виконати оператор ListBox1.Items.Add (E...


Страница 1 из 2Следующая страница

Друкувати реферат
Замовити реферат
Реклама
Наверх Зворотнiй зв'язок