Файл: Основные структуры алгоритмов: сравнительный анализ и примеры их использования (Основные структуры алгоритмов).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 28.03.2023

Просмотров: 369

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Помимо этого, Python является активно расширяющимся языком программирования, новые версии которого выходят практически каждые два с половиной года [9.]. Интерпретатор наиболее распространенной, эталонной реализации языка написан на C (CPython); исходный код доступен для совершенствования всеми заинтересованными программистами [10.].

Еще одним достоинством языка является его модульность, т.е. наличие огромного числа модулей, которые могут подключаться к программе и собираться в пакеты. Модули выполняют роль библиотек и могут быть двух типов по своему происхождению: модули, написанные на «чистом» Python, и модули расширения, написанные на других языках программирования [11.]. Модуль оформляется в виде отдельного файла и подключается к программе при помощи оператора import, после чего является отдельным объектом, дающим доступ к пространству имен модуля [22.].

Динамическая типизация, которую поддерживает Python, подразумевает определение имени переменной во время исполнения программы. Тип переменной при этом не является неизменным – любое присваивание приводит к тому, что типом переменной становится тип нового присваиваемого значения, поэтому вместо «присваивание значения переменной» используется выражение «связывание значения с некоторым именем» [12.].

Язык обладает четким и последовательным синтаксисом, благодаря чему исходный код написанных на Python программ легко читаем. Набор операторов достаточно традиционен: условный оператор if (если) с возможностью использования альтернативного блока else (если условий несколько) и elif (сокр. от elseif), операторы цикла while (пока) и for (для), внутри которых возможно применение операторов break и continue для прерывания цикла и перехода сразу к следующей итерации, оператор определения класса class, оператор определения функции, метода или генератора def, внутри которых возможно применение return (возврат) для возврата из функции или метода, а в случае генератора – yield (давать), оператор обработки исключений try – except – else или try – finally, оператор pass, который ничего не делает и используется для пустых блоков кода [17.].

Одной из интересных синтаксических особенностей языка является отсутствие операторных скобок вида begin-end, как в языке Паскаль, или фигурных, как в языке С, – блоки кода выделяются при помощи отступов (пробелов или табуляций), что позволяет сократить количество строк и символов в программе [20.].

Все примеры кода в этой главе приводятся на языке программирования Python; версия языка – 3.6.4. Полный исходный код программы приводится в приложении 1.


1.6 Требования к безопасности

Программа должна быть корректной, то есть безошибочно выполнять все требуемые функции и быть пригодной для эксплуатации.

Программа должна быть устойчивой, то есть способной правильно выполнять запланированные действия, несмотря на случайные отклонения как в работе аппаратуры, так и в самой программе.

Для обеспечения надежности необходимо:

  • выводить сообщение об ошибке при неправильном вводе данных, в котором должна содержаться понятная пользователю информация о требуемых входных данных;
  • предупреждать о возникающих в программе ошибках.

Требования к условиям эксплуатации

Программное средство предназначено для работы пользователей, которые должны обладать минимальными навыками работы на ПК и со стандартными приложениями Windows, на локальных компьютерах.

При необходимости модернизации ПС или его усовершенствования, необходимо, чтобы на компьютере программиста был установлен полный пакет среды программирования Python IDLE.

Программное средство должно эксплуатироваться в условиях, принятых для эксплуатации технических средств, а именно:

  • температура окружающей среды (не более 30°С);
  • относительная влажность (не более 65%);
  • атмосферное давление (от 80 до 106,7 кПа);
  • расстояние между компьютерами (около 3 м);
  • запыленность воздуха не более 0,75 мг/.

Данная программа должна функционировать под управлением любой операционной системы семейства Windows.

1.7 Требования к эргономике и технической эстетике

Взаимодействие пользователей с программой должно осуществляться посредством консольного интерфейса. Интерфейс ПС должен быть понятным и удобным, не должен быть перегружен элементами и должен обеспечивать быстрое отображение экранных форм. Навигационные элементы должны быть выполнены в удобной для пользователя форме. Средства редактирования информации должны удовлетворять принятым соглашениям в части использования функциональных клавиш, режимов работы, поиска, использования оконной системы. Ввод-вывод данных приложения, прием управляющих команд и отображение результатов их исполнения должны выполняться в интерактивном режиме. Интерфейс должен соответствовать современным эргономическим требованиям и обеспечивать удобный доступ к основным функциям и операциям программы. Взаимодействие ПС и пользователя должно осуществляться на русском языке, за исключением системных сообщений, не подлежащих русификации.


Интерфейс должен быть рассчитан на преимущественное использование клавиатуры, то есть управление программой должно осуществляться с помощью ввода команд. Режим ввода с использованием манипулятора типа «мышь» должен использоваться главным образом для открытия и закрытия основного окна программы.

Программа должна обеспечивать корректную обработку аварийных ситуаций, вызванных неверными действиями пользователей, неверным форматом или не допустимыми значениями входных данных. В указанных случаях программа должна выдавать пользователю соответствующие сообщения, после чего возвращаться в рабочее состояние, предшествовавшее неверной (недопустимой) команде или некорректному вводу данных.

Программа должна соответствовать требованиям эргономике и профессиональной медицине при условии комплектования высококачественным оборудованием (ПЭВМ, монитор и прочее оборудование) имеющим необходимые сертификаты соответствия и в безопасности Госстандарта.

1.8 Требования к составу и параметрам технических средств

