Одновимірні масиви 11 клас (продовження)
Задача 4. У даному масиві з десяти дійсних чисел визначити найбільше значення. Спочатку вважатимемо, що значення першого елемента масиву і є найбільшим серед усіх значень елементів масиву. Після чого послідовно переглядатимемо всі інші елементи масиву і якщо трапиться значення, яке більше за те, яке ми на даний момент вважаємо найбільшим, то зробимо це значення найбільшим.
Вигляд форми
Процедура пошуку максимального елемента procedure TForm1.Button1Click (Sender: TObject); var a: array [1..10] of Real; i: Integer; max: Real; begin 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. У даному масиві з десяти різних дійсних чисел визначити найбільше та найменше значення й поміняти їх місцями. Оскільки потрібно поміняти місцями найбільше і найменше значення серед значень елементів масиву, то потрібно визначити не тільки самі ці значення, а ще й порядковий номер елемента масиву, значення якого найбільше, і порядковий номер елемента масиву, значення якого найменше. Спробуємо визначити все це, переглядаючи елементи масиву лише один раз. Спочатку вважатимемо, що значення першого елемента масиву – і найбільше, і найменше, а номер найбільшого і найменшого елемента масиву 1. Після чого послідовно переглядатимемо всі інші елементи масиву. Якщо значення чергового елемента масиву більше за те значення, яке ми на той момент вважаємо найбільшим, то замінюємо найбільше значення серед уже переглянутих елементів масиву і номер найбільшого елемента. Якщо ні, то може це значення менше ніж те, яке ми поки що вважаємо найменшим. І якщо це так, то замінюємо найменше значення серед уже переглянутих елементів масиву і номер найменшого елемента.
Вигляд форми
procedure TForm1.Button1Click (Sender: TObject); var a: array [1..10] of Real; i, nmax, nmin: Integer; max, min: Real; begin 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 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; Memo1.Lines.Clear; for i := 1 to 10 do Memo1.Lines.Append (FloatToStr(a[i]); end;
Завдання додому У даному масиві з десяти дійсних чисел визначити найменше значення. Підручник Інформатика 11 клас Й.Я Ривкін, Т.І.Лисенко, Л.А. Чернікова, В.В. Шакотько Опрацювати матеріал на сторінках