пятница, 28 декабря 2018 г.

Тест Основы работы с Python

Результаты работы с тестом:

Фамилия, имя
Оценка
Безкрилий Егор
7
Антоненко Антон
8
Сиволап Серёжа
6
Загребельная
7
Гаркуша Е. Льовкіна К.
8
Денис Максименко
8
Куліков Євген, Матросов Данило
7
Бережна Д Безкровна В
6
Аноним
7
Зуєв Михайло
8
Печерица Анна
6
Вероника Пахомова. Радченко Артём
11
Влада Трухан
8
Фіногенов Максиміліан
10
Парчук Захар
11
Нестеренко Виталик
10
Овдиенко Ярослав
11
Юзепенко
10
Слюсар Михайло
10

Откройте тест в новой вкладке или заполните форму на блоге:

 

пятница, 7 декабря 2018 г.

Алгоритми з повтореннями. Цикл for

Результаты практической работы "Семейство черепашек":

Фамилия, имя
Оценка
Данил
8
Куликов
???
Гаркуша Е.    Льовкіна К.
11
Емельянов Егор
10
Cиволап Сергей
10
Загребельная Миськив
10
Матросов Даниил
11
КИРИЛЛ_БРАТУСЬ
12
Бережна Д Безкровна В.
10
Антоненко.Антон
11
Vlada, Inna
9
Радченко Артём
11
Свистун ,Радзевило
11
Парчук З. Юзепенко Д.
11
Нестеренко В.
11











Задача про семейство Черепашек  с использованием цикла for и функции range

 # добавляем библиотеку Черепашки
import turtle
# изменяем форму робота-исполнителя на черепашку
turtle.shape('turtle')
# используем цикл, чтобы нарисовать сразу 5 черепашек
# чтобы задать изменение параметра i от 5 до 1, используем функцию 
# range с шагом -1
for i in range(5, 0, -1):
        # отступы означают, что все эти команды будут 
        # выполняться в цикле for
        # отправляем Черепашку в точку  с заданными координатами
        # каждая новая Черепашка будет находится на расстоянии 
        # 100 пикселей от предыдущей
        turtle.goto(-200 + i*100, 0)
        # изменяем размеры Черепашки, уменьшая на 1 с каждым шагом цикла
        turtle.shapesize(i, i)
        # делаем отпечаток Черепашки
        turtle.stamp()




Розділ цитується за підручником Бондаренко О.О., Ластовецький В.В.,. Пилипчук О.П., Шестопалов Є.А. Інформатика. 5 клас.


Повторення (цикл) — це алгоритмічна структура, за допомогою якої та сама послідовність дій виконується кілька разів. Для запису алгоритмів із повторенням (циклів) мовою Python використовують 2 види операторів циклу: з параметром та з умовою. Серію команд, що повторюється під час виконання циклу, називають тілом циклу. Кожне виконання тіла циклу називають ітерацією.


Повторення команд

Цикл for повторює блок команд (тіло циклу) задану кількість разів, позбавляючи необхідності декілька разів писати одні і ті самі команди.
Синтаксис, або правила запису циклу for, виглядає наступним чином:
for х in range(n) :
          <тіло циклу>

В першу чергу ми вказуємо ключове слово for, після чого указуємо змінну х, яка буде лічильником циклу. Ключове слово in наказує Python по черзі надати змінній x всі значення в діапазоні від 0 до n-1. Не забувайте, що комп'ютер зазвичай починає рахувати з 0, а не з 1, як люди. Вбудована функція range повертає безперервну зростаючу послідовність цілих чисел, які можна використовувати в якості індексів всередині циклу.

Щоб дати зрозуміти комп'ютеру, які команди слід повторити, використовуються відступи. Можна зробити відступ для кожної повторюваної в тілі циклу команди, натискаючи для цього клавішу Tab у вікні нового файла.

Приклад 1. Проаналізуйте зміну значень лічильника х в циклі for. Функція range(4) задає список значень [0, 1, 2, 3]:
for x in range(4) :
        print (x)

