![]() |
|
сделать стартовой | добавить в избранное |
![]() |
Общая схема решения задачи на персональном компьютере |
С.А. Григорьев В общем виде процесс решения любой программистской задачи на ПК можно представить в виде последовательности следующих действий: 1) разработка алгоритма решения задачи; 2) создание текста программы; 3) отладка программы; 4) тестирование программы. Все эти этапы (иногда в неявной форме) обязательно выполняются любым программистом при решении любой задачи. Рассмотрим их подробнее. Алгоритмом называется некоторая заранее определенная последовательность действий, позволяющая на основании имеющейся информации получить искомый результат. Обязательной составной частью алгоритма является определение состава и формы представления входной и выходной информации. При решении некоторых наиболее тривиальных задач может показаться, что этап разработки алгоритма отсутствует, однако это означает лишь, что вы пользуетесь уже известным вам алгоритмом. На этапе создания текста программы вы записываете алгоритм на языке программирования. Один и тот же алгоритм можно запрограммировать множеством различных способов, но вы должны стремиться написать оптимальную программу. Хорошо написанная программа, как правило, содержит меньше ошибок и гораздо быстрее отлаживается. Этап отладки включает в себя компиляцию программы и проверку ее на простейших тестах. Компиляция (или трансляция) программы - это процесс перевода ее с языка программирования на машинный язык, его осуществляет специальная программа - компилятор (транслятор). При этом вы постепенно исправляете допущенные при написании программы синтаксические ошибки, следите за сообщениями компилятора - он указывает, какая обнаружена ошибка и где именно. После того, как вы исправите все синтаксические ошибки и компилятор сообщит об успешном завершении компиляции, будет создан файл с именем, таким же, как у вашего исходного файла, и с расширением exe (от EXEcu ive - выполняемый); этот файл содержит программу (в отличие от исходного файла, содержащего лишь текст программы), которая может быть выполнена. Необходимо отчетливо понимать, что задачей компилятора ни в коем случае не является поиск ошибок в ваших программах, он сообщает о них лишь в том случае, когда не может правильно интерпретировать ваш текст. Успешно осуществив компиляцию, запустите свою программу. Не следует думать, что эта программа не содержит ошибок! Все логические ошибки, допущенные вами, остались в программе, и на этапе отладки вы должны найти их и исправить. (Не верьте тем программистам, которые утверждают, что они могут сразу написать правильную программу, - таких людей не бывает). Не существует никаких общих рецептов для отладки - класс программиста, главным образом, как раз и проявляется в том, как он отлаживает программы. Но один полезный совет можно дать: аккуратно и подробно выводите при отладке все вычисляемые вашей программой величины. После того, как вы решите, что ваша программа работает правильно (обычно это не соответствует действительности), начинайте тестирование - выполняйте программу с различными наборами входных данных, причем они обязательно должны содержать все особые случаи. Когда вы убедитесь, что ваша программа иногда работает правильно, а иногда - нет, возвращайтесь к алгоритму, пересматривайте его и заново повторяйте все этапы.
Успешно завершив тестирование, вы можете надеяться, что ваша программа верна. Следует четко разграничивать два понятия - верная программа и хорошая программа. Всякая хорошая программа верна, но далеко не всякая верная программа хороша - она может использовать неэффективный (или неэффективно запрограммированный) алгоритм, занимать много лишней памяти, быть неряшливо оформленной и т.д. Старайтесь писать не только верные, но и хорошие программы! Введение в язык Паскаль. Общая структура программы. Запишем для начала программу на языке Паскаль : { эта программа просто выводит сообщение } BEGI WRI EL ('Привет !!!'); E D. Это правильная программа, и если вам удастся ее откомпилировать и запустить, она выведет на экран сообщение: "Привет !!!". Эту программу мы могли бы записать и так: CO S Message='Привет !!!'; BEGI WRI EL (Message); E D. и так : VAR Message:S RI G; BEGI Message:='Привет !!!'; WRI EL (Message); E D. и еще множеством различных способов, но в каждой программе обязательно будет слово BEGI , и в конце программы всегда будет стоять E D. - признак конца программы. Перед BEGI может что-то быть (как правило, это так), или может не быть ничего. То, что находится перед BEGI , называется разделом описаний, то, что находится между BEGI и E D. , называется разделом операторов. Слова BEGI , E D, а также CO S , VAR, S RI G, WRI EL являются ключевыми словами языка Паскаль, а слово Message - это идентификатор пользователя, т.е. имя, данное нами некоторому объекту - константе, переменной, или чему-то еще. Все ключевые слова и идентификаторы пользователя есть последовательности букв и цифр, начинающиеся с буквы. Буквами языка являются все латинские буквы и символ подчеркивания. Компилятор не различает большие и малые латинские буквы, поэтому вы можете записывать идентификаторы как захотите: Begi , BEGI , begi и т.д. Вы можете выбирать любые идентификаторы пользователя, лишь бы они не совпадали с ключевыми словами; так, в нашем примере вместо Message вы можете написать Q или 123, или Y56 er и т.д. Однако все эти идентификаторы не несут в себе никакого смысла, затрудняют чтение и отладку программы и делают ее неряшливой; идентификатор Message имеет то достоинство, что из него уже ясно его назначение - содержать некоторое сообщение. Старайтесь всегда использовать в программе осмысленные идентификаторы! Язык Паскаль допускает идентификаторы длиной до 63 символов (точнее, компилятор различает первые 63 символа имени), поэтому не экономьте на именах переменных и функций, пусть лучше имена будут длинными, но понятными. Кроме ключевых слов и идентификаторов всякая программа содержит также пробелы и (в идеале) комментарии. Комментарии записываются в фигурных скобках и могут стоять в любом месте программы, пробелы являются разделителями, там, где допустим один пробел, можно поставить любое количество пробелов. Комментарии и пробелы следует использовать для аккуратного оформления текста программы. Хорошая программа обязательно должна быть документирована, т.е. содержать комментарии, поясняющие, как она работает.
Большому количеству взрослых (600 человек) предлагалось решить задачу, названную "Четыре точки". Ее формулировка: "Даны четыре точки; требуется провести через эти четыре точки три прямые линии, не отрывая карандаша от бумаги, так, чтобы карандаш возвратился на исходную точку". Испытуемые подбирались из числа тех, кто не знал принципа решения задачи. Время для решения ограничивалось 10 минутами. Все без исключения испытуемые после ряда безуспешных попыток прекращали решение и признавали задачу нерешаемой. Для достижения успеха надо было "вырваться" за пределы участка плоскости, ограниченного точками, однако это никому не приходило в голову - все оставались внутри данного участка. Затем испытуемым предлагали "подсказку". Они обучались правилам игры в хальму. Сообразно правилам этой игры они должны были перескочить одним ходом белой фишки через три черных так, чтобы белая фишка возвратилась на прежнее место. Выполняя это действие, испытуемые прокладывали рукой маршрут, совпадающий со схемой решения задачи, т. е. соответствовавший графическому выражению решения этой задачи (испытуемым давали и другие подсказки)
2. Решение прикладных задач численными методами
3. Логические задачи и методы их решения
4. Решение задач симплекс-методом
5. Решение нелинейного уравнения методом касательных
9. Новые представления о задачах и методах гипербарической медицины
10. Содержание, задачи и методы финансового планирования на предприятии
11. Предмет, задачи и методы теории перевода
12. Аналіз чутливості використання методу Якобі для рішення задач лінійного програмування
13. Рішення транспортної задачі за методом ПЗК і в Excel
14. Схема процесса автоматизированного проектирования РЭС. Структура и классификация проектных задач
15. Задачи и методы психологического обследования. Миннесотский Многофакторный Личностный Опросник
16. Предмет, задачи и методы патологии
17. Методы проведения экспертиз при разработке управленческих решений
18. Решение размерных цепей методом полной взаимозаменяемости
19. Принятие управленческого решения по применению метода Assessment Center для оценки персонала
20. Понятие метода и методики экономического анализа, задачи
21. Функциональная схема компьютера. Основные устройства компьютера и их функции
25. Решение задач - методы спуска
26. Построение решения задачи Гурса для телеграфного уравнения методом Римана
27. Решение задач линейной оптимизации симплекс – методом
28. Метод Алексея Юрьевича Виноградова для решения краевых задач
30. Решение задач линейной оптимизации симплекс – методом
31. Решения смешанной задачи для уравнения гиперболического типа методом сеток
32. Обучение общим методам решения задач
33. Решение задачи методами линейного, целочисленного, нелинейного и динамического программирования.
35. Решение задач линейного программирования симплекс методом
36. Решение задачи линейного программирования графическим методом
37. Симплекс метод решения задачи линейного программирования
41. Эвристические методы решения творческих задач
43. Графический метод и симплекс-метод решения задач линейного программирования
45. Решение задачи линейного программирования симплекс-методом
46. Решения задач линейного программирования геометрическим методом
47. Математические методы в решении экономических задач
48. Задачи по семейному праву /условие-вопрос-решение/
50. Формирование структуры электронного учебника и решение задач на ней
51. Решение математических задач в среде Excel
52. Решение оптимизационной задачи линейного программирования
53. Решение задачи линейного программирования
57. Решение обратной задачи вихретокового контроля
58. Маркетинг: решение исследовательских задач
60. Формулы для решения задач по экономике предприятия
61. Приложения определенного интеграла к решению некоторых задач механики и физики
62. Решение смешанной задачи для уравнения
63. Линейное программирование: постановка задач и графическое решение
64. Решение задач по прикладной математике
65. Алгоритмы декомпозиции и перебора L-классов для решения некоторых задач размещения
66. О некоторых трудностях, возникающих при решении геометрических задач
67. Применение подобия к решению задач
68. Обучение решению математических задач с помощью графов
69. Пример решения задачи по разделу «Переходные процессы»
74. От решения задач к механизмам трансляции деятельности
75. Решение управленческих задач
76. Алгоритм решения обратной задачи вихретокового контроля (ВТК)
79. Задачи по экономике с решениями
80. Задачи по экономике с решениями
81. Решение многокритериальной задачи линейного програмирования
82. Приемы решения научных задач в русловедении
83. Опыт применения сейсморазведки ОГТ для решения инженерно-геологических задач
84. Применение спектральной сейсморазведки для решения задач инженерной геологии
89. Использование языка программирования Visual Basic для решения математических задач
92. Решение задач по дисциплине "Страхование"
93. Решение задач по управленческому учету
95. Примеры задач и их решение по уголовному процессу
96. Примеры решения задач по уголовному процессу
97. Алгоритмы численного решения задач
98. Использование информатики для решения экономических задач
99. Основные принципы решения транспортной задачи
100. Практикум по решению линейных задач математического программирования