- •Коренькова Татьяна Николаевна
- •Часть 2
- •Практическая часть
- •Типизированные файлы.
- •Нетипизированные файлы.
- •Библеотека graph
- •Практическая часть Основные графические операторы для построения изображений:
- •Процесс построения изображений с помощью графических процедур разбивается на отдельные этапы:
- •Пример программы построения графика функции.
- •Практическая часть
- •Практическое занятие №24. Изучение интегрированной среды разработчика.
- •Ход работы
- •1. Загрузите систему визуального программирования Delphi.
- •Закройте окно программы Forml, минимизируйте главное окно Delphi и создайте на рабочем диске папку с названием группы, а в ней папку, названную вашей фамилией. Снова активизируйте окно Delphi.
- •Сохраните созданную программу в своей папке.
- •6. Визуально ознакомьтесь со свойствами формы Left, Тор, Width и Height.
- •7. Исследуйте, как изменение значений свойств Left, Тор, Width или Height формы в окне ObjectInspector ведет к изменению расположения или размера формы.
- •8. Измените цвет фона формы.
- •Выполните программу еще раз (см. Пункт 3).
- •Вставьте в форму текстовое поле (объект типа Label) с текстом «Анкета студента».
- •12. Вставьте в форму объект типа Image (картинка).
- •13. Вставьте свою портретную фотографию с помощью свойства Picture (иллюстрация) объекта Imagel.
- •14. Наложите свою художественную фотографию на портретную, вставив в форму еще один объект типа Image.
- •15. Поэкспериментируйте со свойством Visible (видимость) двух изображений, каждый раз выполняя программу (см. Пункт 3).
- •16. Вставьте в форму кнопки для поочередного отображения наложенных одна на другую фотографий - два объекта типа Button с названиями Buttonl и Button2.
- •17. Запрограммируйте кнопку «Портретная фотография» так, чтобы после ее нажатия в форме появлялась портретная фотография.
- •18. Запрограммируйте кнопку «Художественная фотография» соответственно ее назначению (см. Пункт 17).
- •Запустите программу и убедитесь, что кнопки выполняют свои функции. Закройте окно программы «Анкета студента».
- •Создайте ехе-файл проекта
- •Практическое занятие №25 Создание простого проекта. Задачаобобменевалюты
- •Ход работы
- •1. Вставьте в форму два объекта типа RadioButton (переключатель), как показано на рис. 7.
- •2. Задайте начальное значение второго переключателя как активное.
- •16. Запустите программу и убедитесь, что переключатели выполняют предписанные им функции.
- •17. Запрограммируйте кнопку «Выход».
- •18. Запрограммируйте кнопку «Вычислить».
- •24. Создайте ехе-файл Вашей программы.
- •25. Закройте среду Delphi, запустите созданную программу и выполните вычисления для разных входных данных.
- •26. Продемонстрируйте созданную форму преподавателю. За- кончите работу.
- •Практическое занятие №26 Объявление класса, создание экземпляров класса.Задачатабулированияфункции Объекты Memo, MainMenu, PopupMenu, CheckBox, GroupBox. Программирование циклов
- •Ход работы
- •Загрузите среду визуального программирования Delphi.
- •Поменяйте заголовок (Caption) формы с «Forml» на «Табулирование функции» (без кавычек) и увеличьте размеры формы в вертикальном направлении.
- •Смените пиктограмму в левом Верхнем углу формы, указав конкретный файл с рисунком пиктограммы в поле значения свойства Icon (пиктограмма) формы.
- •21. Запрограммируйте команду «Табулировать».
- •Практическое занятие №27 Создание наследованного класса. Задачаобиржеценныхбумаг
- •Ход работы
- •8. В окне текста программы перед разделом implementation введите описание констант и переменных программы:
- •10. В окне текста программы после раздела implementation введите описание метода Refresh формы.
- •Сохраните выполненную на данный момент работу в своей папке.
- •Практическое занятие №28 Перегрузка методов. Задачаотелефонномсправочнике
- •Ход работы
- •8. Сохраните выполненную на данный момент форму в своей папке.
- •9. С помощью мыши задайте ширину столбцов таблицы, на- пример так, как показано на рис. 16.
- •10. Добавьте на форму главное меню и введите названия его команд, как показано на рис. 16 и рис. 17.
- •11. Создайте окно формы «о программе» (см. Рис. 18).
- •Сохраните работу и запустите проект на выполнение.
- •18. Добавьте на форму два объекта - стандартные диалоги Windows для открытия и сохранения файлов.
- •19. Запрограммируйте процедуры открытия и сохранения фай- лов телефонного справочника (команды главного меню «Прочитать из файла» и «Записать в файл»).
- •20. Напишите процедуру создания формы.
- •21. Напишите процедуру заполнения полей редактирования NewEdit.
- •22. Напишите процедуру заполнения комбинированного списка NewComboBox.
- •Сохраните работу, запустите программу, заполните таблицу данными и убедитесь в том, что программа правильно записывает на диск и считывает с диска файлы телефонных справочников.
- •Запрограммируйте команду главного меню «Сохранить изменения в списке записей».
- •Практическое занятие №29 Создание проекта с использованием кнопочных компонентов.
- •Ход работы
- •5. Дважды щелкните на первом таймере и запрограммируйте мигание сообщения «Обязательно нажмите на кнопку «Готово» после размещения рисунков!!» так:
- •6*. Введите описание глобальных переменных программы:
- •6**. Введите описания глобальных констант и переменных программы:
- •Аналогично запрограммируйте соответствующие события для перетягивания двух других рисунков.
- •Создайте еще один метод формы tForml — функцию ImagelnShape для проверки расположения рисунка (объекта Image) в середине некоторой геометрической фигуры (объекта Shape).
- •11*. Запрограммируйте кнопку "Готово", проверяющую правильность расположения рисунков в середине фигур и выводящую информационное окно с сообщением "Правильно!" или "Неправильно!":
- •11**.Запрограммируйте кнопку "Готово", проверяющую правильность расположения рисунков в середине фигур:
- •Сохраните программу и проект в своей папке.
- •Запустите программу. Перетягивайте мышью рисунки на середину соответствующих фигур.
- •Создайте ехе-файл программы и поупражняйтесь с ней.
- •Упражнения. Совершенствование проекта
- •Практическое занятие №31 Создание проекта с использованием компонентов ввода и отображения чисел, дат и времени. Калькулятор
- •Постановка задачи.
- •Ход работы.
- •Упражнения. Совершенствование проекта.
- •Практическое занятие №33 Разработка оконного приложения. Создание новых форм с меню, геометрическими фигурами, палитрой и со шкалой.
- •Практическое занятие №34 Разработка оконного приложения с несколькими формами. Разработка проекта Halfbottle.
- •Постановка задачи.
- •Ход работы
- •Упражнения. Совершенствование проекта.
- •Практическое занятие №35 Разработка многооконного приложения. Проект “Худой или полный?”.
- •Упражнения
- •Сообщения и коды ошибок
- •50. Do expected (Нуженоператор do).
- •54. Of expected (Требуется of).
- •55. Interface expected (Требуется интерфейсная секция).
- •57. Then expected (Требуется then).
- •58. To or downto expected (ТребуетсяТОили downto).
- •73. Implementation expected (Отсутствует исполняемая часть модули).
- •102. String constant expected (Нужнаконстантастроковоготипа).
- •106. Character expression expected (Предшествующее выражение должна иметь символьный тип).
- •161. Code generation error (Ошибка генерации кода).
- •162. Asm expected (Отсутствует зарезервированное слово asm). Ошибки, возникающие во время выполнения программ
- •Ошибки ввода-вывода
- •Критические ошибки
- •Фатальные ошибки
- •Литература
Сообщения и коды ошибок
Среда Турбо Паскаля дает исчерпывающую информацию о характере и месте обнаруженной компилятором ошибки. При обнаружении ошибки среда автоматчики загружает в окно редактора исходный файл и помещает курсор около того места, где в исходном тексте обнаружена ошибка. При этом в верхней строке редактора появляется диагностическое сообщение. После нажатия на любую клавишу (кроме F1) верхняя строка восстанавливает свой первоначальный вид, и среда переходит к режиму редактирования. Если после появления сообщения об ошибке нажать F1, на экране появится окно справочной службы с легальной информацией об ошибке и рекомендациями по ее устранению. Некоторые ошибки в исходном тексте обнаруживаются не сразу, а в ходе продолжающегося контекстного разбора. Например, несоответствие типов в операторе присваивания не может быть обнаружено до тех пор, пока не будет вычислено целиком выражение в правой части этого оператора. В таких случаях ищите ошибку слева от курсора или в предыдущей строке текста.
Ниже приводятся сообщения об ошибках в том виде, в каком они появляются в верхней строке редактора, а также перевод сообщений справочной службы.
1. Out of memory (Выход за границы памяти). Компилятору не хватает памяти. Имеется ряд возможных решений этой проблемы:
если в опции COMPILE / DESTINATION установлено значение MEMORY, замените эту опцию на DISK;
если в опции OPTIONS / LINKER / LINK BUFFER установлено значение MEMORY, замените эту опцию на DISK;
если Вы используете резидентные обслуживающие программы, такие как SIDEKICK, NORTON, удалите их из памяти;
если Вы используете интегрированную среду TURBO.EXE, то попробуйте воспользо-ваться компилятором ТРС.ЕХЕ - он занимает меньше памяти.
Если ни одна из рекомендаций не помогает, то, возможно, Ваша программа просто слишком велика, чтобы компилировать ее в таком объеме памяти. В этом случае Вы должны разбить ее на два или более модулей.
2. Identifier expected (He указанидентификатор). В том месте должен находиться идентификатор. Возможно, Вы пытаетесь использовать в качестве идентификатора зарезервированное слово.
3. Unknown identifier (Неизвестный идентификатор). Этот идентификатор не был описан.
4. Duplicate identifier (Двойной идентификатор). Попытка дважды описать один и тот же идентификатор.
5. Syntax error (Синтаксическая ошибка). В исходном тексте найден недопустимый символ. Возможно, Вы забили заключить в апострофы строковую константу.
6. Error in real constant (Ошибка в вещественной константе). Синтаксис констант вещественного типа
7. Error in integer constant (Ошибка в целой константе.). Учтите, что после целых действительных чисел, превышающих диапазон представления целых чисел (-214748З648…+2147483647), должны ставиться точка и ноль, например, 12345678912.0.
8. String constant exceeds line (Строковая константа превышает допустимые размеры). Вероятно, Вы забыли поставить апостроф в конце строковой константы.
9. Too many nested files (Слишком много вложенных файлов). Компилятор допускает не более пяти уровней вложенности включаемых файлов (т.е. в исходном файле есть ссылка на включаемый файл, в котором есть ссылка на еще одни включаемый файл и т.д.).
10. Unexpected end of file (He найденконецфайла).Вы могли получить это сообщение об ошибке по одной из следующих причин:
Ваш исходный файл закончился перед последним END основного раздела операторов;
вероятно, в Вашей программе неодинаковое количество операторов BEGIN и END;
включаемый файл заканчивается в середине раздела операторов;
каждый раздел операторов должен целиком помещаться в одном файле;
Вы не закончили комментарий.
11. Line too long (Слишком длинная строка).Максимальная длина строки, обрабатываемой компилятором, равна 126 символам (обратите внимание: редактор среды может обрабатывать строки практически неограниченной длины).
12. Type identifier expected (Здесь нужен идентификатор типа). Не указан тип идентификатора.
13. Too many open files (Слишком много открытых файлов) .Появление такой ошибки означает, что конфигурационный файл CONFIG.SYS операционной системы не включает параметр FILES=xx или этот параметр указывает слишком мало файлов. Увеличьте число файлов до нужного значения, например, до 80.
14. Invalid file name (Неверное имя файла). Имя файла неверно или указан несуществующий путь.
15. File not found (Файлненайден).Файл не был найден в просмотренных каталогах.
16. Disk full (Диск заполнен). Удалите некоторые файлы или воспользуйтесь новым диском.
17. Invalid compiler directive (Неправильная директива компилятора). Неверная буква в директиве компилятора, один из параметров директивы компилятора неверный, или Вы пользуетесь глобальной директивой компилятора, когда компиляция тела программы уже началась.
18. Too many files (Слишком много файлов). В компиляции программы или программного модуля участвуют слишком много файлов. Попытайтесь не использовать так много файлов, например, объединяя включаемые файлы или делая короче имена файлов.
19. Undefined type in pointer definition (Неопределенный тут в объявлении указателя). Попытка объявить типизированный указатель, связанный с ранее не объявленным типом данных.
20. Variable identifier expected (Отсутствует идентификатор переменной). На этом месте должен быть идентификатор переменной.
21. Error in type (Ошибка в объявлении типа). Объявление типа не может начинаться с этого символа.
22. Structure too large (Слишком большая структура). Максимально допустимый размер любого структурного типа составляет 65520 байт.
23. Set base type of range (Базовый тип множества нарушает границы). Базовый тип множества должен представлять собой тип-диапазон с границами в пределах от 0 до 255 или перечисляемый тип с не более чем 256 значениями.
24. File components may not be files (Компонентамифайланемогутбытьфайлы). Конструкции типа file of file (файл файлов) или file of object (файл объектов) не допускаются. Нельм объявлять любые структурные типы, которые используют в качестве компонентов объекты или файлы.
25. Invalid string length (Неверная длина строки). Объявляемая длина строки должна находиться в диапазоне от 1 до 255.)
26. Type mismatch (Несоответствие типов). Это сообщение может быть вызвано следующими причинами:
несовместимые типы переменной и выражения в операторе присваивания;
несовместимые типы фактического и формального параметров в обращении к процедуре или функции;
тип выражения не совместим с типом индекса при индексировании массива;
несовместимые типы операндов в выражении.
27. Invalid subrange base type (Неправильный базовый тип для типа-диапазона). Допустимыми базовыми типами являются все порядковые типы.
28. Lower bound greater than upper bound (Нижняя граница больше верхней). Описание типа-диапазона содержит неправильные границы.
29. Ordinal type expected (Нужен порядковый тип). Вещественные, сороковые, структурные, процедурные типы и указатели в данном месте программы не допускаются.
30. Integer constant expected (Нужнацелаяконстанта).
31. Constant expected (Нужнаконстанта).
32. Integer or real constant expected (Нужнацелаяиливещественнаяконстанта).
33. Type identifier expected (Нуженидентификатортипа)
34. Invalid function result type (Неправильный тип результата функции). Правильными типами результата функции являются все простые типы, строковые типы и указатели.
35. Label Identifier expected (Нуженидентификаторметки).Meтка не обозначена с помощью идентификатора, как это требуется из контекста программы.
36. BEGIN expected (Нужен BEGIN).
37. END expected (Нужен END).
38. Integer expression expected (Нужновыражениетипа INTEGER).
39. Ordinal expression expected (Нужновыражениеперечисляемоготипа).
40. Boolean expression expected (Нужновыражениетипа BOOLEAN).
41. Operand types do not match operator (Типы операндов не соответствуют операции). Данная операция не может быть применена к указанным операндам, например, ' А' div ' 2 ' .
42. Error in expression (Ошибкаввыражении).Данный символ не может участвовать в выражении указанным образом. Возможно, Вы забыли указать операцию между двумя операндами.
43. Illegal assignment (Неверное присваивание). Файлам и нетипизированным переменным нельзя присваивать значения. Идентификатору функции можно присвоить значение только внутри раздела операторов данной функции
44. Field identifier expected (Нуженидентификаторполя). Попытка использовать запись целиком в том месте, где требуется ссылка на какое-либо поле записи.
45. Object file too large (Объектный файл слишком большой). Турбо Паскаль не может компоновать файлы .OBJ больше 64 Кбайт.
46. Undefined external (Неопределенная внешняя процедура). Внешняя процедура или функция не имеет соответствующего определения PUBLIC в объектном файле. Убедитесь, что Вы указали все объектные файлы в директивах {$L <имя .OBJ файла>} и проверьте написание идентификаторов процедуры или функции в файле. ASM.
47. Invalid object file record (Неправильная запись объектного файла). Файл OBJ содержит неверную объектную запись. Убедитесь, что данный файл является действительно файлом .OBJ.
48. Code segment too large (Сегмент кода слишком большой). Максимальный размер кода программы или программного модуля равняется 65520 байтам. Разбейте Вашу программу или модуль на два или более модулей.
49. Data segment too large (Сегмент данных слишком велик). Максимальный размер сегмента данных программы равен 65520 байтам, включая данные, используемые программными модулями. Если Вам нужно большее количество глобальных данных, опишите большие структуры с помощью указателей и выделяйте для них память динамически с помощью процедуры NEW.
