1. Средства программирования. Структура консольного приложения, этапы компиляции и сборки программы. Первая программа. (1109519), страница 2
Текст из файла (страница 2)
При обычном запуске, в конце работы программы будет выведенанадпись, предлагающая нажать любую клавишу для закрытия окна, то есть, пользовательсам сможет решить, когда закрывать окно.Все команды доступны не только через главное меню интегрированной среды, но и спанели инструментов. Наведение указателя мыши на ту или иную кнопку панелиинструментов раскрывает подсказку по смыслу данной команды и ее горячей клавише.2.9 Результат выполнения первой программыВ результате сборки и запуска первой программы должно появиться примерно такое окно:Здесь сначала пользователя предлагают ввести тот или иной член выражения ( enter r1),затем он его печатает на клавиатуре и этот член появляется на экране (2). В концепрограмма печатает ответ выражения (2 * 2 = 4), после чего операционная системапечатает свое приглашение нажать любую клавишу, чтобы закрыть окно ( Press any keyto continue…).09.11.20179Кафедра математического моделирования и информатики: первый курс, первый семестр2.10 Отладка (Debug)Интерактивный отладчик помогает найти ошибки в логике работы программы, которыеневозможно обнаружить компилятору (компилятор может обнаружить толькосинтаксические ошибки).Команды отладчика:F11F10Shift+F9F9F5или Debug -> Step Into – пошаговое выполнение программы, при этомкаждая строчка исходного кода выполняется по нажатию клавиши F11, после чегокурсор перемещается к следующей строке, а у программиста появляетсявозможность просмотреть значения всех переменных программы к этому моменту(например, просто подведя к ним курсор мыши или в нижней панели среды), а принеобходимости можно даже исправить эти значения.или Debug -> Step Over – то же самое, что предыдущая команда (пошаговыйрежим), но, в отличие от нее, если в текущей строке есть вызов функции, то непроисходит переход пошагового режима в тело этой функции.
Функция простовычисляется полностью, возвращается в точку вызова, после чего полностьювыполняется текущая строка и отладчик переходит к следующей строке.или Ctrl+Alt+Q или Debug -> Quick Watch – быстрый просмотрзначения переменной. Команда в меню появляется только, когда программазапущена под отладчиком! Нужно подвести курсор к интересующей переменной,нажать «горячие клавиши», после чего появится окно, в которой можно будетпросмотреть значение переменной.или Debug -> Toggle Breakpoint – переключатель, позволяющий поставитьили убрать точку остановки отладчика (Breakpoint) на текущей строке.
Когдаотладчик запущен командой F5 он будет быстро выполнять все строки программыдо тех пор, пока не дойдет до точки остановки, в которой отладчик остановится. Вточке остановки можно просмотреть значения переменных и постараться понять –правильно работает программа или нет.или Debug -> Start Debugging – продолжить выполнение программы подотладчиком после точки остановки (до конца программы или до следующей точкиостановки, которых может быть сколько угодно).09.11.201710Кафедра математического моделирования и информатики: первый курс, первый семестр– прервать выполнение программы и ее отладку.Производится возврат к редактированию исходного текста программы.Shift+F5StopDebuggingНе рекомендуется вносить изменения в исходный текст программы во время выполненияее под отладчиком.
Лучше прервать отладку, исправить и перекомпилировать программу,после чего запустить отладку заново.2.11 Задание параметров для командной строки программы в интерактивной средеИногда бывает удобно задать необходимые аргументы для выполнения программы прямов ее командной строке при запуске. В таком случае, аргументы следует указатьнепосредственно в среде программирования, любой последующий запуск программы (подотладчиком или нет) будет использовать именно указанные аргументы.Для задания аргументов программы следует щелкнуть правой кнопкой мыши по проекту ивызвать редактор свойств проекта:09.11.201711Кафедра математического моделирования и информатики: первый курс, первый семестрВдиалогередактированиясвойствпроектаследуетвыбратьа потом, в правой панели задать аргументыпробелами между отдельными параметрамиConfiguration Properties -> Debugging,командной строки (Command Arguments) спрограммы:3 Первая программаПервая программа, которую студенты должны написать в практикуме, представляет изсебя простейший калькулятор для вводимых пользователем чисел.Важный момент: в данной программе используются операторы ввода-вывода языка C++, всилу того, что они гораздо легче осваиваются студентами на начальных этапах обучения,по сравнению с функциями ввода-вывода scanf()/printf().
Тем не менее,использование функций ввода-вывода языка Си можно оставить на усмотрениепреподавателя./* Ivanov Alexey group 112 *//* Calculator program */#include <iostream>#include <stdlib.h>#include <math.h>using namespace std;int main(){double r1,r2,r3;char op;cout<<"enter r1"<<endl<<flush;cin>>r1;cout<<"enter op"<<endl<<flush;cin>>op;cout<<"enter r2"<<endl<<flush;09.11.201712Кафедра математического моделирования и информатики: первый курс, первый семестрcin>>r2;switch (op) {case'+': r3=r1+r2; break;case'-': r3=r1-r2; break;case'*': r3=r1*r2; break;case'/':if ( fabs(r2) < 1.0E-10 ) {cout<<"Divide by zero!"<<flush;return 1;}r3=r1/r2;break;default:cout<<"Error!"<<flush;return 1;}cout<<r1<<' '<<op<<' '<<r2<<" = "<<r3<<endl<<flush;return 0;}Небольшая модификация программы позволит пользователю вводить аргументывыражения не с консоли, а непосредственно в командную строку программы:…int main(int argc, char* argv[]){double r1,r2,r3;char op;if ( argc-1 != 3 ) {cout<<"Invalid arguments!"<<flush;return 1;}r1 = atof(argv[1]);op = argv[2][0];r2 = atof(argv[3]);switch (op) {case'+': r3=r1+r2; break;...Здесь функция atof() производит преобразование строкового типа (массив типа char) всоответствующее вещественное значение.
Для получения целых значений естьаналогичная функция atoi(), обе – входят в системную библиотеку <stdlib.h>.Запустить такую программу можно будет либо прямо из интегрированной среды, как этобыло описано в предыдущем разделе, либо из программы Start -> Accessories ->Command Prompt так:...\Debug> calc.exe 2 + 2...Пробелы между аргументами в данном случае важны.Для того, чтобы программа могла выводить в консоль тексты и приглашения на русскомязыке рекомендуется вставить до первого оператора вывода вызов следующей системнойфункции:setlocale(LC_ALL,"rus");09.11.201713Кафедра математического моделирования и информатики: первый курс, первый семестрК сожалению, обеспечить ввод строк на русском языке таким образом нельзя, это гораздосложнее, но для учебных программ первого семестра – это и не требуется.Типовое задание: написать и протестировать работу программы-калькулятора,выполняющую арифметические действия с числами, вводимыми пользователем.
Добитьсяее работоспособности. Это задание должны выполнить все студенты группы, только послеего сдачи можно давать дополнительные задания по образцу приводимых ниже.В практикуме нужно объяснить и отработать элементарные действия в отладчикепрограмм: пошаговое исполнение, контроль значений переменных, точки останова.При сдаче задания студента нужно попросить модифицировать программу: добавитьобработку ошибок, добавить новые действия (возведение в степень, тригонометрия),добавить количество выполняемых действий (несколько операций, но без обработкиприоритетов и скобок).В качестве дополнительных заданий успевающим студентам можно предложить болеесерьезную модификацию этой программы, например, организацию ввода выраженийпрямо в командной строке или организацию «бесконечного» цикла вычислений(вычисление многих выражений, пока пользователь не выдаст команду на завершениеработы).09.11.201714Кафедра математического моделирования и информатики: первый курс, первый семестр1.
ВариантДополнить калькулятор возможностью ввода аргументов через параметры команднойстроки.При заданных аргументах в командной строке должны использоваться именно эти аргументы, принедостатке каких-либо аргументов, в том числе – при отсутствии всех аргументов командной строки,недостающие аргументы запросить у пользователя.2. ВариантДополнить калькулятор возможностью ввода с клавиатуры неограниченного количествавыражений (до ввода выражения 0 + 0).Требуется либо использовать цикл, либо использовать метку и оператор goto в совокупности с условнымоператором.3. ВариантДополнить калькулятор возможностью ввода либо одной, либо двух операций.Нужно, чтобы можно было вычислять выражения вида: 2 + 6 / 4 наряду с выражениями вида: 3 – 1.Приоритет операций можно не учитывать, вычислять выражение слева направо, т.е.
(2+6)/4=2.4. ВариантДополнить калькулятор возможностью ввода двух операций с учетом приоритетаумножения и деления над сложением и вычитанием.Программа должна правильно обрабатывать случаи вида: 4+8/4=6 и вида: 8/4-3=-1.5. ВариантНаписать калькулятор, вычисляющий значение полинома в заданной точке.Коэффициенты полинома задаются в командной строке (от нулевой до четверной степени), координатыточки – запрашиваются у пользователя.6. ВариантДополнить калькулятор дополнительной операцией – вычислением процентов.Наряду с четырьмя арифметическими действиями калькулятор должен вычислять выражения вида: 8%4=50,то есть, сколько процентов второй аргумент составляет от первого.7.