Then begin

Begin

Begin

Then

Else

End

Begin

Then

Begin

Begin

If f

then Label1.Caption := 'зустрічається'

else Label1.Caption := 'не зустрічається';

end;

 

Задача 4. У даному масиві з 10 дійсних чисел визначити найбільше значення.

 

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

 

procedure TForm1.Button1Click(Sender: TObject);

var a: array [1..10] of Real; i: Integer; max: Real;

for i := 1 to 10 do

a[i] := StrToFloat (Memo1.Lines[i-1]);

max := a[1];// Вважаємо, що найбільший елемент – перший

for i := 2 to 10 do

if a[i] > max then max := a[i];// Замінюємо значення найбільшого елемента

Label1.Caption := FloatToStr (max) + ' – найбільше значення';

end;

 

Задача 5. У даному масиві з 10 різних дійсних чисел визначити найбільше значення і найменше значення і обміняти їх місцями.

 

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

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

 

procedure TForm1.Button1Click(Sender: TObject);

var a: array [1..10] of Real; i, nmax, nmin: Integer; max, min: Real;

for i := 1 to 10 do

a[i] := StrToFloat (Memo1.Lines[i-1]);

max := a[1]; nmax := 1;// Значення першого елемента приймається за найбільше

min := a[1]; nmin := 1;// Значення першого елемента приймається за найменше

for i := 2 to 10 do

if a[i] > max// Порівняння значення чергового елемента з найбільшим на цей момент

max := a[i];// Замінюємо значення найбільшого елемента

nmax := i;// Замінюємо номер найбільшого елемента

if a[i] < min// Порівняння значення чергового елемента з найменшим на цей момент

min := a[i];// Замінюємо значення найменшого елемента

nmin := i;// Замінюємо номер найменшого елемента

end;

a[nmax] := min; a[nmin] := max;// Обмін значеннями найбільшого і найменшого елементів

for i := 1 to 10 do

Memo1.Lines.Append(FloatToStr(a[i]);// Виведення значень елементів масиву з переставленими найбільшим і найменшим значеннями

end;

Задача 6. Визначити елементи даного масиву з 10 дійсних чисел, значення яких більше даного дійсного числа.

Очевидно, що як і в Задачі 2, потрібно переглянути послідовно значення всіх елементів масиву і з’ясувати, які з них більші, ніж задане число. Виникає питання, де зберігати значення цих елементів масиву. Адже залежно від значень елементів масиву і від даного числа, кількість таких елементів може бути різна: від 0 до 10.

Було б доцільно заносити значення шуканих елементів до іншого масиву, але нам заздалегідь невідома кількість його елементів.

У мові програмування Delphi є можливість використовувати масиви, кількість елементів яких заздалегідь невідома і яка може змінюватися в ході виконання проекту. Такі масиви називаються динамічними. На відміну від них, масиви, кількість елементів яких відома заздалегідь і яка не змінюється в ході виконання проекту, називаються статичними.

Звертаємо вашу увагу, що нумерація елементів динамічного масиву завжди розпочинається з 0.

У рядку var динамічний масив b, елементами якого будуть дійсні числа, описується так: var b: array of Real;.

 

procedure TForm1.Button1Click(Sender: TObject);

var a: array [1..10] of Real; b: array of Real; i, k: Integer; x: Real;

for i := 1 to 10 do

a[i] := StrToFloat (Memo1.Lines[i-1]);

x := StrToFloat (Edit1.Text);

k := 0;// Лічильник кількості елементів масиву b (спочатку в масиві b немає елементів)

for i := 1 to 10 do

if a[i] > x

k := k+1;// Збільшення на 1 значення лічильника кількості елементів масиву b

SetLength (b, k);// Встановлення нового розміру (кількості елементів) динамічного масиву b

b[k-1] := a[i];// Занесення відповідного елемента масиву a до масиву b

end;

Memo2.Lines.Clear;

if k = 0

then Memo2.Lines[0] := 'Таких чисел не існує'