Материал: Мансуров. Основы программирования в среде Lazarus. 2010

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

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

____________________________________________________________________

1.1.3 Вместо лирического отступления

Какие выводы можно сделать из анализа этой задачи с точки зрения разра-

ботки алгоритма или, как еще говорят, алгоритмизации данной задачи?

Во-первых, крайне редко и для очень простых задач удается сразу и без-

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

дели, начинать с самой общей и несколько "расплывчатой" формулировки ал-

горитма. В любом случае стоит даже этот алгоритм записать в виде блок схемы

(рис. 1.2). Потому что одно из несомненных достоинств записи алгоритма в ви-

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

ритма.

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

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

метод пошаговой детализации.

Во-вторых, многие молодые, особенно начинающие, программисты часто вообще игнорируют этап составления алгоритма, и едва успев прочесть усло-

вие задачи, сразу садятся за компьютер и начинают писать программу. Встре-

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

то – не всегда. Но таких – единицы! Большинству "смертных" приходится по-

шагово разрабатывать алгоритмы и записывать их в том или ином виде.

В-третьих, автор многократно наблюдал такую картину – студент получает задание, записывает условие задачи себе в тетрадь и … застывает как сфинкс!

Проходит минут пять, десять, двадцать, … много проходит времени, а он даже не шелохнется, не в силах предложить что-нибудь путное! Потом, когда спра-

шиваешь у него – о чем ты думал в это время, ответы неопределенные, чаще всего типа "не знал с чего начать".

Помимо стандартного ответа – "если не знаешь с чего начать, начни с на-

чала", что еще можно посоветовать:

1. Еще более стандартно – больше читайте книг, скрупулезно разбирайте

26

Глава 1 Основы программирования

____________________________________________________________________

примеры, приведенные в них. "Горе тому, кто читает только одну книгу" (Джордж Герберт).

2. Одного чтения и "понимания" примеров в книгах недостаточно. Надо самостоятельно тренироваться в составлении алгоритмов для самых разных за-

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

тать дальше. Попробуйте составить алгоритм самостоятельно! Это может от-

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

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

3. Не стесняйтесь спрашивать, перенимайте опыт у других. В сети огром-

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

смотрите, какие вопросы там задаются и, опять, постарайтесь сначала сами от-

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

рых имеются форумы по программированию, в частности форум, посвященный программированию в среде Lazarus.

4. У вас должна быть создана (со временем, конечно!) своя коллекция ал-

горитмов, собственных наработок, типовых приемов и даже готовых кусков ко-

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

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

чу подчеркнуть, что программирование это творчество. А в творчестве нет, и не может быть никаких готовых рецептов. Здесь, как говорится, дело в "искре божьей"! Уместно вспомнить и высказывание Остапа Бендера – "блондин игра-

ет в шахматы хорошо, брюнет играет плохо и никакие лекции не изменят этого соотношения сил"!

27

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

____________________________________________________________________

1.2. Этапы подготовки задачи для решения на компьютере

Процесс решения задачи на компьютере состоит из ряда этапов, включаю-

щих как подготовку задачи к решению, так и собственно решение.

Эти этапы включают:

1.постановку задачи;

2.построение модели изучаемого процесса или явления;

3.выбор метода решения;

4.разработка алгоритма решения задачи;

5.составление программы (кодирование);

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

7.собственно вычисления;

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

Рассмотрим эти этапы.

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

Под постановкой задачи подразумевается определение цели или целей, ко-

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

шению задачи.

Построение соответствующей модели изучаемого процесса или явле-

ния.

На этом этапе производится выбор из всего множества зависимостей и свя-

зей основных, определяющих тот или иной реальный процесс, явление и фор-

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

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

28

Глава 1 Основы программирования

____________________________________________________________________

номические процессы.

Для адекватного отражения сути изучаемого процесса или явления прихо-

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

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

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

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

гральные уравнения и т.д.

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

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

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

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

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

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

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

вом сервисных функций и процедур, причем руководство таксопарка готово за-

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

Или за неимением достаточных средств, руководство таксопарка согласно установить только один компьютер в планово-экономическом отделе. Ясно, что

29

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

____________________________________________________________________

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

ками для реализации этих баз данных.

Поскольку компьютеры оперируют с числами, то в качестве методов ре-

шения математических моделей обычно применяются численные методы. Пре-

образование математических выражений, характерное для классической мате-

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

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

Разработка алгоритма решения задачи.

Характер работы на этом этапе существенно зависит от предыдущих эта-

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

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

ездах и мухе).

Для средних и крупных проектов, для реализации которых могут потребо-

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

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

Важное значение имеет выбор средств проектирования и разработки ПО. В

настоящее время широкое распространение получили так называемые RAD-

системы (Rapid Application Development – быстрая разработка приложений). В

качестве примера приведу такие системы так Microsoft Visual Studio 2008, Code Gear RAD Studio 2009, Embarcadero RAD Studio 2010 в которых имеются разви-

тые средства для разработки ПО в коллективе.

30

Смотрите также:

11 Горм +
113
14
1433
1511
1632
199
204
2N4264RE
3773