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

Алгоритмизация как основной этап разработки программ (подробно)

Содержание:

Введение

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

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

Компьютеры невероятно быстры в манипулировании данными. Однако объем данных, используемых компьютерами, часто настолько велик, что не имеет значения, насколько быстрым является компьютер, потребуется слишком много времени, чтобы изучить каждый фрагмент данных (такие компании, как Google, Facebook и Twitter, регулярно обрабатывают миллиарды фрагментов данных в день, а в некоторых случаях, в минуту) Именно здесь в дело и вступают алгоритмы. Если компьютер использует лучший алгоритм для обработки данных, то не имеет значения, сколько информации он должен просматривать, он все равно будет в состоянии сделать это в разумные сроки. Скорость приложения на компьютере имеет большое значение для человека, использующего его. Если создаваемое приложение слишком медленное, люди будут разочарованы этим и не будут его использовать [5.]. Таким образом, потребность в создании и развитии алгоритмов является актуальной.

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

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

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

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

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

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

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

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

Однако иногда необходим компромисс между другими факторами. Например, эффективность может быть принесена в жертву ради высокой степени надежности. Разработка алгоритмов для решения простых задач может быть простой, но разработка алгоритмов для больших и сложных задач может быть сложной и трудоемкой. Хотя этот пример может касаться только простых задач, используемые методы важны при разработке алгоритмов и для сложных задач. Один общий подход к большим и сложным проблемам – использовать нисходящий дизайн. Нисходящее проектирование начинается в верхней части структурной схемы с общей формулировкой задачи, написанной точным, формальным способом для обеспечения высокоуровневой спецификации алгоритма. Этот способ предполагает разделение на отдельные логические части, для решения которых предоставляется общая спецификация. Эти части соответствуют основным модулям в конечном алгоритме. Затем части подразделяются и составляются инструкции. Наконец, алгоритм достигает той стадии, когда общая спецификация состоит из вычислений, сравнений и доступа к данным, и может быть запрограммирован без дальнейшего объяснения [4.].

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

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

  1. Ввести размеры трубопровода;
  2. Проверить корректность введенных данных;
  3. Рассчитать площадь поперечного сечения;
  4. Рассчитать объем стали;
  5. Рассчитать вес;
  6. Вывести вес.

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

Понятие программы и данных

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

Вывод относится к данным, отправленным с процессора компьютера на автоматические устройства хранения данных или на внешнее устройство. Вывод может быть напечатан, отображен на экране компьютера, записан на накопитель, диск или дискету, нанесен на карту (визуализирован) на графическом устройстве или использован для управления автоматическим устройством. Внутренняя перестановка данных, во время которой значения копируются из одной ячейки памяти в другую, достигается главным образом с помощью инструкций присваивания, которые выглядят как простые уравнения. Например, инструкция языка Си a = b; не означает, что a и b – это одно и то же, а то, что a присваивается (назначается) то же значение, что и b. Фактически значение, содержащееся в ячейке памяти с именем b, копируется в ячейку памяти с именем a. После того как оператор выполнит оператор a = b, ячейка памяти a будет содержать то же значение, что и ячейка памяти b. Арифметические инструкции состоят из основных арифметических операций сложения, вычитания, умножения, деления, остатка и возведения в степень (возведения в степень), а также присваивания значения переменной. Таким образом, инструкция а = 2,5 + 6,5 / 3,25; означает, что значение 4,5 рассчитывается как значение, назначенное для переменной a. Арифметические выражения оцениваются компьютером с тем же приоритетом, что и в математике. В этом примере деление выполняется перед сложением. Команды управления используются для переключения с одного набора команд на другой в зависимости от логического сравнения значений данных. Например, компьютер может выбирать между сложением или вычитанием в зависимости от того, является ли число положительным или нет: if(x > 0) z = x + 5; else z = x – 5;

Управляющие инструкции всегда включают сравнение одного значения с другим. Все сравнения приводят к ответу «истина» или «ложь», что становится основой для контрольного решения.

Сбор связанной между собой информации, подлежащей обработке прикладной программой, такой как температура, усредненная за определенный период времени, называется данными. Данные могут быть числовыми, символьными или логическими. Числовые данные могут быть записаны в виде вещественных, целых чисел или в экспоненциальном виде. Числовые значения данных обрабатываются как числовые значения, даже если они записаны в виде строк цифр и специальных символов. В языке Cи значения символьных данных записываются в виде символов внутри одинарных кавычек ('a') или строк символов внутри двойных кавычек (''axbcd''). Хотя Cи не имеет типа данных специально для логических данных, целые числа используются для представления значений true (истина) и false (ложь). Ноль интерпретируется как ложь, а все остальные целые числа интерпретируются как истина.

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

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

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

