Добавить материал и получить бесплатное свидетельство о публикации в СМИ
Эл. №ФС77-60625 от 20.01.2015
Инфоурок / Другое / Презентации / Презентация по МДК.01.01. Системное программирование на тему "Отладка программы. Принципы и виды отладок"

Презентация по МДК.01.01. Системное программирование на тему "Отладка программы. Принципы и виды отладок"

  • Другое
Отладка программы. Принципы и виды отладок Page * Образец заголовка
Вопросы для повторения: - Какая клавиша и кнопка позволяет откомпилировать пр...
Выполнение отладки: 1) Поставить курсор на нужную строку кода – нажать  -  По...
Page *
Написанная (вечером?) большая программа всегда содержит ошибки. Page *
Отладка (debugging) Написав определенную программу, вы должны найти и удалить...
Иногда говорят, что термин «жучок» возник в те времена, когда аппаратное обес...
1. Компилируем программу. 2. Редактируем связи. 3. Выполняем программу. Отлад...
1. Компилируем программу. 2. Редактируем связи. 3. Выполняем программу. Обычн...
Как понять, что программа действительно работает правильно? Основной вопрос о...
Программировать надо так, чтобы жучкам негде было укрыться. Главная цель – ст...
1) Подумайте об отладке, прежде чем напишете первую строку своей программы. К...
3) Старайтесь, чтобы программу было легко читать: а) хорошо комментируйте сво...
б) Используйте осмысленные имена (не означает, что длинные); в) используйте л...
д) избегайте сложных выражений (вложенных циклов, вложенных инструкций if, сл...
cout
cout
int f (int a) { if (a>0) { /* что-то делаем */ else { /* делаем что-то другое...
4. Каждое ли имя объявлено? наиболее распространенные ошибки компиляции: Page *
5. Включены ли все необходимые заголовочные файлы (например, #include "std_li...
6. Объявлено ли каждое имя до его использования? наиболее распространенные ош...
int count; /*...*/ ++Count; // Ой! char ch; /*...*/ Cin>>c; // Ой-ой! 7. Прав...
х = sqrt(y)+2 // Ой! z = х+3; 8. Поставлено ли двоеточие после каждой инструк...
После того как программа скомпилирована, а ее связи отредактированы, наступае...
Обычная проблема с консолью Windows заключается в том, что она исчезает, не д...
for (int i = 0; i
Вставить отладочный код (дополнительные инструкции вывода): int my_fct(int a,...
Вставьте инструкции для проверки инвариантов (т.е. условий, которые всегда до...
Следует знать, что наилучшего способа отладки не существует. Просто надо помн...
Следующая программа вводит температуру по шкале Цельсия и преобразует ее в шк...
double сtok(double с) // преобразует шкалу Цельсия в шкалу Кельвина { int k =...
2) Самой низкой температурой является абсолютный нуль, т.е. -273,15°С, или 0...
3) Повторите упр. 2, но на этот раз ошибку обработайте в функции ctok (). Pag...
Как определить, когда следует остановить отладку? Ясно, что отладка должна ид...
Page *
1 из 35

Описание презентации по отдельным слайдам:

№ слайда 1 Отладка программы. Принципы и виды отладок Page * Образец заголовка
Описание слайда:

Отладка программы. Принципы и виды отладок Page * Образец заголовка

№ слайда 2 Вопросы для повторения: - Какая клавиша и кнопка позволяет откомпилировать пр
Описание слайда:

Вопросы для повторения: - Какая клавиша и кнопка позволяет откомпилировать проект (на наличие синтаксических ошибок). - Где отображаются ошибки, обнаруженные в процессе компиляции программы? Page *

№ слайда 3 Выполнение отладки: 1) Поставить курсор на нужную строку кода – нажать  -  По
Описание слайда:

Выполнение отладки: 1) Поставить курсор на нужную строку кода – нажать <Отладка> - <Выполнить до курсора> После этого программа выполняется до той строки, где курсор и строка выделяется синим цветом. Далее можно пошагово выполнять программу. Для этого надо нажимать "Следующий шаг" Можно нажать "Продолжить выполнение", тогда программа выполнится полностью... Можно посмотреть ассемблерный код в процессе остановки программы. Для этого выполнить до курсора, потом <Отладка> - <Показать окно CPU>... В Dev C++ довольно слабый Отладчик. Можно скачать OllyDbg и настроить Dev C++ так, чтобы предпоследний можно было из этой среды запустить. Page *

№ слайда 4 Page *
Описание слайда:

Page *

№ слайда 5 Написанная (вечером?) большая программа всегда содержит ошибки. Page *
Описание слайда:

Написанная (вечером?) большая программа всегда содержит ошибки. Page *

№ слайда 6 Отладка (debugging) Написав определенную программу, вы должны найти и удалить
Описание слайда:

Отладка (debugging) Написав определенную программу, вы должны найти и удалить ошибки. Этот процесс обычно называют отладкой (debugging), а ошибки — жучками (bugs). Page *

№ слайда 7 Иногда говорят, что термин «жучок» возник в те времена, когда аппаратное обес
Описание слайда:

Иногда говорят, что термин «жучок» возник в те времена, когда аппаратное обеспечение выходило из строя из-за насекомых, случайно заблудившихся среди электронных ламп и реле, заполнявших комнаты. Иногда считают, что этот термин изобрел Грейс Мюррей Хоппер, создатель языка программирования COBOL. Отладка (debugging) Page *

№ слайда 8 1. Компилируем программу. 2. Редактируем связи. 3. Выполняем программу. Отлад
Описание слайда:

1. Компилируем программу. 2. Редактируем связи. 3. Выполняем программу. Отладка выглядит примерно так: Page *

№ слайда 9 1. Компилируем программу. 2. Редактируем связи. 3. Выполняем программу. Обычн
Описание слайда:

1. Компилируем программу. 2. Редактируем связи. 3. Выполняем программу. Обычно эта последовательность операций выполняется снова и снова: для действительно крупных программ этот процесс повторяется сотни и тысячи раз год за годом Отладка выглядит примерно так: Page *

№ слайда 10 Как понять, что программа действительно работает правильно? Основной вопрос о
Описание слайда:

Как понять, что программа действительно работает правильно? Основной вопрос отладки звучит так: Page *

№ слайда 11 Программировать надо так, чтобы жучкам негде было укрыться. Главная цель – ст
Описание слайда:

Программировать надо так, чтобы жучкам негде было укрыться. Главная цель – структурировать программу так, чтобы минимизировать вероятность ошибок и максимально увеличить вероятность их обнаружения. Page *

№ слайда 12 1) Подумайте об отладке, прежде чем напишете первую строку своей программы. К
Описание слайда:

1) Подумайте об отладке, прежде чем напишете первую строку своей программы. Когда написано уже много строк, уже слишком поздно пытаться упростить отладку. 2) Решите, как сообщать об ошибках. Можно использовать функцию Error() и перехватывать исключение в функции main(). Практические советы по отладке: Page *

