Технологическая цепочка решения задач на компьютере

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

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

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

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

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

- постановка задачи;

- математическая формализация;

- построение алгоритма;

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

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

- проведение расчетов и анализ полученных результатов.

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

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

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

- сбор информации о задаче;

- формулировку условия задачи;

- определение конечных целей решения задачи;

- определение формы выдачи результатов;

- описание данных (их типов, диапазонов величин, структуры и т. п.).

Моделирование.

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

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

Итак, создавая математическую модель для решения задачи, нужно:

- выделить предположения, на которых будет основываться математическая модель;

- определить, что считать исходными данными и результатами;

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

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

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

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

- выбор формы записи алгоритма (блок-схемы, псевдокод и др.);

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

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

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

- выбор языка программирования;

- уточнение способов организации данных;

- запись алгоритма на выбранном языке программирования.

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

Отладка и тестирование программы.

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

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

Таким образом, тестирование и отладка включают в себя:

- синтаксическую отладку;

- отладку семантики и логической структуры программы;

- тестовые расчеты и анализ результатов тестирования;

- совершенствование программы.

Анализ результатов. Уточнение модели.

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

Пример моделирования движения тела, брошенного вертикально вверх.

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

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

- тело мало по сравнению с Землей, поэтому его можно считать материальной точкой;

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

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

Из курса физики известно, что описанное выше движение является равноускоренным. При заданных начальной скорости (V 0), начальной высоте (Н 0) и ускорении свободного падения (g = 9,8 м/с2) зависимость скорости (V) и высоты (Н) от времени (t) можно описать следующими математическими формулами:

;

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

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

- формирование компьютерной модели с использованием одного из приложений (электронных таблиц, СУБД и т. д.).

Для реализации первого пути надо построить алгоритм для определения координаты тела в определенный момент времени и записать его на одном из языков программирования.

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

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

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

Далее выполняется анализ полученных результатов и при необходимости корректировка исследуемой модели. Например, в нашей модели необходимо учесть, что не имеет физического смысла вычисление координаты тела после его падения на поверхность Земли.

Подведение итогов.

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

- доработка программы для решения конкретных задач;

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

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

- Системный программист (system/software programmer, toolsmith) - занимается разработкой, эксплуатацией и сопровождением системного программного обеспечения, поддерживающего работоспособность компьютера и создающего среду для выполнения программ.

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

- Программист-аналитик (programmer-analyst) — программист, анализирующий и проектирующий комплекс взаимосвязанных программ.

- Постановщик задач — разработчик формальных постановок задач, требующих реализации на ЭВМ.

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

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

Основным потребителем программ является конечный пользователь (end user), который, как правило, не является специалистом в области программирования.

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

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

- утилитарные программы — предназначены для удовлетворения нужд их разработчиков, программы «для себя»;

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

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

Программный продукт имеет несколько качественных характеристик:

- алгоритмическая сложность;

- полнота функций обработки;

- объём файлов программ;

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

- объём дисковой памяти;

- размер оперативной памяти.

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

- насколько хорошо можно использовать программный продукт (просто, надёжно, эффективно);

- насколько легко эксплуатировать программный продукт;

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

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

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

Жизненный цикл программного продукта

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

I этап (постановка задачи). Рассчитать расстояние полёта ракеты Гагарина (1 оборот вокруг Земли), если экваториальный радиус Земли R 6378 км, высота полёта ракеты над Землёй H 300 км.

II этап (математическая модель)

III этап (составление алгоритма)

IV этап (программирование)

V этап (отладка и тестирование программы)

VI этап (Итоги и анализ результатов)

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

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

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

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

- результативность – алгоритм должен достигать поставленную цель и не может быть прерван из-за непредвиденных ситуаций;

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

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

В алгоритмической структуре “ ветвление ” в зависимости от истинности или ложности условия выполняется одна или другая серия команд.

В алгоритмической структуре “цикл” серия команд (тело цикла) выполняется многократно.

Для записи алгоритмов можно использовать разные способы:

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

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

- табличный – все шаги алгоритма записываются в таблицу;

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

- программа – алгоритм, записанный на языке программирования.

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

Пример 1. Алгоритм перехода улицы. При словесном способе содержание алгоритма может быть следующим:

а) если сигнал светофора зеленый, перейти к выполнению шага б), иначе (сигнал светофора красный или желтый) еще раз выполнить а);

б) посмотреть (на всякий случай!) налево, и если машин нет, дойти до середины улицы; посмотреть направо, и если дорога свободна, перейти оставшуюся часть;

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

Графический (наглядный) способ представления алгоритма – это БЛОК-СХЕМА. Блоки обозначают действия исполнителя, а соединяющие их стрелки указывают на последовательность выполнения действий.

Основные элементы блок-схемы:

- Блок Начала (Конца) алгоритма - Блок описания переменных величин - Блок Ввода (Вывода) значений переменных величин - Блок Присваивания (вычисления) значения переменной величины - Блок Ветвления алгоритма - Блок Циклического повторения (7 - "тело цикла" - повторяющиеся команды)  

