СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Основные этапы решения задач с помощью программирования.

Категория: Информатика

Нажмите, чтобы узнать подробности

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

Прежде всего, необходимо чётко сформулировать условия задачи и определить: - что дано;

- что требуется, что можно считать результатом;

- достаточно ли исходных данных или условия задачи требуют уточнения;

- каким условиям должны удовлетворять исходные данные и результаты.

Просмотр содержимого документа
«Основные этапы решения задач с помощью программирования.»

Основные этапы решения задач с помощью программирования.


ПОНЯТЬ



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

Прежде всего, необходимо чётко сформулировать условия задачи и определить: - что дано;

- что требуется, что можно считать результатом;

- достаточно ли исходных данных или условия задачи требуют уточнения;

- каким условиям должны удовлетворять исходные данные и результаты.

Пример

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

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


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

Пример

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


Когда метод решения выбран, составляется модель решения задачи. Чаще всего


Пример

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


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


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

Пример

В языке Pascal не предусмотрена операция возведения в степень. При разработке алгоритма это следует учитывать и использовать особые приёмы - алгоритмические или математические.

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

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

- текстовый редактор — для набора исходного текста программы;

- транслятор — для перевода текста программы в машинный код;

- библиотеки стандартных подпрограмм;

- справочную систему;

- средства работы с окнами и многое другое.

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

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

Трансляторы делятся на два типа: интерпретаторы и компиляторы.

Интерпретатор при выполнении программы переводит в машинный код очередной оператор, проверяет правильность полученной команды и передаёт её процессору на выполнение. Затем переходит к следующему оператору.

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

Примерами интерпретаторов являются GW Basic, Лого, школьный алгоритмический язык, многие языки программирования баз данных. Компиляторами являются Turbo Pascal, С++, Delphi.

Если транслятор обнаружил ошибку, то об этом появляется сообщение на экране. Место ошибки обычно отмечается экранным курсором.

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

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


ЗНАТЬ


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

- встроенный тестовый редактор;

- транслятор языка программирования;

- справочную систему;

- средства работы с файлами и окнами.

Транслятор языка программирования – программа, предназначенная для отладки программы и перевода её в машинные коды.


Основные этапы решения задач


Название этапа

Содержание этапа

1

Постановка задачи


Формализация условий задачи

  • Что дано?



  • Что требуется?


  • Что будет считаться результатом (решением задачи)?

  • Каким условиям должны удовлетворять исходные данные?

  • Каким условиям должен удовлетворять результат?


2

Выбор метода решения

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

3

Построение математической модели



Установление связи между исходными данными и результатом (формулы, соотношения, неравенства и т.п.)

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

4

Составление сценария работы с ЭВМ

Определение:

  • порядка ввода данных,

  • формы представления промежуточных результатов,

  • формы вывода результата,

  • реакции программы на вводимые команды и данные.

5

Разработка (конструирование) алгоритма

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

  • имеющиеся ресурсы памяти,

  • возможности компьютера,

  • какие операции доступны для исполнения.

6

Перевод алгоритма в программу

Программа - алгоритм, закодированный по правилам выбранного языка программирования.

Один и тот же алгоритм на разных языках программирования будет записан по-разному.

7

Ввод программы в память компьютера

Работа во встроенном текстовом редакторе среды программирования

8

Отладка программы



Отладка - устранение синтаксических и семантических (смысловых) ошибок. Такого рода ошибки обнаруживаются на этапе транслирования программы

9

Тестирование программы

Тестирование - устранение логических ошибок. Неоднократное выполнение программы с такими исходными данными, при которых результаты работы легко проверить.

10

Получение и анализ результатов

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



УМЕТЬ