- •История развития языков программирования.
- •Характерные черты языков программирования.
- •Среды программирования и трансляторы.
- •Препроцессор, директивы препроцессора.
- •17. Указатели и массивы.
- •15. Операции над указателями.
- •16. Последовательность выполнения операций над указателями. Пример. Последовательность выполнения операций над указателями
- •18. Отладка программ, локализация ошибок, типы ошибок.
- •22. Методы отладки по.
- •19. Ошибки выполнения, способы их проявления.
- •20. Языки с защищенным и с незащищенным синтаксисом. Примеры.
- •21. Разновидности ошибок выполнения программ.
- •23. Метод индукции при отладке по.
- •24. Метод дедукции при отладке по.
- •25. Метод ручного тестирования при отладке по.
- •26. Возможности интегрированных средств отладки.
- •27. Важные особенности процесса отладки по.
- •28. Представление чисел в формате с фиксированной и с плавающей запятой.
15. Операции над указателями.
-Операции разыменования;
-Преобразование типов (приведение типов);
-Присваивание;
-Взятие адреса амперсанта;
-Сложение и вычитание;
Вычитание 1. Вычитание применяется к указателям на объекты одного типа или указатели целой константы.
2. Вычитание 2 указателей 1-го типа можно определять « расстояние» м/у 2-мя участками памяти. Оно определяет в единицах кратных длине ( в байтах) объекта того типа к которому отнесён указатель.При вычитании из указателя целочисленного константы результат уменьшается на величину производной этой константы. И размер памяти требуемой для хранения константы.
Сложение. Сложение выполняется аналогично в том случае, когда 2-ое слагаемое является целочисленной константой. При этом суммирование 2-х указателей запрещено синтаксисом языка С++.При выделении адресов для хранения переменных порядок их присваивания им переменным обратный порядку их появления в программе. Переменная в которой объявлена в программе 1-ой получает адрес последней.( как правило это значение адреса является наибольшей).Как правило соседним переменным присваиваются соседние адреса, хотя синтаксисом языка С++ не гарантированно. Присваивание соседних адресов двум элементам гарантировано только для структурированных типов данных, таких как массивы, структуры.
-Инкремент (++);
-Декремент(--);
-Операция сравнения;
16. Последовательность выполнения операций над указателями. Пример. Последовательность выполнения операций над указателями
Разыменование( *);
Инкремент (++);
Декремент(--);
Взятие адреса (&);
Пример
# include < iostream>
Void main()
{ int i1=10,i2=20,i3=30;
int *p=&i2; // значение i2
cout<< “\n*&i2”<< *&i2; // значение i2 с начало увеличили на 1;
cout<<:\n*p=”<<*p; // значение i2 ,p увеличили на 1;
cout<<”\n*p++”<<*p++; // Значение i1;
cout<<”\n*p=”<<*p; // значение i1 с начало увеличили 1;
cout<<”\n++*p=”<< ++*p; // значение i2 уменьшили с начало на р;
cout<<”\n*--p=”<<*--p; значение i3 увеличили на 1;
cout<<”\n++*--p=”<<++*--p;
указатели на массивы
- нельзя писать m++
- m=&m[0];
-m[i] *(m+i)
18. Отладка программ, локализация ошибок, типы ошибок.
Отладка - это процесс локализации и исправления ошибок, обнаруженных при тестировании программного обеспечения. Локализацией называют процесс определения оператора программы, выполнение которого вызвало нарушение нормального вычислительного процесса. Для исправления ошибки необходимо определить ее причину, т. е. определить оператор или фрагмент, содержащие ошибку. Причины ошибок могут быть как очевидны, так и очень глубоко скрыты.
В целом сложность отладки обусловлена следующими причинами:
требует от программиста глубоких знаний специфики управления используемыми техническими средствами, операционной системы, среды и языка программирования, реализуемых процессов, природы и специфики различных ошибок, методик отладки и соответствующих программных средств;
психологически дискомфортна, так как необходимо искать собственные ошибки и, как правило, в условиях ограниченного времени;
возможно взаимовлияние ошибок в разных частях программы, например, за счет затирания области памяти одного модуля другим из-за ошибок адресации;
отсутствуют четко сформулированные методики отладки.
Типы ошибок.
синтаксические компановки выполнения
Фиксируются
компилятором, транслятором, интерпритатором
При объединении
модулей программы
Появление сообщений
об ошибке зафиксированных схемами
контроля и выполнения, зависание
компиляции