Види навчальної діяльності
Обговорюємо
- Яким є алгоритм розв'язування задач, у яких передбачено опрацювання деякої сукупності даних?
- Які є способи зміни значень елементів масиву мовами програмування Object Pascal і Python?
- Які елементи управління в середовищі Lazarus можна використати для введення і виведення елементів масиву?
- Як описати алгоритм зміни значень табличних елементів мовами програмування Object Pascal і Python?
- Як описати алгоритм знаходження суми чи добутку значень табличних елементів мовами програмування Object Pascal і Python?
- Як описати алгоритм знаходження суми чи кількості табличних елементів, що відповідають заданим умовам, мовами програмування Object Pascal і Python?
Діємо разом
- Вправа 1. Розробіть проект, у якому елементи табличної величини a, яка містить 10 цілих чисел, змінюються їх квадратами.
- Створення проекту з використанням мови Object Pascal
- Відкрийте середовище Lazarus, створіть новий проект, розмістіть на екранній формі об'єкти, як показано на скріншоті,
і надайте значення їхнім властивостям згідно поданої таблиці:
- Створіть процедуру опрацювання події натиснення кнопки Виконати. У вікні редактора коду опишіть змінні, які будуть використовуватись у проекті: а - масив цілих чисел, i - номер (індекс) елемента масиву.
- У вікні редактора коду запишіть команди введення, опрацювання та виведення елементів масиву. Зверніть увагу на те, що багаторядкове поле містить текстові дані, тому для опрацювання їх спочатку слід перетворити на цілі числа, а потім виведення результату подати рядками.
- Виконайте проект. Введіть у багаторядкове поле ліворуч послідовно 10 натуральних чисел, натискаючи після кожного клавішу Enter. Перевірте на цьому тестовому прикладі, чи відповідають умові завдання дії, пов'язані з об'єктами управління екранної форми. Якщо є помилки, виправте їх.
var i: integer;
a : array [1..10] of integer;
begin
for i := 0 to 9 do
begin
a[i+1] := StrToInt(Memo1.Lines[i]);
a[i+1] := Sqr(a[i+1]);
Memo2.Lines[i] := IntToStr(a[i+1]);
end;
end;
- Створення проекту з використанням мови Python
- Відкрийте середовище програмування мовою Python, створіть новий файл і збережіть його під іменем Квадрати значень.
- У вікні редактора коду введіть команди.
- Запустіть проект на виконання. Введіть значення елементів списку і проаналізуйте отриманий результат. Якщо є помилки, виправте їх, збережіть зміни.
import math
# створюємо новий список
a = []
for i in range(10):
# додаємо введені елементи до списку в області виконання проекту
a.append(int(input('Введіть елемент списку: ')))
# змінюємо значення введеного елемента списку
a[i] = a[i] ** 2
# виводимо результуючий список
print(a)
- Вправа 2. Створіть програму для знаходження кількості елементів лінійної таблиці із 10 цілих чисел, які дорівнюють значенню її першого елемента.
- Створення проекту з використанням мови Object Pascal
- Відкрийте середовище Lazarus і створіть новий проект, розмістіть на екранній формі об'єкти, як на скріншоті, надайте значення їхнім властивостям самостійно.
- Створіть процедуру опрацювання події натиснення кнопки Виконати. У вікні редактора коду опишіть змінні, які будуть використовуватись у проекті: a - масив цілих чисел, k - кількість елементів масиву, i - номер (індекс) елемента масиву.
- У вікні редактора коду запишіть команди введення значень елементів масиву, їх опрацювання та виведення кількості елементів, які дорівнюють першому елементу, враховуючи, що нумерація в багаторядковому текстовому полі починається з 0.
- Запустіть проект на виконання, проаналізуйте результат, якщо є помилки, виправте їх і збережіть зміни.
var i, k: integer;
a : array [1..10] of integer;
begin
k := 0;
a[1] := StrToInt(Memo1.Lines[0]);
for i := 1 to 9 do
begin
a[i+1] := StrToInt(Memo1.Lines[i]);
if a[i+1] = a[1] then k := k + 1;
end;
Edit1.Text := IntToStr(k);
end;
- Створення проекту з використанням мови Python
- Відкрийте середовище програмування мовою Python, створіть новий файл і збережіть його під іменем Кількість елементів.
- У вікні редактора коду введіть команди.
- Запустіть проект на виконання і перевірте, чи відповідають умові завдання отримані результати. Якщо є помилки, виправте їх, збережіть зміни.
# створюємо новий список
a = []
# k - змінна, яка зберігатиме кліькість елементів списку, що дорівнюють першому
k = 0
for i in range(10):
# додаємо введені елементи до списку
a.append(int(input('Введіть елемент списку: ')))
# шукаємо елементи у списку, які рівні з першим
for i in range(9):
if a[i+1] == a[0]:
k += 1
# виводимо кількість елементів, рівних першому
print(k)
- Мовами програмування Object Pascal і Python, запишіть фрагмент програми, у якій будуть реалізовані такі завдання:
- 5-му елементу лінійної таблиці A рядкового типу з 10 елементів надати значення 123.
- першому елементу лінійної таблиці А цілого типу з 10 елементів надати значення 8-го елемента цієї ж таблиці.
- Елементу з номером i лінійної таблиці А дійсного типу надати значення 19.81.
- 7-му елементу лінійної таблиці Number цілого типу з 10 елементів надати деяке конкретне значення.
- 2-му елементу лінійної таблиці Number дійсного типу з 10 елементів надати значення вмісту цієї ж клітинки, збільшене вдвічі.
- Мовами програмування Object Pascal і Python, запишіть фрагмент програми, у якій перевірятимуться такі умови:
- Вміст першого елемента лінійної таблиці Year рядкового типу дорівнює значенню високосний.
- Вміст кожного елемента лінійної таблиці A дійсного типу належить заданому відрізку [a, b].
- Вміст 6-го елемента лінійної таблиці А дійсного типу не перевищує значення величини H.
- Вміст 5-го елемента лінійної таблиці з іменем Book цілого типу не збігається з 15-тим елементом цієї ж таблиці, збільшеним утричі.
- Вміст 7-го елемента лінійної таблиці А дійсного типу не перевищує дійсного числа K і вміст елемента лінійної таблиці з іменем City літерного типу дорівнює Київ.
- Масив A[1..5] заповнено числами 3, 8, 5, 7, 6. Виконайте дії з елементами масиву:
a) For i:=1 to 5 do A[i]:=-A[i];
b) For i:=1 to 5 do
if A[i] mod 3 = 0 Then A[i]:=A[i] div 3;
c) For i:=1 to 5 do
if i mod 2 = 0 Then A[i]:=0;
d) S:=0; For i:=1 to 5 do S:=S+A[i];
e) P:=1; For i:=1 to 5 do If A[i]<=5 Then P:=P*A[i];
f) K:=0; For i:=1 to 5 do If A[i]>5 Then K:=K+1;
- Ввести з клавіатури значення елементів масиву.
- Знайти добуток елементів масиву.
- Знайти мінімальний елемент масиву.
- Знайти кількість додатних елементів масиву.
Виконуємо самостійно
- Завдання 1. Створіть проект у середовищі Lazarus під назвою Надбавка, у якому заробітна плата 10 працівників деякого підприємства, подана дійсними величинами в лінійній таблиці, збільшується на задане число відсотків. Вікно екранної форми може мати такий вигляд. Проаналізуйте програмний код, наведений нижче і скористайтеся ним для реалізації проекту.
procedure TForm1.Button1Click(Sender: TObject);
var i : integer;
salary : array[1..10] of Real;
k : real;
begin
k := StrToFloat(Edit1.Text);
for i := 1 to 10 do
salary[i] := StrToFloat(Memo1.Lines[i-1]);
for i := 1 to 10 do
Memo2.Lines.Add(FloatToStr(salary[i] + (salary[i] * k / 100)));
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Memo1.Clear;
Memo2.Clear;
Edit1.Text := '';
end;
- Завдання 2. Створіть у середовищі Lazarus програму для для виконання завдання: масив numbers[1..50] заповнено випадковими числами в межах від 1 до 100. Визначити, скільки елементів масиву відрізняються від останнього елемента. Вікно екранної форми може мати вигляд. Проаналізуйте програмний код і використайте його для реалізації проекту.
procedure TForm1.Button1Click(Sender: TObject);
var i, k, element : integer;
numbers : array [1..50] of integer;
begin
Memo1.Clear;
Randomize;
k := 0;
for i := 1 to 50 do
begin
numbers[i] := Random(100);
Memo1.Lines.Add(IntToStr(numbers[i]));
end;
element := StrToInt(Memo1.Lines[49]);
for i := 0 to 48 do
begin
if StrToInt(Memo1.Lines[i]) <> element
then k := k + 1;
end;
Edit1.Text := IntToStr(k);
end;
- Відкрийте середовище програмування мовою Python, створіть новий файл і збережіть його під іменем Підрахунок.
- У вікні редактора коду введіть команди.
- Запустіть проект на виконання і проаналізуйте результат.
# імпорт модуля генерування випадкових чисел
import random
# створюємо порожній список
a = []
# вказуємо змінну s для обчислення суми доатних елементів
s = 0
# вказуємо змінну k для обчислення кількості від'ємних елементів
k = 0
for i in range(10):
# додаємо згенеровані виипадковим чином елементи до списку
a.append(round(random.uniform(-10, 10), 1))
for i in range(10):
if a[i] >= 0:
s += a[i]
else:
k += 1
# виводимо згенерований список
print(a)
# виводимо суму додатних елементів
print(round(s, 2))
# виводимо кількість від'ємних елементів
print(round(k, 2))
- Завдання 4. У магазині обслужили за день n (n <= 200) покупців, кожен з яких витратив на покупки не більше за k (k <= 500) гривень. Створіть проект у середовищі Lazarus, у якому визначте денний прибуток магазину і середню суму споживчого чека. Знайдіть кількість покупців, які витратили на покупки суму, більшу за середній чек за день.
- Створіть новий проект. Змініть властивості Caption форми, розмістіть на формі компоненти і налаштуйте їхні властивості згідно із скріншотом. Текстове поле Edit1 призначене для введення кількості покупців, поле Memo1 - для виведення значень елементів масиву, список ListBox1 - для виведення результатів обчислень.
- Опишіть змінні, необхідні для розв'язування задачі, як глобальні, тому що областю видимості для них є процедури обробки події обох кнопок Заповнити масив і Обчислити прибуток.
- Властивості ScrollBars елемента керування Memo1 задайте значення ssAutoVertical. Створіть процедуру обробки події для кнопки Заповнити масив.
- Створіть процедуру обробки події для кнопки Обчислити прибуток. Результати обчислення виведіть у поле списку ListBox1.
- Створіть процедуру обробки події для кнопки Знайти кількість чеків. Запишіть команди для знаходження кількості елементів масиву, значення яких більші за середнє значення. Результати обчислень виведіть у поле списку ListBox1.
- Перевірте роботу програми, у разі появи помилок, виправте їх. Збережіть зміни.
var
Form1: TForm1;
buyers : array[1..200] of integer;
sr: real;
n : integer;
implementation
var i : integer;
begin
Randomize;
Memo1.Clear;
n := StrToInt(Edit1.Text);
for i := 1 to n do
begin
buyers[i] := 1 + Random(500);
Memo1.Lines.Add(IntToStr(buyers[i]));
end;
var i, sum : integer;
begin
sum := 0;
for i := 1 to n do
sum := sum + buyers[i];
ListBox1.Items.Add('Денний прибуток: ' + IntToStr(sum) + ' грн.');
sr := sum/n;
ListBox1.Items.Add('Середній чек: ' + FormatFloat('0.##', sr) + ' грн.');
var i, k: integer;
begin
k := 0;
for i := 1 to n do
if buyers[i] > sr then k := k + 1;
ListBox1.Items.Add('Кількість чеків,');
ListBox1.Items.Add('більших за середній: ' + IntToStr(k));
end;
Домашнє завдання
- Опрацювати підручник: §34 с. 189-193 (Інформатика, 9 клас, автори: Бондаренко О. О., Ластовецький В. В., Пилипчук О. П., Шестопалов Є. А.)