Поділіться своєю думкою про онлайн уроки інформатики. Пройдіть анонімне опитування на головній сторінці сайту
scss
Copy code
```python
numbers = [5, 2, 8, 1, 3]
numbers.sort() # Цей метод змінює порядок елементів у масиві
print(numbers)
```
# Приклад зміни порядку елементів у списку за допомогою сортування
numbers = [5, 2, 8, 1, 3]
sorted_numbers = sorted(numbers) # Створює новий відсортований список
print(sorted_numbers)
program ChangeOrder;
var
numbers: array[1..5] of Integer;
i: Integer;
begin
// Заповнення масиву числами
numbers[1] := 5;
numbers[2] := 2;
numbers[3] := 8;
numbers[4] := 1;
numbers[5] := 3;
// Сортування масиву
for i := 1 to 4 do
for j := i + 1 to 5 do
if numbers[i] > numbers[j] then
begin
// Зміна порядку
temp := numbers[i];
numbers[i] := numbers[j];
numbers[j] := temp;
end;
// Виведення відсортованого масиву
for i := 1 to 5 do
Write(numbers[i], ' ');
end.
def bubble_sort(arr):
n = len(arr)
for i in range(n - 1):
for j in range(0, n - i - 1):
if arr[j] > arr[j + 1]:
arr[j], arr[j + 1] = arr[j + 1], arr[j]
def insertion_sort(arr):
for i in range(1, len(arr)):
key = arr[i]
j = i - 1
while j >= 0 and key < arr[j]:
arr[j + 1] = arr[j]
j -= 1
arr[j + 1] = key
def quick_sort(arr):
if len(arr) <= 1:
return arr
else:
pivot = arr[0]
less = [x for x in arr[1:] if x <= pivot]
greater = [x for x in arr[1:] if x > pivot]
return quick_sort(less) + [pivot] + quick_sort(greater)
Куришко Сергій Вікторович https://naurok.com.ua/zmina-poryadku-elementiv-masivu-spisku-262458.html
Практична робота
Нижче наведені три завдання з розв'язками на Python і в середовищі Lazarus, включаючи алгоритм створення проекту.
Умова: Дано масив чисел. Необхідно змінити порядок елементів масиву на зворотний.
python
Копіювати код
# Вхідний список
array = [1, 2, 3, 4, 5]
# Зміна порядку елементів
reversed_array = array[::-1]
# Вивід результату
print("Оригінальний масив:", array)
print("Реверсований масив:", reversed_array)
Елементи форми:
Поле введення (TEdit) для введення масиву.
Кнопка "Реверсувати" (TButton).
Мітка (TLabel) для відображення результату.
Алгоритм створення проекту:
Додайте на форму TEdit, TButton і TLabel.
Налаштуйте властивості:
Edit1.Text — для введення масиву.
Button1.Caption — "Реверсувати".
Label1.Caption — порожній текст для результату.
Додайте обробник події OnClick для кнопки Button1.
Код обробника події:
pascal
Копіювати код
procedure TForm1.Button1Click(Sender: TObject);
var
InputArray, ReversedArray: array of Integer;
InputStr, TempStr, ResultStr: string;
i, n, Number: Integer;
begin
InputStr := Edit1.Text;
TempStr := '';
InputArray := [];
// Розділення введеного рядка на числа
for i := 1 to Length(InputStr) do
begin
if InputStr[i] in ['0'..'9'] then
TempStr := TempStr + InputStr[i]
else if (InputStr[i] = ' ') and (TempStr <> '') then
begin
// Додати число до масиву
Number := StrToIntDef(TempStr, 0);
SetLength(InputArray, Length(InputArray) + 1);
InputArray[High(InputArray)] := Number;
TempStr := '';
end;
end;
// Додати останнє число, якщо воно є
if TempStr <> '' then
begin
Number := StrToIntDef(TempStr, 0);
SetLength(InputArray, Length(InputArray) + 1);
InputArray[High(InputArray)] := Number;
end;
// Реверсування масиву
n := Length(InputArray);
SetLength(ReversedArray, n);
for i := 0 to n - 1 do
ReversedArray[i] := InputArray[n - i - 1];
// Формування рядка результату
ResultStr := '';
for i := 0 to High(ReversedArray) do
ResultStr := ResultStr + IntToStr(ReversedArray[i]) + ' ';
// Вивід результату
Label1.Caption := 'Реверсований масив: ' + Trim(ResultStr);
end;
Умова: Дано масив чисел. Необхідно змістити всі елементи вправо на один крок. Останній елемент переміщується на перше місце.
python
Копіювати код
# Вхідний список
array = [1, 2, 3, 4, 5]
# Циклічне зсування вправо
shifted_array = [array[-1]] + array[:-1]
# Вивід результату
print("Оригінальний масив:", array)
print("Після зсування вправо:", shifted_array)
Елементи форми:
Поле введення (TEdit) для введення масиву.
Кнопка "Зсунути вправо" (TButton).
Мітка (TLabel) для відображення результату.
Алгоритм створення проекту:
Додайте на форму TEdit, TButton, і TLabel.
Налаштуйте властивості:
Edit1.Text — для введення масиву.
Button1.Caption — "Зсунути вправо".
Label1.Caption — порожній текст для результату.
Додайте обробник події OnClick для кнопки Button1.
Код обробника події:
pascal
Копіювати код
procedure TForm1.Button1Click(Sender: TObject);
var
InputArray: array of Integer;
ShiftedArray: array of Integer;
InputStr, TempStr, ResultStr: string;
i, n, Number: Integer;
begin
InputStr := Edit1.Text;
TempStr := '';
InputArray := [];
ResultStr := '';
// Розділення введеного рядка на числа
for i := 1 to Length(InputStr) do
begin
if InputStr[i] in ['0'..'9'] then
TempStr := TempStr + InputStr[i] // Накопичуємо числа в TempStr
else if (InputStr[i] = ' ') and (TempStr <> '') then
begin
// Якщо пробіл, то додаємо число в масив
Number := StrToIntDef(TempStr, 0);
SetLength(InputArray, Length(InputArray) + 1);
InputArray[High(InputArray)] := Number;
TempStr := ''; // Очищаємо TempStr для наступного числа
end;
end;
// Якщо залишилось число в TempStr, додаємо його в масив
if TempStr <> '' then
begin
Number := StrToIntDef(TempStr, 0);
SetLength(InputArray, Length(InputArray) + 1);
InputArray[High(InputArray)] := Number;
end;
// Циклічне зсування вправо
n := Length(InputArray);
SetLength(ShiftedArray, n);
if n > 0 then
begin
ShiftedArray[0] := InputArray[n - 1];
for i := 1 to n - 1 do
ShiftedArray[i] := InputArray[i - 1];
end;
// Вивід результату
ResultStr := '';
for i := 0 to High(ShiftedArray) do
ResultStr := ResultStr + IntToStr(ShiftedArray[i]) + ' ';
Label1.Caption := 'Після зсування вправо: ' + Trim(ResultStr);
end;
Умова: Дано масив чисел. Необхідно поміняти місцями парні індекси з наступними непарними (0 з 1, 2 з 3 тощо).
python
Копіювати код
# Вхідний список
array = [1, 2, 3, 4, 5, 6]
# Обмін парними та непарними елементами
for i in range(0, len(array) - 1, 2):
array[i], array[i + 1] = array[i + 1], array[i]
# Вивід результату
print("Після обміну:", array)
Елементи форми:
Поле введення (TEdit) для введення масиву.
Кнопка "Обміняти елементи" (TButton).
Мітка (TLabel) для відображення результату.
Алгоритм створення проекту:
Додайте на форму TEdit, TButton, і TLabel.
Налаштуйте властивості:
Edit1.Text — для введення масиву.
Button1.Caption — "Обміняти елементи".
Label1.Caption — порожній текст для результату.
Додайте обробник події OnClick для кнопки Button1.
Код обробника події:
pascal
Копіювати код
procedure SwapElements(var a, b: Integer);
var
temp: Integer;
begin
temp := a;
a := b;
b := temp;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
InputArray: array of Integer;
ResultStr, InputStr: string;
i, n, Number: Integer;
begin
InputStr := Edit1.Text;
// Розділення введеного рядка на числа
ResultStr := '';
InputArray := [];
// Обробка введеного рядка для створення масиву чисел
for i := 1 to Length(InputStr) do
begin
if InputStr[i] in ['0'..'9'] then
ResultStr := ResultStr + InputStr[i] // Накопичуємо цифри
else if (InputStr[i] = ' ') and (ResultStr <> '') then
begin
// Перетворюємо накопичене число на Integer та додаємо в масив
Number := StrToIntDef(ResultStr, 0);
SetLength(InputArray, Length(InputArray) + 1);
InputArray[High(InputArray)] := Number;
ResultStr := ''; // Очищаємо для наступного числа
end;
end;
// Якщо залишилось число після останнього пробілу, додаємо його в масив
if ResultStr <> '' then
begin
Number := StrToIntDef(ResultStr, 0);
SetLength(InputArray, Length(InputArray) + 1);
InputArray[High(InputArray)] := Number;
end;
// Обмін елементів на парних та непарних індексах
n := Length(InputArray);
for i := 0 to n - 2 do
begin
if i mod 2 = 0 then
SwapElements(InputArray[i], InputArray[i + 1]); // Викликаємо функцію SwapElements
end;
// Формування результату для виведення
ResultStr := '';
for i := 0 to High(InputArray) do
ResultStr := ResultStr + IntToStr(InputArray[i]) + ' ';
Label1.Caption := 'Після обміну: ' + Trim(ResultStr);
end;
Ці задачі забезпечують практику роботи зі списками в Python і масивами в Lazarus, а також інтеграцію з елементами інтерфейсу форми.