Приклад 2. Для малювання трикутника ми тричі, для кожної сторони трикутника, давали Черепашці команди forward(100) і right(120). Замість цього можна повторити ці команди в циклі.
from turtle import *
for х in range(3) :
forward(100)
right(120)





Лічильник циклу for
Змінна-лічильник циклу веде відлік, скільки разів повторився цикл, почергово набуваючи всіх значень з указаного діапазону.
Приклад 3. Діапазон значень може бути заданий у вигляді текстового рядка. Лічильник почергово приймає значення літер, з яких складається указаний рядок:
a = 'Рядок'
for x in a  :
       print ('->', x)



Крім рядків або числових значень змінна може містити списки. Список – це набір значень, розділених комами, взятий у квадратні дужки. У списках можна зберігати значення будь-якого типу, будь то числа або рядки.



Приклад 4. Діапазон значень може бути заданий у вигляді списку значень, взятого в квадратні дужки. Лічильник почергово приймає значення зі списку:
b = [2, 4, 6, 8, 10]
for x in b  :
       print ('->', x)


Якщо список значень лічильника достатньо великий, і числа в списку змінюються з певним кроком, можна застосувати функцію  range з такими параметрами:

range (від, до, крок)

Відлік починається зі значення «від» і завершується на 1 раніше за значення «до».




Приклад 5. Функція range (2,11,3) надає змінній х значення від 2 до (11-1) з кроком 3, тому, хоча 8+3=11, значення 11 вже до діапазону значень не входить.
for x in range(2, 11, 3) :
       print ('->', x)


Приклад 6. Якщо потрібно вести зворотній відлік (в бік зменшення значень), укажіть значення «від» більшим, ніж значення «до», а «крок» повинний бути від’ємним:
for x in range(5, 1, -1) :


Використання циклу for для створення малюнків
Проаналізуємо виконання програми:
from turtle import *
for x in range(1,100,2) :
    forward(x)
    left(90)
При кожному проході циклу Черепашка малює лінію довжиною х пікселів  і повертається вліво на 90° (рис. 31.1). Ви знаєте з курсу математики, що навколо точки можна виконати повний поворот на 360°. Таким чином, за 4 ітерації циклу Черепашка повертається до початкового напрямку  (4*90°=360°).  Програма малює спіраль, тому що кожний відрізок на 2 пікселі довший за попередній: перший відрізок має довжину 1 піксель, другий – 3, останній (50-й) – 99.
Поворот на  90° створює квадратну спіраль. Змінимо кут повороту на 2°: left(92) . Зміна всього лише 1 числа призводить до значних змін у вигляді спіралі (рис.31.2).
       print ('->', x)


Змінимо команду forward(x) на circle(x), яка малює коло радіусу х з поточної позиції.
for x in range(1,100,2) :
    circle(x)
    left(90)
Отримаємо 4 набори  кіл, тому що після малювання кожного кола Черепашка повертається вліво на  90° (рис.31.3). Щоб намалювати n кіл, потрібно повертати Черепашку на 360°/n градусів. Внесемо такі зміни до програми, щоб Черепашка малювала 6 наборів кіл (360°/6=60°, рис. 31.4):
   for x in range(1,100,2) :
    circle(x)
    left(60)
Як зробити наші спіралі різнокольоровими?
Для цього нам потрібен список кольорів, а не один колір, тому ми створимо змінну-список з ім'ям colors і помістимо в цей список чотири кольори:
colors = ['red', 'yellow', 'green', 'blue']
Зверніть увагу, що ми помістили список кольорів у квадратні дужки. Звернутися до значення зі списку з номером х можна як до colors[x]. Наприклад, colors[0] ='red', colors[3] ='blue'.
Складне питання: як змусити черепашку при кожній ітерації циклу, коли х змінюється від 1 до 99, обирати одне з 4-х значень списку?  Використаємо операцію % (остача від ділення). При обчисленні виразу x % 4 ми можемо отримати 4 значення остачі (0, 1, 2, 3), що відповідає номерам кольорів в списку colors.  Повернемось до програми малювання квадратної спіралі, але крок циклу зробимо рівним 1 (рис.31.5):
from turtle import *
colors = ['red','yellow','green','blue']
for x in range(100) :
    color(colors[x% 4])
    forward(x)
    left(90)


