Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Алгоритмизация как обязательный этап разработки компьютерной программы.

Содержание:

Введение.

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

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

Одной из основных задач программирования является запись алгоритма на языке программирования и последующее его тестирование.

Целью курсовой работы является анализ и систематизация литературы, рассматривающая этапы разработки программ. Задачи исследования состоят в том, чтобы определить сущностью понятия «алгоритм», «программный продукт», выделить их основные свойства и виды, описать виды программ, рассмотреть основные этапы разработки программ.

Теоретической основой курсовой работы являются работы российских ученых по вопросам, касающимся разработки программ для ЭВМ.

Методологической основой исследования являются методы наблюдения, анализа и систематизации научной литературы.

Цели и задачи предопределили структуру курсовой работы. Работа состоит из введения, двух глав, заключения и списка литературы.

Глава 1. Сущность алгоритмизации.

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

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

Термин «алгоритм» происходит от латинской формы имени среднеазиатского математика Аль-Хорезми – Algorithmi. В его сочинении «Книга о сложении и вычитании» автор дал описание позиционной десятичной системы счисления, сформулировал правила вычисления и впервые использовал цифру ноль, которая обозначила пропущенную позицию в записи числа. Аль-Хорезми одним из первых начал применять индийскую систему счисления.

Наиболее обобщенно алгоритм определяется как «четкое описание последовательности действий, которые необходимо выполнить для получения результата.»[1]

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

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

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

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

С другой стороны, трактовать понятие алгоритмизации можно как области информатики, посвященной методикам, способам создания алгоритмов. Исходя из данного определения, алгоритмизация рассматривает свойства алгоритмов. Данными вопросами занимается такая наука как алгоритмика.

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

В общем случае алгоритмы, сформированные в ходе алгоритмизации, разрабатываются именно для электронно-вычислительной техники. Формирование эффективной последовательности действий, которая отражала бы происходящие в реальности процессы, в большинстве случаев предполагает последовательное нахождение ответов на два вопроса: какие системы информационной обработки будут эффективными в конкретном случае; каковы математические методики функционирования применительно к крупным системам?[2] В задачах первого типа для построения алгоритма управления необходимо к алгоритму, описывающему процесс функционирования системы, присоединить алгоритм определения оптимального решения или оптимальных значений параметров управления. В задачах второго типа функционирование большой системы позволяет провести количественное и качественное исследования, связанные с оценкой основных её свойств (эффективности, надёжности и др.).

Таким образом, в узком смысли алгоритмизация - процесс систематического составления алгоритмов для решения поставленных прикладных задач. Алгоритмизация считается обязательным этапом в процессе разработки программ и решении задач на ЭВМ. Именно для прикладных алгоритмов и программ принципиально важны детерминированность, результативность и массовость, а также правильность результатов решения поставленных задач.

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

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

1.2 Свойства алгоритмов и способы их описания.

Далее рассмотрим основные свойства алгоритмов.

К основным свойствам алгоритмов относятся:

1) дискретность (прерывность, раздельность) – алгоритм должен представлять процесс решения задачи как последовательное исполнение простых (или ранее определенных) шагов (этапов);

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

3) результативность (или конечность) – алгоритм должен приводить к решению задачи за конечное число шагов;

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

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

Словесное описание представляет структуру алгоритма на естественном языке. Например, любой прибор бытовой техники (утюг, электропила, и т.п.) имеет инструкцию по эксплуатации, т.е. словесное описания алгоритма, в соответствии которому данный прибор должен использоваться. Никаких правил составления словесного описания не существует. Запись алгоритма осуществляется в произвольной форме на естественном, например, русском языке. Этот способ описания не имеет широкого распространения, так как строго не формализуем (под «формальным» понимается то, что описание абсолютно полное и учитывает все возможные ситуации, которые могут возникнуть в ходе решения); допускает неоднозначность толкования при описании некоторых действий; страдает многословностью.

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

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

Рассмотрим некоторые основные конструкции, использующиеся для построения блок-схем.

Блок, характеризующий начало и конец алгоритма (Рисунок 1). Блок - процесс, предназначенный для описания отдельных действий (Рисунок 2). Блок — ввода/вывода с неопределенного носителя (Рисунок 3). Блок - ввод с клавиатуры (Рисунок 4). Блок — вывод на монитор (Рисунок 5). Блок — решение (проверка условия или условный блок) (Рисунок 6). Блок, описывающий цикл с параметром (Рисунок 7). Блок — границы цикла, описывающий циклические процессы типа: «цикл с предусловием», «цикл с постусловием» (Рисунок 8).

Рисунок 1.

http://www.bestreferat.ru/images/paper/62/85/8618562.png

http://www.bestreferat.ru/images/paper/64/85/8618564.png

http://www.bestreferat.ru/images/paper/63/85/8618563.png

Рисунок 2.

http://www.bestreferat.ru/images/paper/65/85/8618565.png