Для компьютера данные состоят не только из цифр или символьных строк. Набор значений данных идентифицируется как имеющий определенный тип данных, записываемый в определенной нотации, подходящий для определенных операций и имеющий имя, по которому он может быть идентифицирован. Также могут быть критерии достоверности и прикрепленные единицы измерения. Например, данные, представляющие скорость автомобиля, должны быть числовыми, записываться с десятичной точкой, называться «скоростью» или «speed», указываться в метрах в час или в километрах в час и не быть отрицательными числами. Данные, представляющие идентификационный номер автомобиля, будут символами, записанными в двойных кавычках, причем буквенными символами или цифрами и использоваться только для сравнения и для вывода.

Алгоритмы для проектирования задачи

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

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

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

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

Ниже рассматривается простая задача расчета и печати средней глубины воды в озере с помощью набора измерений глубины. Основные этапы расчета:

  1. Введите, проверьте и добавьте значения данных по одному, считая количество значений данных;
  2. Разделите сумму значений данных на количество значений данных;
  3. Напечатайте среднюю глубину.

Первый из этих шагов включает в себя повторный ввод, проверку и добавление. Инструкции программы должны включать информацию о переменных, которые должны быть добавлены и увеличены в цикле, и то, как определить конец данных. Инструкция для вычисления среднего значения и его вывода следует за циклом. Шаг 1 будет работать только в том случае, если есть внутренняя переменная, которая будет использоваться для накопления суммы значений данных, и внутренняя переменная, которая будет использоваться в качестве счетчика. Обе из них должны быть очищены перед обработкой любых данных. Предварительным условием для шага 1 является то, что total = 0 и count = 0, где total и count являются именами для внутренних переменных. Предварительным условием для шага 2 является count > 0. Поэтому должно быть хотя бы одно положительное значение данных. Простейшее описание этого алгоритма в виде псевдокода выглядит следующим образом:

  1. инициализировать total и count;
  2. обработать положительные значения данных в наборе значений данных;
  3. рассчитать среднее значение;
  4. вывести среднее значение на экран.

Этот алгоритм может быть записан в виде блок-схемы (приведена на рисунке 1).

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

Рисунок 1 – Блок-схема алгоритма вычисления средней глубины

  1. Инициализировать total и count нулем (это необходимо для выполнения первого предварительного условия);
  2. Для каждого значения входных данных больше 0 (предварительное условие: предположим, что total ≥ 0, count ≥ 0 при каждом получении нового значения данных) выполнить:
    1. Добавить значение данных к total;
    2. Добавить 1 к count;
  3. Конец цикла;
  4. Разделить total на count, чтобы получить среднюю глубину (предварительное условие; предположим, что count > 0);
  5. Распечатать среднюю глубину;
  6. Конец.

Этот алгоритм также может быть записан в виде блок-схемы (приведена на рисунке 2).

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

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

  1. total ← 0.0;
  2. count ← 0;
  3. Для каждого найденного значения входных данных выполнить:
    1. Если значение > 0 (предварительное условие: значение найдено);
      1. total ← total + значение данных;
      2. count ← count + 1;
    2. Конец если;
  4. Конец для;
  5. average ← total / count (предварительное условие: найдено положительное значение);
  6. Печать average;
  7. Конец.

Рисунок 2 – Блок-схема алгоритма вычисления средней глубины с циклом

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

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

Основные правила для написания псевдокода:

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

Понятие структурного программирования

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

  1. Последовательная структура

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

  1. Структура выбора

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

  1. Структура с повторением или циклом

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

Разработка и выполнение программы

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

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

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

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

ЗАКЛЮЧЕНИЕ

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

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

  1. Алгоритм. Спосoбы описания алгоритма. Учебно-методическое пособие для учителей информатики / Сост. Е.А.Пархoменко, Ю.В.Сюбаева – Коломна: Лицей, 2005. – 33 с.
  2. Балафанов Е.Н. «30 уроков по информатике», Москва 2007 г.
  3. Галин А.Б., Панов Ю.В. Информатика. Феникс - 2009 г.
  4. Голицына О.Л. Основы алгоритмизации и программирования: Учеб. Пособие / О.Л.Голицына, И.И.Попов. – М.: ИНФРА-М, 2004. – 432 с.
  5. Карпенков С.Х. Современные средства информационных технологий. КноРус - 2009 г.
  6. Кузнецов А.А. Основы информатики. Учеб. для общеобразоват. учеб. заведений / А.А.Кузнецов, Н.В.Апатова. — М.: Дрофа, 2000. — 176 с.
  7. Кушнеренко А.Г. Основы информатики и ВТ: Учеб. для 10-11 кл. — 4-е изд. / А.Г.Кушнеренко и др. — М: Просвещение, 1996. — 224 с.
  8. Макарова Н.В. Информатика и ИТК. М:, 2006 г.
  9. Островский В.А. Информатика. 2009 г.
  10. Семакин И.Г. Основы программирования: Учебник для среднего профессионального образования / И.Г.Семакин, А.П.Шестаков. — М.: Издательский центр «Академия», 2003. – 432 с.
  11. Макарова Н.В. Информатика и ИТК. М:, 2006 г.
  12. Могилев А.В. «Практикум по информатике» Санкт-Петербург 2005 г.