Таким чином, вносячи  нескладні зміни до операторів малювання в тілі циклу for, ми можемо отримувати складні цікаві зображення.

Лінійні алгоритми



Алгоритми, у яких використовується тільки структура «Слідування», називаються  лінійними. В програмах, що реалізують лінійні алгоритми, вико­ристовуються команди введення даних, присвоєння і виведення.
Будь-яка програма повинні прийняти вхідні дані (введення), опрацювати їх і повернути результат (виведення).

Введення даних

Команда input() призначена для введення даних з клавіатури. Коли програма зустрічає команду input, вона призупиняє роботу і очікує, поки користувач введе дані і натисне Enter. В дужках записується підказка користувачеві, що саме потрібно ввести.

Приклад 1. Випробуємо у вікні консолі, як працює input():
>>> name = input(' Як тебе звати? ')
Як тебе звати? Петро

Значення, отримане від команди input, Python сприймає як рядок (послідовність літер), навіть якщо ми ввели число.

Приклад 2. При спробі додати до значення змінної а числа 3 виникне помилка, тому що Python не знає, як додати число до рядка.
>>> a = input('a=?')
a=?5
>>> a+3
Traceback (most recent call last):
  File “<pyshell#20>”, line 1, in <module>
        a+3
TypeError: must be str, not int

Необхідно виконати перетворення введеного значення в число за допомогою функції int(). Функція int(s) перетворює рядок s в ціле число.

Приклад 3. Тепер помилки немає:
>>> a=input('a=?')
a=?3
>>> int(a)+5
8
Функція float(s) перетворює рядок s в дробове число. При запису дійсного числа у формі десяткового дробу для розділення цілої та дробової частин як десятковий розділювач використовується крапка (.)

Приклад 4. Введення з клавіатури дійсного значення:
>>> x=input('x=?')
x=?5.25
>>> float(x)+3
8.25

Вказівка присвоєння

В Python, як  і в більшості сучасних мов програмування, ми присвоюємо значення змінної за допомогою знаку  «=».  Вираз присвоювання, такий як x=7, наказує комп'ютеру запам'ятати число 7 у змінній x.

Загальний вигляд команди присвоєння:

            А = В,

де А – ім'я змінної,  В – константа, змінна або вираз.

Схема виконання вказівки присвоєння: спочатку обчислюється значення виразу в правій частині вказівки присвоєння, потім це значення надається змінній, ім’я якої записане в лівій частині.

Присвоєння заповнює ділянку пам'яті, відведену для змінної, новим значенням, одночасно знищуючи старе.

Приклад 5. Наступні команди присвоюють змінній rabbits значення 5, потім те ж значення присвоюють змінній hats:
>>> rabbits =5
>>> hats = rabbits
У виразах можна використовувати змінні. Якщо в правій частині оператора присвоєння записати вираз, то змінна в лівій частині набуває значення виразу 

Приклад 6.  Нехай a=10, x=2, y=3. Тоді після виконання вказівки присвоєння
а = x + y змінна а отримає значення 5.

Приклад 7.  Нехай a=10. Тоді після виконання вказівки присвоєння а = а+5 змінна а отримає значення 15.

Виведення значень змінних

В попередніх прикладах ми вже зустрічали команду print, яка потрібна, щоб вивести текст у вікно консолі.

Приклад 8. За допомогою команди print можна дізнатися значення змінної.
>>> print (rabbits)
5

Приклад 9. Якщо потрібно вивести значення декількох змінних або виразів, їх потрібно перелічити через кому:
>>> x=4
>>> print (x, 2*x,3*x)
4  8  12

Приклад 10. За допомогою команд input і print можна організувати діалог користувача з програмою:
>>> name=input('Як тебе звати? ')
Як тебе звати? Петро
>>> print ('Привіт, ',name)
Привіт, Петро