http://www.bestreferat.ru/images/paper/66/85/8618566.png

Рисунок 3.

http://www.bestreferat.ru/images/paper/67/85/8618567.png

Рисунок 4.

http://www.bestreferat.ru/images/paper/69/85/8618569.png


Рисунок 5.

http://www.bestreferat.ru/images/paper/70/85/8618570.png

Рисунок 6.

http://www.bestreferat.ru/images/paper/71/85/8618571.png 

http://www.bestreferat.ru/images/paper/72/85/8618572.pngНет Да

Рисунок 7.

http://www.bestreferat.ru/images/paper/73/85/8618573.png

Рисунок 8.

http://www.bestreferat.ru/images/paper/74/85/8618574.png

http://www.bestreferat.ru/images/paper/75/85/8618575.png

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

1.3 Виды алгоритмов.

Основными видами алгоритмических конструкций являются: линейная, разветвляющаяся, алгоритмическая конструкция «Цикл».

Рассмотрим основные характеристики данных конструкций.

  1. Линейная алгоритмическая конструкция

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

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

Рисунок 9.

http://www.bestreferat.ru/images/paper/76/85/8618576.png

  1. Разветвляющаяся алгоритмическая конструкция.

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

Рисунок 10.

http://www.bestreferat.ru/images/paper/77/85/8618577.png


Неполное ветвление предполагает наличие некоторых действий алгоритма только на одной ветви (то), вторая ветвь отсутствует, т.е. для одного из результатов проверки никаких действий выполнять не надо, управление сразу переходит к точке слияния (Истина/Ложь) (Рисунок 11).

Рисунок 11.

http://www.bestreferat.ru/images/paper/78/85/8618578.png

В зависимости от типа и числа проверяемых условий различают:

- ветвление с простым условием (условие - выражение отношения);

- ветвление с составным условием (условие - логическое выражение);

- сложное ветвление (несколько условий).

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

  1. Алгоритмическая конструкция «Цикл».

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

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

Операции, осуществляемые в цикле, составляют тело цикла. В тело цикла входят многократно повторяющиеся действия для вычисления искомых величин; подготовка следующего значения параметра цикла; подготовка других значений, необходимых для повторного выполнения действий в теле цикла.

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

При разработке алгоритма циклической структуры выделяют следующие понятия: параметр цикла – величина, с изменением которой связано многократное выполнение цикла; начальное и конечное значения параметров цикла; шаг цикла – значение, на которое изменяется параметр цикла при каждом повторении. Зависимость, связывающая текущее и предыдущее значения параметра цикла, определяет закон изменения параметра цикла.

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

Все циклические процессы по признаку определения количества повторений разделяются на два класса.

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

Итерационным является циклический процесс, число повторений в котором зависит от результатов вычислений в теле цикла и не может быть определено заранее. Приведем примеры циклических процессов: блок схема цикла с предусловием (Рисунок 12), блок-схема цикла с постусловием (Рисунок 13).

Рисунок 12.

http://www.bestreferat.ru/images/paper/79/85/8618579.png

Рисунок 13.

http://www.bestreferat.ru/images/paper/80/85/8618580.png

Таким образом, мы рассмотрели основные понятия алгоритма и алгоритмизации. Определили их свойства и конструкции представления. На основе данного нами узкого определения понятия алгоритмизации следует, что в прикладном смысле алгоритмизация используется для решения разнообразных задач путем построения программ для ЭВМ.

Глава 2. Компьютерная программа. Понятие, виды и этапы разработки.

2.1. Виды компьютерных программ.

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

Каждый программный продукт имеет два основных свойства:

  1. Является комплектом шагов, которые должен сделать компьютер;
  2. Каждая отдельная инструкция управляет частью данных или информации.

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

Выделим основные виды компьютерных программ.

  1. Системные компьютерные программы.

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

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

Центральное место среди системных программ занимают операционные системы.

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

ОС определяет производительность системы, степень защиты данных, выбор программ, с которыми можно работать на компьютере, требования к аппаратным средствам. Примерами ОС являются MS DOS, OS/2, Unix, Windows 9х, Windows XP.

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

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

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

Служебные программы  – это вспомогательные программы, предоставляющие пользователю ряд дополнительных услуг по реализации часто выполняемых работ или же повышающие удобство и комфортность работы. К ним относятся:

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

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

  1. Инструментальные программы.

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

  • Компиляторы;
  • Трансляторы;
  • Ассемблеры;
  • Интерпретаторы;
  • Компоновщики;
  • Отладчики;
  • Средства автоматизированного тестирования программ;
  • Генераторы документации;
  • Комплект средств разработки (SDK);
  • Системы управления версиями;
  • Системы программирования и интегрированные среды разработки программ;
  • Системы автоматизации программирования (CASE).

Кратко опишем некоторые из данных программ. 

