
- •Московский государственный университет
- •Компоненты
- •Событие и функция обработки события
- •Редактор кода
- •Система подсказок
- •Навигатор классов
- •Шаблоны кода
- •Справочная система
- •Сохранение проекта
- •Компиляция
- •Предупреждения и подсказки
- •Компоновка
- •Запуск программы
- •Ошибки времени выполнения
- •Внесение изменений
- •Настройка приложения
- •Название программы
- •Значок приложения
- •Перенос приложения на другой компьютер
- •Структура простого проекта
- •2. Задание на выполнение работы
- •1. Электроэнергия.
- •2. Игра «угадай число».
- •3. Гороскоп
- •4. Межгород
- •6. Алфавит
- •7. Палиндром
- •8. Метеослужба
- •9. Статистика
- •10. Кафе.
- •Лабораторная работа №22 Графика.
- •Карандаш и кисть
- •Графические примитивы
- •Ломаная линия
- •Прямоугольник
- •Многоугольник
- •Окружность и эллипс
- •Лабораторная работа №23 Иллюстрации
- •Битовые образы
- •Мультипликация
- •Метод базовой точки
- •Использование битовых образов
- •Загрузка битового образа из ресурса программы
- •Создание файла ресурсов
- •Подключение файла ресурсов
- •Int w, h; // размер кадра
- •Int с; // номер воспроизводимого кадра
- •Лабораторная работа №25
- •1. База данных и субд
- •Локальные и удаленные базы данных
- •Структура базы данных
- •Псевдоним
- •Компоненты доступа и манипулирования данными
- •Создание базы данных
- •Доступ к базе данных Доступ к базе данных обеспечивают компонентыDatabase, Table, Query и DataSource.Значки этих компонентов находятся на вкладкахData Accessи bde(рис. 25.8).
- •Отображение данных
- •Манипулирование данными
- •Выбор информации из базы данных
- •Перенос программы управления базой данных на другой компьютер
- •2. Задание на выполнение работы
- •Литература
Компиляция
Процесс преобразования исходной программы в выполняемую состоит из двух этапов: непосредственно компиляции и компоновки. На этапе компиляции выполняется перевод исходной программы в некоторое внутреннее представление. На этапе компоновки выполняется сборка (построение) программы. После ввода текста функции обработки события и сохранения проекта можно, выбрав в меню Project команду Compile, выполнить компиляцию. Процесс и результат компиляции отражается в диалоговом окне Compiling (рис. 20.35). Если в программе нет синтаксических ошибок, то окно будет содержать сообщение: Done: Compile Unit, в противном случае будет выведено сообщение Done: There are errors.
Рис. 20.35. Результат компиляции: в программе есть ошибки
В случае если компилятор обнаружит в программе ошибки и неточности, диалоговое окно Compiling будет содержать информацию о количестве синтаксических (Errors) и семантических (Warnings) ошибок, а также о числе подсказок (Hints). Сами сообщения об ошибках, предупреждения и подсказки находятся в нижней части окна редактора кода.
Чтобы перейти к фрагменту кода, который, по мнению компилятора, содержит ошибку, надо выбрать сообщение об ошибке (щелкнуть в строке сообщения левой кнопкой мыши) и из контекстного меню (рис. 20.36) выбрать команду Edit Source.
Рис. 2.32. Переход к фрагменту программы, который содержит ошибку
Процесс компиляции можно активизировать, выбрав в меню Run команду Run, которая запускает разрабатываемое приложение. Если будет обнаружено, что с момента последней компиляции в программу были внесены изменения или программа еще ни разу не компилировалась, то будет выполнена компиляция, затем — компоновка, и после этого программа будет запущена (естественно, только в том случае, если в программе нет ошибок).
Ошибки
Компилятор переходит ко второму этапу генерации выполняемой программы только в том случае, если исходный текст не содержит синтаксических ошибок. В большинстве случаев в только что набранной программе есть ошибки. Программист должен их устранить. Процесс устранения ошибок носит итерационный характер. Обычно сначала устраняются наиболее очевидные ошибки, например, объявляются необъявленные переменные. После очередного внесения изменений в текст программы выполняется повторная компиляция. Следует обратить внимание на то, что компилятор не всегда может точно локализовать ошибку. Поэтому, анализируя фрагмент программы, который, л о мнению компилятора, содержит ошибку, нужно обращать внимание не только на тот фрагмент кода, на который компилятор установил курсор, но и на тот, который находится в предыдущей строке. Например, в следующем фрагменте кода:
// вычислить ток
i = u/r
//. вывести результат в поле метки
Labe14->Caption = "Ток : " +
FloatToStrF(i,ffGeneral,7,2) + " А";
не поставлена точка с запятой после оператора присваивания. Компилятор это обнаруживает, выводит сообщение statement missing ;, но выделяет строку Label4->caption = "Ток : " + и устанавливает курсор после идентификатора Label4.
В табл. 20.10 перечислены типичные ошибки и соответствующие им сообщения компилятора.
Таблица 20.10. Типичные ошибки
Сообщение |
Ошибка |
Undefined symbol (неизвестный символ) |
Используется необъявленная переменная Имя переменной, функции или параметра записано неверно. Например, в программе объявлена переменная Summ, а в инструкциях используется sum |
Statement missing ; (отсутствует точка с запятой) |
После инструкции не поставлена точка с запятой |
Unterminated string or character constant (незаконченная строковая или символьная константа) |
В конце строковой константы, например, текста сообщения, нет двойных кавычек |
) expected (ожидается закрывающая скобка) |
При записи арифметического выражения, содержащего скобки, нарушен баланс открывающих и закрывающих скобок |
if statement missing ( (в инструкции if нет открывающей скобки) |
В инструкции if условие не заключено в скобки |
Compound statement missing } |
Нарушен баланс открывающих и закрывающих фигурных скобок. Вероятно, не поставлена закрывающая фигурная скобка отмечающая конец функции или группы инструкций, например, после условия или слова else в инструкции if |
Extra parameter in call to (лишний параметр при вызове функции) |
Неверно записана инструкция вызова функции, указан лишний параметр |
Если компилятор обнаружил достаточно много ошибок, то просмотрите все сообщения и устраните сначала наиболее очевидные ошибки и выполните повторную компиляцию. Вполне вероятно, что после этого количество ошибок значительно уменьшится. Это объясняется особенностями синтаксиса языка, когда одна незначительная ошибка может "тащить" за собой довольно большое количество других.