№ слайда 13 3) Старайтесь, чтобы программу было легко читать: а) хорошо комментируйте сво
Описание слайда:

3) Старайтесь, чтобы программу было легко читать: а) хорошо комментируйте свою программу (коротко указать название программы, цель программы, кто написал программу и зачем, номера версий, какие фрагменты кода могут вызвать сложности, основные идей, как организован код, какие предположения сделаны относительно вводных данных, каких фрагментов кода пока не хватает и какие варианты еще не обработаны). Практические советы по отладке: Page *

№ слайда 14 б) Используйте осмысленные имена (не означает, что длинные); в) используйте л
Описание слайда:

б) Используйте осмысленные имена (не означает, что длинные); в) используйте логичную схему кода; г) разбивайте программу на небольшие фрагменты, каждый из которых выражает определенную логическую операцию (старайтесь, чтобы функция не превышала 1-2 страниц); Практические советы по отладке: Page *

№ слайда 15 д) избегайте сложных выражений (вложенных циклов, вложенных инструкций if, сл
Описание слайда:

д) избегайте сложных выражений (вложенных циклов, вложенных инструкций if, сложных условий и т.д.) Иногда они необходимы, но здесь часто прячутся ошибки. е) используйте, где только можно, библиотечные функции, а не собственный код (библиотеки, как правило, лучше продуманы и протестированы, чем ваши собственные программы). Практические советы по отладке: Page *

