Види навчальної діяльності
Обговорюємо
- Поясніть порядок налаштування вигляду елемента StringGrid1 для відображення одновимірного масиву.
- Яка властивість компонента StringGrid1 відповідає за можливість редагування вмісту клітинок таблиці StringGrid?
Діємо разом
- Вправа 1. Розробіть проект, у якому стовпець із п'яти слів, які користувач вводить у багаторядкове поле, буде розміщуватись у рядку таблиці.
- Створення проекту з використанням мови Object Pascal
- Відкрийте середовище Lazarus, створіть новий проект, розмістіть на екранній формі об'єкти, як показано на скріншотах,
- Створіть процедуру опрацювання події натиснення кнопки Сформувати. У вікні редактора коду опишіть змінні, які будуть використовуватись у проекті: а - масив рядків, i - лічильник номерів рядків у багаторядковому текстовому полі та номерів у таблиці виведення.
- У вікні редактора коду запишіть команди для зчитування даних з текстового поля, формування написів у таблиці та заповнення клітинок таблиці.
- Виконайте проект і проаналізуйте результати. Якщо є помилки, виправте їх і збережіть зміни.
var i: integer;
a : array [1..5] of string;
begin
StringGrid1.Cells[0,1] := 'a';
for i:= 1 to 5 do
begin
a[i] := Memo1.Lines[i-1];
StringGrid1.Cells[i,0] := IntToStr(i);
StringGrid1.Cells[i,1] := a[i];
end;
end;
- Вправа 2. Створіть проект, у якому необхідно заповнити таблицю з клавіатури і знайти середнє арифметичне елементів масиву.
- Створення проекту з використанням мови Object Pascal
- Відкрийте середовище Lazarus і створіть новий проект, розмістіть на екранній формі об'єкти, як на скріншоті (заповніть таблицю вручну з клавіатури, використовуючи контекстне меню компонента StringGrid1) і введіть програмний код.
- Запустіть проект на виконання і проаналізуйте результати виконання. У разі появи помилок, виправте їх і збережіть зміни.
procedure TForm1.Button1Click(Sender: TObject);
var a: array[1..6] of Integer;
sum: Integer; // сума елементів
sr: Real; // середнє арифметичне
i: Integer; // індекс
begin
// введення масиву
{ Функція Length() повертає довжину рядка. Вважаємо, що якщо комірка порожня, то відповідний елемент масиву дорівнює нулю }
For i := 1 to 6 do
If Length(StringGrid1.Cells[i-1, 1]) <> 0
Then a[i] := StrToInt(StringGrid1.Cells[i-1, 1])
else a[i] := 0;
// опрацювання масиву
sum := 0;
For i := 1 to 6 do sum := sum + a[i];
sr := sum / 6;
Label1.Caption := 'Сума елементів: ' + IntToStr(sum) + #13#10 + 'Середнє арифметичне: ' + FloatToStr(sr); { #73#/0 — службові символи повернення каретки і перенесення рядка відповідно }
end;
- Вправа 3. Створіть проект для обчислення середнього значення десяти дійсних чисел з діапазону 9,0-10,0, отриманих у ході деякого експерименту.
- Створення проекту з використанням мови Object Pascal
- Відкрийте середовище Lazarus і створіть новий проект, розмістіть на екранній формі об'єкти, як на скріншоті,
надайте значення їхнім властивостям згідно таблиці.
- Створіть процедуру опрацювання події натиснення кнопки Розрахувати. У вікні редактора коду опишіть змінні, які будуть використовуватись у проекті: a - масив дйсних чисел, s - середнє значення, i - номер (індекс) елемента масиву.
- У вікні редактора коду запишіть команди введення значень елементів масиву, їх опрацювання та виведення елементів масиву. Зверніть увагу на те, що елементи масиву генеруються випадково. А для перетворення значення елемента дійсного типу в рядковий використано команду FlaotToStrF - перетворення дійсного числа з фіксованою крапкою із 3 цифр, серед яких 2 - у дробовій частині, у рядкову величину: FloatToStrF(a[i], ffFixed, 3, 2).
- Запустіть проект на виконання, проаналізуйте результат, якщо є помилки, виправте їх і збережіть зміни.
var i : integer;
s : real;
a : array [1..10] of real;
begin
Randomize;
StringGrid1.Cells[0,1] := 'a';
s := 0;
for i := 1 to 10 do
begin
a[i] := Random + 9.0;
StringGrid1.Cells[i,0] := IntToStr(i);
StringGrid1.Cells[i,1] := FloatToStrF(a[i], ffFixed, 3, 2);
s := s + a[i];
end;
s := s/10;
Edit1.Text := FloatToStrF(s, ffFixed, 2, 2);
end;
- Створення проекту з використанням мови Python
- Відкрийте середовище програмування мовою Python, створіть новий файл і збережіть його під іменем Середнє значення.
- У вікні редактора коду введіть команди. Зверніть увагу на те, що для округлення дійсного числа можна застосовувати команду round(величина, порядок), яка не потребує підключення бібліотеки math.
- Запустіть проект на виконання і перевірте, чи відповідають умові завдання отримані результати. Якщо є помилки, виправте їх, збережіть зміни.
# імпорт модуля генерування випадкових чисел
import random
# створюємо порожній список
a = []
# вказуємо змінну для обчислення середнього початкового значення
s = 0
for i in range(10):
# додаємо згенеровані виипадковим чином елементи до списку
a.append(round((random.random() + 9.0), 2))
# знаходимо суму елементів списку
s += a[i]
# знаходимо середнє значення елементів списку
s = s / 10
# виводимо згенерований список
print(a)
# виводимо середнє значення
print(round(s, 2))
- Запропонуйте приклади проектів, у яких доцільно вводити значення табличної величини, використовуючи:
- Текстові поля чи написи.
- Генерування випадкових чисел.
- Багаторядкове поле.
- Таблицю рядків.
- Вікно повідомлення.
Виконуємо самостійно
- Завдання 1. Створіть проект у середовищі Lazarus під назвою Розклад уроків, у якому назви уроків формують табличну величину з іменем lessons за допомогою вікна введення, а результат виводиться у вигляді таблиці.
procedure TForm1.Button1Click(Sender: TObject);
var i : integer;
lessons : array[1..5] of string;
begin
StringGrid1.Cells[0,1] := 'Предмет'; // створення заголовка в першому рядку таблиці (відлік від 0)
for i:= 1 to 5 do
begin
lessons[i] := Memo1.Lines[i-1];
StringGrid1.Cells[i,0] := IntToStr(i);
StringGrid1.Cells[i,1] := lessons[i];
end;
end;
- Завдання 2. Створіть у середовищі Lazarus проект під назвою Зріст, у якому вводиться масив цілих чисел, що відповідають зросту ваших однокласників, і масив з, відповідно, їхніми іменами, а у таблицю виводиться об'єднана інформація про зріст і відповідні імена.
procedure TForm1.Button1Click(Sender: TObject);
var i: integer;
h: array[1..10] of integer;
students: array[1..10] of string;
begin
StringGrid1.Cells[0,0] := 'Учні';
StringGrid1.Cells[0,1] := 'Зріст';
for i:= 1 to 10 do
begin
h[i] := StrToInt(Memo1.Lines[i-1]);
students[i] := Memo2.Lines[i-1];
StringGrid1.Cells[i,0] := students[i];
StringGrid1.Cells[i,1] := IntToStr(h[i]);
end;
end;
- Відкрийте середовище програмування мовою Python, створіть новий файл і збережіть його під іменем Перестановка.
- У вікні редактора коду введіть команди.
- Запустіть проект на виконання і проаналізуйте результат.
# імпорт модуля генерування випадкових чисел
import random
# створюємо порожній список
a = []
for i in range(10):
# додаємо елементи, згенеровані виипадковим чином, до списку
a.append(round(random.uniform(-10, 10), 1))
# виводимо згенерований список
print(a)
for i in range(0, 10, 2):
# видаляємо елемент із списку a
element = a.pop(i)
# вставляємо видалений елемент у правильну позицію
a.insert(i + 1, element)
# виводимо список із перестановками
print(a)
- Завдання 4. Створіть проект у середовищі Lazarus, у якому виконується перестановка місцями у списку з 10 дійсних чисел, що стоять на парних і непарних місцях.
- Створіть новий проект. Змініть властивості Caption форми, розмістіть на формі компоненти і налаштуйте їхні властивості згідно із скріншотом.
- Створіть процедуру обробки події для кнопки Виконати перестановку. Таблиця StringGris1 має таку структуру: перший рядок таблиці - це індекси масиву з 10 цілих чисел (масив заповнюється випадковими цілими числами), другий рядок таблиці - виведення елементів масиву, третій рядок таблиці - перестановка місцями елементів масиву, що стоять на парних і непарних місцях, четвертий рядок таблиці - обнулення елементів з парними індексами, які містяться у другому рядку таблиці. Програмний код реалізації проекту може бути наступним.
- Перевірте роботу програми, у разі появи помилок, виправте їх. Збережіть зміни.
procedure TForm1.Button1Click(Sender: TObject);
var a : array[1..10] of integer;
i, c : integer;
begin
Randomize;
for i := 1 to 10 do
begin
a[i] := Random(20);
StringGrid1.Cells[i-1,0] := IntToStr(i);
StringGrid1.Cells[i-1,1] := IntToStr(a[i]);
end;
i := 1;
while i <= 9 do
begin
c := a[i];
a[i] := a[i+1];
a[i+1] := c;
i := i + 2;
end;
for i := 1 to 10 do
StringGrid1.Cells[i-1,2] := IntToStr(a[i]);
end;
procedure TForm1.Button2Click(Sender: TObject);
var i : integer;
begin
for i := 1 to 10 do
begin
if StrToInt(StringGrid1.Cells[i-1,0]) mod 2 <> 0
then
StringGrid1.Cells[i-1,3] := StringGrid1.Cells[i-1,1]
else
StringGrid1.Cells[i-1,3] := IntToStr(0);
end;
end;
Домашнє завдання
- Опрацювати підручник: §35 с. 194-197 (Інформатика, 9 клас, автори: Бондаренко О. О., Ластовецький В. В., Пилипчук О. П., Шестопалов Є. А.)