Программа должна работать на IBM-совместимых персональных компьютерах. Минимальная конфигурация:

  • процессор: Intel Pentium, AMD, Intel Celeron с тактовой частотой от 2.4 GHz и выше;
  • оперативная память не ниже 1 ГБ;
  • стандартная мышь;
  • объем свободного места на жестком диске не ниже 2 МБ;
  • клавиатура;
  • монитор.

К программе должен быть подключен манипулятор типа мышь. Дополнительные требования к составу и параметрам технических средств не предъявляются, все устройства должны находиться в своей базовой параметрической настройке.

Алгоритм основной программы

Блок-схема главной программы представлена на рисунке 1.

1.9 Руководство программиста

Программа представляет собой консольное приложение с возможностью обработки числовых значений. Взаимодействие с программой осуществляется посредством консоли при помощи ввода значения некоторой суммы (в рублях) для перевода в словесную форму. Данные для перевода задаются пользователем с клавиатуры.

Для работы с исходным программным кодом данного программного обеспечения необходим компьютер с установленной на нем интегрированной средой разработки языка Python версии 3.6.4 или старше, например, IDLE Python или PyCharm.


Для запуска и работы программы необходима операционная система Windows 10. Программа является автономной и независимой и не требует соблюдения никаких регламентов и правил по взаимодействию с другими программами и системами. Установка программы не требуется.

Основное назначение программы – демонстрация возможностей языка программирования Python для решения задачи автоматизации перевода сумм, заданных в цифровой форме, в прописную форму.

Рисунок 1 – Блок-схема главной программы

Программа корректно работает как на 32-разрядных, так и на 64-разрядных системах.

Входными данными в программе является строка, содержащая целое число (сумму в рублях с копейками); выходными – строка со словесным представлением этого числа.

Для решения задачи перевода целых чисел (сумм в рублях с копейками от -999 999 999 999 до 999 999 999 999) в словесную форму была написана функция num2text (рисунок 2). Функция decimal2text позволяет выполнять перевод для дробных чисел (рисунок 3) [18.]. Для перевода значений от 19 до 999 используется вспомогательная функция thousand (рисунок 4) [19.].

Рисунок 2 – Основная функция для перевода значений

Рисунок 3 – Функция для перевода вещественных значений (рубли и копейки)

1.10 Руководство пользователя

Для корректной работы описанного программного продукта, во-первых, должны выполняться требования по стандартной комплектации системы – это наличие операционной системы семейства Windows не ниже Windows 7. Во-вторых, требования к оборудованию компьютера – это минимальные требования, объявленные для работы, уровень которых также увеличивает способность приложения оставаться «юзабельным» в рамках сложности представленного отдельным интерфейсом приложения.

Рисунок 4 – Функция для перевода значений от 19 до 999

В работе используется интерпретатор языка программирования Python версии 3.6.4 – предъявляемые рекомендуемые требования к оборудованию, операционной системе и программному обеспечению, таким образом, полностью соотносятся с аналогичными требованиями для самого интепретатора.

Дополнительный модуль, используемый в работе, – decimal, являющийся частью стандартной библиотеки языка.


Ключевым компонентом для работы с числами в этом модуле является класс Decimal. Для его применения нам надо создать его объект с помощью конструктора. В конструктор передается строковое значение, которое представляет число (листинг 6).

Листинг 6. Пример 1 работы с Decimal

from decimal import Decimal

number = Decimal("0.1")

После этого объект Decimal можно использовать в арифметических операциях (листинг 7).

Листинг 7. Пример 2 работы с Decimal

from decimal import Decimal

number = Decimal("0.1")

number = number + number + number

print(number) # 0.3

В операциях с Decimal можно использовать целые числа (листинг 8).

Листинг 8. Пример 3 работы с Decimal

number = Decimal("0.1")

number = number + 2

Однако нельзя смешивать в операциях дробные числа float и Decimal (листинг 9).

Листинг 9. Пример 4 работы с Decimal

number = Decimal("0.1")

number = number + 0.1 # здесь возникнет ошибка

С помощью дополнительных знаков можно определить, сколько будет символов в дробной части числа (листинг 10).

Листинг 10. Пример 5 работы с Decimal

number = Decimal("0.10")

number = 3 * number

print(number) # 0.30

Строка "0.10" определяет два знака в дробной части, даже если последние символы будут представлять ноль. Соответственно "0.100" представляет три знака в дробной части.

Простую загрузку и установку любой общедоступной библиотеки Python можно выполнить с помощью инструмента pip [21.]. Это инструмент для установки и управления пакетами Python, похожий на apt-get в Ubuntu, который также способен сообщать пользователю о том, какие библиотеки нужно установить, и одновременно являющийся универсальным сервисом для прямой загрузки и установки этих библиотек. Весь процесс выполняется при помощи команды pipinstall<название библиотеки>.

Программа распространяется как в исходном формате (*.py-файл для запуска в интерпретаторе), так и в виде файла с расширением *.exe. Во втором случае запуск программы осуществляется так же, как и запуск любой другой программы в среде Windows, то есть для ее запуска необходимо дважды щелкнуть мышью по пиктограмме запускающего exe-файла.

Допустим, код программы находится в файле с расширением *.pyн а рабочем столе пользователя (рисунок 5).

Рисунок 5 – Файл программы на рабочем столе пользователя

Для запуска программы из *.py-файла при наличии предустановленного интерпретатора IDLE для языка Python нужной версии, необходимо также выполнить двойной щелчок мышью по пиктограмме, после чего нажать клавишу F5. Результат работы с программой представлен на рисунке 6.