Робота з масивами в delphi

Дуже був здивований коли до нас надійшло прохання розповісти про масивах і про їх сортуванні в Delphi. Але якщо вже надійшло прохання, а сайт наш покликаний допомогти в освоєнні Delphi, то я вирішив написати цю статтю, в якій розповім Вам про можливі дії з масивами в Delphi. При цьому ми напишемо кілька користувальницьких функцій, які будуть допомагати нам в подальшому при роботі з масивами.

введення масиву

Для того щоб працювати з масивом, його треба з початку отримати від користувача. Спробуємо здійснити введення одновимірного масиву за все в одне поле редагування. Кожен елемент масиву буде відділятися від попереднього роздільником. Після клацання на кнопці програма виділить з рядка, що містить масив, першу подстроку, потім виділить другу подстроку і т.д.

Давайте зараз цим і займаємося. Поставте на Вашу форму кнопку Button і поле редагування Edit.

Тема нашої функції буде такою:

st - рядок, що містить масив expl - рядок роздільник n - номер підрядка

Для отримання n-ой підрядка (елемента масиву) з отриманої в якості аргументу рядка функція спочатку видаляє попередню їй n-1 подстроку (цикл for), потім знаходить роздільник, який позначає кінець потрібної підрядка, виділяє підрядок і повертає її в якості значення функції ( через своє ім'я).

Не забудьте додати заголовок нашої функції в розділ Public модуля програми.

Тепер для перевірки роботи нашої функції напишемо обробник події OnClick, для нашої кнопки. На початку ми з допомогою нашої функції отримаємо масив з Edit1, а потім виведемо його:

Пошук мінімального (максимального) елемента масиву

Будемо шукати мінімальний елемент в целочисленном масиві. Для цього трохи змінимо обробник події OnClick для кнопки:

У цьому прикладі a [min] мінімальний елемент масиву, а min - номер мінімального елемента. Алгоритм дуже простий: порівнюємо кожен наступний елемент з мінімальним, якщо він менше мінімального, то запам'ятовуємо його номер в змінної min. і продовжуємо порівнювати вже з ним.

Щоб знайти максимальний елемент, потрібно змінити все один рядок:

Треба замінити на:

Тільки тепер a [min] - максимальний елемент, а min - номер максимального елемента.

Пошук заданого елемента в масиві

Зробимо методом простого перебору. Для цього будемо перебирати всі елементи масиву, поки не зустрінемо шуканий елемент, або поки не дійдемо до кінця масиву.

Елемент, збіг з яким нам треба знайти будемо зберігати в текстовому полі Edit2. Обробник події OnClick нашої кнопки матиме такий вигляд:

Сортування масиву

Ось ми і дійшли до самого цікавого - до сортування масиву. Розглянемо алгоритм т.зв. прямого вибору. Сенс його полягає в наступному:

Переглядаючи масив від першого елемента, знайдемо мінімальний елемент і помістимо його на місце першого елемента, а перший елемент - на місце мінімального.

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

Алгоритм ясний, тепер приступимо до написання коду. Все той же обробник події OnClick приймає тепер такий вигляд:

Добрий вечір, підкажіть будь ласка,
з пошуку хв значення
ось я скопіювала всю цю програмку
дельфі видає помилку таку
undeclaret idintifier 'GetSubSrt'
що це за GetSubSrt такий і куди його додати щоб його дельфі Новомосковскл ??
Підкажіть будь ласка(
а якщо можна мені до завтра залишилося 2 завдання вирішити до іспиту
ні як в масиву не врублю (
№ 5.3. Дан масив дійсних чисел. Знайти суму квадратів
елементів масиву.
і
№5.8. Дан масив дійсних чисел. Знайти найменший з
елементів масиву з парними номерами.
Заранее спасибо, хоча б про GetSubStr підкажіть (

підкажіть будь ласка як зробити щоб в масив можна було записувати дані різних типів! наприклад і числа і букви! Спасибо заранее!

допоможіть пожалуста вирішити задачу
дан цілочисельний масив розміру N.Преобразовать його додавши до парних числах перший елемент.первий і останній елементи масиву не змінювати

Будь ласка, допоможіть написати програму з одновимірним масивом. Ось завдання: Дан цілочисельний масив розміру N. Збільшити всі парні числа, що містяться в масиві, на початкове значення першого парного числа. Якщо парні числа в масиві відсутні, то залишити масив без змін. Наперед дякую.

в коді нижче, замість

З динамічними все просто

var myarr: array of string;

procedure add;
begin
SetLength (myarr, Lemgth (myarr) +1);
myarr [Length (myarr) -1]: = 'Привіт';
end;

procedure show (a: integer);
begin
if (a showmessage (myarr [a]);
end;

Так мені все сподобалося круто. Ось тільки я не знайшов динамічні масиви.
Ну а сайт сам по собі простінькій але доречний прикольний я знайшов цікаву для мене інфо.

Все вже розібрався сам :)

Щось я спробував ніби як написано але у мене нічого не вийшло.
Видає помилки -
[Error] Unit1.pas (46): Statement expected but 'PROCEDURE' found
[Warning] Unit1.pas (57): Text after final 'END.' - ignored by compiler
[Fatal Error] Project1.dpr (5): Could not compile used unit 'Unit1.pas'

і виділяє червоним кольором рядок -
procedure TForm1.Button1Click (Sender: TObject);

Поясніть будь ласка що я не так роблю.

P.S. У Delfi працював тільки з базами даних, а в універі задали курсову - "Розробка Windows додатки в середовищі Delphi. Пошук мінімального елемента масиву."

якщо наприклад масив сотоящій з слобцов скажімо 10X10. і потрібно було скласти числа в вигляді піраміди напрмер.
-----* -----
----** ----
---*** ----
і так до **********
а потм на оборот по спадаючій
-******** -
--****** -
---**** ---

В принципі все цікаво, ну а гдеже динамічні масиви.