Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему по МДК.01.01. Системное программирование на тему Понятие об ошибке программного обеспечения. Источники ошибок

Содержание

Вопросы для повторения:Назовите некоторые советы по отладке программыДля чего необходимы комментарии в программе? Что необходимо комментировать в коде программы?
Понятие об ошибке программного обеспечения. Источники ошибок Вопросы для повторения:Назовите некоторые советы по отладке программыДля чего необходимы комментарии в Как определить, когда следует остановить отладку? Ясно, что отладка должна идти до Классификация ошибок:1) Ошибки во время компиляции. Это ошибки, обнаруженные компилятором. Их можно Классификация ошибок:2) Ошибки во время редактирования связей. Это ошибки, обнаруженные редактором связей Классификация ошибок:3) Ошибки во время выполнения. Это ошибки, обнаруженные в ходе контрольных Классификация ошибок:4) Логические ошибки. Это ошибки, найденные программистом в поисках причины неправильных результатов. Программа должна стремиться удовлетворять следующим условиям:1. Должна вычислять желаемые результаты при всех Источники ошибок:Плохая спецификация. (Плохо представили назначение программы → невозможно предусмотреть обработку всех Ошибки во время компиляции Многие ошибки, которые обнаруживает компилятор, относятся к категории Синтаксические ошибки//функцияint area(int length, int width); // Sпрямоуг.int si = area(7,2;int si Итак, если вы не видите ничего неправильного в строке, на которую ссылается Ошибки, связанные с типамиПосле того как вы устраните синтаксические ошибки, компилятор начнет Не ошибки (логические ошибки)int area(int length, int width); // Sпрямоуг.int х4 = Ошибки во время редактирования связейЛюбая программа состоит из нескольких отдельно компилируемых частей, Ошибки во время выполнения программыЕсли программа не содержит ошибок, которые можно обнаружить Сообщения об ошибкахИногда можно вернуть сообщение «Неправильное значение».Предотвратить ошибку при вызове функции Существует другой способ решить описанную проблему: использовать исключения (exceptions)Сообщения об ошибках if(x==1) // правильно!{  y=x+3;    z=y*5;} Найдите ошибки:if (x=1) // неправильно! // выполняется всегда!{  y=x+3;  z=y*5;} Найдите ошибки:if (x==1);{  y=x+3;  z=y*5;}// неправильно! // выполняется всегда!эквивалентно коду:if(x==1){ Найдите ошибки:if(x==1) y=x+3;z=y*5;// неправильно!отсутствуют фигурные скобки, хотя в условии задумано больше одного Домашнее задание:Выучить основные источники ошибок написать примеры возможных ошибок для нескольких операторов
Слайды презентации

Слайд 2 Вопросы для повторения:
Назовите некоторые советы по отладке программы
Для

Вопросы для повторения:Назовите некоторые советы по отладке программыДля чего необходимы комментарии

чего необходимы комментарии в программе? Что необходимо комментировать в

коде программы?

Слайд 3 Как определить, когда следует остановить отладку?
Ясно, что

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

отладка должна идти до тех пор, пока не будут

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

Слайд 4 Классификация ошибок:
1) Ошибки во время компиляции. Это ошибки,

Классификация ошибок:1) Ошибки во время компиляции. Это ошибки, обнаруженные компилятором. Их

обнаруженные компилятором. Их можно подразделить на категории в зависимости

от того, какие правила языка он нарушают:
синтаксические ошибки;
ошибки, связанные с типами.

Слайд 5 Классификация ошибок:
2) Ошибки во время редактирования связей. Это

Классификация ошибок:2) Ошибки во время редактирования связей. Это ошибки, обнаруженные редактором

ошибки, обнаруженные редактором связей при попытке объединить объектные файлы

в выполняемый модуль.

Слайд 6 Классификация ошибок:
3) Ошибки во время выполнения. Это ошибки,

Классификация ошибок:3) Ошибки во время выполнения. Это ошибки, обнаруженные в ходе

обнаруженные в ходе контрольных проверок выполняемого модуля. Эти ошибки

подразделяются на следующие категории:
ошибки, обнаруженные компьютером (аппаратным обеспечением и/или операционной системой);
ошибки, обнаруженные с помощью библиотеки (например, стандартной);
ошибки, обнаруженные с помощью программы пользователя.

Слайд 7 Классификация ошибок:
4) Логические ошибки. Это ошибки, найденные программистом

Классификация ошибок:4) Логические ошибки. Это ошибки, найденные программистом в поисках причины неправильных результатов.

в поисках причины неправильных результатов.


Слайд 8 Программа должна стремиться удовлетворять следующим условиям:
1. Должна вычислять

Программа должна стремиться удовлетворять следующим условиям:1. Должна вычислять желаемые результаты при

желаемые результаты при всех допустимых входных данных.
2. Должна

выдавать осмысленные сообщения обо всех неправильных входных данных.
3. Не обязана обрабатывать ошибки аппаратного обеспечения.
4. Не обязана обрабатывать ошибки программного обеспечения.
5. Должна завершать работу после обнаружения ошибки.


Часть основных проф. требований


Слайд 9 Источники ошибок:
Плохая спецификация. (Плохо представили назначение программы →

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

невозможно предусмотреть обработку всех ошибок)
Неполные программы. В ходе разработки

