Поділіться своєю думкою про онлайн уроки інформатики. Пройдіть анонімне опитування на головній сторінці сайту
Дорогі учні 9 класу, сьогоднішній урок присвячений важливій темі у світі програмування - способам заповнення масивів (списків). Це ключовий елемент при роботі з даними, що відкриває безліч можливостей для створення потужних програм. Давайте розглянемо цю тему докладно та розберемося з тим, як ми можемо наповнювати масиви різними способами у мовах програмування Lazarus і Python.
Основні теоретичні відомості:
Масиви (списки) у програмуванні:
Масив - це структура даних, яка дозволяє зберігати одного типу даних у великій кількості. Списки у Python та масиви у Lazarus є схожими об'єктами, але мають певні відмінності у синтаксисі та особливостях використання.
Способи заповнення масивів:
Заповнення вручну:
Lazarus (Pascal): array[0] := 10; array[1] := 20;
Python: my_list = [10, 20]
За допомогою циклу:
Lazarus (Pascal):
for i := 0 to Length(array) - 1 do
array[i] := i * 5;
Python: my_list = [i * 5 for i in range(Length)]
За допомогою введення користувача:
Lazarus (Pascal):
for i := 0 to Length(array) - 1 do
ReadLn(array[i]);
Python: my_list = [int(input()) for _ in range(Length)]
За допомогою генерації випадкових значень:
Lazarus (Pascal):
for i := 0 to Length(array) - 1 do
array[i] := Random(100);
Python: import random; my_list = [random.randint(1, 100) for _ in range(Length)]
Висновок:
Ми розглянули різні способи заповнення масивів у мовах програмування Lazarus і Python. Існує безліч сценаріїв використання цих структур даних, і розуміння, як ефективно їх заповнювати, є ключовим для успішного програмування. Бажаю успіхів на уроці та творчого підходу до розв'язання завдань!
Джерело матеріалу: Сайт Старт програмування
Тест на тему "Способи заповнення масивів (списків) в Lazarus і Python":
Яким чином можна заповнити масив (список) вручну?
A) my_list = [5, 10, 15]
B) for i := 0 to Length(array) - 1 do array[i] := i * 5;
C) input("Enter values: ")
Правильна відповідь: B
Яким чином можна використати цикл для заповнення масиву значеннями?
A) my_list = [10 * i for i in range(5)]
B) array[0] := 10; array[1] := 20;
C) ReadLn(array[i])
Правильна відповідь: A
Як здійснити заповнення масиву за допомогою введення користувача?
A) my_list = [int(input()) for _ in range(3)]
B) array[i] := Random(100);
C) my_list = [5, 10, 15]
Правильна відповідь: A
Як правильно визначити довжину масиву (списку) в мові програмування Python?
A) Length(array)
B) len(my_list)
C) count(array)
Правильна відповідь: B
Яким чином можна заповнити масив випадковими значеннями?
A) for i := 0 to Length(array) - 1 do array[i] := i * 5;
B) array[i] := Random(100);
C) my_list = [int(input()) for _ in range(3)]
Правильна відповідь: B
Що повертає функція random.randint(1, 10) в Python?
A) Випадкове дійсне число від 1 до 10.
B) Випадкове ціле число від 1 до 10.
C) Стрічку "randint(1, 10)".
Правильна відповідь: B
Як можна визначити кількість елементів в масиві (списку) в мові програмування Lazarus?
A) count(array)
B) Length(array)
C) len(my_list)
Правильна відповідь: B
Як змінна my_list виглядатиме після виконання коду my_list = [i * 2 for i in range(4)] в Python?
A) [0, 2, 4, 6]
B) [2, 4, 6, 8]
C) [1, 3, 5, 7]
Правильна відповідь: B
Як можна отримати користувацький ввід в мові програмування Pascal (Lazarus)?
A) input("Enter values: ")
B) ReadLn(array[i])
C) int(input())
Правильна відповідь: B
Яким чином можна заповнити масив значеннями, які є кратними трьом?
A) my_list = [i for i in range(3, 31, 3)]
B) array[i] := Random(100);
C) my_list = [5, 10, 15]
Правильна відповідь: A
Завдання 1: Заповнення масиву випадковими числами
Python:
Python
import random
# Створення списку з 10 випадкових чисел від 1 до 100
my_list = [random.randint(1, 100) for _ in range(10)]
print(my_list)
Використовуйте цей код обачно.
Lazarus:
Створення форми:
Label для виведення результату
Button для запуску процедури заповнення
Код процедури:
Delphi
uses
Math;
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
my_array: array[1..10] of Integer;
begin
Randomize; // Ініціалізація генератора випадкових чисел
for i := 1 to 10 do
my_array[i] := Random(100) + 1; // Заповнення масиву випадковими числами від 1 до 100
// Виведення масиву на форму (приклад, через Join)
Label1.Caption := IntToStr(my_array[1]);
for i := 2 to 10 do
Label1.Caption := Label1.Caption + ', ' + IntToStr(my_array[i]);
end;
Використовуйте цей код обачно.
Завдання 2: Заповнення масиву значеннями, введеними користувачем
Python:
Python
n = int(input("Введіть розмір масиву: "))
my_list = []
for i in range(n):
num = int(input("Введіть число: "))
my_list.append(num)
print(my_list)
Використовуйте цей код обачно.
Lazarus:
Створення форми:
Edit для введення розміру масиву
Button для запуску процедури введення
Label для виведення результату
Код процедури:
Delphi
procedure TForm1.Button1Click(Sender: TObject);
var
n, i: Integer;
my_array: array of Integer;
resultString: string;
begin
n := StrToInt(Edit1.Text);
SetLength(my_array, n); // Динамічне створення масиву
for i := 1 to n do
begin
my_array[i] := StrToInt(InputBox('Введіть число', 'Введення', ''));
end;
// Об'єднання елементів масиву в один рядок
resultString := '';
for i := 1 to n do
begin
resultString := resultString + IntToStr(my_array[i]) + ' ';
end;
// Виведення результату в лейбл
Label1.Caption := resultString;
end;// Виведення масиву (аналогічно до попереднього завдання)
Використовуйте цей код обачно.
Завдання 3: Заповнення масиву за заданим правилом (арифметична прогресія)
Python:
Python
start = int(input("Введіть початкове значення: "))
step = int(input("Введіть крок: "))
n = int(input("Введіть кількість елементів: "))
my_list = [start + i*step for i in range(n)]
print(my_list)
Використовуйте цей код обачно.
Lazarus:
Створення форми:
Edit для введення початкового значення, кроку та кількості елементів
Button для запуску процедури
Label для виведення результату
Код процедури:
Delphi
procedure TForm1.Button1Click(Sender: TObject);
var
start, step, n, i: Integer;
my_array: array of Integer;
begin
// ... (аналогічно попереднім завданням, заповнення змінних зі форми)
SetLength(my_array, n);
for i := 1 to n do
my_array[i] := start + (i-1)*step;
// Виведення масиву
end;
Використовуйте цей код обачно.
Delphi
procedure TForm1.Button1Click(Sender: TObject);
var
start, step, n, i: Integer;
my_array: array of Integer;
begin
// Отримання значень зі форми (припустимо, що є Edit1, Edit2, Edit3 для start, step, n відповідно)
start := StrToInt(Edit1.Text);
step := StrToInt(Edit2.Text);
n := StrToInt(Edit3.Text);
// Перевірка на коректність введених даних (додатково)
if (n <= 0) or (step = 0) then
begin
ShowMessage('Некоректні значення');
Exit;
end;
// Створення масиву та заповнення його значеннями
SetLength(my_array, n);
for i := 1 to n do
my_array[i] := start + (i-1)*step;
// Виведення масиву в Memo1 (припустимо, що є Memo1 на формі)
Memo1.Clear; // Очистити Memo перед виведенням
for i := 1 to n do
begin
Memo1.Lines.Add(IntToStr(my_array[i]));
end;
end;
Використовуйте цей код обачно.
Отримання значень зі форми:
Зчитуємо значення start, step, n з відповідних Edit-компонентів і перетворюємо їх у цілі числа.
Перевірка на коректність:
Перевіряємо, щоб кількість елементів n була більша за нуль і крок step не дорівнював нулю. Якщо умови не виконуються, виводимо повідомлення про помилку і завершуємо процедуру.
Створення та заповнення масиву:
Створюємо динамічний масив my_array заданої довжини n.
Заповнюємо масив значеннями арифметичної прогресії згідно з формулою start + (i-1)*step.
Виведення масиву в Memo:
Очищаємо вміст компонента Memo1 перед виведенням нового результату.
За допомогою циклу додаємо кожен елемент масиву в новий рядок Memo.
Багаторядковий текст: Memo дозволяє відображати багаторядковий текст, що зручно для виведення великих масивів.
Зручність редагування: Вміст Memo можна копіювати, виділяти, редагувати.
Скролінг: Якщо кількість елементів масиву велика, Memo автоматично забезпечить скролінг.
Формат виведення: Можна змінювати формат виведення, додаючи розділові знаки, пробіли або інші символи між елементами масиву.
Виведення в інші компоненти: Можна виводити результат в інші компоненти, наприклад, у Label, ListBox або RichEdit.
Завдання охоплюють основні способи заповнення масивів: випадковими числами, значеннями, введеними користувачем, та за заданим правилом. Розглянуті приклади для Python та Lazarus демонструють схожість алгоритмів і синтаксису.
Завдання 1
Завдання 2
Завдання 3