Основные этапы решения задач на компьютере
Процесс решения задач на компьютере – это совместная деятельность человека и ЭВМ. Этот процесс можно представить в виде нескольких последовательных этапов. На долю человека приходятся этапы, связанные с творческой деятельностью - постановкой, алгоритмизацией, программированием задач и анализом результатов, а на долю компьютера – этапы обработки информации в соответствии с разработанным алгоритмом.
Рассмотрим эти этапы на следующем примере: пусть требуется вычислить сумму двух целых чисел и вывести на экран видеомонитора результат.
Первый этап – постановка задачи. На этом этапе участвует человек, хорошо представляющий предметную область задачи. Он должен четко определить цель задачи, дать словесное описание содержания задачи и предложить подход к ее решению. Для задачи вычисления суммы двух целых чисел человек, знающий, как складываются числа, может описать задачу следующим образом: ввести два целых числа, сложить их и вывести сумму в качестве результата решения задачи.
Второй этап – математическое или информационное моделирование. Цель этого этапа – создать такую математическую модель решаемой задачи, которая может быть реализована в компьютере. Существует целый ряд задач, где математическая постановка сводится к простому перечислению формул и логических условий. Этот этап тесно связан с первым этапом, и его можно отдельно не рассматривать, однако возможно, что для полученной модели известны несколько методов решения, и тогда предстоит выбрать лучший. Для вышеописанной задачи данный этап сводится к следующему: введенные в компьютер числа запомним в памяти под именами А и В, затем вычислим значение суммы этих чисел по формуле А+В, и результат запомним в памяти под именем Summa.
Третий этап – алгоритмизация задачи. На основе математического описания необходимо разработать алгоритм решения.
Алгоритмом называется точное предписание, определяющее последовательность действий исполнителя, направленных на решение поставленной задачи. В роли исполнителей алгоритмов могут выступать люди, роботы, компьютеры.
Используются различные способы записи алгоритмов. Широко распространен словесный способ записи: это записи рецептов приготовления различных блюд в кулинарной книге, инструкции по использованию технических устройств, правила правописания и многие другие. Наглядно представляется алгоритм языком блок-схем.
Например, алгоритм решения задачи вычисления суммы двух целых чисел на языке блок-схем будет записан, как показано на рис. 1.
Свойства алгоритма. При составлении и записи алгоритма необходимо обеспечить, чтобы он обладал рядом свойств.
Однозначность алгоритма, под которой понимается единственность толкования исполнителем правил выполнения действий и порядка их выполнения. Чтобы алгоритм обладал этим свойством, он должен быть записан командами из системы команд исполнителя.
Для нашего примера исполнитель алгоритма должен понимать такую запись действий, как сложить числа А и В.
Конечность алгоритма – обязательность завершения каждого из действий, составляющих алгоритм, и завершаемость выполнения алгоритма в целом. Записанный на рис.1 алгоритм обладает этим свойством, так как запись действий исполнителя завершается записью об окончании алгоритма.
Результативность алгоритма, предполагающая, что выполнение алгоритма должно завершиться получением определенных результатов. Алгоритм в нашем примере обладает этим свойством, так как для целых чисел А и В всегда будет вычислена сумма.
Массовость, т.е. возможность применения данного алгоритма для решения целого класса задачи. Так как алгоритм, показанный на рис.1, позволяет правильно подсчитать сумму не только чисел 2 и 3, но любой другой пары целых чисел, он обладает свойством массовости. Для того чтобы алгоритм обладал свойством массовости, следует составлять алгоритм, используя обозначения величин и избегая конкретных значений.
Правильность алгоритма, под которой понимается способность алгоритма давать правильные результаты решения поставленных задач. Представленный в примере алгоритм обладает свойством правильности, так как в нем использована правильная форма сложения целых чисел, и для любой пары целых чисел результат выполнения алгоритма будет равен их сумме.
Четвертый этап – программирование. Программой называется план действий, подлежащих выполнению некоторым исполнителем, в качестве которого может выступать компьютер. Составление программы обеспечивает возможность выполнения алгоритма и соответственно поставленной задачи исполнителем-компьютером. Во многих задачах при программировании на алгоритмическом языке часто пользуются заменой блока алгоритма на один или несколько операторов, введением новых блоков, заменой одних блоков другими.
Пятый этап – ввод программы и исходных данных в ЭВМ. Программа и исходные данные вводятся в ЭВМ с клавиатуры с помощью редактора текстов, и для постоянного хранения осуществляется их запись на гибкий или жесткий магнитный диск.
Шестой этап – тестирование и отладка программы. На этом этапе происходят исполнение алгоритма с помощью ЭВМ, поиск и исключение ошибок. При этом программисту приходится выполнять рутинную работу по проверке работы программы, поиску и исключению ошибок, и поэтому для сложных программ этот этап часто требует гораздо больше времени и сил, чем написание первоначального текста программы.
Отладка программы – сложный и нестандартный процесс. Исходный план отладки заключается в том, чтобы оттестировать программу на контрольных примерах.
Контрольные примеры стремятся выбрать так, чтобы при работе с ними программа прошла все основные пути блок-схемы алгоритма, поскольку на каждом из путей могут быть свои ошибки, а детализация плана зависит от того, как поведет себя программа на этих примерах: на одном она может зациклится (т.е. бесконечно повторять одно и то же действие); на другом – дать явно неверный или бессмысленный результат и т.д. Сложные программы отлаживают отдельными фрагментами.
Для повышения качества выполнения этого этапа используются специальные программы – отладчики, которые позволяют исполнить программу «по шагам» с наблюдением за изменением значений переменных, выражений и других объектов программы, с отслеживанием выполняемых операторов.
Седьмой этап – исполнение отлаженной программы и анализ результатов. На этом этапе программист запускает программу и задает исходные данные, требуемые по условию задачи.
Полученные в результате решения выходные данные анализируются постановщиком задачи, и на основании этого анализа вырабатываются соответствующие решения, рекомендации, выводы. Например, если при решении задачи на компьютере результат сложения двух чисел 2 и 3 будет 4, то следует сделать вывод о том, что надо изменить алгоритм и программу.
Возможно, что по итогам анализа результатов потребуются пересмотр самого подхода к решению задачи и возврат к первому этапу для повторного выполнения всех этапов с учетом приобретенного опыта. Таким образом, в процессе создания программы некоторые этапы будут повторяться до тех пор, пока мы получим алгоритм и программу, удовлетворяющие показанным выше свойствам.
- Информатика – предмет и задачи курса
- Появление и развитие информатики
- Информатизация общества
- Информационная культура
- Информация
- Информация
- Свойства информации
- Адекватность информации
- Измерение информации
- Классификация способов измерения информации
- Синтаксическая мера информации
- Семантическая мера информации
- Прагматическая мера информации
- Системы счисления
- Перевод целых чисел в двоичную систему счисления
- Перевод целых чисел из двоичной в восьмеричную и шестнадцатеричную системы счисления
- Сложение и вычитание чисел в различных системах счисления
- Представление данных в памяти компьютера
- Кодирование текстов
- Кодирование изображений
- Кодирование звука
- Управление компьютером
- Программное управление компьютером
- Архитектура компьютера и принципы фон Неймана
- Основные блоки ibm-совместимого компьютера
- История развития вычислительной техники
- Тенденции развития современных компьютеров
- Программы для компьютеров.
- Операционная система.
- Развитие операционных систем.
- Операционные оболочки
- Операционная система windows.
- Концепция ос windows.
- Многопоточность
- Дескриптор
- Прерывания
- Объектно-ориентированная платформа windows
- Объект – файл.
- Объект папка.
- Иерархическая структура подчиненности папок
- Объекты пользовательского уровня – приложение и документ
- Обмен данными.
- Способы обмена данными.
- Пользовательский интерфейс Windows
- Обработка текстовой информации.
- Некоторые возможности текстового процессора Word
- Запуск и завершение работы с Word
- Пользовательский интерфейс Word
- Справочная система Word
- Структура документа
- Страница
- Принципы обработки текстов
- Принцип форматирования
- Стили форматирования
- Использование шаблонов
- Режим структуры документа.
- Сервисные функции Word
- Поиск и замена текста
- Оформление таблиц
- Обрамление
- Вставка объектов
- Технология внедрения и связывания объектов ole
- Внедрение объекта:
- Связывание объекта.
- Вставка графики
- Добавление объектов при помощи панели инструментов “Рисование”
- Автофигуры
- Вставка объектов WordArt
- Вставка специальных символов
- Вставка математических формул
- Построение формулы.
- Изменение формулы.
- Стиль и размер символов в формуле.
- Компьютерные сети
- Передача данных по сети
- Аппаратные средства передачи данных
- Архитектура компьютерных сетей. Понятие “открытая система”
- Модель osi
- Глобальная компьютерная сеть Интернет
- История появления сети Интернет
- Адресация компьютеров в Интернет
- Доменная система имен
- Служба World Wide Web (www)
- Электронная почта
- Табличный процессор Microsoft Excel
- История развития табличных процессоров
- Возможности табличного процессора Excel
- Структура документа Excel
- Типы данных в Excel
- Запуск программы Excel
- Интерфейс пользователя
- Ввод и редактирование данных
- Выделение ячеек
- Копирование и перемещение ячеек
- Форматирование ячеек
- Вычисления в таблице Excel
- Построение диаграмм
- Обобщенная технология работы в табличном процессоре
- Примеры использования функции “если” в Excel
- Основные понятия информационных систем
- Понятие «информационная система»
- Банки данных
- Базы данных
- История развития баз данных
- Структурные элементы базы данных
- Виды моделей данных
- Реляционный подход к построению инфологической модели
- Понятие «информационный объект»
- Нормализация отношений
- Понятие «нормализация отношений»
- Первая нормальная форма
- Вторая нормальная форма
- Третья нормальная форма
- Построение инфологической модели
- Архитектура субд
- Проектирование баз данных
- Система управления базами данных
- Субд Microsoft Access
- Особенности пользовательского интерфейса ms access
- Основные объекты ms access
- Обслуживание магнитных дисков
- Накопители на гибких магнитных дисках
- Структура магнитного диска (на примере дискеты)
- Форматирование дискет
- Правила обращения с дискетой
- Программы для обслуживания магнитных дисков
- Проверка диска
- Дефрагментация файловой системы
- Компьютерные вирусы
- Методы борьбы с компьютерными вирусами
- История развития антивирусных программ
- Современные программы для защиты от вирусов
- Основные этапы решения задач на компьютере
- Языки программирования
- Язык программирования Паскаль
- Алфавит и лексическая структура языка паскаль
- Структура паскаль - программы.
- Типы данных в языке программирования паскаль
- Перечень типовых данных в Турбо Паскале.
- Целочисленные типы данных
- Вещественные типы данных
- Операторы языка программирования паскаль
- Простые операторы
- Оператор присваивания
- Оператор безусловного перехода
- Оператор вызова процедуры
- Структурные операторы
- Составной оператор.
- Условные операторы
- Примеры программ
- Операторы цикла в языке программирования Паскаль
- Оператор цикла с параметром
- Оператор цикла с предусловием
- Оператор цикла с постусловием
- Примеры программ
- Массивы в языке программирования паскаль
- Понятие массива
- Одномерные массивы
- Двумерные массивы
- Процедуры в языке программирования паскаль
- Описание процедуры и обращение к ней
- Параметры - значения и параметры - переменные
- Процедуры функции в языке программирования паскаль
- Описание функции и обращение к ней
- Строки в языке программирования паскаль
- Литерный тип (char) в языке программирования Паскаль
- Строковый тип (string) в языке программирования Паскаль
- Строковые процедуры и функции в Турбо-Паскале
- Примеры программ
- Рекомендуемая литература