Увага! Під час роботи з комп'ютером дотримуйтеся правил безпеки та санітарно-гігієнічних норм.
Повторіть правила безпечної роботи за комп’ютером.
Завантажте і встановіть: Середовище програмування Лазарус (для тих, хто не завантажив)
Завдання. Дано одновимірний масив, значення всіх елементів якого різні. Визначити найбільше та найменше значення серед елементів цього одновимірного масиву і обміняти їх місцями.
Оскільки потрібно обміняти місцями найбільше та найменше значення серед значень елементів одновимірного масиву, то потрібно визначити не тільки самі ці значення, а ще й номер елемента, значення якого найбільше, і номер елемента, значення якого найменше. Визначимо все це, переглядаючи значення елементів одновимірного масиву лише один раз.
Спочатку вважатимемо, що значення першого елемента і найбільше, і найменше, а номер найбільшого та найменшого елемента – 0. Після чого послідовно переглядатимемо всі інші елементи одновимірного масиву. Якщо значення чергового елемента одновимірного масиву більше того значення, яке ми на той момент вважаємо найбільшим, то замінюємо найбільше значення серед уже переглянутих і номер найбільшого елемента. Якщо ні, то може це значення менше ніж те, яке ми поки що вважаємо найменшим. І якщо це так, то замінюємо найменше значення серед уже переглянутих і номер найменшого елемента.
Procedure TForm1.Button1Click(Sender: TObject);
var a: array [0..9] of real; i, nmax, nmin: integer; max, min: real;
begin
for i := 0 to 9 do a[i] := StrToFloat(Memo1.Lines[i-1]);
max := a[0]; nmax := 0; // значення першого елемента вважаємо найбільшим
min := a[0]; nmin := 0; // значення першого елемента вважаємо найменшим
for i := 1 to 9 do
if a[i] > max // порівняння значення чергового елемента з найбільшим на цей момент
then begin
max := a[i]; // замінюємо значення найбільшого елемента
nmax := i; // замінюємо номер найбільшого елемента
end
else if a[i] < min // порівняння значення чергового елемента з найменшим на цей момент
then begin
min := a[i]; // замінюємо значення найменшого елемента
nmin := i; // замінюємо номер найменшого елемента
end;
a[nmax] := min; a[nmin] := max; // обмін значеннями найбільшого і найменшого елементів
for i := 0 to 9 do Memo2.Lines.Append(FloatToStr(a[i])); // виведення значень елементів масиву з переставленими найбільшим і найменшим значеннями
end;
"Інформатика, 9 клас" (Й.Я. Ривкінд та їнші):
Прочитайте та розберіть теоретичний матеріал пункту 5.2 (стор. 248-257), вправи 3, 4 (стор. 254).