Файл: Алгоритмизация как обязательный этап разработки программы (Современное понятие программного обеспечения).pdf

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

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

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

Добавлен: 31.03.2023

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

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

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

ВВЕДЕНИЕ

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

Цель данной работы исследование алгоритмизации, как обязательного этапа разработки программ. Объектом исследования данной работы является разработка программного обеспечения, а предметом исследования алгоритмизация.

В рамках работы должны быть решены следующие задачи:

  • раскрыто понятие «алгоритм»;
  • изучены вопросы современной разработки программного обеспечения;
  • должно быть проведено исследование алгоритмических конструкций;
  • изучены вопросы практического применения алгоритмизации.

Методами исследования являются изучение теоретических вопросов, сравнение, анализ.

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

ГЛАВА 1. ИССЛЕДОВАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ

1.1 Современное понятие программного обеспечения

Программное обеспечение — это общий термин для различных видов программ, используемых для работы с компьютерами и связанными устройствами. Термин аппаратное обеспечение описывает физические аспекты компьютеров и связанных с ними устройств. [4]

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


Утилитарные программы ("программы для себя") предназначены для удовлетворения нужд их разработчиков. Чаще всего утилитарные программы выполняют роль сервиса в технологии обработки данных либо являются программами решения функциональных задач, не предназначенных для широкого распространения. [2, 13]

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

Свободное программное обеспечение, несколько более новая и не связанная с этим концепция, — это программное обеспечение, которое можно свободно использовать, модифицировать и распространять только с одним ограничением: любая распространяемая версия программного обеспечения должна распространяться с оригинальными условиями бесплатного использования, модификации и распространения (известны как авторское право). В отличие от бесплатного программного обеспечения, бесплатное программное обеспечение может распространяться за плату. Бесплатное программное обеспечение может быть более ограниченным в возможностях, чем свободное программное обеспечение. [5, 11]

Условно-бесплатная программа — это программное обеспечение, которое распространяется бесплатно на пробной основе с пониманием того, что пользователь может нуждаться или захотеть заплатить за него позже. Некоторые разработчики программного обеспечения предлагают условно-бесплатную версию своей программы со встроенным сроком действия (по истечении 30 дней пользователь больше не может получить доступ к программе). Другое условно-бесплатное программное обеспечение предлагается с определенными возможностями. [13]

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


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

Дополнительной и трудно классифицируемой категорией программного обеспечения является утилита, которая представляет собой небольшую полезную программу с ограниченными возможностями. Некоторые утилиты поставляются с операционными системами. Как и приложения, утилиты, как правило, устанавливаются отдельно и могут использоваться независимо от остальной части операционной системы. Например, апплеты — это небольшие приложения, которые иногда поставляются с операционной системой как «аксессуары». Они также могут быть созданы независимо с использованием Java или других языков программирования. [10]

Программное обеспечение может быть приобретено как условно-бесплатное программное обеспечение (обычно предназначенное для продажи после пробного периода), бесплатно (условно-бесплатное программное обеспечение с некоторыми отключенными возможностями), бесплатное ПО (бесплатное программное обеспечение, но с ограничениями авторского права), общедоступное программное обеспечение (бесплатное без ограничений) и открытое источник (программное обеспечение, в котором предоставляется исходный код, и пользователи соглашаются не ограничивать распространение улучшений). [3, 13]

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

Некоторые общие виды прикладного программного обеспечения включают в себя:

  • программное обеспечение для повышения производительности, которое включает в себя текстовые процессоры, электронные таблицы и инструменты для использования большинством пользователей компьютеров;
  • программное обеспечение для презентаций;
  • графическое программное обеспечение для графических дизайнеров;
  • CAD/CAM программное обеспечение;
  • специализированные научные приложения;
  • рыночное или отраслевое программное обеспечение (например, для банковской, страховой, розничной и производственной сред). [2, 13]

1.2. Понятие алгоритма

Алгоритм — это набор инструкций, четко описывающих порядок действий исполнителя для достижения результата решения задачи за конечное число действий. [17]


Свойства алгоритмов:

  1. Дискретность (алгоритм должен представлять решение задачи как последовательность некоторых простых шагов);
  2. Детерминированность (алгоритм должен в каждый конкретный момент времени однозначно определять следующий шаг исходя из состояния системы);
  3. Понятность (алгоритм должен включать только те команды, которые исполнитель может выполнить);
  4. Конечность (алгоритм при корректных входных данных должен заканчиваться и выдавать результат);
  5. Универсальность (алгоритм должен быть применим к разным наборам входных данных);
  6. Результативность (алгоритм должен завершаться с каким-то результатом).

Алгоритм должен быть формализован по некоторым правилам посредством конкретных изобразительных средств. К ним относятся следующие способы записи алгоритмов: словесный, формульно-словесный, графический, язык операторных схем, алгоритмический язык.

Изучение алгоритмов началось с математики. Несомненно, что поиск алгоритмов был важнейшей задачей для математиков задолго до разработки современных компьютеров. Цель состояла в том, чтобы найти набор инструкций, которые бы описывали как решить все проблемы определенного типа. Один из самых хорошо известных примеров таких ранних исследований – алгоритм деления столбиком. Другой пример – Алгоритм Евклида для поиска наибольшего общего делителя двух положительных чисел, описанный греческим математиком Евклидом около 300 лет до н. э. [16]

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

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

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

При всем многообразии алгоритмов решения задач в них можно выделить три основных вида вычислительных процессов:


  • линейный;
  • ветвящийся;
  • циклический.

Линейным называется такой вычислительный процесс, при котором все этапы решения задачи выполняются в естественном порядке следования записи этих этапов.

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

Циклом называется многократно повторяемый участок вычислений. Вычислительный процесс, содержащий один или несколько циклов, называется циклическим. По количеству выполнения циклы делятся на циклы с определенным (заранее заданным) числом повторений и циклы с неопределенным числом повторений. Количество повторений последних зависит от соблюдения некоторого условия, задающего необходимость выполнения цикла. При этом условие может проверяться в начале цикла — тогда речь идет о цикле с предусловием, или в конце — тогда это цикл с постусловием. [5, 17]

Алгоритмизация, как процесс преобразования исходной информации к алгоритмическому виду, включает в себя:

  • выделение актуальных (задействованных в операциях) объектов;
  • идентификация выделенных объектов;
  • выделение операций, понятных исполнителю и не допускающих неоднозначных интерпретаций;
  • указание порядка выполнения операций.

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

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

Цикл от ветвления отличается тем, что он предусматривает возможность перехода (возвращения) к одной из предыдущих операций.

Смешанный порядок в алгоритме предполагает наличие участков с неодинаковым типом последовательностей операций. Смешанный порядок выполнения операций всегда присутствует в сложных алгоритмах и программах. Даже в «примере с задвижками» часто приходится менять порядок действий в зависимости от складывающейся походу дела ситуации и обстановки. Например, менять порядок открытия задвижек из-за неисправности одной из них (ветвление) или повторно включать подремонтированный насос, повторяя порядок открытия-закрытия задвижек (цикл), и т.п. [8, 17]