Лысаков. Основы программирования (1247269), страница 2
Текст из файла (страница 2)
Этап третий: составление блок-схемы решениярезультат должен быть получено после решения задачи.Описание блок-схемы может производиться с помощью различных2.Какие дополнительные данные необходимы для решения задачи.средств и обозначений. Основной принцип заключается в наглядности3.Составить блок-схему решения задачи и записать ее в видушагов исполнения и однозначности переходов при ветвлении.удобного описания.4.АнализвсехНа рисунке (рис.
1) приведена основная блок-схема, к которой чащевозможныхпроблемиусовершенствованиевсего приходят студенты при решении квадратного уравнения.алгоритма.Рассмотрим на примере, каким образом выполняются перечисленныеэтапы при решении задачи вычисления корней квадратного уравнения.1.2.1. Этап первый: постановка задачиДля определенности будем решать уравнение следующего вида:2ax + bx + c = 0Таким образом, входными данными для нашей задачи являются трикоэффициента: a, b и c.Решениезадачипредполагаетвычислениевозможныхкорнейуравнения. При этом, так как количество корней возможно от 0 до 2, тонеобходимо в качестве решения указать количество корней и собственноперечислить их.1.2.2. Этап второй: дополнительные данныеПри решении квадратного уравнения необходимо вычислить значениедискриминанта.
В нашей задаче, дискриминант является промежуточнымрезультатом, необходимым для решения задачи.Рис. 1. Блок-схема решения квадратного уравнения78www.phys.nsu.ru1.2.4. Этап четвертый: корректность и усовершенствования•метод отладочной печати,Данный этап предполагает анализ созданной блок-схемы решения•метод пошаговой отладки.задачи. При этом необходимо ответить на два вопроса:1.2.Будет ли схема корректно работать во всем диапазоне входных1.3.1. Метод отладочной печатипараметров?Одним из основных средств отладки является отладочная печать,Возможны ли оптимизации, которые позволят ускорить процесспозволяющая получить данные о ходе и состоянии процесса вычислений.выполнения задачи?Обычно разрабатываются специальные отладочные методы, вызываемые вкритических точках программы - на входе и выходе программныхПри анализе совершаемых действий, очевидно, что при значениимодулей, на входе и выходе циклов и так далее.
Искусство отладки в том икоэффициента a = 0, происходит деление на 0! В качестве решения даннойсостоит, чтобы получить нужную информацию о прячущихся ошибках,ситуации можно предложить два основных метода:проявляющихся, возможно, только в редких ситуациях.• ДобавитьпроверкукорректностивведенныхпользователемИногда пошаговая отладка невозможна. Например, программа можетзначений, и при вводе а=0, выдавать сообщение об ошибке:быть связана с внешним процессом, который не будет ждать, пока«Уравнение не является квадратным!».разработчик проверяет значения переменных.
Другой весьма вероятный• Допустить возможность решения линейных уравнений, по сути,вариант — программа скомпилирована без отладочной информациирасширив диапазон применения вашей реализации. Для этогос оптимизацией. В таких случаях единственным способом узнать, чтонеобходимопроисходит во время исполнения, остаётся вывод сообщений, по которымдобавитьтакуюпроверкудовычислениядискриминанта, и идти описанным путем лишь при коэффициенте аотличном от 0, иначе добавить еще одну ветвь исполнения.можно судить о состоянии программы.Суть метода заключается в том, что программист вставляет в кодпрограммы вывод определенных сообщений, по которым впоследствииЧто касается оптимизации, то основной ее смысл в удалении лишнийможно проанализировать какая именно ветвь программы исполняется,действий, а также в недопустимости совершения дублирующий действий.какиеНа приведенной выше схеме, дублированным действием являетсяпредполагаемым ходом выполнения и вычислениями.получаютсяпромежуточные результаты и сравнить этосизвлечение квадратного корня из дискриминанта.1.3.Отладка программной реализацииПосле создания программной реализации, нередки случаи когда еефункционирование отличается от запланированного.
Для выясненияпричин некорректного поведения существуют два основных методаотладки:91.3.2. Метод пошаговой отладкиМетод пошаговой отладки, заключается в том, что программистзаставляет компьютер выполнять программу по шагам, инструкцию заинструкцией, а сам следит за состоянием программы на каждом шаге. Припоиске ошибки очень удобно видеть, какая строка программы сейчас10www.phys.nsu.ruвыполняется, и выполнять программу строка за строкой в соответствии со•строками исходного кода.Step Into заставляет отладчик войти в функцию, вызов которойнаходится в очередной строке.
Когда интересующий вас фрагментКоманды управления отладкой собраны в меню Debug. Для удобствапройден, можно выйти из пошагового режима командой Debugразработчика на самые нужные команды назначены клавиши.(F5). Исполнение программы продолжится до следующей точкиПрограмма запускается в отладочном режиме командой Debug (приостанова или критической ошибки.стандартных настройках клавиша F5). При этом за работой программыследит отладчик, переводящий исполнение в пошаговый режим в двухслучаях: при возникновении ошибки, которая в обычном режиме привелабы к аварийному завершению программы, или по достижении точки1.4.Работа с проектами в Microsoft Visual C++В данном пособии в качестве среды разработке рассмотрена MSVS(Microsoft Visual Studio), как наиболее дружелюбная системы дляостанова.Точка останова (англ.
Breakpoint), может быть установлена в любойразработки программ на языках С и С++.строке программы, содержащей выполняемую инструкцию. Это может1.4.1. Общие сведениябыть начало цикла, вызов функции, выражение или даже фигурная скобка,Для того, чтобы писать программу, вам необходимы проект (project)закрывающаяблок.При стандартныхнастройкахточкаостановаустанавливается или снимается нажатием клавиши F9.и рабочее пространство (solution).Проект — это специальный файл, имя которого имеет расширениеПосле того как отладчик перевёл исполнение в пошаговый режим,можно заняться непосредственно отладкой.vcproj. В проекте содержится информация о том, из каких исходныхфайлов строится программа.
Всё, что перечислено в проекте, будетДля того чтобы увидеть значение переменной, существующейскомпоновано в один целевой модуль (обычно исполняемый файл —в текущем контексте, достаточно навести указатель мыши на её*.exe, но есть и другие варианты); если вам нужно получить дваидентификатор в исходном тексте. Этой же цели служит окно Watch:исполняемых файла, придётся сделать несколько проектов.впишите в левую колонку интересующие вас идентификаторы и ихзначения будут показаны всё время, пока идентификаторы имеют смысл.Две команды пошагового исполнения позволят вам проконтролироватьработу интересующего вас фрагмента кода:•изменённые после предыдущей компиляции.Компилятор обрабатывает только те файлы, которые перечисленыв файле проекта.
При этом совершенно всё равно, как называется папкапрограмму на следующей строке. Если текущая строка содержитв проекте — Source files или Include files: инструмент для обработки файлавызов функции, то данная команда выполнит этот вызов ввыбирается, исходя из расширения имени файла, а папки вы можетеобычном режиме, не показывая по шагам подробности внутреннейсоздавать для собственного удобства в любом количестве.Overочереднуюв файле проекта, и при сборке проекта компилирует заново только файлы,останавливаетStepвыполняетСреда разработки следит за изменениями файлов, перечисленныхработы вызываемой функции.строкуиРабочеепространство — этоспециальныйфайл,имеющийрасширение sln, который описывает зависимости между отдельными1112www.phys.nsu.ruпроектами, входящими в рабочее пространство: разрабатывая большуюВ зависимости от выбранного шаблона, среда добавляет во вновьпрограмму, состоящую из ряда модулей, удобно собрать несколькосоздаваемый проект те или иные файлы, выполняя за разработчика частьпроектов в одно пространство и получать последнюю версию всехрутинной работы по первоначальной настройке рабочего окружения.модулей нажатием одной клавиши!Для большинства учебных заданий идеальным стартом является пустойVisual Studio устроена так, что проект обязательно должен содержатьсяпроект консольного приложения.
Для того чтобы создать такой проект,внутри рабочего пространства. Если у вас уже есть рабочее пространство,нужно выбрать подкатегорию General в категории проектов Visual C++. Вто открывать в Visual Studio нужно его, а не проект или файл с исходнымокне выбора шаблона выбрать пустой проект Empty project (рис. 3).текстом!Файл рабочего пространства создаётся автоматически, когда вы создаётновый проект.1.4.2. Создание проектаVisual Studio предоставляет большое количество шаблонов проектовдляразныхцелей.Полныйсписокшаблонов,сгруппированныхпо категориям, можно увидеть, выбрав в меню:File->New->Project... (рис.
2).Рис. 3. Выбор пустого проектаНовому проекту нужно дать имя. Правила для имён проектов такие же,как для имён файлов, но с русскими буквами или пробелами могутвозникнуть проблемы. Имя проекта вводится тут же в поле Name(обведено на рисунке). После этого можно нажать OK, и Visual Studioсоздаст файлы рабочего пространства и проекта. Рабочее пространствополучит то же имя, что и проект.Рис. 2. Создание нового проекта1314www.phys.nsu.ruНиже (рис.
4) показано, как выглядит новое рабочее пространствощёлкните правой кнопкой мыши на папке Source Files и выберите в менюпосле добавления пустого проекта. Окно, отображающее структуруAdd->New Item..., затем выберите категорию Code, в ней выберите C++рабочего пространства, называется Solution Explorer, его можно открытьFile и впишите имя нового файла (рис.
5).через меню View->Solution Explorer.Рис. 5. Добавление файла программы на языке СВажно явно указать расширение имени: «.c» для программы на Cи «.cpp» для программы на C++ (обведено на рис. 4). Если расширениене указано, Visual Studio автоматически добавит расширение «.cpp»; такойфайл будет обрабатываться компилятором C++, что может помешать, есливы пишете программу на C.Рис.