№ слайда 16 cout
Описание слайда:

cout << "Привет, << name << '\n'; // Ой! 1. Закрыта ли кавычка строки литералов? наиболее распространенные ошибки компиляции: Page *

№ слайда 17 cout
Описание слайда:

cout << "Привет, " << name << '\n; // Ой/ 2. Закрыта ли кавычка отдельного литерала? наиболее распространенные ошибки компиляции: Page *

№ слайда 18 int f (int a) { if (a&gt;0) { /* что-то делаем */ else { /* делаем что-то другое
Описание слайда:

int f (int a) { if (a>0) { /* что-то делаем */ else { /* делаем что-то другое */ } } /Ой! 3. Закрыта ли фигурная скобка блока? наиболее распространенные ошибки компиляции: Page *

№ слайда 19 4. Каждое ли имя объявлено? наиболее распространенные ошибки компиляции: Page *
Описание слайда:

4. Каждое ли имя объявлено? наиболее распространенные ошибки компиляции: Page *

№ слайда 20 5. Включены ли все необходимые заголовочные файлы (например, #include &quot;std_li
Описание слайда:

5. Включены ли все необходимые заголовочные файлы (например, #include "std_lib_facilities. h")? наиболее распространенные ошибки компиляции: Page *

№ слайда 21 6. Объявлено ли каждое имя до его использования? наиболее распространенные ош
Описание слайда:

6. Объявлено ли каждое имя до его использования? наиболее распространенные ошибки компиляции: Page *

№ слайда 22 int count; /*...*/ ++Count; // Ой! char ch; /*...*/ Cin&gt;&gt;c; // Ой-ой! 7. Прав
Описание слайда:

int count; /*...*/ ++Count; // Ой! char ch; /*...*/ Cin>>c; // Ой-ой! 7. Правильно ли набраны все имена? наиболее распространенные ошибки компиляции: Page *

№ слайда 23 х = sqrt(y)+2 // Ой! z = х+3; 8. Поставлено ли двоеточие после каждой инструк
Описание слайда:

х = sqrt(y)+2 // Ой! z = х+3; 8. Поставлено ли двоеточие после каждой инструкции? наиболее распространенные ошибки компиляции: Page *

№ слайда 24 После того как программа скомпилирована, а ее связи отредактированы, наступае
Описание слайда:

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

№ слайда 25 Обычная проблема с консолью Windows заключается в том, что она исчезает, не д
Описание слайда:

Обычная проблема с консолью Windows заключается в том, что она исчезает, не дав вам шанса увидеть, что было выведено на экран (если что-то все-таки было выведено). Одно из решений этой проблемы — вызвать функцию keep_window_open () из заголовочного файла std_lib_facilities.h в конце функции main О. Page *

№ слайда 26 for (int i = 0; i
Описание слайда:

for (int i = 0; i<=max; ++j) { // Ой! (Дважды) for (int i=0; 0<max; ++i); // Выводим элементы вектора v cout << “v[" << i << ”]==” << v[i] << ‘\n’; 9. Часто, когда программист не видит проблемы, причина заключается в том, что вы видите не действительное, а желаемое. наиболее распространенные ошибки компиляции: Page *

№ слайда 27 Вставить отладочный код (дополнительные инструкции вывода): int my_fct(int a,
Описание слайда:

Вставить отладочный код (дополнительные инструкции вывода): int my_fct(int a, double d) { int res = 0; cerr << "my_fct(" << a << "," << d << ") \n"; // вывод промежуточных значений // . . . какой-то код . . . cerr << "my_fct() возвращает “ << res << ‘\n’; return res; } наиболее распространенные ошибки компиляции: Page *

№ слайда 28 Вставьте инструкции для проверки инвариантов (т.е. условий, которые всегда до
Описание слайда:

Вставьте инструкции для проверки инвариантов (т.е. условий, которые всегда должны выполняться) в подозрительные разделы. int my_complicated_f unction (int a, int b, int c) // Аргументы являются положительными и а < b < с { if (!(0<a && a<b && b<c)) // ! значит НЕ, а && значит И error ("Неверные аргументы функции mcf ") ; // . . . } наиболее распространенные ошибки компиляции: Page *

№ слайда 29 Следует знать, что наилучшего способа отладки не существует. Просто надо помн
Описание слайда:

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

№ слайда 30 Следующая программа вводит температуру по шкале Цельсия и преобразует ее в шк
Описание слайда:

Следующая программа вводит температуру по шкале Цельсия и преобразует ее в шкалу Кельвина. Этот код содержит много ошибок. 1) Найдите ошибки, перечислите их и исправьте программу. Page *

№ слайда 31 double сtok(double с) // преобразует шкалу Цельсия в шкалу Кельвина { int k =
Описание слайда:

double сtok(double с) // преобразует шкалу Цельсия в шкалу Кельвина { int k = с + 273.15; return int } int main () { double с = 0; // объявляем переменную для ввода cin >> d; // вводим температуру в переменную ввода double k = ctok("c"); // преобразуем температуру Cout << k << endl ; // выводим температуру на печать } Page *

№ слайда 32 2) Самой низкой температурой является абсолютный нуль, т.е. -273,15°С, или 0
Описание слайда:

2) Самой низкой температурой является абсолютный нуль, т.е. -273,15°С, или 0 К. Даже после исправления приведенная выше программа выводит неверные результаты для температуры ниже абсолютного нуля. Поместите в функцию main () проверку, которая выводит сообщение об ошибке, если температура ниже -273,15°С. Page *

№ слайда 33 3) Повторите упр. 2, но на этот раз ошибку обработайте в функции ctok (). Pag
Описание слайда:

3) Повторите упр. 2, но на этот раз ошибку обработайте в функции ctok (). Page *

№ слайда 34 Как определить, когда следует остановить отладку? Ясно, что отладка должна ид
Описание слайда:

Как определить, когда следует остановить отладку? Ясно, что отладка должна идти до тех пор, пока не будут выявлены все ошибки, — или нам так покажется. А как узнать, что мы нашли последнюю ошибку? Мы не знаем. Последняя ошибка — это шутка программистов. Такой ошибки не существует. В большой программе никогда невозможно найти последнюю ошибку. Page *

№ слайда 35 Page *
Описание слайда:

Page *

Краткое описание документа:

Презентация составлена для специальности 09.02.03. Программирование в компьютерных системах для изучения профессионального модуля ПМ.01. Разработка программных модулей программного обеспечения для компьютерных систем, МДК.01.01. Системное программирование.

Язык программирования - C++, среда разработки - Dev-C++.

Некоторые сведения для презентации взяты из книги:

Бьярне Страуструп. Программирование: принципы и практика использования C++. : Пер. с англ. – М.: ООО "И.Д. Вильямс", 2011. – 1248 с.


Автор
Дата добавления 05.03.2016
Раздел Другое
Подраздел Презентации
Просмотров130
Номер материала ДВ-504725
Получить свидетельство о публикации
Похожие материалы

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