Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Ошибки при использовании массивов




 

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

Если в качестве индекса используется константа, и ее значение выходит за допустимые границы, то такая ошибка обнаруживается на этапе компиляции программы. Например, если в программе объявлен массив

 

day: array[0..6] of string[ll],

 

то во время компиляции программы инструкция

 

day [7]:= 'Воскресенье';

 

будет помечена как ошибочная.

 

Если для доступа к элементу массива в качестве индекса используется переменная или выражение, то возможно возникновение ошибки (исключения) времени выполнения программы. Например, если в программе объявлен массив

 

tab1: array [1..N] of integer;

 

то инструкция

 

for i:=0 to N do tab1[i]:= 5;

 

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

 

Однако во время выполнения программы, при попытке присвоить значение несуществующему нулевому элементу массива tab, на экран будет выведено сообщение об ошибке. Вид окна и текст сообщения зависит от того, откуда запущена программа.

 

При запуске рассматриваемой программы из Delphi возникает исключение, и сообщение имеет вид, приведенный на Рисунок 19.9.

 

Рисунок 19.9 - Сообщение об ошибке при обращении к несуществующему элементу массива (программа запущена из Delphi)

 

Если программа запущена из Windows, то при попытке присвоить значение несуществующему элементу массива на экран будет выведено сообщение Range check error (ошибка контроля диапазона). В заголовке окна будет указано имя приложения, в процессе выполнения которого произошла ошибка (Рисунок 19.10).

Рисунок 19.10 - Сообщение об ошибке при обращении к несуществующему элементу массива (программа запущена из Windows)

 

Поведение программы при выходе индексного выражения за границы диапазона допустимых значений определяется настройкой компилятора.

Для того чтобы программа контролировала значения индексных выражений (в этом случае Delphi добавляет в выполняемую программу инструкции, обеспечивающие этот контроль), необходимо на вкладке Compiler диалогового окна Project Options, которое открывается выбором из меню Project команды Options, установить флажок Range checking (Контроль диапазона), находящийся в группе Runtime errors (Ошибки времени выполнения) (Рисунок 19.2).

Рисунок 18.2 - Вкладка Compiler диалогового окна Project Options

 




Поделиться с друзьями:


Дата добавления: 2014-01-06; Просмотров: 307; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.