Чтение онлайн

на главную - закладки

Жанры

Шрифт:

• Смысловые ошибки проявляются в ходе выполнения программы, – это ошибки времени исполнения. Такие ошибки кроются либо в алгоритме программы, либо в неправильных действиях пользователя.

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

• Опции компилятора настраивают двумя способами: в диалоговом окне и вставкой директив непосредственно в программу.

• Директивы в тексте программы имеют преимущество (приоритет) перед настройками опций в диалоговом окне.

А

слабо?

А) Выясните код ошибки, возвращаемый функцией IOResult при попытке открыть для чтения несуществующий файл. Напишите для этого небольшую программу.

Б) Сделайте то же самое, когда программа пытается открыть для записи файл с установленным атрибутом «только чтение». Для настройки атрибутов файла щелкните по файлу правой кнопкой мыши и выберите пункт «Свойства».

В) Дан файл, строки которого содержат круглые скобки (это может быть программа или математические выкладки – неважно). Ваша программа должна распечатать строки, где скобки расставлены неверно, вот примеры.

2+3 – правильно, хотя скобок нет;

(2+3 – ошибка – здесь нет закрывающей скобки;

2+3 – это правильно (хоть и лишено смысла);

))2+3(( – ошибка – скобки закрываются до открытия.

Рекомендация: для исследования строки напишите булеву функцию Check, возвращающую TRUE, если скобки расставлены без ошибок.

Г) Дребезг контактов давно уже бесит специалистов по электронике. Дребезг возникает кратковременно при замыкании-размыкании кнопок, тумблеров, реле и других подобных устройств. Сигнал от контактов поступает в микропроцессор с периодичностью, скажем, 100 раз в секунду. Если контакт постоянно разомкнут, микропроцессор принимает «0», а если замкнут – «1». При замыкании-размыкании контакт неустойчив, и процессор получает пачки чередующихся нулей и единиц, – надо отфильтровать эти ложные срабатывания.

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

На входе

На выходе

0 1 0 1 1 1 0

0 0 0 0 0 1 1

В выходной файл запишите в две колонки входной и выходной сигналы.

Глава 28

Редактор и справочная система

Ошибки, ошибки… Мы отбиваемся от них всеми средствами, и компилятор, как вы убедились, – важный рубеж в этой обороне. Важный, но не единственный. Согласитесь, лучше не допускать ошибок, чем устранять их. Хорошо, когда рядом есть мудрый советчик, – вовремя подскажет, объяснит, остережет. К счастью, в IDE есть такие «советчики» – это редактор текста и справочная система, – о них спою в этой главе.

Сегодня никого не удивишь возможностями нынешних IDE: тут и встроенный редактор и справочная система. Но так было не всегда. В начале 90-х годов прошлого века появление замечательных продуктов фирмы Borland было сродни чуду. Подумать только!

Куча окон, «умная» раскраска текста, встроенная справочная система и отладчик, – это ли не чудеса?

Небьющиеся окна

Встроенный многооконный редактор – одно из новшеств Borland Pascal, он появился там едва ли не раньше самой MS Windows. Пока мы обходились одним окном редактора, но так будет не всегда, – в сложных проектах приходится одновременно открывать несколько файлов. Впрочем, это нужно уметь и сейчас, например, для копирования частей одной программы в другую.

Окна встроенного редактора схожи с окнами Windows: они открываются и закрываются, меняют размер и положение, допускают перенос кусков текста из одного окна в другое. Для управления окнами IDE служит раздел меню «Window». На рис. 62 рядом с названиями пунктов этого раздела показаны соответствующие им горячие комбинации клавиш.

Рассмотрим самые полезные возможности этого меню.

Команды Next и Previous переключают окна редактора. То же самое делается нажатием клавиш F6 и Sift+F6 или щелчками мыши по окнам. Текущее активное окно выдвигается на передний план и обрамляется особой рамкой с полосами прокрутки (в пассивных окнах этих полос нет).

Рис.62 – Пункт меню «Window»

Касательно активного окна надо сделать важное замечание, связанное с компиляцией. Когда открыто несколько окон, нажатие клавиши F9 вызовет, вероятней всего, компиляцию файла, открытого в активном окне. Поэтому не забывайте перед компиляцией своей программы переключаться в нужное окно!

В скопище окон не мудрено заблудиться, и тогда выручит команда Window –> List (комбинация Alt+0, где «0» – это цифра). Нажав её, вы увидите список всех открытых в данный момент окон (рис. 63).

Рис.63 – Список окон

Для перехода в нужное окно выделите его в списке и щелкните по кнопке OK (или сделайте двойной щелчок по строке с именем окна).

Изменить размер и положение окна можно командами Size/Move и мышью. Для перетаскивания окна «схватите» его мышью за верхнюю границу рамки, а для изменения размера – за правый нижний угол.

Буфер обмена

Кто сказал, что списывать – плохо? Копирование кусков текста – любимое занятие программистов. В самом деле, разумно ли набивать заново такой же или похожий кусок текста? Куда быстрее и надежней «скопипастить» его (от слов Copy – «копировать» и Paste – «вставить»). И время сбережем, и ошибиться трудней, – а ошибки мы душим всеми средствами, не так ли?

Куски текста копируются и в пределах одного файла, и между разными файлами. При этом копируемый фрагмент временно сохраняется в памяти – так называемом буфере обмена. Фокус с копированием выполняем в четыре счета:

Поделиться:
Популярные книги

Шайтан Иван

Тен Эдуард
1. Шайтан Иван
Фантастика:
боевая фантастика
попаданцы
альтернативная история
5.00
рейтинг книги
Шайтан Иван

Пространство

Абрахам Дэниел
Пространство
Фантастика:
космическая фантастика
5.00
рейтинг книги
Пространство

Искра Силы

Шабынин Александр
1. Мир Бессмертных
Фантастика:
городское фэнтези
историческое фэнтези
сказочная фантастика
фэнтези
эпическая фантастика
5.00
рейтинг книги
Искра Силы

Гоблины: Жребий брошен. Сизифов труд. Пиррова победа (сборник)

Константинов Андрей Дмитриевич
Детективы:
полицейские детективы
5.00
рейтинг книги
Гоблины: Жребий брошен. Сизифов труд. Пиррова победа (сборник)

Пятничная я. Умереть, чтобы жить

Это Хорошо
Фантастика:
детективная фантастика
6.25
рейтинг книги
Пятничная я. Умереть, чтобы жить

Вперед в прошлое 3

Ратманов Денис
3. Вперёд в прошлое
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Вперед в прошлое 3

Гимназистка. Нечаянное турне

Вонсович Бронислава Антоновна
2. Ильинск
Любовные романы:
любовно-фантастические романы
7.12
рейтинг книги
Гимназистка. Нечаянное турне

Идеальный мир для Лекаря 16

Сапфир Олег
16. Лекарь
Фантастика:
боевая фантастика
юмористическая фантастика
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 16

Сердце Дракона. Том 11

Клеванский Кирилл Сергеевич
11. Сердце дракона
Фантастика:
фэнтези
героическая фантастика
боевая фантастика
6.50
рейтинг книги
Сердце Дракона. Том 11

Связанные Долгом

Рейли Кора
2. Рожденные в крови
Любовные романы:
современные любовные романы
остросюжетные любовные романы
эро литература
4.60
рейтинг книги
Связанные Долгом

Черный маг императора 3

Герда Александр
3. Черный маг императора
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Черный маг императора 3

Адвокат Империи 7

Карелин Сергей Витальевич
7. Адвокат империи
Фантастика:
городское фэнтези
попаданцы
альтернативная история
аниме
фантастика: прочее
5.00
рейтинг книги
Адвокат Империи 7

Неудержимый. Книга XVII

Боярский Андрей
17. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Неудержимый. Книга XVII

Миротворец

Астахов Евгений Евгеньевич
12. Сопряжение
Фантастика:
эпическая фантастика
боевая фантастика
космическая фантастика
рпг
5.00
рейтинг книги
Миротворец