Similar presentations:
Lection3. Control Statements
1. Лекція 3
Кундік К. В.2. Обчислювальний пристрій
• Слово комп’ютер походить від англійського слова to compute, якеозначає «здійснювати обчислення».
• Інша назва комп’ютерів - електронні обчислювальні машини.
• Вона підкреслює два ключові аспекти:
• По-перше, комп’ютер - це сукупність апаратних засобів, призначених
для обчислень і перетворення інформації.
• По-друге, основними елементами комп’ютерів є електронні
прилади.
3. Обчислювальний пристрій
• Комп’ютер здійснює обчислення та інші інформаційні перетворення задопомогою програм, тобто певних послідовностей інструкцій.
• Можна вважати, що за допомогою програм здійснюється керування
апаратними засобами комп’ютера.
4. Обчислювальний пристрій
• Найпростіші засоби для виконання простих арифметичних операційбули відомі людям у глибоку давнину.
• Перші механічні пристрої (арифмометри) створено в середині ХVII ст.
Паскалем і Лейбніцом.
• У XIX ст. Чарльз Беббідж уперше сформулював ідею створення
універсальної обчислювальної машини.
• Він розробив детальний проект, який не був закінчений через
відсутність необхідної технічної бази.
5. Обчислювальний пристрій
Значний внесок у розробку принципівфункціонування комп’ютерів зробив Алан
Тьюринг, який у 1937 р. описав
гіпотетичну машину з універсальними
можливостями.
Ця машина Тьюринга, яку можна
розглядати як одну з можливих
формалізацій поняття «алгоритм», стала
теоретичною основою сучасних
комп’ютерів.
6. Обчислювальний пристрій
• В 1938 році з’явилася перша ЕОМ, щопрацювала з двійковою системою і
розробив її німець Конрад Цузе – Z1.
Існували Z2, Z3, Z4. Усі три машини Z1, Z2,
Z3 були знищені при бомбардуванні
Берліну в 1944 р. Залишився один
екземпляр Z4.
• Перша електронно-обчислювальна
машина ENIAC створена у 1943–46 рр. Дж.
У. Моклі та Дж. П. Екертом з
Пенсільванського університету.
7. Обчислювальний пристрій
Величезний внесок у розвиток обчислювальноїтехніки зроблено працею Дж. фон Неймана.
Початок серійного виробництва ЕОМ
пов’язують зі створенням у 1951 р. ЕОМ
UNIVAC.
Роботи над створенням першої вітчизняної
ЕОМ МЕЛМ (малої електронної лічильної
машини) були розпочаті в Інституті
електротехніки АН УРСР у 1947–1948 рр.
групою науковців під керівництвом С. О.
Лебєдєва.
У 1951 р. машину було прийнято до
експлуатації.
8. IBM
13 вересня 1956 р. був випущений
IBM 305 RAMAC - перша ЕОМ із
накопичувачем на жорстких дисках.
Він важив 900 кг і забезпечував
прямий доступ до 5 мегабайт даних
на 50 алюмінієвих дисках!
Носіями інформації були намагнічені
елементи.
The IBM 305 RAMAC, the First
Computer with a Hard Drive: $10,000
per Megabyte
https://www.historyofinformation.co
m/detail.php?entryid=952
9. Перші розробники програмного забезпечення
10. Глушков Віктор Михайлович
Ві́ктор Миха́йлович Глушко́ в (24 серпня 1923, Ростов-на-Дону) —
український і радянський вчений, піонер комп'ютерної техніки,
автор фундаментальних праць у галузі кібернетики, математики і
обчислювальної техніки, ініціатор і організатор реалізації
науково-дослідних програм створення проблемно-орієнтованих
програмно-технічних комплексів для інформатизації,
комп'ютеризації і автоматизації господарської і оборонної
діяльності країни. Засновник і перший очільник Інституту
кібернетики, пізніше названий на його честь.
11. Будова ПК
12. Будова ПК
13. Будова ПК
14. Будова CPU
15. Робота CPU
CPU має всього чотири етапи роботи:1. Fetch – прочитання команди, робота PC
2. Decode – розшифровка команди, робота CU
3. Execute – виконання команди
4. Repeat cycle
16. Розвиток
• Як подальші віхи в розвиткуобчислювальної техніки можна
відзначити такі:
• поява операційних систем;
• виникнення мов програмування
високого рівня;
• розвиток мережних технологій і
масове розповсюдження
персональних комп’ютерів.
17. Списки
• У Python ми можемо зберігати кілька значень разом в одній змінній.• Хоча існує багато способів зробити це, найпопулярнішим є список.
• Це дуже схоже на рядок, оскільки рядок є набором символів.
• Список також є лише набором значень.
• Однак значення можуть бути будь-якого типу.
• Все, що нам потрібно зробити, це взяти всі елементи в квадратні
дужки [] і розділити їх комами.
18. Додавання елементів
• Усі елементи списку не завжди можна вказати заздалегідь, томуіснує велика ймовірність того, що ми захочемо додати більше
елементів під час виконання програми.
• Метод append() можна використовувати для додавання нового
елемента в кінець списку. Потрібно дотримуватися наступного
шаблону:
• a_list.append(new_еlement)
19. Цикли
• Цикл — різновид керівної конструкції у високорівневих мовахпрограмування, призначений для організації багаторазового
виконання набору інструкцій (команд).
20. Цикли
• Цикли вирішують проблему необхідності писати той самий набірінструкцій знову і знову.
• Ми можемо вказати кількість разів виконання коду.
• Одним із найбільших застосувань циклів є обхід структур даних, напр.
списки, кортежі, набори тощо.
• У такому випадку цикл повторює елементи структури даних,
виконуючи кожен раз набір операцій.
• Так само, як і умовні оператори, цикл класифікується як керуюча
структура, оскільки він керує потоком програми, приймаючи різні
рішення в її ітераціях.
21. Цикл for
• Цикл for використовує ітератор для обходу послідовності, напр.діапазон чисел, елементи списку тощо.
• Простіше кажучи, ітератор — це змінна, яка проходить через
список.
• Ітератор починається з початку послідовності.
• У кожній ітерації ітератор оновлюється до наступного значення в
послідовності.
• Цикл завершується, коли ітератор досягає кінця.
22. Цикл for
• У циклі for нам потрібно визначити три основні речі:• Ім'я ітератора
• Послідовність, яку потрібно пройти
• Набір операцій для виконання
• Цикл завжди починається з ключового слова for.
for iterator in sequence:
Набір операцій що треба повторювати
23. Range
• У Python для створення послідовності цілих чисел можнавикористовувати вбудовану функцію range().
• Діапазон вказується в такому форматі:
• range(start, end, step)
• end – не включається
• якщо start не визначений то починається з 0
• step – опційний, за замовчанням 1
24. Приклад
• Як ви думаєте, що буде виведено на екран?25. Приклад
• Що буде виведено на екран?26. Ітерація по спискам
• Що буде виведено на екран?27. Ітерація по спискам
• Що буде виведено на екран?28. Вкладені цикли
• Python дозволяє нам легко створювати цикли всередині циклів.• Є лише одна заковика: внутрішній цикл завжди завершується
раніше, ніж зовнішній.
• Для кожної ітерації зовнішнього циклу ітератор у внутрішньому
циклі завершить свої ітерації для заданого діапазону, після чого
зовнішній цикл може перейти до наступної ітерації.
29. Приклад
• Що буде виведено на екран?30. break
• Іноді нам потрібно вийти з циклу до того, як він досягне кінця.• Це може статися, якщо ми знайшли те, що шукали, і більше не
потрібно робити жодних обчислень у циклі.
• Прекрасним прикладом є той, який ми щойно розглянули. У певний
момент n1 дорівнює 23, а n2 дорівнює 27.
• Наша умова n1 + n2 == n виконана.
• Але цикли продовжують працювати та порівнювати всі інші пари. Ось
чому пара друкується двічі.
• Було б добре просто припинити це, коли пара знайдеться.
• Ось для чого потрібне ключове слово break.
• Він може розірвати цикл коли завгодно.
31. Приклад
32. continue
• Коли використовується ключове слово continue, рештаконкретної ітерації пропускається.
• Цикл продовжується до наступної ітерації.
• Можна сказати, що він не порушує цикл, але пропускає весь код у
поточній ітерації та переходить до наступної.
33. Приклад
• Що буде виведено на екран?34. pass
• У практичному сенсі оператор pass не впливає на виконаннякоду.
• Його можна використовувати для представлення області коду,
яку потрібно написати.
• Отже, він просто там, щоб допомогти вам, коли ви не написали
шматок коду, але все ще потребуєте, щоб уся ваша програма була
виконана.
35. while
• Цикл while продовжує виконувати певний набір операцій, докивиконується певна умова.
• Він працює за такою логікою:
• поки ця умова вірна, продовжує працювати цикл.
• У циклі for кількість ітерацій фіксована, оскільки ми знаємо
розмір послідовності.
• З іншого боку, цикл while не завжди обмежений фіксованим
діапазоном.
• Його виконання ґрунтується виключно на пов’язаній з ним умові.
36. Приклад
37. Повна форма циклів for/while
• У Python блок else можна використовувати як з циклами for, так із циклами while. Ключовою особливістю цієї конструкції є те, що
код у блоці else виконується лише тоді, коли цикл завершує всі
свої ітерації нормально (тобто без виконання оператора break).
38. Повна форма циклів for/while
39. String Slicing
• Slicing — це процес отримання частини (підрядка) рядка задопомогою його індексів.
• Маючи рядок, ми можемо використати такий шаблон, щоб
розділити його та отримати підрядок:
• string[start:end]
• start — це індекс, з якого ми хочемо починати підрядок
• end - це індекс, де ми хочемо, щоб закінчувався наш
підрядок (не включаючи його)
40. String Slicing
• Що буде виведено в результаті роботи?41. Slicing with a Step
• Python 3 також дозволяє нам «розрізати» рядок,визначаючи крок, через який ми можемо пропускати
символи в рядку.
• Крок за замовчуванням дорівнює 1, тому ми проходимо
рядок по одному символу за раз.
• Крок визначається після кінцевого індексу:
• string[start:end:step]
42. Slicing with a Step
• Що буде виведено на екран?43. Reverse Slicing
• Рядки також можна «розрізати», щоб повернути перевернутийпідрядок.
• У цьому випадку нам потрібно буде змінити порядок початкового
та кінцевого індексів.
• Необхідно також надати негативний крок.
• Що буде виведено?
44. Partial Slicing
• Слід зазначити, що вказуватипочатковий і кінцевий індекси є
необов’язковим.
• Якщо початок не вказано,
підрядок матиме всі символи
до кінцевого індексу.
• Якщо end не вказано, підрядок
буде починатися з початкового
індексу і йти до кінця.
• Давайте подивимося на це в
дії:
45. Форматування стрічок (f-strings)
• Форматування рядка означає підстановку значень у рядок. Щоб створити такий рядок достатньо передоголошенням стрічки додати префікс f і використати фігурні дужки {} для виведення змінної.
• Можна не тільки вставляти числа, а й рахувати нові значення прямо всередині {} дужок.
• А також можна виконувати інші Python вирази (expressions) такі як slicing, виклик функції чи
застосування умовного оператора.
46. Форматування стрічок
• Творці Python передбачили, що нам розробникам доведеться багато часу шукати помилки всвоєму коді. Один з варіантів це робити – виводити значення змінних, які ми оголошували, та
результати функцій. Використовуючи f-стрічки, ми можемо виводити не лише значення змінних, а
й одразу їх імена!
• Інструменти для вирівнювання тексту всередині стрічки з мінімальною довжиною, яка
виділяється для форматування значення.
47. Форматування стрічок
• Потужні інструменти для форматування числових значень в f-стрічка в залежності від бажаноготипу виведення.
• Форматування к-сті цифр після коми.
• Форматування к-сті цифр перед комою.
48. Exceptions
Exceptions
Винятки/виключення (exceptions) - ще
один вбудований тип даних у python.
Винятки необхідні для того, щоб
повідомляти програміста про помилки.
Найпростіший приклад виключення –
спроба ділення на нуль.
Якщо спробувати запустити таку
програму
z = 100 / 0
Ви отримаєте виключення:
Traceback (most recent call last):
File "", line 1, in
ZeroDivisionError: division by zero
49. Exceptions
Exceptions
Зрозуміло, можливі й інші винятки.
Наприклад, при спробі скласти рядок і
число
• z = 2 + '1'
• Traceback (most recent call last):
• File "", line 1, in
• TypeError: unsupported operand
type(s) for +: 'int' and 'str'
50. Обробка виключних ситуацій
Для обробки винятків використовується конструкція try – except.
try:
• k=1/0
except ZeroDivisionError:
• k=0
print(k)
51. Обробка виключних ситуацій
У блоці try ми виконуємо інструкцію, яка може спричинити
виняток, а в блоці except ми перехоплюємо їх.
try:
• k=1/0
except ArithmeticError:
• k=0
print(k)
52. Обробка виключних ситуацій
Також можлива інструкція except без аргументів, яка
перехоплює взагалі все (переривання з клавіатури, системний
вихід і т. д.).
Тому в такій формі інструкція except практично не
використовується, а використовується except <Exception>.
Таким чином перехоплюють винятки по одному для
спрощення налагодження (раптом ви ще іншу помилку зробите,
а except її перехопить).
53. Обробка виключних ситуацій
Ще дві інструкції, які нам доступні, це finally і else.
finally виконує блок інструкцій завжди не важливо чи був
виняток, чи ні (застосовна, коли треба обов'язково щось
зробити, наприклад, закрити файл).
Інструкція else виконується у тому випадку, якщо винятку не
було.
54. Exceptions
Exceptions
string_numbers = ['14', '15', '16', '-1', 'abc']
ints = []
try:
• for item in string_numbers:
• ints.append(int(item))
except ValueError:
• print('Це не число. Кінець роботи')
except Exception:
• print('Щось дивне …')
else:
• print('Супер. Ми все зчитали без помилок')
finally:
• print('Операцію завершено.')