Програмування алгоритмiв опрацювання табличних величин (одновимiрних масивiв)
Корнiлова Юлiя, Сухобрус Зоя, Сьомкiна Катерина
Квiтень 2024
2
1 Сухобрус Зоя 5
2 Корнiлова Юлiя 11
2.1 Введення та виведення табличних величин. Командний iнтер-
фейС . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2 Введення та виведення табличних величин. Графiчний iнтер-
фейс . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3 Сьомкiна Катерина 17
3
4 Змiст
Роздiл 1
5
6 Роздiл 1. СУХОБРУС ЗОЯ
Лекцiя 1. Поняття списку, табличних величин. Введення та виведення табличних величин. Багаторядкове текстове поле
Для впорядкування значень одного або рiзних типiв даних використовуюь бiльш складнi типи даних, в порiвняннi з тими, якi вчили у 8 класi.
Так для того, щоб не створювати 5 окремих змiнних, можна створити одну, яка буде мiстити значення цих 5-ти змiнних. отiм цi даннi можна отримати та використати у ходi роботи програми.
Тобто створити такий собi список(list), послiдовнiсть iз декiлькох значень одного або рiзних типiв даних.
У Python створення списку дуже схоже на створення змiнної, але дещо вiдрiзняється.
Наприклад(рис.1), створимо список a зi значеннями 1, "два"та 3.0. Маємо:
Рис. 1.1: фрагмент коду
Як ви могли помiтити, всi елементи цього списку вiдносяться до рiзних типiв даних, а саме int, str, та float вiдповiдно.
7
Отож, тепер ми вмiємо створювати списки, але тут постає питання: як звернутися до окремого елемента списку? А звертатися до елементiв ми будемо за їх iндексами, тобто за порядковим номером. Кожен елемент списку має свiй унiкальний порядковий номер, який визначається автоматично, вiдповiдно до розташування елементiв у списку. У Python iндекс першого елемента не 1 а 0, другого 1 i т.д. Iндекс потрiбно вказувати у квадратних дужках бiля назви(рис. 2) списку.
Якщо ж ми введемо a[3], то Python виведе помилку, оскiльки, елемент з iндексом 3 не iснує:
Рис. 1.2: фрагмент коду
Лекцiя 1.2 Основнi дiї зi списками
Працюючи зi списками, ми можемо виконуватии три основнi дiї з ними:
додавати списки, множити їх на число та отримувати зрiзи
1. Додавання спискiв
Додавання спискiв – це дiя при якiй до одного списку додаються елементи iншого. Наприклад:
8 Роздiл 1. СУХОБРУС ЗОЯ
2. Множення списку на число (дублювання)
При множеннi списку a на цiле число 3 утворится список, який буде в собi мiстити значення трьох спискiв a:
3. Отримання зрiзiв
Зрiз – це певна частина списку. Для його отримання потрiбно вказати початковий i кiнцевий елементи (iндекси) зрiзу. Наприклад:
Окрiм цього, можна вказати крок зрiзу. Крок зрiзу – це число, на яке буде змiнюватися iндекс кожного наступного елемента при побудовi зрiзу. Крок зрiзу повинен бути обов’язково цiлим числом. Наприклад, для того, щоб отримати зрiз iз пропущеним кожним другим числом потрiбно встановити 2 в якостi кроку зрiзу:
Лекцiя 1.3 Табличнi величини
Таблична величина – це впорядкований список, який складається з елементiв одного типу. Так як працювати iз елементами одного типу набагато простiше, у шкiльний програмi ми будемо працювати саме з табличними величинами.
Чому ж саме "таблична "величина? А це тому, що будь-який однотипний список можна представити у виглядi таблицi (табл.1):
9 Табл. 1.1: Список у виглядi таблицi
Iндекс |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
Елемент |
"один" |
"два" |
"три" |
"чотири" |
"п’ять" |
"шiсть" |
"сiм" |
I почнемо ми з введення та виведення табличних величин. Розглядати методи введення та виведення ми будемо як у командному, так i в графiчному iнтерфейсi.
10 Роздiл 1. СУХОБРУС ЗОЯ
Роздiл 2
11
Для запиту списку використовуємо функцiю input(), але оскiльки список це декiлька значень, в якостi допомоги застосовуємо метод split(). Метод допомогає запитати список з декiлькох елементiв в один рядок, якi роздiленi певним роздiловим знаком. Метод застосовується наступним чином:
назва списку=input().split("роздiловий знак")
Роздiловий знак - це будь-який фрагмент текстового рядка. Якщо роздiловий знак невказується, то вiн автоматично буде пробiл:
Застосуємо цю конструкцiю для створення простої задачi. Спочатку запитаємо список значень у користувача, а потiм зоброзимо його в зворотному порядку:
Як ви могли помiтити, всi елементи нашого списку - тексовi фрагменти. Це тому, що ми не вказали тип наших елементiв, а вони за замовчеванням представляють з себе текст. Тут вже трiшки складнiше, бо ми повиннi застосувати функцiю переведення для кожного елементу списку при його введеннi. у цьому нам допоможе наступна конструкцiя (всi елементи списку - цiлi числа, тому застосовуємо функцiю int(), у випадку iз дiйсними числами використовують функцiю float()): а=[int(i) for i input().split()]
i - елемент списку input().split().
Тобто, для кожного елемента i iз нашого введеного списку input().split() потрiбно використовувати функцiю int().
2.1. ВВЕДЕННЯ ТА ВИВЕДЕННЯ ТАБЛИЧНИХ ВЕЛИЧИН. КОМАНДНИЙ IНТЕРФЕЙС13
Виведення вiдбувається за допомогою функцiї print():
Щоб список зображався як рядок iз елементiв, роздiлених пробiлом, треба застосувати цикл for для кожного елемента iз нашого списку а. Тiлом циклу буде функцiя виведення нашого елементу i:
Ми майже досягли потрiбного результату, але елементи виводяться в стовпчик, тобто кожен елемент з нового рядка.
Функцiя print() має чудовий атрибут, який допоможе нам у вирiшенi нашої проблеми. це атрибут end, який вказує на що повинно стояти пiсля виведення всiх елементiв функцiї print(). За замовчуванням зночення атрибута end є рядок ”, тобто перехiд на наступний рядок. Ми ж ставимо пробiл. ось що вийшло:
Одразу ж створемо нове вiконо їз розмiрвми 300х300 пiкселiв iз назвою "Табличнi величини"та створимо напис "Введiть список значень:":
Для введення спискiв викоричтовуємо функцiю Text():
назва поля=Text(вiкно, атрибут1, атрибут2, ...) Даний об’єкт має такi атрибути:
• bg="колiр колiр поля;
• fg="колiр колiр тексту поля;
• font="шрифт та розмiр шрифту шрифт тексту;
• widht=число - ширина, зазначається у кiлькостi знакiв;
• height=число - висота, зазначається у кiлькостi знакiв;
• bd=число - ширина контуру поля (у пiкселях).
Для роботи з багаторядковим текстовим полем iснують наступнi методи:
• insert() - метод додавання даних;
• delete() - метод виделання даних;
• get() - метод отримання даних.
Методи delete та get мають такi параметри: початкова та кiнцева позицiї. Позицiя позначається у виглядi "х.у"(х - номер рядка, у - номер стовпчика). А метод insert має початкову позицiю та текст, який буде додаватися.
Переходимо до створення багаторядкового текстового поля з шириною 42 знаки та з висотою 5 знакiв бiлого кольору. Розмiстимо його в 70-ти пiкселях вiд верхнього краю:
2.2. ВВЕДЕННЯ ТА ВИВЕДЕННЯ ТАБЛИЧНИХ ВЕЛИЧИН. ГРАФIЧНИЙ IНТЕРФЕЙС15
Пiсля запуску прогами ми вже зможемо вводити текст i наше багаторядкове поле.
Найефективнiший спосiб виведення - побудова таблицi. Та в Python немає такого елемента як таблиця, але є метод розмiщення об’єктiв у виглядi таблицi. цей метод називається grid, а розмiщувати ми будемо написи iз елементу списки.
Та перед цим треба створити рамку для таблицi. Рамка створюється за допомогою функцiї Frame(), вона має наступнi атрибути:
• bg="колiр колiр поля;
• widht=число - ширина, зазначається у кiлькостi знакiв;
• height=число - висота, зазначається у кiлькостi знакiв;
• bd=число - ширина контуру поля (у пiкселях).
Рамку, як i iншi об’єкти вiкна tkinter, потрiбно розмiщуватиза допомогою метода plase():
relief - це ще один атрибут, який встановлює тип границi. Solid - зви-
чайна лiнiя.
Створення таблицi за допомогою методу grid:
об’єкт.grid(row=число,column=число)
row - номер рядка, column - номер стовпчика.
Також створимо подiю Return для вiкна, i сам алгоритм виведення списку:
Роздiл 3
17
Роздiл 3. СЬОМКIНА КАТЕРИНА
Рис. 3.1: функцiя len
Лекцiя 2. Алгоритми опрацювання спискiв
Ми продовжуємо знайомитися з табличними величинами та з алгоритмами їх опрацювання, але на вiдману вiд попередньої лекцiї, у цiй ми будемо бiльше працювати не з самими списками, а з їх елементами.
1. Знаходження довжини списку
Iнколи нам доводиться створювати програми, при цьому не знаючи,що саме введе користувач, тому просто порахувати кiлькiсть значень списку на пальцях у нас нiяк не вийде. Для цього iснує спецiальна функцiя len() (див. рис. 1):
2. Замiна та видалення значень
У цiй частинi хочеться наголосити на тому, що список - це такий тип даних, що легко пiддається змiнам. Елементи списку можна змiнювати, видаляти, сортувати, на вiдмiну вiд його "родича"кортежа, про якого ви можете бiльш детально дiзнатися в рубрицi Цiкава iнформацiя.
Почнемо зi змiни значень. Щоб замiнити значення елемента з iндексом i потрiбно використати наступну конструкцiю:
Аналогiчно i видалення елемента вiдбувається за його iндексом з допомогою оператора del:
3. Знаходження кiлькостi заданих елементiв
Окрiм того, що ми можемо знайти загальну кiлькiсть всiх елементiв, ми можемо знаходити кiлькiсть заданих елементiв. Таку дiю можна 19
Рис. 3.2: функцiя del
виконати за допомогою метода count().
Тобто, якщо нам потрiбно порахувати скiльки раз у списку зустрiчається число 7, ми зробимо це так: »> a= [5, 8, 7, 2, 9, 8, 1, 7, 3, 10]
»> a.count (7)
2
4. Знаходження максимального та мiнiмального значення спискуВсе, що нам потрiбно, це згадати вивченi в 8-му класi функцiї max() та min():
»> a=[3, 5, 8, 3, 7, 2, 9, 0, 8, 1, 7, 3, 10, 4]
»> min (a)
0
»> max (a)
10
Пiдсумуючи вище сказане, розглянемо таблицю 1:
Табл. 3.1: вбудованi функцiї Python
Функцiя |
Опис |
count(element) |
Рахує кiлькiсть вхождень заданого елемента в списку |
min(list) |
Знаходить мiнiмальне значення в списку |
max(list) |
Знаходить максимальне значення в списку |
20 Роздiл 3. СЬОМКIНА КАТЕРИНА
[1] Сухобус З. Роздiл 1. Поняття списку, табличних величин. Введення та виведення табличних величин. Багаторядкове текстове поле. Основнi дiї зi списками. Табличнi величини. http://surl.li/stacv
[2] Корнiлова Ю. Роздiл 2. Командний iнтерфейс. Графiчний iнтерфейс. http://surl.li/stajf
[3] Сьомкiна К. Роздiл 3. Алгоритми опрацювання спискiв. http://surl.li/sszuo
[4] Програмування в школi. Мова Python: Навчальний посiбник. 9 клас./Є.В. Козолуп. - Суми,2017.-56с. http://surl.li/stakt
21