You are on page 1of 8

МІНІСТЕРСТВО НАУКИ ТА ОСВІТИ УКРАЇНИ

Національний Авіаційний Університет


Факультет комп`ютерних наук та тахнологій
Кафедра прикладної математики

Лабараторна робота № 5
Тема: "Робота з файлами у Python. "кодування" файлів"
З дисципліни « Алгоритмічні мови та програмування»

Виконав студент 118 групи:


Ярослав Петриченко
Старший викладач:
Андрій Костянтинович ШЕВЧЕНКО

Київ 2023

1
Зміст

1. Постановка задачі............................................................................................................................3

2. Теоретична частина.........................................................................................................................3
3. Блок-схема......................................................................................................................................5
4. Тестування......................................................................................................................................7
5. Висновок.........................................................................................................................................8
6 Література........................................................................................................................................8

2
1. Постановка задачі
Написати код який буде кодувати та декодувати текстовий файл (.txt)

Завдання:

1. Написати Python-скрипт, який може зчитувати текстовий файл, шифрувати


його вміст і записувати зашифрований текст у новий файл.

2. Скрипт повинен також бути здатний дешифрувати файл, використовуючи той


самий зсув.

3. При відсутності вхідного файлу або при помилці зчитування файлу, програма
повинна надавати відповідне повідомлення та завершувати роботу.

4. Якщо вихідний файл не вказаний, програма повинна виводити зашифрований


або дешифрований текст на екран.

5. Змінна "kay" представляє кількість символів зсуву при шифруванні та


дешифруванні.

2. Теоретична частина

1. Імпорт бібліотек:
- `import os`: Ця бібліотека дозволяє взаємодіяти з операційною системою, включаючи роботу
з файлами та каталогами.
- `import sys`: Бібліотека `sys` використовується для доступу до змінних та функцій,
пов'язаних із системою, таких як аргументи командного рядка та вихід з програми.
- `import getopt`: Бібліотека `getopt` дозволяє обробляти параметри командного рядка.

Розглянемо теоретичну частину коду, де описані основні концепції та операції, що


виконуються:

3
1. **Функція `decode_file`**: Ця функція призначена для операцій з файлами, включаючи
зчитування вмісту файлу, шифрування або дешифрування цього вмісту та збереження
результату в іншому файлі.

2. **Зчитування вмісту файлу**:


- Використовується `open` для відкриття вхідного файлу у режимі читання (`'r'`).
- Вміст файлу зчитується і зберігається у змінну `file_content`.

3. **Вивід старого вмісту файлу**: Старий (нешифрований) вміст файлу виводиться на екран.

4. **Шифрування тексту**:
- Створюється пустий рядок `coded_file_content`, де зберігатиметься зашифрований вміст.
- Циклом проходиться через кожну літеру у вхідному файлі.
- Для кожної літери обчислюється новий символ шляхом додавання значення `kay` (кількість
символів зсуву) до ASCII-коду літери.
- Використовується операція взяття залишку по модулю 256, щоб забезпечити, що значення
перебуває в межах діапазону ASCII (0-255).
- Зашифрована літера додається до рядка `coded_file_content`.

5. **Збереження зашифрованого тексту**: Якщо вказаний вихідний файл (`outF_path`), то


зашифрований вміст зберігається у цьому файлі.

6. **Вивід зашифрованого тексту на екран**: Якщо вихідний файл не вказаний, то


зашифрований вміст виводиться на екран.

4
3.Блок схема

5
6
Тестування

7
5. Висновок

Операції над рядками: Я навчився виконувати операції над рядками, такі як конкатенація
(додавання рядків), індексація та взяття залишку по модулю.

Шифрування та дешифрування тексту: Я розібрався, як виконується шифрування та


дешифрування тексту з використанням заданого ключа.

Модульність та операції з ASCII-кодами: Я дізнався, як використовувати модульність (взяття


залишку по модулю) для обмеження значень ASCII-кодів, щоб забезпечити коректне
шифрування та дешифрування тексту.

Я отримав практичний досвід використання цих концепцій у програмуванні та розробці засобів


для шифрування та дешифрування текстових файлів.

6. Література
1) Безлі, Д. Python Distilled (Developer's Library) [Текст] / Д. Безлі. — Pearson, 2021. — 352 с. —
ISBN 978-0-13-417327-6.
2) Марк Лутц, Вивчаємо Python, 4-е вид., 2010.
3) Свейгарт, А. Automate the Boring Stuff with Python: Practical Programming for Total Beginners
[Текст] / А. Свейгарт. — No Starch Press, 2021. — 592 с.
Статті та посібники в Інтернеті

Інтернет-ресурс Python для модуля getopt

You might also like