- •Цель работы
- •Теоретические сведения
- •Основные окна ide
- •Редактор текста
- •Список задач
- •Окно решения
- •Окно свойств
- •Контрольные вопросы
- •Приложение.
- •Управление потоком кода.
- •1. Цель работы
- •2. Теоретические сведения
- •If (условие) оператор1; else оператор2
- •3. Порядок выполнения работы
- •4. Задание на работу
- •6. Контрольные вопросы
- •1. Цель работы
- •2. Теоретические сведения
- •Управление динамической памятью с помощью new и delete
- •3. Порядок выполнения работы
- •4. Задание на работу
- •Функции без возвращаемого значения (процедуры)
- •Функции, возвращающие значение
- •Функции с параметрами.
- •Формальные и фактические параметры
- •Перегрузка функций
- •Значения параметров по умолчанию
- •Использование библиотек функций
- •3. Порядок выполнения работы
- •4. Требования к оформлению отчета
- •5. Задание на работу
- •Порядок выполнения работы
- •Требования к оформлению отчета
- •Задание на работу
- •Форматный ввод
- •Пример работы с форматным выводом
- •3. Порядок выполнения работы
- •4. Требования к оформлению отчета
- •5. Задание на работу
- •6. Контрольные вопросы
- •1. Цели работы
- •2. Теоретические сведения Стиль программирования
- •Отладка приложений в среде Microsoft Visual Studio .Net 2005
- •Точки останова (breakpoints)
- •Отладочные символы
- •Настройка параметров отладки.
- •Отладка
- •Окна отладчика
- •3. Порядок выполнения работы
- •4. Требования к оформлению отчета
- •5. Задание на работу
- •6. Контрольные вопросы
- •1. Цель работы
- •2. Теоретические сведения Общие сведения
- •Определение макросов
- •Условная компиляция
- •Дополнительные директивы препроцессора
- •Включение файла. Директива #include
- •3. Порядок выполнения работы
- •4. Требования к оформлению отчета
- •5. Задание на работу
- •6. Контрольные вопросы
- •Цели и задачи работы:
- •Теоретические положения.
- •Порядок выполнения работы.
- •Требования к отчету.
- •Варианты заданий.
- •Контрольные вопросы.
- •Цели и задачи работы
- •Теоретические положения.
- •Порядок выполнения работы.
- •Требования к отчету.
- •Варианты заданий.
- •Контрольные вопросы.
Окна отладчика
В процессе пошаговой отладки программист может использовать целый ряд окон отладчика для наблюдения за состоянием программы. Каждому окну соответствует кнопка на панели инструментов Debug, с помощью которой можно показывать и прятать соответствующее окно (Error: Reference source not found). Можно также показывать и скрывать отладочные окна, используя команды из меню Debug-> Windows.
Далее приводится описание основных отладочных окон.
В окне Variables (Alt+4) автоматически отображаются значения локальных переменных и переменных-членов класса, адресуемого указателем this (закладка This). В нём же отображаются значения всех переменных, которые используются в предыдущей и текущей инструкциях программы (закладка Auto). На закладке Auto также показываются возвращаемые значения функций.
Рис. 8. Панель отладки
Окно Watch (Alt+3) позволяет просматривать значения любых переменных и выражений. Их можно размещать на любой из четырёх закладок (Watch 1, Watch 2, Watch 3 или Watch 4). Добавить переменную или выражение в окно Watch можно одним из следующих способов:
Ввести с клавиатуры.
Перетащить из окна редактора (для этого нужно предварительно выделить нужную переменную или выражение) или из окна Variables.
Добавить из окна Quick watch (см. ниже).
Окно Call Stack (Alt+7) показывает последовательность вызванных функций (стек вызовов). Используя контекстное меню, можно отобразить также типы (команда Show Parameter Types) и значения (команда Show Parameter Values) параметров этих функций. К тексту любой функции можно переместиться, сделав двойной щелчок на её имени. Кроме того, точки останова можно ставить прямо в этом окне.
Окно Quick Watch Это окно имеет возможности, аналогичные возможностям окна Watch, с той разницей, что в нём можно просматривать только одну переменную за раз. Используется, когда вам не хочется добавлять переменную в окно Watch. Его можно вызвать, используя комбинацию Shift+F9.
Окно Threads показывает список потоков, созданных вашей программой. Позволяет приостановить (suspend) или продолжить (resume) любой поток, а также установить на него фокус (то есть сделать его текущим). Этот диалог – практически единственное средство для отладки многопоточных приложений, которое предоставляет Visual C++.
Окно Modules показывает список загруженных модулей. Для каждого модуля выводится диапазон адресов и имя файла.
Чтобы изменить значение переменной, в большинстве окон достаточно сделать двойной щелчок на старом значении и ввести новое. Значение выражений изменять нельзя.
3. Порядок выполнения работы
Ознакомиться с теоретическими сведениями.
Получить вариант задания у преподавателя.
Выполнить задание.
Продемонстрировать выполнение работы преподавателю.
Оформить отчет.
Защитить лабораторную работу.
4. Требования к оформлению отчета
Отчет по лабораторной работе должен содержать следующие разделы:
титульный лист;
цель работы:
задание на лабораторную работу;
ход работы;
ответы на контрольные вопросы;
выводы по проделанной работе.
5. Задание на работу
Напишите программу решения биквадратного уравнения.
Напишите программу подсчета простых чисел до 1000.
Напишите программу определения факториала.
Напишите программу определения числа Фибоначчи.
Напишите программу, определяющую все возможные варианты сочетаний из n чисел.
Напишите программу, определяющую все числа до n, имеющие не более m делителей.
Используя программу:
#include "stdafx.h"
#include <string>
#include <conio.h>
void print_string(_TCHAR *string, int count){
for(int i = 0; i < count; i ++ )
for(int j = 0; j < wcslen(string); j++)
putwchar(string[j]);
}
int _tmain(int argc, _TCHAR* argv[])
{
if(argc != 3){
printf(" incorrect args");
}else{
wchar_t *end;
int count = wcstol(argv[2], &end, 10);
printf("Print: %ws %d times\n",
argv[1],
count);
print_string(argv[1], count);
}
getch();
return 0;
}
В параметрах запуска приложения укажите «“hello world” 4» (кавычки обязательны). Измените параметры программы. Что изменится?
Определите, как зависят действия в функции print_string от параметров командной строки.
Замените:
printf("Print: %ws %d times\n", argv[1], count);
на:
printf("Print: %s %d times\n", argv[1], count);
Что изменилось?
С помощью отладчика определите, чем отличается char* argv[] от _TCHAR * argv.
Добавьте следующий фрагмент кода перед оператором getch(). С помощью отладчика получить информацию о значениях переменных после выполнения каждой строки.
int j = 0, i = 5;
j += i;
j += j++;
j -= 2, i++;
int j = 0, i = 11;
j += i;
j = j++;
(j -= i++), (j+=2);
int j = 2, i=j;
j += i/2 + 1;
j = j-- + ++ j;
(j -= i++), (j+=2);
int j = 4, i=2;
j -= i/2 + 1;
j = j-- + ++ j;
(j -= i++), (j+=2);
int j = 1, i=2;
j += i++ - 2 + 1;
j = j-- / 2 + ++ j;
j -= i++, j++;
int j = -4, i=2;
j *= i + 1;
j = j-- + ++ j;
i --;