неизбежно возникают варианты, которые мы не предусмотрели.
Непредусмотренные аргументы. Если функция принимает аргумент, который не был предусмотрен, то возникнет проблема (sqrt(-1.2)).
Непредусмотренные входные данные.
Неожиданное состояние. Большинство программ хранит большое количество данных ("состояний"): списки адресов, каталоги телефонов и данные о температуре, записанные в объекты типа vector. Что произойдет, если эти данные окажутся неполными или неправильными?
Логические ошибки. Эти ошибки приводят к тому, что программа просто делает не то, что от нее ожидается.
И др.


Слайд 10 Ошибки во время компиляции
Многие ошибки, которые обнаруживает

Ошибки во время компиляции Многие ошибки, которые обнаруживает компилятор, относятся к

компилятор, относятся к категории "грубых ошибок", представляющих собой ошибки,

связанные с типами, или результат неполного редактирования кода. Другие ошибки являются результатом плохого понимания взаимодействия частей нашей программы.

Слайд 11 Синтаксические ошибки
//функция
int area(int length, int width); // Sпрямоуг.

int

Синтаксические ошибки//функцияint area(int length, int width); // Sпрямоуг.int si = area(7,2;int

si = area(7,2;
int si = area(7)
Int s3 = агеа(7);
int

s4 >> area(‘7,2’);

Слайд 12 Итак, если вы не видите ничего неправильного в

Итак, если вы не видите ничего неправильного в строке, на которую

строке, на которую ссылается компилятор, проверьте предшествующие строки программы.
Синтаксические

ошибки

Слайд 13 Ошибки, связанные с типами
После того как вы устраните

Ошибки, связанные с типамиПосле того как вы устраните синтаксические ошибки, компилятор

синтаксические ошибки, компилятор начнет выдавать сообщения об ошибках, связанных

с типами переменных, функций и др.

//функция
int area(int length, int width); // Sпрямоуг.

int x0 = arena(7,2);
int x1 = area(7);
int x2 = area("seven",2) ;


Слайд 14 Не ошибки (логические ошибки)
int area(int length, int width);
//

Не ошибки (логические ошибки)int area(int length, int width); // Sпрямоуг.int х4

Sпрямоуг.

int х4 = аrеа(10,-7); // ОК: но …
int х5

= area(10.7,9.3); // ОК: но…
char х6 = area (100, 9999); // ОК: но …


Слайд 15 Ошибки во время редактирования связей
Любая программа состоит из

Ошибки во время редактирования связейЛюбая программа состоит из нескольких отдельно компилируемых

нескольких отдельно компилируемых частей, которые называют единицами трансляции (translation

units). Каждая функция в программе должна быть объявлена с теми же самыми типами, которые указаны во всех единицах трансляции, откуда она вызывается. Для этого используются заголовочные файлы. Кроме того, каждая функция должна быть объявлена в программе только один раз. Если хотя бы одно из этих правил нарушено, то редактор связей выдаст ошибку.

Слайд 16 Ошибки во время выполнения программы
Если программа не содержит

Ошибки во время выполнения программыЕсли программа не содержит ошибок, которые можно

ошибок, которые можно обнаружить на этапах компиляции и редактирования

связей, то она выполняется. Здесь-то и могут проявиться настоящие ошибки.
Например, файл не найден.

Слайд 17 Сообщения об ошибках
Иногда можно вернуть сообщение «Неправильное значение».
Предотвратить

Сообщения об ошибкахИногда можно вернуть сообщение «Неправильное значение».Предотвратить ошибку при вызове

ошибку при вызове функции area (x, у) в модуле

main() относительно просто:
if (x<=0) error("неположительное х");
if (у<=0) error("неположительное у");
int area1 = area(x,у);

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

Существует другой способ решить описанную проблему: использовать исключения (exceptions)Сообщения об ошибках

(exceptions)
Сообщения об ошибках


Слайд 19 if(x==1)
// правильно!
{
y=x+3;

if(x==1) // правильно!{ y=x+3;  z=y*5;}

z=y*5;
}


Слайд 20 Найдите ошибки:
if (x=1)
// неправильно!
// выполняется всегда!
{

Найдите ошибки:if (x=1) // неправильно! // выполняется всегда!{ y=x+3; z=y*5;}

y=x+3;
z=y*5;
}


Слайд 21 Найдите ошибки:
if (x==1);
{
y=x+3;
z=y*5;
}
// неправильно!

Найдите ошибки:if (x==1);{ y=x+3; z=y*5;}// неправильно! // выполняется всегда!эквивалентно коду:if(x==1){  [пустой оператор]; }y=x+3;z=y*5;


// выполняется всегда!
эквивалентно коду:
if(x==1)
{
[пустой оператор];


}
y=x+3;
z=y*5;

Слайд 22 Найдите ошибки:
if(x==1)
y=x+3;
z=y*5;
// неправильно!
отсутствуют фигурные скобки, хотя в

Найдите ошибки:if(x==1) y=x+3;z=y*5;// неправильно!отсутствуют фигурные скобки, хотя в условии задумано больше

условии задумано больше одного оператора
эквивалентно коду:
if (x==1)
{


y=x+3;
}
z=y*5;

  • Имя файла: prezentatsiya-po-mdk0101-sistemnoe-programmirovanie-na-temu-ponyatie-ob-oshibke-programmnogo-obespecheniya-istochniki-oshibok.pptx
  • Количество просмотров: 137
  • Количество скачиваний: 0