Постановка задач это информатика кратко

Обновлено: 05.07.2024

Сайт учителя информатики. Технологические карты уроков, Подготовка к ОГЭ и ЕГЭ, полезный материал и многое другое.

Информатика. 9 класса. Босова Л.Л. Оглавление

Ключевые слова:

  • постановка задачи
  • формализация
  • алгоритмизация
  • программирование
  • отладка и тестирование

Этапы решения задачи на компьютере

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

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

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

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


Для этого требуется:

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

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

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

На пятом этапе осуществляется отладка и тестирование программы. Этап отладки и тестирования также называют компьютерным экспериментом.

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

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

Задача о пути торможения автомобиля

Рассмотрим последовательность прохождения этапов решения задачи на компьютере (см. рис. 2.1) на примере простой задачи.

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

Первый этап.

  • ?0x — начальная скорость;
  • ?x — конечная скорость (равна нулю, так как автомобиль остановился);
  • ах — ускорение (равно -5 м/с).

Требуется найти: sx — расстояние, которое автомобиль пройдёт до полной остановки.

Второй этап. В данной ситуации мы имеем дело с прямолинейным равноускоренным движением тела. Формула для перемещения при этом имеет вид:


Упростим эту формулу с учётом того, что конечная скорость равна нулю:


При аx = -5 м/с получим:


Третий этап. Представим алгоритм решения задачи в виде блок-схемы:


Четвёртый этап. Запишем данный алгоритм на языке программирования Паскаль:

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

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

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

САМОЕ ГЛАВНОЕ

Этапы решения задачи с использованием компьютера:1) постановка задачи;
2) формализация;
3) алгоритмизация;
4) программирование;
5) компьютерный эксперимент.Для решения задач на компьютере необходимо владеть языком программирования, обладать знаниями в области информационного моделирования и алгоритмизации.

Вопросы и задания к § 2.1. Решение задач на компьютере

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


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


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

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

Получите невероятные возможности




Конспект урока "Решение задач на компьютере. Этапы решения задачи на компьютере"

Решение любой задачи с помощью компьютера можно разделить на пять основных этапов:

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

2. Формализация задачи.

3. Создание алгоритма.

5. Тестирование и отладка.

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

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

При создании алгоритма должны быть соблюдены два условия:

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

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

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



Пример блок-схемы

На этапе программирования алгоритм записывается с помощью какого-нибудь языка программирования. То есть результатом работы на данном этапе должна быть программа. Мы будем писать программы на языке Pascal.


Пример программы на языке Pascal

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

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

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

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

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

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

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

Характеристики Хорошей Постановки Задачи:

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

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

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

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

Стандартная форма постановки задачи.

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

наименование задачи (схематическое определение);

общее описание (краткое изложение задачи);

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




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

Лекция 8

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

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

Характеристики Хорошей Постановки Задачи:

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

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

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

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

Стандартная форма постановки задачи.

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

наименование задачи (схематическое определение);

общее описание (краткое изложение задачи);

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

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

Следующий этап — формализация задачи. Чаще всего процесс формализации означает перевод задачи на язык математики: формул, уравнений, неравенств, систем уравнений, систем неравенств и т. п.

Подробнее о формализации будет рассказано в разделе, посвященном информационному моделированию (в 11 классе). Некоторые представления об этом вы уже имеете из курса информатики для 7-9 классов.

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

Анализ математической задачи

Пусть в результате формализации некоторой задачи было получено квадратное уравнение: ах 2 + bх + с = 0, где коэффициенты а, Ь, с являются исходными данными. Требуется решить это уравнение, т. е. найти его корни. Проведем анализ этой математической задачи.

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


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


Рис. 3.15. Блок-схема алгоритма решения квадратного уравнения

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




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

Программирование

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




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

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

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

Предварительно должен быть составлен план тестирования. Для ветвящегося алгоритма должны быть протестированы все его ветви. В нашем примере пять ветвей, пять вариантов ответа. Значит, в плане тестирования должно быть не менее пяти вариантов теста.

В таблице 3.5 представлен план тестирования программы Roots и результаты проведенного тестирования.

Таблица 3.5. План и результаты тестирования


Теперь, анализируя результаты тестирования, делаем вывод: правильность алгоритма и работоспособность программы доказаны.

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


Результаты всех тестов, кроме 4-го, совпали с ожидаемыми, а в 4-м тесте получилось: х1=4, х2=-6. После этого программист обратит внимание на выражения для вычисления корней и исправит ошибки: либо заменит знак умножения на знак деления, либо заключит в скобки выражение 2*а.

Читайте также: