Інформатика.
Тема: Розробка та тестування програмного рішення
Робота з комп’ютером
Увага! Під час роботи з комп’ютером дотримуйтеся правил безпеки та санітарно-гігієнічних норм
“Проєкт Від’ємний елемент”
Завдання.
Багаторядкове текстове поле містить дійсні числа. Відомо, що їх кількість не перевищує 20. Ввести ці числа як значення елементів одновимірного масиву. Сформувати з від’ємних значень елементів цього масиву другий масив. Вивести значення елементів другого масиву в інше багаторядкове поле. Визначити середнє арифметичне значень елементів другого масиву. Вивести його в текстове поле.
Технологія виконання завдання.
• два багаторядкових текстових поля заввишки 400 і з вертикальною смугою прокручування;
• два написи: над першим багаторядковим текстовим полем з текстом Елементи і над другим – з текстом Від’ємні елементи;
• текстове поле з написом біля нього Середнє арифметичне;
• кнопку з текстом Від’ємні елементи.
Орієнтовний вигляд форми з компонентами наведено на малюнку.
Оскільки за умовою задачі кількість елементів одновимірного масиву невідома, і відомо лише, що вона не перевищує 20, то в рядку var оголосимо одновимірний масив a максимально можливої кількості елементів (20) з номерами від 0 до 19. Це дасть змогу під час виконання проєкту вводити в перше багаторядкове поле довільну кількість чисел, яка не перевищує 20.
Для визначення реальної кількості елементів для кожного такого введення скористаємося властивістю Memo1.Lines.Count, яка, нагадуємо, визначає реальну кількість заповнених рядків багаторядкового текстового поля.
var a, b: array [0..19] of real; s, m: real; n, i, k: integer;
begin
n:= Memo1.Lines.Count; // визначення кількості заповнених рядків багаторядкового текстового поля, тобто кількість чиселу ньому
for i := 0 to n - 1 do
a[i] := StrToFloat(Memo1.Lines[i]); // формування одновимірного масиву a з n чисел
s := 0; // початкове значення суми від’ємних елементів
k := 0; // початкове значення кількості від’ємних елементів
Тепер будемо переглядати послідовно всі елементи масиву a. І якщо знайдемо елемент з від’ємним значенням, збільшимо кількість таких елементів (k), включимо цей елемент до другого масиву (b) і додамо його значення до суми від’ємних значень (s).
Кількість елементів у масиві b заздалегідь невідома. Але вона точно не більше за 20. Тому в рядку var оголосимо одновимірний масив b максимально можливої кількості елементів (20) з номерами від 0 до 19.
for i := 0 to n - 1 do
if a[i] < 0 then begin
k := k + 1; // збільшуємо кількість від’ємних елементів
b[k-1] := a[i]; // включаємо знайдене від’ємне значення до масиву b під номером k-1 (оскільки номери масиву починаються з 0, то номер останнього елемента на 1 менше ніж кількість елементів)
s := s + a[i]; // додаємо від’ємне значення до суми
end;
Під час обчислення середнього арифметичного від’ємних значень потрібно врахувати, що в масиві a елементів з від’ємними значеннями може й не бути. У такому разі й у масиві b не буде жодного елемента, і це також потрібно врахувати під час його виведення.
Memo2.Clear; // очищення другого багаторядкового поля
if k = 0 then Memo2.Lines.Append(‘Значень, менших від 0, немає’)
else for i := 0 to k-1 do Memo2.Lines.Append(FloatToStr(b[i])); // виведення у друге багаторядкове поле повідомлення або к елементів масиву b
if k = 0 then Edit1.Text := ‘Значень, менших від 0, немає’
else
begin
m := s/k; // обчислення середнього арифметичного від’ємних значень
Edit1.Text := FloatToStr(m); // виведення середнього арифметичного від’ємних значень
end;
end;
Результат п.9-10