Компилятор – это программное средство для перевода программ, написанных на каком-либо языке программирования, в программы, представленные в двоичных машинных кодах. Компиляторы делятся на три вида – трансляторы, ассемблеры и интерпретаторы.

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

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

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

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

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

Системы автоматизации программирования (Computer-Aided System Engineering, CASE) – программный комплекс, автоматизирующий весь технологический процесс анализа, проектирования, разработки, кодирования, отладки и сопровождения сложных программных систем. Основное достоинство CASE-технологии – это поддержка коллективной работы над проектом за счет возможности работы в локальной и глобальной сети разработчиков, экспорта(импорта) любых фрагментов проекта, организованного управления программами. Как правило, CASE-системы поддерживают автоматическую код генерацию программ – создание каркаса программой системы и создание полного продукта с системной документацией.

  1. Прикладные программы.

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

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

Основными видами прикладных программ являются:

  • Текстовые редакторы - предназначены для создания и редактирования текста без оформления;
  • Текстовые процессоры (MS Word) -более продвинутые текстовые редакторы, позволяющие редактировать текст с оформлением, изменением шрифтов и его размеров, вставки графических файлов, таблиц и т.п. для более презентабельного оформления текста;
  • Электронные таблицы (MS Excell) -в основном используются для обработки каких-либо данных, содержащихся в этих таблицах. Прикладные задачи чаще всего выполняются для хранения учетных данных с последующим их анализом;
  • Растровые и векторные графические редакторы (Photoshop, Corel), "просмотрщики". Использование прикладных программ такого типа позволяет создавать, редактировать, а так же просматривать графические изображения;
  • Аудио видео плееры, редакторы (WinAmp) -позволяют просматривать видео, слушать музыку, создавать музыкальные композиции;
  • Системы управления базами данных (например - MSQL). Такие программы служат для работы с базами данных. Например,  простая база для хранения сведения о клиентах, их контактные данные и т.п. Можно проводить операции по поиску, удалению и добавлению записей в базу;
  • Переводчики или электронные словари. Такие прикладные программы позволяют без особых усилий переводить текст на разные иностранные языки без их непосредственного изучения;
  • Компьютерные игры. Используются для развлечений или для развития в игровой форме.

Этапы разработки программ.

Существуют различные подходы и технологии разработки алгоритмов и программ. Приведем основные этапы разработки программы:

  • постановка задачи;
  • проектирование программы
  • построение модели
  • разработка алгоритма;
  • написание программы;
  • отладка программы;
  • тестирование программы;
  • документирование.

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

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

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

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

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

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

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

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

Заключение

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

  • дискретность
  • определенность
  • массовость
  • результативность (конечность).

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

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

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

Список литературы

1. Кадырова, Г. Р. Основы алгоритмизации и программирования : учебное пособие / Г. Р. Кадырова. – Ульяновск : УлГТУ, 2014. – 95 с.

2. Глушков В. М., Синтез цифровых автоматов, М., 1962; Бусленко Н. П., Математическое моделирование производственных процессов на цифровых вычислительных машинах, М., 1964; Алгоритмизация производственных процессов [Доклады семинара], в. 1, К., 1966.

3. Генри С. Уоррен., Алгоритмические трюки для программистов, Лит. Редактор Красножан Л.Н, худ. редактор Дынник Е. П. Издательство дом «Вильямс» 2014 г.

4. Дасгупта С. и др. Алгоритмы / С. Дасгупта, Х. Пападимитриу, У. Ва- зирани; Пер. с англ. под ред. А. Шеня. –– М.: МЦНМО, 2014. –– 320 с.

5. Б.В. Соболь [и др.] «Информатика и программирование»– Ростов н/Д: Феникс, 2006 – 354 с.

6.Каймин В.А., Касаев Б.С. Информатика.: Практикум на ЭВМ. Учебное пособие.

7. Информатика. Базовый курс./С.В. Симонович и др. - СПб.: Питер, 2001

8. Т. Кормен — Алгоритмы. Вводный курс

9. «Чистый код. Создание, анализ и рефакторинг», Роберт К. Мартин

10. Информатика: базовый курс: учебник для студентов вузов, бакалавров, магистров, обучающихся по направлению «Информатика»/О.А. Акулов, Н.В. Медведев. 6-е изд., испр. и доп.-М.: Издательство «Омега-Л», 2009.-574 с

  1. Кадырова, Г. Р. Основы алгоритмизации и программирования : учебное пособие / Г. Р. Кадырова. – Ульяновск : УлГТУ, 2014. – 95 с.

  2. http://fb.ru/article/366897/algoritmizatsiya---eto-protsess-postroeniya-algoritma-resheniya-zadachi-algoritm-i-algoritmizatsiya-v-informatike

  3. Глушков В. М., Синтез цифровых автоматов, М., 1962; Бусленко Н. П., Математическое моделирование производственных процессов на цифровых вычислительных машинах, М., 1964; Алгоритмизация производственных процессов [Доклады семинара], в. 1, К., 1966.