Пример 2. Открывание закрытой двери. Простая последовательность команд - алгоритм линейной структуры

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

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


Дать ответы на вопросы:

  1. Технологическая цепочка решения задач на компьютере:
  2. Постановка задачи.
  3. Моделирование. Что такое модель.
  4. Построение алгоритма.
  5. Программирование.
  6. Отладка и тестирование программы.
  7. Анализ результатов. Уточнение модели.
  8. Что такое модель? Приведите пример моделей.
  9. Выберите объекты, которые могут быть моделью Солнца:

- Колесо;

- Точка;

- Обогреватель;

- Включенная лампочка;

- Атлас мира;

- Рисунок: желтый круг на голубом фоне.

10. Выберите из списка информационные модели объекта «кот»:

- Фарфоровая статуэтка кота;

- Песня «Жил да был серый кот за углом …»;

- Игрушечный кот;

- Описание поведения кота при падении.

11. Что не является алгоритмом?

- расписание уроков;

- посадка дерева;

- измерение температуры;

- кипячение воды.

12. Кто или что является исполнителем алгоритма открывания двери?

- человек;

- ключ;

- дверь;

- замочная скважина.

13. Какой из алгоритмов является линейным?

сбор яблок;

рисование лучей солнца;

пришивание нескольких пуговиц;

включение компьютера.

14. Какого элемента нет в блок-схеме линейного алгоритма?

Начало;

Конец;

Команда;

Условие.

Задание 1. Найти соответствие между понятиями в 1 колонке и определениями во 2 колонке и поставить стрелки. (Карточка оранжевого цвета)

Задание 2. Рассмотреть схемы структур алгоритмов и выявив соответствие между схемой и её названием, поставить стрелки.

Рассмотреть рисунки примеров алгоритмов, выявив соответствие между типом алгоритма и рисунком, поставить стрелки. Поставить предполагаемые порядковые номера выполнения этапов.

Приготовление напитка на выбор. Перечисление случаев - алгоритм структуры с выбором

Исходные данные:

1) чайник с чаем;

2) кофейник с кофе;

3) молочник с молоком;

4) чашка;

5) ложка;

6) сахарница с сахаром.

Забивание гвоздя в деревянную доску. Цикл.

Из предложенных команд запишите в тетради рецепт заваривания чая:

- размешать сахар ложечкой;

- добавить кипятку;

- налить в чашку заварку;

- вскипятить воду;

- положить сахар.

Как вы думаете, что будет если убрать из рецепта вторую команду? А четвертую?

Исправьте ошибки в алгоритме:

1) приготовления бутерброда Кота Матроскина:

- положить один ломтик колбасы на стол;

- отрезать ломтик хлеба;

- накрыть хлеб вторым ломтиком колбасы;

- отрезать два ломтика колбасы;

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

- намазать хлеб маслом;

2) выпекания пирога:

Разбить 3 яйца, Вылить тесто в форму. 1 стакан сахара, добавить 2-3 стакана муки. Замесить тесто. Выпекать в духовке 20 минут, 2 стакана сметаны,

Смысл всех команд, приведенных в алгоритме, должен быть строго определен и не допускать двусмысленности(презентация). Например, в алгоритме указано, что надо взять 2-3 стакана муки. Какие стаканы, какой муки?

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

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

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

- Измерить температуру.

- Если температура выше 370, то:

- Вызвать врача.

- Пойти в школу.

Несмотря на недомогание, школьник исправил этот алгоритм, добавив всего две строки. Какие строки добавил школьник?

Запишите в виде алгоритмов правила определения знака:

А) произведения двух действительных чисел;

Б) суммы двух действительных чисел.

6. В записи алгоритма вычисления значения выражения (х2- 5х+5) / (х6- 4х2+3)

Злоумышленник одно действие поставил не на свое место. Вот как стал выглядеть алгоритм:

- ввести х

- если х6- 4х2 + 3=0, то:

- сообщить “При таком х значение выражения не определено”.

- иначе:

- присвоить у значение (х2- 5х +5) /(х6- 4х2+3).

- конец ветвления.

- сообщить у.

Верните действие на свое место.

1.Которые из документов являются алгоритмами?

- Правило правописания приставок, оканчивающихся на з,с(да)

- Программа телепередач

- Кулинарный рецепт приготовления блюда

- Инструкция по сборке проданного в разобранном виде шкафа

Которые из документов являются алгоритмами?

- Каталог книг в библиотеке

- Порядок набора международного телефонного номера

- Рецепт приготовления клея

- Настенный календарь на текущий год

Что такое алгоритм? Приведите примеры алгоритмов.

Какие свойства алгоритмов вы знаете?

Какие виды алгоритмов вы знаете?

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

Что такое исполнитель алгоритмов?

Что такое программа?


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  




Подборка статей по вашей теме: