Алгоритмізація як розділ інформатики, який вивчає процеси створення алгоритмів, традиційно відноситься до теоретичної інформатики внаслідок свого фундаментального характеру. Завдяки розвитку інформаційних технологій, і зокрема технологій програмування, з'являється можливість у межах розділу "Основи алгоритмізації та програмування" ознайомити учнів з загальнонауковими поняттями інформатики і в той же час формувати та розвивати вміння та навички, необхідні користувачеві під час роботи з сучасним програмним забезпеченням, тобто з'являється можливість зробити цей розділ містком між теоретичною та практичною інформатикою.
Міністерство освіти і науки України
Кам’янець-Подільський національний університет імені Івана Огієнка
Курси підвищення кваліфікації педагогічних працівників та керівників
закладів
Кафедра інформатика
Земляк Ірина Вікторівна
МЕТОДИКА ВИВЧЕННЯ ТЕМИ «АЛГОРИТМИ І ПРОГРАМИ» В ШКІЛЬНОМУ КУРСІ ІНФОРМАТИКИ.
МОВА ПРОГРАМУВАННЯ PYTHON.
Випускна робота
Науковий керівник
кандидат педагогічних наук, доцент
Смaлькo Oлeнa Аркaдіївна
Кам’янець-Подільський
2018
ЗМІСТ
ВСТУП 3
РОЗДІЛ 1. Алгоритмізація та програмування як один із засіб підвищення
інноваційного потенціалу особистості 5
1.1. Вивчення алгоритмізації та програмування в школі 5
1.2. Проблеми вибору мови програмування для вивчення в шкільному
курсі інформатики 6
1.3. Поняття програми і розмаїття мов програмування 7
1.4. Знайомство з Python і середовищами програмування 8
РОЗДІЛ 2. Методика викладання теми «Алгоритми і програми» в 7 класі 11
2.1. Розробка системи занять за темою «Основні поняття алгоритмізації» 11
2.2. Методика викладання теми «Основні поняття алгоритмізації» 13
2.3. Умовний оператор на мові Python 18
2.4. Цикли в мові Python 19
РОЗДІЛ 3. Практичні аспекти вивчення основ алгоритмізації на прикладі
мови програмування Python 21
3.1. Он-лайн ресурси для програмування мовою Python 21
3.2. Приклади розв’язування задач 22
ВИСНОВКИ 25
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ 26
ВСТУП
Дуже мало людей стає професійними письменниками, але писати й читати повинен вміти кожен. Те ж саме можна сказати і про програмування.
Вже зараз з'являється все більше професій на стику програмування, математики, фізики, біоінженерії, економіки. Ми маємо підготувати наших дітей до майбутнього, в якому вони будуть жити. Дітям подобається проводити час з новими технологіями, але частіше за все ви можете застати їх за такими заняттями, як ігри, спілкування в чатах з друзями, пошук в інтернеті та іншим активним користуванням. При цьому вони зовсім не орієнтовані на свідоме використання цих технологій та самореалізацію з їх допомогою.
Професор Массачусетського технологічного інституту Miтч Резнік пояснює, що вміння програмувати - це набагато більше, ніж просто технічні навички. Написання програмних кодів розвиває аналітичне мислення, вчить мислити логічно, розвиває уяву, креативність. У початковій школі програмування вчить дітей мислити швидко і чітко: вони розуміють, як влаштований світ, встановлюють логічний ланцюжок подій і можуть передбачити, що буде далі. Чим раніше починається навчання, тим винахідливішою і креативнішою стає людина. Декому це дивно чути, але в майбутньому всі будуть навчатись програмуванню.
На чому ґрунтується програмування? Якщо ви задумаєтеся про те, щоб почати вивчати програмування, то напевно ви почнете шукати відповідь на наступне питання: яку мову краще всього почати вивчати? На це питання дуже важко відповісти, так як все залежить від вас і сфери діяльності, в якій ви плануєте застосовувати свої набуті знання. Але, тим не менш, є невелика кількість мов програмування та програм для роботи з ними, що можна застосовувати у навчальному процесі. Звичайно все залежить від вікової категорії учнів, профілю навчання та технічних можливостей школи.
Отже, об’єктом розгляду даної роботи є мова програмування Python. Саме він вважається одним з найлегших мов програмування для початківців.
Предметом дослідження є методика вивчення теми «Алгоритми і програми» в 7 класі.
Чому саме Python? Популярність до цієї мови прийшла відносно недавно.
Однією з перешкод в розвитку комп'ютерних наук та програмування є той факт, що суспільство та батьки сприймають програмування як суто чоловічу справу, нудне та позбавлене творчого елементу. Але це лише стереотип: програмування є дуже творчим ремеслом, що вимагає життєвого досвіду і розвиненої інтуїції. Цей усталений стереотип потрібно зламати, адже через нього потенційно хороші фахівці обирають інші галузі діяльності. Втім, останнім часом ситуація має тенденцію до змін на краще.
Синтаксис мови Python досить мінімалістичний. Але незважаючи на це, в даній мові є непогана бібліотека, яка включає в себе велику кількість дуже корисних функцій. Мова Python має в собі декілька стилів написання програм, а саме структурний, об’єктно-орієнтоване, функціональне. У мови Python є свої переваги і недоліки. Але позитивних сторін у цієї мови більше.
Якщо ви хочете навчити програмувати своїх учнів на мові Python, то вам не обійтися без двох речей: методики та середовища розробки для цієї мови.
Дана розробка присвячена методам та формам викладання алгоритмізації та програмування на уроках інформатики. Основною метою є усвідомлення базових понять структурного програмування, розвиток логіки. Завдання: сформувати уявлення про мову програмування та її історичний розвиток, способи трансляції програмного коду. Типи даних та структури даних, змінні, вирази, розгалуження і цикли. Введення і виведення даних.
Як сказав Джон Дьюї, американський філософ, психолог та реформатор освіти, “Якщо ми будемо вчити сьогодні так, як вчили вчора, ми вкрадемо в наших дітей завтра”. Ми маємо допомогти нашим дітям стати активними, а не пасивними користувачами технологій, а також розвинути знання, які потрібні в XXI столітті. Давайте ламати застарілі стереотипи та змінювати країну разом.
РОЗДІЛ 1. Алгоритмізація та програмування як один із засіб підвищення інноваційного потенціалу особистості
1.1.Вивчення алгоритмізації та програмування в школі
Оволодівши необхідними знаннями та навичками в області алгоритмізації та програмування, у людини з’являється можливість створювати власні та вдосконалювати існуючи доробки у сфері інформаційних технологій. Виходячи з означення інноваційного потенціалу, алгоритмізація та програмування може використовуватись у навчально-виховному процесі як один із засобів для підвищення інноваційного потенціалу особистості як вчителя, так і учня.
За новою програмою вивчення алгоритмізації та програмування повертається у шкільний курс інформатики і розглядається у кожній паралелі, починаючи з другого класу.
Вивчення алгоритмізації у шкільній інформатиці може мати два цільових напрями:
● розвивальний напрям: розвиток алгоритмічного мислення учнів;
● програмістський напрям: вивчення технології створення програм.
Останній напрям можна розділити на два цільових аспекти:
Перший аспект пов'язаний з посиленням фундаментальної компоненти курсу інформатики. Учням дається уявлення про те, що таке мови програмування, що представляє собою програма мовою програмування високого рівня, та як вона створюється в середовищі системи програмування.
Другий аспект носить профорієнтаційний характер. Вивчення програмування в рамках шкільного курсу дозволяє учням випробувати свої здібності до такого роду діяльності і, при бажанні, вибрати у майбутньому відповідний професійний шлях.
Алгоритмізація у школі відповідає методу структурного програмування і є підготовчим етапом до вивчення об’єктно-орієнтованого програмування, актуального на сучасному етапі розвитку програмування.
Стандартна програма вивчення основ алгоритмізації передбачає наступну послідовність тем:
● складання лінійних алгоритмів;
● складання циклічних алгоритмів;
● використання розгалужень в алгоритмах;
● опис і використання допоміжних алгоритмів.
На початковому етапі вивчення певної структури алгоритму доцільно використовувати блок-схеми, які наочно демонструють базові структури алгоритмів та дають можливість сформувати правильну уяву про механізм роботи кожної із них. Ефективним засобом підвищення рівня сприйняття теорії алгоритмізації є використання середовищ з виконавцями, що наочно представляють механізм виконання алгоритмів та їх базових структур. Програма курсу інформатики пропонує в якості такого середовища використовувати Скретч. Але, власний досвід показав, що більш ефективним є використання сайту code.org, який створений саме з навчальною метою. На сайті пропонуються завдання, розбиті на курси. Кожен курс розрахований на певний рівень підготовки учня та його вік.
Процес виконання завдань контролюється системою і, у разі неправильного, або нераціонального виконання завдання система реагує, пропонуючи учневі той чи інший наступний крок.
Вчитель може на цьому сайті створити групи, що дає йому можливість вказувати курс, який кожна група повинна пройти та слідкувати за результативністю виконання завдань кожним з учнів групи.
1.2. Проблеми вибору мови програмування для вивчення в шкільному курсі інформатики
Думки про те, яку мову програмування краще викладати в середній школі, різняться. Потрібно кожного школяра познайомити з програмуванням як з явищем, щоб він представляв потенціал комп'ютерних систем. Деякі вважають, що не важливо, яку мову програмування обрати: на уроці інформатики потрібно вчити не мови програмування, а методи програмування і системні підходи вирішення завдань. Потрібно розвивати алгоритмічне мислення і на прикладах знайомитися з принципами побудови сучасних комп'ютерних систем. У кожного викладача є свій список вимог до навчальної мови програмування. Наприклад, простий, інтуїтивний синтаксис, наявність високорівневих інструментів для виявлення і недопущення помилок і для налагодження програм, наявність якісної документації з прикладами, наявність доброзичливою середовища розробки, наявність версій під різні платформи, тощо. З одного боку, шкільна програма не передбачає підготовку фахівців і базові поняття алгоритмізації можна традиційно давати на Паскалі.
Проблема криється в тому, що в школі стоїть завдання ознайомити з тим, що таке програмування і дати приблизне уявлення про те, як це робиться. З іншого боку IT-технології розвиваються дуже швидко, з'являються нові платформи, мови програмування (Java, C #, Python ...), технології. Сучасному програмістові доводиться постійно «тримати руку на пульсі». Саме тому програму навчання школярів програмування потрібно ретельно продумувати з поглядом у майбутнє.
Отже, вибір мови та системи програмування має принципове значення. Від цього вибору безпосередньо залежить доступність сприйняття, вивчення і оволодіння учням прийомами і методами програмування.
1.3. Поняття програми і розмаїття мов програмування
На сьогоднішній день існує величезна кількість мов програмування, які і розрізняються і схожі між собою. Причина такого явища стає зрозуміла, якщо уявити ту кількість і різноманітність завдань, які вирішується за допомогою обчислювальної техніки.
Однією з кращих мов програмування для старту вважався і вважається Pascal, так як він був створений спеціально для навчання основам програмування. Але є «але»: мова застаріла, її ніхто не використовує в комерційних цілях. Можна, звичайно, почати вивчення програмування з Pascal, але після основ всім доведеться вчити нову мову, з іншим синтаксисом, з новими правилами. Краще цей час витратити на вивчення мов і технологій, які використовуються і будуть використовуватися протягом ще 10-20 років.
Lazarus - середовище розробки, що використовує компілятор FreePascal, але при цьому підтримує розробку сучасних віконних додатків. Позиціонується як, сумісна з Delphi, але навчальний матеріал, написаний для останньої, можна застосувати не завжди. Інтерфейс більш складний у порівнянні з IDE FreePascal. Рекомендується використовувати при достатньої кваліфікації викладача.
Використання C / C ++ в якості початкового мови програмування має також ряд проблем: в ньому багато конструкцій, що відлякують тих хто цікавиться програмуванням учнів. З іншого боку, ніхто не змушує вчителів показувати все глибини Сі. З ним можна працювати на тому ж рівні, що і з Паскалем, використовуючи відповідні конструкції.
Вибір сучасних систем візуального проектування (Delphi, Lazarus, Visual Studio та інші) на початковому етапі навчання програмуванню викликає ряд проблем. При створенні проекту система автоматично генерує великий обсяг коду, пов'язаний з роботою візуальних компонентів і не відноситься до вирішення поставленого завдання. Все відразу об'єктно-орієнтоване, а учневі, для початку б, розібратися з циклами, масивами, умовними операторами ...
Отже, на сьогоднішній день найбільш вдалим вибором, на мою думку, був би Пітон (Python).
1.4. Знайомство з Python і середовищами програмування
Мова програмування Python була створена приблизно в 1991 році голандцем Гвідо ван Россумом .
Свою назву - Python (Пайтон) - отримав від назви телесеріалу “Monty Python” ("Літаючий цирк Монті Пайтона"), а не плазуна.
Після того, як Россум розробив мову, він виклав її в Інтернет, де вже ціле співтовариство програмістів приєдналося до її поліпшення. Python активно вдосконалюється і в даний час. Офіційний сайт http://python.org .
Python – це універсальна інтерпретована, об'єктно-орієнтована високорівнева мова програмування сценаріїв із динамічною семантикою.
Python характеризується ясним синтаксисом. Читати код на цій мові програмування досить легко, тому що в ньому мало допоміжних елементів, а правила мови змушують програмістів робити відступи.
Також Python поширюється вільно на підставі ліцензії GNU General Public License.
Якщо інтерпретатору Пітона дати команду import this (імпортувати "сам об'єкт"), то виведеться так званий "Дзен Пітона", який ілюструє філософію і особливості даної мови (переклад з англійської):
1. Красиве краще за потворне.
2. Просте краще за складне.
3. Складне краще за ускладнене.
4. Плоске краще ніж вкладене.
5. Розріджене краще ніж щільне.
6. Читабельність важлива.
7. Виняткові випадки не настільки важливі, щоб порушувати правила.
8. Однак практичність важливіша за чистоту.
9. Помилки ніколи не повинні замовчуватися.
10. За винятком замовчування, яке задано спеціально.
11. У випадку неоднозначності не піддавайтеся спокусі вгадати.
12. Повинен існувати один - і, бажано, тільки один - очевидний спосіб зробити це.
13. Хоча він може бути з першого погляду не очевидний, якщо ти не голландець.
14. Зараз краще, ніж ніколи.
15. Проте, ніколи частіше краще, ніж прямо зараз.
16. Якщо реалізацію складно пояснити - це погана ідея.
17. Якщо реалізацію легко пояснити — це може бути хороша ідея.
18. Простори назв - прекрасна ідея, давайте робити їх більше!
Мабуть, найпопулярнішим середовищем розробки для мови Python є програма IDLE. Це середовище розробки є кроссплатформної, тобто працює практично під всіма операційними системами.
Функції і можливості програми IDLE схожі з функціоналом подібних середовищ розробки. Використовуючи IDLE можна виконувати стандартні для інтегрованої середовища завдання, а саме писати, редагувати, переглядати, налагоджувати програми на мові Python.
Але, важливо, щоб учитель інформатики не забував про головне - що мета не вивчити конкретну мову програмування, а розвивати алгоритмічне мислення, знайомити з різними стилями мислення і методами, які застосовуються при вирішенні різних завдань. Одним з варіантів такого підходу є знайомство з декількома мовами програмування (без детального вивчення, розібрати кілька простих класичних алгоритмічних задач).
РОЗДІЛ 2. Методика викладання теми «Алгоритми і програми» в 7 класі
2.1. Розробка системи занять за темою «Основні поняття алгоритмізації».
У 2017/2018 навчальному році вивчення інформатики у 5-9 класах загальноосвітніх навчальних закладах здійснюється за навчальними програмами для учнів 5-9 класів, які розміщено на офіційному веб-сайті Міністерства освіти і науки України за посиланням: http://mon.gov.ua /.
Вчитель має право на власний розсуд розподілити кількість навчальних годин за темами, але за будь-якої траєкторії навчання на опанування теми «Алгоритми та програми» має приділятися не менше 40% навчального часу у 5–8 класах.
Враховуючи специфіку школи з поглибленим вивченням інформатики, в 7 класі виділено 2 години інформатики на тиждень (70 годин на рік).
Календарно-тематичне планування з тематичної лінії «Основи алгоритмізації» в 7 класі
Номер уроку в темі |
Тема уроку |
||
Тема 1. Основні поняття алгоритмізації. Лінійні алгоритми (12 год.) |
|||
1. |
Правила поведінки і безпеки життєдіяльності (БЖ) в комп’ютерному класі. |
||
2. |
Алгоритм. Властивості алгоритмів. Способи подання алгоритмів. Базові алгоритмічні структури. |
||
3. |
Мови програмування. Елементи мови програмування. Структура програми. |
||
4. |
|
Середовище програмування та його основні елементи. |
|
5. |
|
Змінні. Типи даних. Дії з типами даних. |
|
Визначення типу результату обчислення арифметичного виразу. |
|||
6. |
|
Введення та виведенняданих. |
|
7. |
Арифметичні операції. Правила запису арифметичних виразів. |
||
8. |
Ідентифікатори. Правила запису імен ідентифікаторів. Цілочисельне ділення. |
||
9. |
Складання лінійних програм. |
||
10. |
Побудова лінійних алгоритмів та їх реалізація у вигляді програм. |
||
11. |
Розв’язування задач. |
||
12. |
Цікаві задачі. |
||
Тема 2. Алгоритми з розгалуженням (10 год.) |
|||
1. |
Логічні вирази та логічні операції. |
||
2. |
Таблиці істинності. |
||
3. |
Команда розгалуження. |
||
4. |
Повна та скорочена форма умовного оператора мовою програмування. |
||
5. |
Складання програм. |
||
6. |
Побудова алгоритмів з послідовними розгалуженнями у вигляді програм. |
||
7. |
Оператор вибору. |
||
8. |
Складання програм. |
||
9. |
Вкладені розгалуження. |
||
10. |
Складання програм. |
||
Тема 4. Алгоритми з повторенням (8 год.) |
|||
1. |
Базові алгоритмічні структури повторення. Команди повторення. Оператор циклу з умовою. |
||
2. |
Складання програм. |
||
3. |
Складання та виконання алгоритмів із повторенням у середовищі програмування. |
||
4. |
Оператор циклу з лічильником. |
||
5. |
Складання програм. |
||
6. |
Розв’язування задач. |
||
7. |
Розв’язування задач. |
||
8. |
Практична робота №7.Складання та виконання алгоритмів із повторенням та розгалуженням у середовищі програмування.Інструктаж з БЖД. |
2.2. Методика викладання теми «Основні поняття алгоритмізації»
Для початку закачаємо сам інтерпретатор: http://python.org/download/. Серйозне інтегроване середовище розробки для початку не обов’язкове, учням можна обмежитися IDLE, яка є у дистрибутиві. Для перших уроків буде достатньо інтерактивної оболонки самого Python. Отже, запускаємо python.exe. Запрошення введення має вигляд:
>>>
Варто зазначити, що Python - мова зі строгою динамічною типізацією. Як це розуміти? Наприклад, є мови зі строгою типізацією (Pascal, Java, C і т.д.), у яких тип змінної визначається заздалегідь і не може бути змінений. Є мови з динамічною типізацією), в яких тип змінної трактується в залежності від присвоєного значення. У свою чергу мови з динамічною типізацією поділяються ще на два види: строгі, які не допускають неявного перетворення типу (Python) і нестрогі, які виконують неявні перетворення
типу.
Тепер можна по практикувати з інтерпретатором. В основному інтерпретатор виконує команди по рядках: пишеш рядок, натискаєш Enter, інтерпретатор виконує її, спостерігаєш результат.
Оскільки ніяких команд ми поки не знаємо, то будемо використовувати Python як калькулятор. Пишемо вираз, натискаємо Enter і отримуємо результат:
>>>2+5
7
>>>3*(5-8)
-9
>>>2.4+3.0/2
3.9
>>> 'ABC' * 5
'ABCABCABCABCABC'
Трохи незвично і дуже цікаво.
Наступне, що необхідно знати - як будуються базові алгоритмічні конструкції - розгалуження і цикли. Для початку, потрібна невеличка довідка. У Python немає спеціального обмежувача блоків коду типу begin…end, їх роль відіграють відступи. Тобто, те що написано з однаковим відступом є одним командним блоком - максимально просто і надзвичайно зручно, код завжди має читабельний вигляд і учні з самого початку правильно організовують свою програму.
Можна помітити, що все, що ми робимо, ми робимо оперуючи якимись предметами або об'єктами. Програми для комп'ютерів також маніпулюють якимись об'єктами (назвемо їх поки даними).
Очевидно, дані бувають різними. Дуже часто комп'ютерній програмі доводиться працювати з числами і рядками. Ми навчилися "маніпулювати" числами, виконуючи над ними арифметичні операції.
Числа у свою чергу також бувають різними: цілими, дробовими, можуть мати величезне значення або дуже довгу дробову частину. При знайомстві з мовою програмування Python ми точно зіткнемося з двома типами даних:
Цілі числа (int) - позитивні і негативні цілі числа, а також 0 (наприклад, 4, 687, -45, 0).
Числа з плаваючою крапкою (float) - дробові числа (наприклад, 1.45, -3.789654, 0.0453). Роздільником цілої і дробової частини служить крапка.
Для даних можна застосувати певні дії – операції. Для виконання конкретних дій потрібні спеціальні інструменти — оператори.
Ось список основних операцій для чисел:
A + B - сума;
A - B - різниця;
A * B - добуток;
A / B - частка;
A ** B – піднесення до степеня.
Корисно пам'ятати, що квадратний корінь з числа x - це x ** 0.5, а корінь степеня n це x ** (1 / n). Є також унарний варіант операції -, тобто операція з одним аргументом. Вона повертає число, протилежне даному. Наприклад: -A.
Однак, бувають випадки, коли програма отримує дані у вигляді рядків, а оперувати повинна числами (або навпаки). У такому випадку використовуються спеціальні функції (особливі оператори), що дозволяють перетворити один тип даних в іншій. Так функція int () перетворює переданий їй рядок або дійсне число в ціле число, функція str () перетворює переданий їй аргумент в рядок, float () - в дробове число.
Вираз |
Результат виконання |
int ("56") |
56 |
int (4.03) |
4 |
int ("comp 486") |
П о м и л к а |
str (56) |
'56 ' |
str (4.03) |
'4.03 ' |
float (56) |
56.0 |
float ("56") |
56.0 |
У програмі на мові Python зв'язок між даними і змінними встановлюється за допомогою знаку =. Така операція називається присвоєнням. Наприклад, вираз a = 4 означає, що на об'єкт (дані) у певній області пам'яті посилається ім'я a і звертатися до них тепер слід за цим іменем.
Імена змінних можуть бути будь-якими. Правила їх написання:
Ім'я змінної не повинно збігатися з командами мови (зарезервованими ключовими словами). Ім'я змінної має починатися з букви або символу підкреслення (_). Щоб дізнатися значення, на яке посилається змінна, перебуваючи в режимі інтерпретатора, достатньо її викликати (написати ім'я і натиснути Enter).
Приклад роботи зі змінними в інтерактивному режимі:
>>> a = 100
>>> _d = 5
>>> day = 7
>>> a = a - _d * day
>>> a 65
Введення даних з клавіатури можна розглянути на прикладах.
Наприклад, ввести два цілих числа х та у, записані в двох різних рядках.
x=int(input()) y=int(input())
Щоб ввести два цілих числа через пропуск в одному рядку, використовують команду: x,y=map(int,input().split())
Для опису дійсного числа а, перед оператором введення input(), вказують дійсний тип float:
a=float(input())
Щоб прочитати рядок, використовують таку команду:
s=input()
Для виведення результатів на екран, використовують команду: print(s)
Щоб вивести дійсне число а, наприклад, з трьома знаками після коми, записують оператор виведення по формату:
print(‘%.3f’%a)
Отже, дуже важливим є усвідомлення учнями основних етапів створення програми:
1. Ведення даних (читання з клавіатури): input()
2. Обчислення за певними формулами
3. Виведення результатів на екран: print(…)
Прикладом контролю знань з теми «Лінійні алгоритми» може бути тест:
1. Що буде результатом виконання команди 7//3+7//-3?
|
a) -1 b) 1 c) 0 |
|
d) Дії // Python |
немає |
в |
|
2.
|
Команда введення в Python |
|
|
|
|
|
|
a) Print b) Output c) Input |
|
d) |
Read |
|
|
3.
|
Команда виведення в Python |
|
|
|
|
|
|
a) Print b) Output |
|
d) |
Read |
|
|
c) Input
4. Дія для знаходження остачі від ділення двох цілих чисел
a) / d) \
b) %
c) //
5. Як перевірити результат виконання програми в середовищі Python
a) Натиснути F9 d) Ctrl+F5
b) File -> New File
c) Натиснути F5
6. Як завантажити середовище програмування Python?
________________
7. Яку команду треба ввести, щоб описати кілька змінних одного типу?
a) map(тип input().split()) |
змінних, |
d)
|
input().split() |
b) map(input().split())
c) (тип змінних,
input().split())
8. Який тип даних позначається словом int
a) Логічний d) Дійсний
b) Цілий
c) Символьний
9. Який тип даних позначається словом float
a) Логічний d) Дійсний
b) Цілий
c) Символьний
10. Яким буде результат виконання програми? Чому дорівнює s? a,b= map(int, input().split()) s=(2*a+b*3)/2 print(s)
>>> 2 4
а) 7 b) 8 c) 9 d) 6
2.3. Умовний оператор на мові Python.
Умовний оператор в Python має наступний синтаксис:
if умова:
блок операторів 1 else:
блок операторів 2
В умовному операторі може бути відсутнім слово else і відповідний йому блок. Такий оператор розгалуження називається неповним. Наприклад, якщо дано число x і ми хочемо замінити його на абсолютну величину x, то це можна зробити таким чином: if x < 0:
x =-x
print (x)
У цьому прикладі змінної x буде присвоєно значення -x, але тільки в тому випадку, коли x < 0. А оператор print (x) буде виконуватися завжди, незалежно від виконання умови. Для виділення блоку операторів у мові Python використовуються відступи. Всі оператори, які належать до одного блоку, повинні мати однаковий відступ, тобто однакове число пробілів на початку рядка. Рекомендується використовувати відступ в 4 пропуски і не рекомендується використовувати для відступів символ табуляції. Це одна з істотних відмінностей синтаксису Python від синтаксису більшості мов.
Оператори порівняння у Python можна об'єднувати в ланцюжки (на відміну від більшості інших мов програмування, де для цього потрібно використовувати логічні зв'язки).
Наприклад, умови a == b == c та 1 <= x <= 10 написані вірно.
Іноді потрібно перевірити одночасно не одну, а декілька умов. Наприклад, треба перевірити, чи є дане число парним можна за допомогою умови (n % 2 == 0) (залишок від ділення n на 2 дорівнює 0), а якщо необхідно перевірити, чи два даних цілих числа n і m є парними, то перевіряємо справедливість двох умов: n % 2 == 0 і m % 2 == 0 і для цього їх об’єднуємо за допомогою оператора and (логічне І): n % 2 == 0 and m % 2 == 0. У Python існують стандартні логічні оператори: логічне І, логічне АБО, логічне заперечення.
Програму, що визначає чверть координатної площини, можна перепи-сати використовуючи "каскадну" послідовність операцією if ... elif ... else:
x = int (input ()) y = int (input ()) if x > 0 and y > 0: print ("Перша чверть")
elif x > 0 and y < 0:
print ("Четверта чверть")
elif y > 0:
print ("Друга чверть")
else: print ("Третя чверть")
У такій конструкції умови if, ..., elif перевіряються по черзі і виконується блок, який відповідає першій з істинних умов. Якщо всі умови хибні, то виконується блок else, якщо він присутній.
2.4. Цикли в мові Python
Цикл while ("поки") дозволяє виконати одну і ту ж послідовність дій, поки умова істинна. Умова записується до тіла циклу і перевіряється до виконання тіла циклу. Цикл while використовується, коли неможливо визначити точне значення кількості проходів виконання циклу. Синтаксис циклу while в простому випадку виглядає так:
while умова:
блок операторів
При виконанні циклу while спочатку перевіряється умова. Якщо умова істинна, то виконується оператор, після чого умова перевіряється знову і знову виконується оператор. Так продовжується до тих пір, поки умова буде істинна. Наступний фрагмент програми надрукує на екрані квадрати всіх цілих чисел від 1 до 10. Очевидно, що цикл while може замінити цикл for ... in range (...):
i = 1 while i <= 10:
print (i) i + = 1
У цьому прикладі змінна i всередині циклу змінюється від 1 до 10. Така змінна, значення якої змінюється з кожним новим проходом циклу, називається лічильником.
Після тіла циклу можна написати слово else: і після нього блок операцій, який буде виконано один раз після закінчення циклу, коли умова циклу стане хибною. Використання оператора break всередині циклу призводить до негайного припинення циклу, і при цьому не виконується вітка else. Оператор break викликається з оператора if, він повинен виконуватися тільки при виконанні якогось особливої умови. Інший оператор управління циклом - continue (продовження циклу). Якщо цей оператор зустрічається десь посередині циклу, то пропускаються всі решту операторів до кінця циклу, і виконання циклу продовжується з наступної ітерації. Оператори break, continue і вітка else: можна використовувати і всередині циклу for.
Як правило, цикли for використовуються або для повторення якої-небудь послідовності дій задане число разів, або для зміни значення змінної в циклі від деякого початкового значення до деякого кінцевого. Для повторення циклу n раз можна використовувати цикл for разом з функцією range:
for i in range (n):
тіло циклу
Цикл for, який називають циклом з параметром, у мові Python багатий можливостями. У циклі for вказується змінна і множина значень, по якому буде пробігати змінна. Множина значень може бути задана списком, кортежем, рядком або діапазоном. Детальніше про можливості цієї конструкції учні познайомляться в курсі 8 класу.
РОЗДІЛ 3. Практичні аспекти вивчення основ алгоритмізації на прикладі мови програмування Python
3.1. Он-лайн ресурси для програмування мовою Python
Щоб учень відчував себе успішним, йому обов’язково потрібно одразу бачити результат своєї праці. Саме тому, я організовую розв’язування задач на мові Python через ресурси Хмельницького обласного факультативу з програмування на сайті http://www.sbs2.km.ua. Вчитель має змогу побачити, як учні вправно розв'язують задачі у середовищі Wing IDE та здають їх на перевірку на новій платформі DMOJ, на яку цього року перейшов обласний факультатив. Учні в свою чергу відправляють розв’язок задачі на перевірку контестеру, бачать результат (кількість отриманих балів і можливі помилки). Вчитель та учні слідкують за результатами, які відображаються на турнірній таблиці. Дух змагання стає стимулом для подальшого опанування матеріалу.
Для самостійної роботи, я пропоную учням он-лайн сервіс CodeCombat. В цій грі учні вчаться створювати справжній код і з переможця гри вийде готовий програміст. Учень обираєте мову програмування, на якій доведеться писати команди для свого персонажа (гра пропонує Python, JavaScript, та інші), і відправляєтеся в подорож за кристалами.
Гра розрахована на хлопчиків і дівчат від восьми років. Навчання та підказки російською мовою, перші 70 рівнів гри безкоштовні. У грі перед стартом кожного рівня дитина буде читати забавні і мотивують цитати про програмування, що нагадують, що «цей код сам себе не вивчить». CodeCombat захоплює сильніше, ніж звичайні «бродилки» і «стрілялки», одна з кращих комбінацій відпочинку та навчання.
3.2. Приклади розв’язування задач
Тексти задач взято з сайту обласного факультативу з програмування.
Завдання 1. 1. В кошику лежить n горіхів, а навколо нього стоять k дітей. По черзі діти беруть з кошика горіхи доти, поки у всіх буде однакова кількість. Скільки горіхів отримає кожна дитина?
Формат вхідних даних: У двох рядках стандартного вхідного потоку міститься по одному натуральному числу - n і k.
Формат вихідних даних: У стандартний вихідний потік вивести одне число - відповідь на задачу.
n=int(input()) k=int(input()) print(n//k)
Завдання 1.2. Хлопчик прийшов у магазин, маючи а грн. і b коп. За покупку він заплатив с грн. і d коп. Скільки грошей залишилося у хлопчика, якщо початкова сума грошей дозволяла здійснити покупку?
Формат вхідних даних: У одному рядку стандартного вхідного потоку через пропуск дано чотири цілих числа a,b,c,d.
Формат вихідних даних: У стандартний вихідний потік вивести через пропуск кількість гривень та копійок, які в нього залишаться.
a,b,c,d=map(int,input().split()) k=(a*100+b)-(c*100+d) print(k//100,k%100)
Завдання 1.3. Для даного імені людини і її віку потрібно вивести повідомлення про її вік?
Формат вхідних даних: У першому рядку стандартного вхідного потоку дано ім'я людини, а в другому - ціле число, яке вказує на її вік.
Формат вихідних даних: У стандартний вихідний потік вивести повідомлення про вік цієї людини (див. приклад). Vanya has 13 years
s=input() a=input() print(s,'has',a,'years')
Завдання 1.4. Знайти частку від ділення двох чисел.
Формат вхідних даних: У двох рядках стандартного вхідного потоку міститься по одному дійсному числу.
Формат вихідних даних: У стандартний вихідний потік вивести одне дійсне число з точністю до десятих - результат ділення першого числа на друге.
a=float(input()) b=float(input()) print('%.1f'%(a/b))
Завдання 2.1. Чи кратне трьом?
Формат вхідних даних: У першому рядку дано натуральне число.
Формат вихідних даних: Виведіть YES, якщо воно кратне 3, або NO у іншому випадку.
a=int(input()) if a%3==0:
print('YES')
else:
print('NO')
Завдання 2.2. Максимальне з трьох.
Формат вхідних даних: У одному рядку через пропуск дано три цілих числа.
Формат вихідних даних: Виведіть максимальне число.
a,b,c=map(int,input().split()) if a>=b and a>=c:
print(a) elif b>a and b>c: print(b) else:
print(c)
Завдання 3.1
Вивести даний рядок 12 разів.
Формат вхідних даних: У одному рядку стандартного вхідного потоку дано рядок, що складається не більше ніж 20 символів.
Формат вихідних даних: У стандартний вихідний потік вивести даний рядок 12 рядів підряд без додаткових пропусків.
a=input() for i in range(12):
print(a,end='')
ВИСНОВОК
Алгоритмізація як розділ інформатики, який вивчає процеси створення алгоритмів, традиційно відноситься до теоретичної інформатики внаслідок свого фундаментального характеру. Завдяки розвитку інформаційних технологій, і зокрема технологій програмування, з'являється можливість у межах розділу "Основи алгоритмізації та програмування" ознайомити учнів з загальнонауковими поняттями інформатики і в той же час формувати та розвивати вміння та навички, необхідні користувачеві під час роботи з сучасним програмним забезпеченням, тобто з'являється можливість зробити цей розділ містком між теоретичною та практичною інформатикою.
Проблема криється в тому, що в школі стоїть завдання ознайомити з тим, що таке програмування і дати приблизне уявлення про те, як це робиться. З іншого боку IT-технології розвиваються дуже швидко, з'являються нові платформи, мови програмування (Java, C #, Python ...), технології. Сучасному програмістові доводиться постійно «тримати руку на пульсі». Саме тому програму навчання школярів програмування потрібно ретельно продумувати з поглядом у майбутнє.
Вибір мови програмування Python обумовлений тим, що це мова, що володіє рядом переваг перед іншими мовами для тих хто починає вивчати програмування: ясність коду, швидкість реалізації.
В тому, що вибір саме цієї мови програмування є вдалим, вчителі спеціалізованої загальноосвітньої школи №5 з поглибленим вивченням інформатики вкотре переконалися після вдалого виступу нашої команди на олімпіаді з програмування. Наші учні завжди є призерами олімпіади. І не останню роль в цьому відіграє саме простота написання деяких алгоритмів на мові Python у порівнянні з іншими мовами (наприклад, С++).
Другий рік поспіль в нашій школі вивчення мови Python впроваджується з 5 класу, крім того діє факультатив з програмування, де переважна більшість учнів програмує на мові Python.
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ
1. А. Н. Бобров. Проблемы выбора языка программирования в школьном курсе информатики // Молодой ученый. — 2015. — №24. — С. 61-64.
2. В. В. Зубик. Python. Практикум програмування для початківців. – 56 с.
3. М. Лутц. Изучаем Python, Москва, 2011.
4. А. Н. Чаплыгин. Учимся программировать вместе с Питоном.
5. И.А. Хахаев. Практикум по использованию и программированию Python, Москва, 2011.
6. Програмування числових методів мовою Python : підруч. / А. В. Анісімов, А. Ю. Дорошенко, С. Д. Погорілий, Я. Ю. Дорогий ; за ред. А. В. Анісімова.
7. – К. : Видавничо-поліграфічний центр "Ки- ївський університет", 2014. – 640 с.
8. http://vidpoviday.com/programi-dlya-programuvannya
9. http://vidpoviday.com/mova-programuvannya-python
10.https://nv.ua/ukr/opinion/melnyk_anton/navishcho-vchiti-ditej-programuvannju -65596.html
11.http://programer.in.ua/index.php/pochatkivtsiu/osnovy/89-10-ihor-iaki-navchat -dytynu-prohramuvanniu
12.https://sites.google.com/site/pythonukr/urok-1-istoria-mov-programuvanna-ko mpilacia-ta-interpretacia
13. http://urokinformatyky.blogspot.com/p/blog-page_97.html
14. https://studfiles.net/preview/5196886/page:37/