Программирование на языке Pascal
Особенности Pascal:
Строгая типизация — тип каждой переменной должен быть определён явно. Это уменьшает количество ошибок, связанных с неправильным использованием типов данных.
Структурированность — программа состоит из блоков, которые находятся по отношению к ней и друг к другу в строгой подчинённости. При этом отдельные последовательно выполняемые блоки можно объединять в подпрограммы.
Переносимость — программы, написанные на Pascal, могут быть легко перенесены с одной платформы на другую.
Блоки кода обозначаются словами begin и end, а не скобками.
Оператор присваивания := визуально отличается от оператора сравнения =.
Условные конструкции используют говорящие слова if, then, else.
Программа завершается точкой после end.
-
Borland Pascal. Руководство пользователя
Borland Pascal автоматически помещает вам в файл README, когда вы выполняете программу Install. Чтобы получить доступ к файлу README позднее, вы можете использовать программу README Borland Pascal, набрав в командной строке DOS следующие команды:
Введение
Глава 1. Установка и запуск Borland Pascal
Использование программы Install
Программа Install и Windows
Запуск Borland Pascal
Защищенный режим и память
Запуск Borland Pascal for Windows
Запуск BP.EXE в расширенном режиме Windows 386
Запуск BP.EXE в стандартном режиме Windows
Запуск BP.EXE в окне Windows DOS
Жидкокристаллические и плазменные экраны
Файл README
Файлы FILELIST.DOC и HELPME!.DOC
Примеры программ
Borland Pascal. Руководство пользователя
Глава 2. Что нового в Borland Pascal
Три интегрированных интерактивных среды разработки программ
Новые средства IDE
Компилятор командной строки, работающий в защищенном режиме
Среда разработки программ защищенного режима DOS
Динамически компонуемые библиотеки DOS
Добавления к языку Паскаль
Улучшения в библиотеке исполняющей системы
Новые подпрограммы модуля System
Новые модули
Новые директивы компилятора
Усовершенствования компилятора
Улучшения в Turbo Vision
Улучшения ObjectWindows
Новые средства и утилиты
Borland Pascal. Руководство пользователя
Глава 3. Основы интегрированной среды для DOS
Запуск IDE
Компоненты интегрированной среды
Окна IDE
Управление окном
Строка состояния
Диалоговые окна
Borland Pascal. Руководство пользователя
Глава 4. Программирование в интегрированной интерактивной среде для DOS
Запуск IDE и выход из нее
Параметры запуска
Установка параметров запуска в интегрированной среде
Выход из IDE
Использование справочной системы Help
Перемещение в справочной системе
Запрос помощи
Копирование примеров исходного кода
Загрузка других справочных файлов
Выход из справочника Help
Запись и редактирование исходного кода
Настройка конфигурации редактора
Изменение решения: команда Undo
Групповая отмена
Отмена отмены
Работа с блоками текста
Выделение блока
Вырезание, копирование и вставка блоков
Изменение поведения выделенных блоков
Поиск
Поиск и замена
Соответствие пар ограничителей
Переход к строке с заданным номером
Использование локального меню окна редактирования
Выделение синтаксиса
Выбор файлов для выделения
Запрещение выделения синтаксиса
Печать исходного кода
Работа с файлами
Открытие файлов
Открытие файла в позиции курсора
Компиляция и выполнение
Выбор целевой платформы
Компиляция
Формирование (Make)
Построение (Build)
Выполнение
Передача программе параметров
Параметры компилятора и компоновщика
Оптимизация кода
Условная компиляция
Директивы DEFINE и UNDEF
Предопределенные идентификаторы
Идентификаторы IFxxx, ELSE и ENDIF
Директивы IFDEF и IFNDEF
Директива IFOPT
Просмотр исходного кода
Просмотр объектов
Просмотр модулей
Просмотр глобальных идентификаторов
Просмотр идентификаторов в исходном коде
Просмотр функций ObjectBrowser
Выполнение в IDE других программ
Настройка меню Tools
Работа с окном Messages
Настройка конфигурации IDE
Сохранение рабочей операционной среды
Использование файла конфигурации
Использование файла оперативной области
Управление проектом
Borland Pascal. Руководство пользователя
Глава 5. Программирование в интегрированной интерактивной среде для Windows
Запуск IDE для Windows
Использование оперативной полосы
Настройка конфигурации оперативной полосы
Использование справочной системы Help
Перемещение по справочной системе
Запрос помощи
Копирование примеров кода
Выход из справочной системы
Запись и редактирование исходного кода
Настройка конфигурации редактора
Набор команд
Использование редактора
Выделение синтаксиса
Цветовое выделение текста
Использование системных цветов Windows
Изменение атрибутов текста
Печать исходного кода
Работа с файлами
Открытие файлов
Где находятся файлы?
Работа с файлами в другом каталоге
Компиляция и выполнение
Просмотр исходного кода
Просмотр объектов
Буквенные символы в ObjectBrowser
Фильтры
Просмотр глобальных идентификаторов
Просмотр идентификаторов в исходном коде
Выполнение в IDE других программ
Настройка конфигурации IDE
Borland Pascal. Руководство пользователя
Глава 6. Отладка в интегрированной среде
Что такое отладка?
Какие существуют виды ошибок?
Методы отладки
Генерация отладочной информации
Управление выполнением
Что такое шаг?
Выполнение программы по шагам
Трассировка программы
Трассировка или выполнение по шагам?
Выполнение больших фрагментов
Поиск нужного места
Повторное выполнение
Отслеживание вывода программы
Переключение экранов
Окно Output
Использование двух мониторов
Просмотр значений
Что такое выражение?
Просмотр выражений
Спецификаторы формата в выражениях отладчика
Вычисление и модификация
Использование точек останова
Задание точек останова
Отмена точке останова
Модификация точек останова
Создание условный точек останова
Прерывание программы без точек останова
Borland Pascal. Руководство пользователя
Глава 7. Модули Borland Pascal
Что такое модуль?
Структура модуля
Интерфейсная секция
Секция реализации
Секция инициализации
Как используются модули?
Ссылки на описания модуля
Оператор uses секции реализации
Стандартные модули
Создание ваших собственных модулей
Компиляция модуля
Доступность модуля для программы
Пример
Модули и большие программы
Утилита TPUMOVER
Borland Pascal. Руководство пользователя
Глава 8. Использование указателей
Для чего используются указатели?
Работа с большими объемами данных
Работа с данными неизвестного размера
Работа с временными буферами данных
Работа с несколькими типами данных
Связанные списки
Что такое указатель?
Ссылочный тип
Типизированные указатели
Разыменование указателей
Как использовать указатели?
Выделение памяти для динамических переменных
Выделение памяти для динамических переменных - 2
Освобождение памяти, выделенной для динамических переменных
Процедуры GetMem и FreeMem
Проверка объема доступной динамически распределяемой памяти
Общие проблемы использования указателей
Разыменование неинициализированных указателей
Потери динамически распределяемой памяти
Управление связанным списком
Построение списка
Перемещение по списку
Освобождение выделенной для списка памяти
Borland Pascal. Руководство пользователя
Глава 9. Объектно-ориентированное программирование
Объекты
Наследование
Объекты: наследующие записи
Экземпляры объектных типов
Поля объектов
Хорошая и плохая техника программирования
Методы
Совмещенные код и данные
Определение методов
Область действия метода и параметр Self
Поля данных объекта и формальные параметры метода
Объекты, экспортируемые модулями
Секция private
Программирование в "действительном залоге"
Инкапсуляция
Методы: никакого ухудшения
Расширяющиеся объекты
Наследование статических методов
Виртуальные методы и полиморфизм
Раннее связывание против позднего связывания
Совместимость типов объектов
Полиморфические объекты
Виртуальные методы
Проверка диапазонов при вызове виртуальных методов
Расширяемость объекта
Статические методы или виртуальные методы?
Динамические объекты
Размещение и инициализация с помощью процедуры New
Удаление динамических объектов
Деструкторы
Пример размещения динамического объекта
Что же дальше?
Заключение
Borland Pascal. Руководство пользователя
Глава 10. Взгляд на Windows
Что такое приложение Windows?
Преимущества Windows
Требования
Программные средства
Архитектура с управлением по событиям
Графика, независимая от устройств
Многозадачность
Управление памятью
Ресурсы
Динамическая компоновка
Буфер вырезанного изображения
Динамический обмен данными
Множественный документальный интерфейс
Типы данных Windows
Объектно-ориентированная работа с окнами
Лучший интерфейс с Windows
Интерфейсные объекты
Абстрагирование функций Windows
Автоматизация ответа на сообщения
Структура программы Windows
Структура Windows
Взаимодействие с Windows и DOS
Элементарная программа
Действия программы при запуске
Назначение основного окна
Цикл разработки прикладной программы
Изучение ObjectWindows
-
Pascal 7 & Objects
В данном руководстве вы найдете полную документацию по ObjectWindows - объектно-ориентированной прикладной среде для Microsoft Windows. Здесь описываются не только то, что может делать ObjectWindows и как, но и почему. Вы поймете, что ObjectWindows - это наиболее быстрый путь построения развитых и многофункциональных приложений Windows.
Хотя в данном руководстве поясняется, как работает Windows, и как с ней взаимодействуют ваши прикладные программы, оно не охватывает все аспекты программирования с использованием прикладного программного интерфейса Windows (API). Эти подробности вы можете узнать в других книгах о программировании в Windows.
ObjectWindows позволит вам избежать утомительных и трудоемких задач, связанных с разработкой традиционных приложений Windows. Тем не менее вы будете иметь доступ ко всем имеющимся в Windows средствам, но иметь дело с Windows вам придется только когда вы этого захотите. Все остальное делает за вас ObjectWindows.
Что такое ObjectWindows?
Для чего предназначена ObjectWindows?
Что нужно знать
Как работать с данным руководством
О чем рассказывается в данном руководстве
Глава 1. Знакомство с Windows
Шаг 1: Создание базового приложения
Требования к приложению
Определение типа приложения
Инициализация основного окна
Объект основного окна
Что такое объект окна?
Описатели
Порождающие и дочерние окна
Создание нового типа окна
Реакция на сообщения
Завершение прикладной программы
Переопределение CanClose
Дальнейшее изменение закрытия
Глава 2. Заполнение окна
Шаг 2: Отображение текста в окне
Вывод в контексте дисплея
Что такое контекст дисплея?
Получение контекста дисплея
Использование контекста дисплея
Освобождение контекста дисплея
Координаты Windows
Параметры сообщений
Очистка окна
Шаг 3: Изображение линий в окне
Буксировка линии
Сообщения wm_MouseMove
Реакция на сообщения буксировки
Изображение точек и линий
Перехват "мыши"
Изменение размера пера
Отслеживание размера пера
Получение пера нового размера
Глава 3. Меню и диалоговые ресурсы
Шаг 4: Добавление строки меню
Ресурсы меню
Загрузка ресурса меню
Перехват сообщений меню
Определение методов реакции на команду
Связывание клавиш с командами
Реакция на команды меню
Добавление диалогового блока
Добавление поля объекта
Шаг 5: Добавление диалогового блока
Создание ресурсов диалогового блока
Идентификаторы управляющих элементов
Построение объекта диалогового блока
Выполнение диалогового блока
Режимные и безрежимные диалоговые блоки
Глава 4. Работа с диалоговым блоком
Шаг 6: Изменение атрибутов пера
Создание объекта пера
Создание сложного диалогового блока
Управляющие объекты
Использование интерфейсных объектов
Конструктор InitResource
Создание буфера передачи
Передача данных
Чтение возвращаемых значений
Вызов диалогового блока пера
Pascal 7 & Objects
Глава 5. Повторное отображение графики
Шаг 7: Вывод на экран графики
Изображение и рисование
Сохранение графики в объектах
Добавление поля объекта
Определение объекта линии
Изменение методов работы с "мышью"
Вывод сохраненной графики
Шаг 8: Сохранение рисунка в файле
Отслеживание состояния
Сохранение и загрузка файлов
Шаг 9: Печать графического образа
Построение объекта принтера
Создание объекта распечатки
Запись в контекст устройства
Создание распечатки окна
Вывод распечатки
Выбор другого принтера
Глава 6. Вывод всплывающего окна
Шаг 10: Добавление всплывающего окна
Добавление к окну дочернего окна
Построение окна палитры
Назначение порождающего окна
Создание элементов экрана
Вывод и сокрытие палитры
Шаг 11: добавление специализированных управляющих элементов
Добавление к палитре командных кнопок
Объекты управляющих элементов как поля
Работа с управляющими элементами
Сокрытие вместо закрытия
Разрешение специализированных управляющих элементов
Создание для командных кнопок графических изображений
Нумерация ресурсов графических изображений
Шаг 12: Создание специализированного управляющего элемента окна
Динамическое изменение размеров палитры
Реакция на события управляющих элементов
Имена методов реакции на сообщения управляющих элементов
Добавление "кнопок" палитры
Определение объекта палитры
Создание и уничтожение палитры
Размещение в порождающем окне
Добавление и удаление перьев
Отображение содержимого палитры
Выбор перьев с помощью "мыши"
Что дальше?
Многодокументальный интерфейс
Сглаживание линий
Отмена
Поведение палитры
Прокрутка
Глава 7. Иерархия ObjectWindows
Соглашения Windows
Имена объектов
Имена методов
Обзор объектов
Иерархия объектов
Файлы ObjectWindows
Файлы ресурсов
Файлы Windows 3.1
Взаимодействие с Windows
Функции API Windows
Вызов в ObjectWindows функций API
Доступ к функциям API
Константы Windows
Записи данных Windows
Комбинирование констант стилей
Типы функций Windows
Функции системного вызова
Pascal 7 & Objects
Глава 8. Объекты приложения
Минимальные требования
Поиск объекта приложения
Минимальное приложение
Методы Init, Run и Done
Конструктор Init
Метод Run
Деструктор Done
Инициализация приложения
Инициализация основного окна
Специальный вывод основного окна
Инициализация первого экземпляра
Инициализация каждого экземпляра
Выполнение приложений
Закрытие приложений
Модификация поведения при закрытии
Глава 9. Интерфейсные объекты
Для чего нужны интерфейсные объекты?
Что делают интерфейсные объекты?
Создание интерфейсных объектов
Допустимость описателя окна
Видимость на экране
Уничтожение интерфейсных объектов
Связь порождающего и дочернего объектов
Список дочерних окон
Построение дочерних окон
Создание дочерних элементов экрана
Уничтожение дочерних окон
Запрещение автоматического создания
Итерация дочерних окон
Поиск определенного дочернего окна
Глава 10. Объекты окон
Что такое объекты окон?
Окна, которые не являются окнами
Где найти объекты окон
Инициализация объектов окон
Установка атрибутов создания
Используемые по умолчанию атрибуты окна
Переопределение используемых по умолчанию атрибутов
Атрибуты порожденного окна
Создание элементов окна
Задание атрибутов регистрации
Классы окон
Используемые по умолчанию атрибуты регистрации
Регистрация нового класса
Изменение имени класса
Определение новых атрибутов регистрации
Использование специализированных окон
Использование окон редактирования
Использование файловых окон
Прокрутка содержимого окон
Что такое объект прокрутки?
Задание для окна объекта прокрутки
Пример прокрутки
Запрещение автоматической прокрутки
Отслеживание полос прокрутки
Модификация единиц прокрутки и диапазона
Изменение позиции прокрутки
Установка размеров страницы
Оптимизация методов Paint для прокрутки
Глава 11. Объекты диалоговых блоков
Использование объектов диалоговых блоков
Построение объекта
Вызов конструктора
Выполнение диалоговых блоков
Режимные и безрежимные диалоговые блоки
Выполнения режимных диалоговых блоков
Выполнение безрежимных диалоговых блоков
Работа с безрежимными диалоговыми блоками
Завершение диалогов
Работа с управляющими элементами
Взаимодействие с управляющим элементом
Пример связи
Ассоциирование объектов управляющих элементов
Использование диалоговых окон
Использование предопределенных диалоговых окон
Использование диалоговых блоков ввода
Файловые диалоговые блоки
Инициализация файлового диалогового блока
Выполнение файловых диалоговых блоков
Pascal 7 & Objects
Глава 12. Объекты управляющих элементов
Где можно использовать объекты управляющих элементов?
Что такое объекты управляющих элементов?
Построение и уничтожение объектов управляющих элементов
Построение объекта управляющего элемента
Вызов конструкторов объектов управляющих элементов
Присваивание полям объекта
Изменение атрибутов объекта управляющего элемента
Инициализация управляющего элемента
Сохранение управляющих элементов
Уничтожение управляющих элементов
Связь с управляющими элементами
Работа с управляющими элементами окна
Реакция на управляющие элементы
Действие, аналогичное диалоговому блоку
Использование конкретных управляющих элементов
Использование блока списка
Построение объектов блока списка
Модификация блоков списка
Реакция на блок списка
Пример программы: LBoxTest
Использование статических управляющих элементов
Построение статических управляющих элементов
Пример программы StatTest
Использование командных кнопок
Построение командных кнопок
Реакция на командные кнопки
Использование блоков выбора
Построение кнопок с зависимой и независимой фиксацией
Модификация блоков выбора
Опрос блоков выбора
Использование групповых блоков
Построение групповых блоков
Группирование управляющих элементов
Реакция на групповые блоки
Пример программы: BtnTest
Использование полос прокрутки
Построение полос прокрутки
Управление диапазоном полосы прокрутки
Управление параметрами полосы прокрутки
Опрос полосы прокрутки
Модификация полос прокрутки
Реакция на полосы прокрутки
Пример программы: SBarTest
Использование управляющих элементов редактирования
Построение управляющих элементов редактирования
Использование буфера вырезанного изображения и меню Edit
Опрос управляющих элементов редактирования
Модификация управляющих элементов редактирования
Пример программы: EditTest
Использование комбинированных блоков
Три типа комбинированных блоков
Выбор типа комбинированного блока
Построение комбинированных блоков
Модификация комбинированных блоков
Пример программы: CBoxTest
Установка значений управляющих элементов
Для чего используется буфер передачи?
Определение буфера передачи
Определение окна
Использование буфера передачи с диалоговым блоком
Использование буфера передачи с окном
Передача данных
Передача данных в окно
Передача данных из диалогового окна
Передача данных из окна
Поддержка передачи для специализированных управляющих элементов
Пример программы: TranTest
Использование специализированных управляющих элементов
Специализированные управляющие элементы Borland для Windows
Использование стандартных BWCC
Средства BWCC
Расширение BWCC
Создание ваших собственных специализированных управляющих элементов
Глава 13. Проверка допустимости данных
Три вида проверки допустимости данных
Фильтрация ввода
Проверка допустимости каждого поля
Проверка допустимости полных экранов
Использование механизма проверки допустимости данных
Построение объектов проверки допустимости
Добавление к управляющим элементам редактирования средств проверки допустимости
Как работает проверка допустимости
Методы объекта проверки допустимости
Проверка допустимости данных
Проверка полной строки
Проверка допустимости нажатий клавиш
Сообщение о недопустимых данных
Стандартные средства проверки допустимости
Абстрактный объект проверки допустимости
Фильтрация
Проверка диапазона
Проверка допустимости с просмотром
Просмотр строк
Проверка допустимости по шаблону
Pascal 7 & Objects
Глава 14. Объекты MDI
Меню дочернего окна
Дочерние окна MDI
Окна MDI в ObjectWindows
Построение приложения MDI
Построение рамки MDI
Создание меню дочерних окон
Создание дочерних окон MDI
Автоматические дочерние окна
Управление дочерним окном MDI
Настройка активизации дочернего окна
Обработка сообщений в приложении MDI
Пример приложения MDI
Глава 15. Объекты печати
Почему печать представляет трудности?
Печать в ObjectWindows
Построение объекта принтера
Создание распечатки
Печать документа
Задание параметров печати
Подсчет страниц
Печать каждой страницы
Указание оставшихся страниц
Другие соглашения по печати
Печать содержимое окна
Вывод распечатки на принтер
Выбор другого принтера
Выбор принтера пользователем
Назначение конкретного принтера
Глава 16. Сообщения Windows
Что такое сообщение?
Именующие сообщения
Откуда поступают сообщения
Обычная диспетчеризация сообщений
Способ, предлагаемый ObjectWindows
Динамические виртуальные методы
Написание методов реакции на сообщение
Что такое сообщение?
Поля параметров
Поле Result
Объектно-ориентированная обработка сообщения
Отмена поведения по умолчанию
Замена поведения по умолчанию
Дополнение поведения по умолчанию
Вызов наследуемых методов
Вызов процедур, используемых по умолчанию
Командные, уведомляющие и управляющие идентификаторы
Командные сообщения
Уведомляющие сообщения
Уведомления управляющих элементов
Уведомление порождающего объекта
Уведомления управляющих элементов и порождающих объектов
Определение ваших собственных сообщений
Передача сообщений
Передача и отправление сообщений
Передача сообщения
Отправление сообщения
Передача сообщения управляющему элементу
Диапазоны сообщений
Pascal 7 & Objects
Глава 17. Интерфейс с графическими устройствами
Запись на устройство вывода
Чем отличаются контексты устройства?
Управление контекстом дисплея
Работа с контекстом дисплея
Что содержится в контексте устройства?
Побитовая графика
Изобразительные средства
Цвет
Режимы отображения
Обрезание областей
Инструментальные средства рисования
Основные инструментальные средства
Логические инструментальные средства
Логические перья
Логические кисти
Логические шрифты
Использование изобразительных инструментальных средств
Отображение графики в окнах
Изображение окон
Стратегия графики
Рисование в окнах
Графические функции GDI
Функции изображения текста
Функции рисования линий
Изображение фигур
Использование палитр
Установка палитры
Рисование с палитрами
Запрос палитры
Модификация палитры
Реакция на изменения палитры
Глава 18. Более подробно о ресурсах
Создание ресурсов
Добавление ресурсов к выполняемой программе
Загрузка ресурсов в приложение
Загрузка меню
Загрузка оперативных клавиш
Загрузка блоков диалога
Загрузка курсоров и пиктограмм
Загрузка строковых ресурсов
Загрузка графических изображений
Использование побитовых отображений для создания кистей
Отображение графических изображений в меню
Pascal 7 & Objects
Глава 19. Наборы
Объекты наборов
Динамическая установка размеров наборов
Полиморфизм наборов
Проверка типа и наборы
Объединение в набор элементов, не являющихся объектами
Создание набора
Методы итератора
Итератор ForEach
Итераторы FirstThat и LastThat
Отсортированные наборы
Наборы строк
Пересмотренные итераторы
Полиморфические наборы
Наборы и управление памятью
Глава 20. Потоки
Вопрос: объектный ввод-вывод
Ответ: потоки
Полиморфизм потоков
Потоки обрабатывают объекты
Смысл использования потоков
Чтение из потока и запись в поток
Закрытие потока
Как сделать объекты потоковыми
Методы загрузки и хранения
Регистрация потока
Номера идентификаторов объектов
Автоматические поля
Регистрация на месте
Регистрация стандартных объектов
Механизм потока
Процесс Put
Процесс Get
Обработка указателей объектов со значением nil
Наборы в потоке: пример
Добавление методов Store
Регистрация записей
Регистрация
Запись в поток
Как все хранится?
Поля в потоке
Родство экземпляров окон
Копирование потока
Потоки произвольного доступа
Необъектные элементы потоков
Разработка пользователем собственных потоков
Обработка ошибок потока
-
Turbo Pascal (Borland Pascal) 7.0. Руководство пользователя
Большинство программ создаются для решения какой-либо задачи. В процессе ее решения на ПК необходимо: ввести данные, указать способ их обработки, задать способ вывода полученных результатов. Поэтому нужно знать следующее:
* Как ввести информацию в память (ввод).
* Как хранить информацию в памяти (данные).
* Как указать правильные команды для обработки данных (операции).
* Как передать данные из программы пользователю (вывод).
Некоторые зарезервированные слова версии Турбо Паскаль
Величины в Паскале
Структура программы
Арифметические операции и стандартные функции
Арифметические операции
Операции отношения
Стандартные математические функции
Логические операции
Введение
Ввод и вывод данных
Ввод данных с клавиатуры
Вывод данных
Вывод точки
Цветовая шкала
Вывод линии
Таблица 2
Tаблица 3
Графика в Турбо Паскале
Базовые процедуры и функции
Процедуры модуля Graph
Функции модуля Graph
Экран и окно в графическом режиме
Одномерные массивы
Двумерные массивы
Общие сведения
Оператор присваивания
Оператор вызова процедуры
Оператор безусловного перехода
Пустой оператор
Построение графиков функций
Построение прямоугольников
Построение многоугольников
Построение дуг и окружностей
Стандартные стили заполнения
Циклы в графике. Построение случайных процессов
Вывод текста
Вывод численных значений
Шрифты
Стандартные шрифты
Выравнивание текста
Параметры выравнивания
Символьные величины
Строковые величины
Создание иллюзии движения
Стандартные библиотечные модули
Процедуры
Функции
Структурные операторы
Составной оператор
Условные операторы
Операторы повтора (цикла)
Типы данных
Целочисленные типы данных
Вещественные типы данных
Символьный тип
Логический тип
-
Изучение принципов алгоритмического программирования на языке Pascal
С точки зрения программирования, алгоритм – средство описания абстракции процесса. В процессе эволюции различных языков программирования были выявлены общие черты и элементы, присущие многим языкам. На самом высоком уровне абстракции можно говорить, что элементами алгоритма являются
-
Краткая справка по языку программирования Turbo Pascal
Как и любой другой язык программирования (и не только программирования), Турбо Паскаль имеет свой алфавит - набор символов, разрешенных к использованию и воспринимаемых компилятором.
Как видно символы из расшириного набора таблицы ASCII, т.е. символы с номерами от 128 до 255 (а именно в этот диапазон входит алфавит кириллицы), а также некоторые другие символы (!, %, ~, и др.) не входят в алфавит языка. Тем не менее они могут использоваться в тексте программ, но только в виде значений символьных или строковых констант, а также в тексте коментариев.
Лексический состав языка
Идентификаторы (имена)
Служебные (зарезервированные слова)
Неименованные константы (изображения)
Знаки операций
Коментарии
Ключи компиляции (дерективы компилятора)
Численные (арифметические) выражения
Логические выражения
Введение
Система координат устройства
Управление “текущим указателем”
Вывод точки
Таблица 1. Кодировка цвета
Вывод линии
Установка стиля линии
Построение прямоугольников
Построение дуг и окружностей
Заполнение замкнутых областей
Глава 04
Глава 05
Описание констант
Синтаксис описания констант:
Описание переменных
Синтаксис описания переменных:
Описание типизированных констант
Синтаксис описания типизированных констант:
Важно
Описание типов
Простые типы языка
Порядковые типы
Целочисленные типы
Допустимые операции
Логический тип (Boolean)
Символьный тип (Char)
Строковый тип (String, String[n])
Вещественные типы
Допустимые операции
Диапазон
Массив
Общая структура подпрограммы
Процедуры
Функции
Параметры подпрограмм
А) Параметры-значения
Б) Параметры-переменные
В) Параметры-константы
Одно важное замечание
Открытые параметры-массивы
Модуль CRT
Модуль Graph
Модуль Overlay
Глава 10
Форматы вывода данных.
Оператор цикла с предусловием WHILE
Процедуры BREAK, CONTINUE, EXIT и HALT
EXIT
HALT
-
Лекции по построению компилятора на Pascal
Хотя я по образованию и не специалист в компьютерах, я интересовался компиляторами в течение многих лет. Я покупал и старался разобраться с содержимым практически каждой выпущенной на эту тему книги. И, должен признаться, это был долгий путь. Эти книги написаны для специалистов в компьютерной науке и слишком трудны для понимания большинству из нас. Но с течением лет часть из прочитанного начала доходить до меня. Закрепить полученное позволило то, что я начал самостоятельно пробовать это на своем собственном компьютере. Сейчас я хочу поделиться с вами своими знаниями. После прочтения этой книги вы не станете ни специалистом, ни узнаете всех секретов теории конструирования компиляторов. Я намеренно полностью игнорирую большинство теоретических аспектов этой темы. Вы изучите только практические аспекты, необходимые для создания работающей системы.
В течение всей книги я буду проводить эксперименты на компьютере, а вы будете повторять их за мной и ставить свои собственные эксперименты. Я буду использовать Turbo Pascal 4.0 и периодически буду включать примеры, написанные в TP. Эти примеры вы будете копировать себе в компьютер и выполнять. Если у вас не установлен Turbo Pascal вам будет трудно следить за ходом обучения, поэтому я настоятельно рекомендую его поставить. Кроме того, это просто замечательный продукт и для множества других задач!
ОСНОВА
Содержание
ОДИНОЧНЫЕ ЦИФРЫ
ВЫРАЖЕНИЯ С ДВУМЯ ЦИФРАМИ
ОБЩАЯ ФОРМА ВЫРАЖЕНИЯ
ИСПОЛЬЗОВАНИЕ СТЕКА
УМНОЖЕНИЕ И ДЕЛЕНИЕ
КРУГЛЫЕ СКОБКИ
УНАРНЫЙ МИНУС
СЛОВО ОБ ОПТИМИЗАЦИИ
ПЕРЕМЕННЫЕ
ФУНКЦИИ
ПОДРОБНЕЕ ОБ ОБРАБОТКЕ ОШИБОК
ПРИСВАИВАНИЕ
МНОГОСИМВОЛЬНЫЕ ТОКЕНЫ.
ПРОБЕЛЫ
ИНТЕРПРЕТАТОР
НЕМНОГО ФИЛОСОФИИ
ПЛАН
НЕМНОГО ОСНОВ
ОПЕРАТОР IF
ОПЕРАТОР WHILE
ОПЕРАТОР LOOP
REPEAT-UNTIL
ЦИКЛ FOR
ОПЕРАТОР DO
ОПЕРАТОР BREAK
ЗАКЛЮЧЕНИЕ
ГРАММАТИКА
ОПЕРАТОРЫ ОТНОШЕНИЙ
ИСПРАВЛЕНИЕ ГРАММАТИКИ
СИНТАКСИЧЕСКИЙ АНАЛИЗАТОР
ОБЪЕДИНЕНИЕ С УПРАВЛЯЮЩИМИ КОНСТРУКЦИЯМИ
ДОБАВЛЕНИЕ ПРИСВАИВАНИЙ
ЛЕКСИЧЕСКИЙ АНАЛИЗ
КОНЕЧНЫЕ АВТОМАТЫ И АЛЬТЕРНАТИВЫ
ЭКСПЕРИМЕНТЫ ПО СКАНИРОВАНИЮ
ПРОБЕЛ
КОНЕЧНЫЕ АВТОМАТЫ
НОВЫЕ СТРОКИ
ОПЕРАТОРЫ
СПИСКИ, ЗАПЯТЫЕ И КОМАНДНЫЕ СТРОКИ.
СТАНОВИТСЯ ИНТЕРЕСНЕЙ
ВОЗВРАЩЕНИЕ СИМВОЛА
РАСПРЕДЕЛЕННЫЕ СКАНЕРЫ ПРОТИВ ЦЕНТРАЛИЗОВАННЫХ
ОБЪЕДИНЕНИЕ СКАНЕРА И ПАРСЕРА
Пара комментариев:
ДОРОГА ДОМОЙ
ПОЧЕМУ ЭТО ТАК ПРОСТО?
ЗДЕСЬ НЕТ НИЧЕГО СЛОЖНОГО!
ВЕРХНИЙ УРОВЕНЬ
СТРУКТУРА ПАСКАЛЯ
РАСШИРЕНИЕ
ОБЪЯВЛЕНИЯ
СТРУКТУРА СИ
ПОДГОТОВКА
Лекции по построению компилятора на Pascal
ОБЪЯВЛЕНИЯ И ИДЕНТИФИКАТОРЫ
ИНИЦИАЛИЗАТОРЫ
ТАБЛИЦА ИДЕНТИФИКАТОРОВ
ВЫПОЛНИМЫЕ УТВЕРЖДЕНИЯ
БУЛЕВА ЛОГИКА
УПРАВЛЯЮЩИЕ СТРУКТУРЫ
ЛЕКСИЧЕСКИЙ АНАЛИЗ
МНОГОСИМВОЛЬНЫЕ ИМЕНА ПЕРЕМЕННЫХ
СНОВА ОПЕРАТОРЫ ОТНОШЕНИЙ
ВВОД/ВЫВОД
ПРЕДПОСЫЛКА
ПРОБЛЕМА
РЕШЕНИЕ
ИСПРАВЛЕНИЕ КОМПИЛЯТОРА
TINY VERSION 1.1
ТОЧКИ С ЗАПЯТОЙ
СИНТАКСИЧЕСКИЙ САХАР
РАБОТА С ТОЧКАМИ С ЗАПЯТОЙ
КОМПРОМИСС
КОММЕНТАРИИ
ОДНОСИМВОЛЬНЫЕ РАЗДЕЛИТЕЛИ
МНОГОСИМВОЛЬНЫЕ РАЗДЕЛИТЕЛИ
ОДНОСТОРОННИЕ КОММЕНТАРИИ
ПОСЛЕДНЕЕ ОТКЛОНЕНИЕ
ОСНОВЫ
ОСНОВА ДЛЯ ЭКСПЕРИМЕНТОВ
ОБЪЯВЛЕНИЕ ПРОЦЕДУРЫ
ВЫЗОВ ПРОЦЕДУРЫ
ПЕРЕДАЧА ПАРАМЕТРОВ
СЕМАНТИКА ПАРАМЕТРОВ
ПЕРЕДАЧА ПО ЗНАЧЕНИЮ
ЧТО НЕПРАВИЛЬНО?
ПЕРЕДАЧА ПО ССЫЛКЕ
ЛОКАЛЬНЫЕ ПЕРЕМЕННЫЕ
ЧТО БУДЕТ ДАЛЬШЕ?
ДОБАВЛЕНИЕ ЗАПИСЕЙ
РАСПРЕДЕЛЕНИЕ ПАМЯТИ
ОБЪЯВЛЕНИЕ ТИПОВ
ПРИСВАИВАНИЯ
ТРУСЛИВЫЙ ВЫХОД
БОЛЕЕ ПРИЕМЛЕМОЕ РЕШЕНИЕ
ЛИТЕРАЛЬНЫЕ АРГУМЕНТЫ
АДДИТИВНЫЕ ВЫРАЖЕНИЯ
ПОЧЕМУ ТАК МНОГО ПРОЦЕДУР?
МУЛЬТИПЛИКАТИВНЫЕ ВЫРАЖЕНИЯ
УМНОЖЕНИЕ
ДЕЛЕНИЕ
Лекции по построению компилятора на Pascal
ЗАВЕРШЕНИЕ
ПРИВОДИТЬ ИЛИ НЕ ПРИВОДИТЬ
НОВОЕ НАЧАЛО, СТАРОЕ НАПРАВЛЕНИЕ
НАЧИНАЕМ ЗАНОВО?
МОДУЛЬ INPUT
МОДУЛЬ OUTPUT
МОДУЛЬ ERROR
ЛЕКСИЧЕСКИЙ И СИНТАКСИЧЕСКИЙ АНАЛИЗ
МОДУЛЬ SCANNER
РЕШЕНИЯ, РЕШЕНИЯ
СИНТАКСИЧЕСКИЙ АНАЛИЗ
ССЫЛКИ
СОВСЕМ КАК КЛАССИЧЕСКИЙ?
РАСШИРЕНИЕ СИНТАКСИЧЕСКОГО АНАЛИЗАТОРА
ТЕРМЫ И ВЫРАЖЕНИЯ
БУЛЕВА АЛГЕБРА
-
Программирование на языке Pascal
Наш курс посвящен изучению не только языка Pascal, но и некоторых алгоритмов, решающих наиболее известные задачи программирования, поэтому начнем мы со знакомства с некоторыми основополагающими понятиями
Свойства алгоритма
Компиляция, отладка и тестирование
Средства разработки программ
Структура Pascal-программы
Внешний вид исходного текста программы
Комментарии
Директивы компилятора
Идентификаторы
Переменные и типы данных
Константы
Неименованные константы
Нетипизированные константы
Типизированные константы
Простейшие операторы
Метки и безусловный переход
Ввод и вывод: консоль
Ввод с консоли
Вывод на консоль
Форматный вывод
Пример простейшей программы на языке Pascal
Программирование на языке Pascal
Типы данных языка Pascal
Порядковые типы данных
Стандартные подпрограммы, обрабатывающие порядковые типы данных
Типы данных, относящиеся к порядковым
Вещественные типы данных
Конструируемые типы данных
Арифметические операции
Другие операции
Стандартные арифметические функции
Арифметические выражения
Полнота вычислений
Порядок вычислений
Совместимость типов данных
Эквивалентность
Совместимость
Совместимость по присваиванию
Неявное приведение типов данных
Явное приведение типов данных
Функции, изменяющие тип данных
Программирование на языке Pascal
Операторы ветвления
Условный оператор if
Оператор выбора case
Иллюстрация if и case
Массивы
Описание массива
Нумерация
Описание переменных размерностей
Обращение к компонентам массива
Задание массива константой
Операторы циклов
For-to и for-downto
Инкрементный цикл с параметром
Декрементный цикл с параметром
While и repeat-until
Break и continue
Оператор безусловного перехода goto
Пример использования циклов
Вывод массива, удобный для пользователя
Программирование на языке Pascal
Задача сортировки
Простые сортировки
Сортировка простыми вставками
Сортировка бинарными вставками
Сортировка простым выбором
Сортировка простыми обменами
Улучшенные сортировки
Сортировка Шелла
Пирамидальная сортировка
Быстрая сортировка
Программирование на языке Pascal
Символы и строки
Описание строк
Неименованные константы
Нетипизированные константы
Типизированные константы
Операции
Стандартные функции
Стандартные функции и процедуры обработки строк
Сравнения
Обращение к компонентам строки
Конкатенация
Множества
Описание множеств
Неименованная константа
Нетипизированная константа
Типизированная константа
Операции с множествами
Представление множеств массивами
Представление множеств линейными массивами
Представление множеств битовыми массивами
Примеры использования символов, строк и множеств
Программирование на языке Pascal
Ввод и вывод: файлы
Что такое файл
Когда нужно использовать файлы
Разновидности файлов
Описание файлов
Текстовые файлы
Оперирование файлами
Назначение файла
Открытие файла
Закрытие файла
Считывание из файла
Запись в файл
Пробельные символы
Пример использования файлов
Решение
Реализация
Изменение реакции на ошибку
Пример использования директив {$I}
Программирование на языке Pascal
Записи
Описание записей
Задание записей константой
Доступ к полям
Оперирование несколькими полями
Вложенные операторы with
Запись с вариантной частью
Описание записи с вариантной частью
Механизм использования записи с вариантной частью
Бинарные файлы
Типизированные файлы
Описание типизированных файлов
Назначение типизированного файла
Открытие и закрытие типизированного файла
Считывание из типизированного файла
Поиск в типизированном файле
Запись в типизированный файл
Нетипизированные файлы
Описание нетипизированных файлов
Назначение нетипизированного файла
Открытие и закрытие нетипизированного файла
Поиск в нетипизированном файле
Запись и чтение
Подпрограммы обработки директорий
Применимость подпрограмм обработки файлов
Программирование на языке Pascal
Подпрограммы
Объявление и описание
Объявление функции
Объявление процедуры
Описание подпрограммы
Список параметров
Возвращаемые значения
Вызов подпрограмм
Способы подстановки аргументов
Описание
Механизм передачи значения
Описание
Механизм передачи значения
Описание
Механизм передачи значения
Разграничение контекстов
Побочный эффект
Совпадение имен
Нетипизированные параметры
Явное преобразование типа
Совмещение в памяти
Открытые параметры
Открытые массивы
Открытые строки
Процедурный тип данных
Описание
Аргументы
Вызов
Программирование на языке Pascal
Динамические структуры данных
Стек
Операции
Очередь
Операции
Дек
Рекурсия
Рекурсивные подпрограммы
Пример рекурсивного алгоритма
Алгоритм решения
Стековая организация рекурсии
Ограничение глубины рекурсии
Замена рекурсивных алгоритмов итеративными
Пример сравнения рекурсивного и нерекурсивного алгоритма
Рекурсивный алгоритм
Реализация рекурсивного алгоритма
Полный перебор с отсечением
Нерекурсивный алгоритм
Реализация нерекурсивного алгоритма
Иллюстрация
Эффективность
Быстрая сортировка2
Алгоритм Быстр
Реализация алгоритма Быстр
Эффективность алгоритма Быстр
Программирование на языке Pascal
Статически выделяемая память
Адреса
Указатели
Описание указателей
Определение адреса
Разыменование
Присваивания
Сравнения
Динамически распределяемая память
Типизированные указатели
Нетипизированные указатели
Типизированные указатели
Нетипизированные указатели
Списочные структуры
Структура списков
Описание списков
Хранение списка
Обращение к элементам списка
Создание списков
Просмотр элементов списка
Удаление элементов списка
Перестройка списков
Примеры перестройки линейных списков
Реализация
Программирование на языке Pascal
Чуть-чуть истории
Графы: определения и примеры
Неориентированные графы
Ориентированные графы
Взвешенные графы
Способы представления графов
Матрица смежности
Список ребер
Списки смежности
Иерархический список
Деревья
Основные определения
Способы представления деревьев
Представление корневого дерева
Представление бинарного дерева
Примеры использования деревьев
Дерево двоичного поиска
Дерево частотного словаря
Дерево синтаксического анализа
Программирование на языке Pascal
Генерация дерева синтаксического анализа
Построение из инфиксной записи
Алгоритм Infix
Реализация
Построение из префиксной записи
Алгоритм Prefix
Реализация
Построение из постфиксной записи
Алгоритм Postfix
Реализация
Обходы деревьев и графов
Другие названия
Алгоритм PreOrder
Реализация
Прямой обход произвольного связного графа
Другие названия
Алгоритм PostOrder
Реализация
Обратный обход произвольного связного графа
Другие названия
Алгоритм SyntOrder
Реализация
Последовательность обхода
Алгоритм WideOrder
Реализация
Древесная сортировка
Алгоритм TreeSort
Реализация
Подсчет количества компонент связности
Рекурсивный алгоритм
Алгоритм КомпСвяз-Рек
Реализация
Итеративный алгоритм
Алгоритм КомпСвяз-Итер
Реализация
Сравнение алгоритмов КомпСвяз-Рек и КомпСвяз-Итер
Нахождение минимального каркаса
Алгоритм Каркас-Рек
Реализация
Алгоритм Краскала
Реализация
Нахождение кратчайших путей
Алгоритм Расст-Рек
Реализация
Итеративный алгоритм
Алгоритм Дейкстры
Реализация
Сравнение алгоритмов Расст-Рек и Дейкстры
Программирование на языке Pascal
Модульность программ
Стандартные модули языка Pascal
System
Crt
Wincrt
Printer
Winprn
Dos
Windos
Strings
Graph
Overlay
Winapi
Подключение модулей
Создание модульной программы
Структура модуля
Название
Секция внешних связей
Секция реализации
Секция инициализации
Взаимодействие модулей
Компиляция модулей
Пример модуля
Передача аргументов из командной строки
Программирование на языке Pascal
Текстовый режим
Процедуры модуля Crt
Активная область ввода / вывода
Очистка
Цвета
Звук
Позиционирование
Ожидание
Пример использования текстовой графики
Решение
Создание дружественного интерфейса
Заставка
Ввод информации
Приглашения
Защита
Меню
Вывод информации
Пример пользовательского интерфейса
Графический режим
Программирование на языке Pascal
Советы по технологии написания быстро отлаживаемых программ
Имена, имена, имена...
Кусочки, куски и кусищи...
Спасение утопающих - дело рук самих утопающих
Отладка и тестирование
Поиск и исправление ошибок
Правила составления тестов
Оптимизация программ
-
Программирование на языке Turbo Pascal
Постановка задачи включает в себя определение входных и выходных данных, выбор метода решения и языка программирования, подготовка контрольного примера для проверки правильности работы программы.
Сценарий – это описание интерфейса между пользователем программного продукта и персональным компьютером.
Алгоритм – это последовательность действий, приводящих к решению поставленной задачи за конечное число шагов.
Программирование – это перевод алгоритма на выбранный язык программирования, создание текстового файла, который при запуске через соответствующий транслятор выдает решение задачи;
Свойства алгоритма
Элементы блок-схемы
ТЕМА №2: РАБОТА В СРЕДЕ TURBO-PASCAL
ТЕМА№3:ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ
Вещественный
Целый тип
Вещественный тип
Clrscr;
ТЕМА №4: ПРОГРАММИРОВАНИЕ НА
Порядковые типы переменных (дополнительные сведения)
Все имеющиеся символы имеют коды (таблица кодов ASCII).
Пример составного выражения - (X2) and (X=10)
If A=True then y:=1 else y:=1/x;
Целочисленный
Оператор 1, оператор 2 – какой
Возможная форма оператора: if условие then
ТЕМА №5: ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ
Цикл
ТЕМА №6: ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ
ТЕМА №7: ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ
ТЕМА №7: ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ - 4
§ Составить программу Абстракция, которая выводит на экран всевозможные графические фигуры.
ТЕМА №8: ПРОГРАММИРОВАНИЕ НА
Тип массива
Задача MaxMin. Программа для поиска
Сортировка массивов
Сортировка методом «пузырька»
Сортировка методом выбора
Поиск элемента в упорядоченном массиве
ТЕМА №9: ДАННЫЕ ТИПА STRUNG.
ТЕМА №8: ФАЙЛЫ. ТИПИЗИРОВАННЫЕ ФАЙЛЫ. ТЕКСТОВЫЕ ФАЙЛЫ.
§ Пример записи в текстовый файл:
Приложение 1. Структура типов данных
Десятичный код - символ
Приложение 3. Расширенные ASCII –коды клавиш
-
Руководство по языку B.Pascal 7
Данное руководство посвящено используемому в Borland Pascal with Objects языку Паскаль. Оно
* Дает формальное определение языка Borland Pascal.
* Поясняет, как использовать и писать динамически компонуемые библиотеки.
* Знакомит вас с библиотекой исполняющей системы.
* Поясняет, как писать программы для защищенного режима DOS.
* Освещает такие вопросы Borland Pascal, как использование памяти, форматы данных, соглашения по вызову, ввод и вывод и автоматическая оптимизация.
* Описывает, как использовать Borland Pascal с языком ассемблера.
О чем рассказывается в данном руководстве
Глава 1. Что такое программа Borland Pascal?
Программа Borland Pascal
Процедуры и функции
Операторы
Выражения
Лексемы
Типы, переменные, константы и типизированные константы
Компоновка частей
Модули
Синтаксические диаграммы
Глава 2.Лексемы
Специальные символы
Зарезервированные слова и стандартные директивы Borland Pascal
Идентификаторы
Числа
Метки
Строки символов
Комментарии
Строки программы
Глава 3. Константы
Глава 4. Типы
Простые типы
Порядковые типы
Целочисленные типы
Булевские типы
Символьный тип (char)
Перечислимые типы
Отрезки типа
Вещественные типы
Программная поддержка чисел с плавающей точкой
Аппаратная поддержка чисел с плавающей точкой
Строковые типы
Структурные типы
Типы массив
Типы запись
Объектные типы
Компоненты и область действия
Методы
Виртуальные методы
Динамические методы
Создание экземпляров объектов
Активизация методов
Активизация уточненных методов
Множественные типы
Файловые типы
Ссылочные типы
Тип Pointer
Тип PChar
Процедурные типы
Процедурные значения
Совместимость типов
Тождественные и совместимые типы
Тождественность типов
Совместимость по присваиванию
Раздел описания типов
Описания переменных
Сегмент данных
Сегмент стека
Абсолютные переменные
Ссылки на переменные
Квалификаторы
Массивы, строки и индексы
Записи и десигнаторы полей
Десигнаторы компонентов объекта
Переменные-указатели и динамические переменные
Приведение типов переменных
Типизированные константы
Константы простого типа
Константы строкового типа
Константы структурного типа
Константы типа массив
Константы типа запись
Константы объектного типа
Константы множественного типа
Константы ссылочного типа
Константы процедурного типа
Глава 6. Выражения
Синтаксис выражений
Операции
Арифметические операции
Унарные арифметические операции
Логические операции
Булевские операции
Операция со строками
Операции над символьными указателями
Операции над множествами
Операции отношения
Сравнение простых типов
Сравнение строк
Сравнение упакованных строк
Сравнение указателей
Сравнение символьных указателей
Сравнение множеств
Проверка на принадлежность к множеству
Операция @
Использование операции @ для переменной
Использование операции @ для процедуры или функции или метода
Вызовы функции
Описатели множества
Приведение типа значений
Процедурные типы в выражениях
Процедурные типы в выражениях - 2
Глава 7. Операторы
Простые операторым
Оператор присваивания
Операторы процедуры
Операторы перехода
Структурные операторы
Составные операторы
Условные операторы
Оператор условия (if)
Оператор варианта (case)
Оператор цикла
Оператор цикла с постусловием (repeat)
Операторы цикла с предусловием (while)
Операторы цикла с параметром (for)
Оператор with
Глава 8. Блоки, локальность и область действия
Синтаксис
Правила для области действия
Область действия для блока
Область действия записи
Область действия объекта
Область действия модуля
Глава 9. Процедуры и функции
Описания near и far
Описания export
Описания interrupt
Описание forward
Описания external
Описания assembler
Описания inline
Описания функций
Описания методов
Конструкторы и деструкторы
Восстановление ошибок конструктора
Параметры
Параметры-значения
Параметры-константы
Параметры-переменные
Нетипизированные параметры
Открытые параметры
Открытые строковые параметры
Открытые параметры-массивы
Динамические переменные объектного типа
Процедурные переменные
Руководство по языку B.Pascal 7
Параметры процедурного типа
Синтаксис программ
Заголовок программы
Оператор uses
Синтаксис модулей
Заголовок модуля
Интерфейсная секция
Секция реализации
Секция инициализации
Косвенные ссылки на модули
Перекрестные ссылки на модули
Совместное использование описаний
Глава 11. Динамически компонуемые библиотеки
Что такое DLL?
Использование DLL
Модули импорта
Статический и динамический импорт
Написание DLL
Директива процедуры export
Оператор exports
Код инициализации библиотеки
Замечания по программированию библиотек
Глобальные переменные в DLL
Глобальные переменные и файлы в DLL
DLL и модуль System
Ошибки этапа выполнения в DLL
DLL и сегменты стека
Создание совместно используемых DLL
Часть II. Глава 12. Библиотеки исполняющей системы
Модули Borland Pascal
Модуль System
Модуль Dos и WinDos
Модуль Crt
Модуль WinCrt
Модуль Printer
Модуль WinPrn
Модуль Overlay
Модуль Strings
Модуль Graph
Модули Turbo3 и Graph3
Модули WinTypes и WinProcs
Модуль Win31
Модуль WinAPI
Модули, поддерживающие Windows 3.1
Глава 13. Стандартные процедуры и функции
Процедуры управления работой программы
Функции преобразования
Арифметические функции
Порядковые процедуры и функции
Строковые процедуры и функции
Процедуры и функции динамического распределения памяти
Функции для работы с указателями и адресами
Прочие процедуры и функции
Предописанные переменные
Глава 14. Ввод и вывод
Файловый ввод-вывод
Текстовые файлы
Нетипизированные файлы
Переменная FileMode
Устройства в Borland Pascal
Устройства DOS
Устройство CОN
Устройства LРT1, LРT2 и LРT3
Устройства CОМ1 и CОМ2
Устройство NUL
Устройства, предназначенные для текстовых файлов
Ввод и вывод с помощью модуля Crt
Использование модуля CRT
Окна CRT
Ввод строк
Процедуры и функции модуля Crt
Константы и переменные модуля Crt
Ввод и вывод с помощью модуля WinCrt
Использование модуля WinCrt
Переменные модуля WinCrt
Печать из программы Windows
Изменение заголовков
Изменение шрифтов
Остановка задания печати
Процедуры и функции модуля WinPrn
Функция Open
Функция InOut
Функция Flush
Функция Clоsе
Глава 15. Использование сопроцессора 80x87
Типы данных процессора 80x87
Арифметические операции с повышенной точностью
Сравнение вещественных чисел
Стек вычислений сопроцессора 80x87
Запись вещественных чисел при использовании сопроцессора 80x87
Модули, в которых используется сопроцессор 80x87
Распознавание сопроцессора 80х87 в программах DOS
Распознавание сопроцессора 80x87 в программе Windows
Использование эмуляции сопроцессора 80x87 на языке ассемблера
Глава 16. Модуль Dоs
Процедуры и функции модуля Dos
Константы, типы и переменные модуля Dos
Типы
Переменные модуля Dos
Процедуры и функции модуля WinDos
Константы, типы и переменные модуля WinDos
Переменные модуля WinDos
Глава 17. Программирование в защищенном режиме DOS
Что такое защищенный режим?
Расширения Borland защищенного режима DOS
DPMI-сервер
Администратор этапа выполнения
Разработка прикладных программ DOS защищенного режима
Надежное программирование в защищенном режиме
Загрузка в сегментные регистры недопустимых значений
Функция Ptr и массивы Mem
Операции с сегментами
Использование сегментных регистров в качестве временных переменных
Доступ к памяти вне границ сегмента
Запись в сегмент кода
Разыменование указателей nil
Сегменты кода и данных
Управление динамически распределяемой памятью
Предопределенные селекторы
Переменная SelectorInc
Управление памятью
Подпрограммы управления памятью API
Управление модулем
Управление ресурсами
Управление селектором
Другие подпрограммы API
Прямой доступ к DPMI-серверу
Компиляция прикладной программы защищенного режима
Выполнение программы защищенного режима DOS
Управление объемом используемой RTM памяти
Глава 18. Строки с завершающим нулем
Что такое строка с завершающим нулем?
Руководство по языку B.Pascal 7
Функции модуля Strings
Использование строк с завершающим нулем
Символьные указатели и строковые литералы
Символьные указатели и символьные массивы
Индексирование символьного указателя
Операции с символьными указателями
Строки с завершающим нулем и стандартные процедуры
Пример использования функций с завершающим нулем
Глава 19. Использование графического интерфейса Borland
Драйверы
Поддержка устройства IBM 8514
Система координат
Текущий указатель
Текст
Графические изображения и их виды
Области просмотра и двоичные образы
Поддержка страниц и цветов
Обработка ошибок
Начало работы
Пользовательские программы управления динамически распределяемой памятью
Процедуры модуля Graph
Константы, типы и переменные модуля Graph
Константы
Переменные
Глава 20. Использование оверлеев
Администратор оверлеев
Управление оверлейным буфером
Процедуры и функции модуля Overlay
Коды результата
Разработка программ с оверлеями
Генерация оверлейного кода
Требование использования дальнего типа вызовов
Инициализация администратора оверлеев
Разделы инициализации в оверлейных модулях
Что не должно использоваться в качестве оверлеев
Отладка оверлеев
Внешние программы в оверлеях
Задание функции чтения оверлея
Оверлеи в файлах .EXE
Глава 21. Использование памяти
Использование памяти программами реального режима DOS
Администратор динамически распределяемой области памяти DOS
Методы освобождения областей динамически распределяемой памяти
Список свободных блоков
Переменная HeapError
Использование памяти в программах DOS защищенного режима
Сегменты кода
Атрибуты сегмента
Атрибуты MOVEABLE или FIXED
Атрибуты PRELOAD или DEMANDLOAD
Атрибуты DISCARDABLE или PERMAMENT
Сегменты данных и стека
Изменение атрибутов
Использование памяти в программах Windows
Атрибуты сегментов
Атрибуты DISCARDABLE или PERMANENT
Сегмент локальных динамических данных
Форматы внутреннего представления данных
Символьный тип
Булевский тип
Перечислимый тип
Типы с плавающей точкой
Вещественный тип
Тип числа с одинарной точностью
Тип числа с двойной точностью
Тип числа с повышенной точностью
Сложный тип
Значения типа указатель
Значения строкового типа
Значения множественного типа
Значения типа массив
Значения типа запись
Таблица виртуальных методов
Таблица динамических методов
Значения файлового типа
Прямой доступ к памяти
Прямой доступ к портам
Глава 22. Вопросы управления
Соглашения по вызовам
Результаты функций
Ближние и дальние типы вызовов
Вложенные процедуры и функции
Соглашения о вызовах методов
Вызовы виртуальных методов
Вызовы динамических методов
Стандартный код входа и выхода
Соглашения по сохранению регистров
Процедуры выхода
Обработка прерываний
Разработка процедур обработки прерываний
Глава 23. Автоматическая оптимизация
Свертывание констант
Слияние констант
Вычисление по короткой схеме
Устранение избыточной загрузки указателей
Подстановка констант множественного типа
Малые множества
Порядок вычисления
Проверка на допустимость границ
Использование сдвига вместо умножения
Автоматическое выравнивание на границу слова
Удаление неиспользуемого кода
Эффективная компоновка
Глава 24. Встроенный ассемблер
Оператор asm
Использование регистров
Синтаксис операторa ассемблера
Размер инструкции RET
Автоматическое определение размера перехода
Директивы ассемблера
Операнды
Различия между выражениями Паскаля и ассемблера
Элементы выражений
Числовые константы
Строковые константы
Регистры
Классы выражений
Типы выражений
Операции в выражениях
Руководство по языку B.Pascal 7
Процедуры и функции ассемблера
Глава 25. Компоновка с программами на языке ассемблера
Турбо Ассемблер и Borland Pascal
Примеры программ на языке ассемблера
Методы на языке ассемблера
Включаемый машинный код
Операторы Inline
Директивы inline
-
Самоучитель по Tirbo Pascal
Система Турбо Паскаль довольна значительна по объему. Она поставляется на нескольких дистрибутивных дискетах и устанавливается на жесткий диск. При развертывании системы на жестком диске обычно создается каталог с именем ТР (или PAS, TURBOPAS, PASCAL и т.п.), в который помещаются все файлы с дистрибутивных дискет. Для вызова Турбо Паскаля необходимо отыскать в древовидной структуре каталогов ПК этот каталог и в нем файл TURBO.EXE. Этот файл содержит готовую к работе диалоговую систему программирования Турбо Паскаль. В него входят минимально необходимые части Турбо Паскаля (текстовый редактор, компилятор, компоновщик, загрузчик). Для нормальной работы в диалоговой среде понадобятся также основная библиотека, располагающаяся в файле TURBO. TPL, и справочная служба (файл TURBO.HLP). В принципе, этих файлов достаточно для написания, компиляции и исполнения большинства примеров, содержащихся в этой книге.
Функциональные клавиши
Текстовый редактор
Основные приемы работы в среде Турбо Паскаля Работа с файлами
Прогон и отладка программы
Справочная служба Турбо Паскаля
Иллюстрированный самоучитель по Tirbo Pascal
Ваша первая программа
Типы данных
Преобразованя типов и действия над ними
Операторы языка
Составной оператолр и пустой оператор
Условный оператор
Операторы повторений
Оператор выбора
Метки и операторы перехода
Массивы
Процедуры и функции
Примеры программ
Вычисление дня недели
Биоритмы
Игра ним
Иллюстрированный самоучитель по Tirbo Pascal
Иденитификаторы
Константы
Выражения
Операции
Структура программы
Иллюстрированный самоучитель по Tirbo Pascal
Простые типы
Порядковые типы
Вещественные типы
Сьруктурированные типы
Массивы
Записи
Множества
Строки
Совместимость и преобразование типов
Иллюстрированный самоучитель по Tirbo Pascal
Файлы
Доступ к файлам
Имена файлов
Логические устройства
Инициализация файла
Процедуры и функции для работы с файлами
Текстовые файлы
Типизированные файлы
Нетипизированные файлы
Иллюстрированный самоучитель по Tirbo Pascal
Указатели и динамическая память
Динамическая память
Адреса и указатели
Оъбявление указателей
Выделение и освобождение динамической память
Использование указателей
Процедуры и функции для работы с динамической памятью
Администратор кучи
Иллюстрированный самоучитель по Tirbo Pascal
Типизированные константы
Константы простых типов и типа String
Константы - массивы
Константы - записи
Константы - множества
Константы - указатели
Иллюстрированный самоучитель по Tirbo Pascal
Процедуры и функции
Локализация имен
Описание программы
Заголовок
Параметры
Параметры - массивы и параметры - строки
Процедурные типы. Параметры - функции и параметры - процедуры.
Нетипизированные параметры - переменные
Рекурсия и опережающее описание
Расширинный синтаксис вызова функций
Иллюстрированный самоучитель по Tirbo Pascal
Модули
Структура модулей
Заголовок модуля и связь модулей друг с другом
Интерфейсная часть
Исполняема часть
Инициирующая часть
Компиляция модулей
Доступ к объявленным в модуле объектам
Стандартные модули
Иллюстрированный самоучитель по Tirbo Pascal
Объекты
Основные принципы ООП
Постановка учебной задачи
Создание объектов
Использование объектов
Иллюстрированный самоучитель по Tirbo Pascal
Другие возхможности Турбо Паскаля
Внешние процедуры (функции)
Использование встроенных машин кодов
Обращения к функциям операционной системы
Поддержка процедур обработки прерываний
Запуск внешних программ
Оверлей
Прямое обращение к памяти и портам ввода - вывода
Длинные строки
Иллюстрированный самоучитель по Tirbo Pascal
Встроенный ассемблер
Общее описание МП 8086/8088
Регистры
Адресация
Система команд
Спецификация встроенного ассемблера
Оператор ASM
Синтаксис ассемблерных команд
Директивы ассемблера
Ассемблерные прграммы
Иллюстрированный самоучитель по Tirbo Pascal
Использование библиотеки CRT
Программирование клавиатуры
Текстовый вывод на экран
Программирование звукового генератора
Иллюстрированный самоучитель по Tirbo Pascal
Использование библиотеки Graph
Переход в графический режим и возврат в текстовый
Краткая характеристика графических режимов работы дисплейных адаптеров
Включение драйвера и шрифтов в тело программы
Процедуры и функции
Координаты, окна, страницы
Линии и точки
Многоугольники
Дуги, окружности, эллипсы
Краски, палитры, заполнения
Сохранение и выдача изображений
Вывод текста
Иллюстрированный самоучитель по Tirbo Pascal
Введение в Turbo Vision
Простейшая программа в Turbo Vision
Цветовая палитра
Использование коллекций
Указатель на элемент списка
Диалоговое окно выбора режима
Обработка команд пользователя
Редактирование и добавление записей
Удаление записи
Режим поиска записи
Итоги
Формирование строки статуса
Формирование меню
Команды
События и их обработка
Программирование диалоговых запросов
Инкапсуляция новых полей и методов
Создание и использование групп
Вывод текста
Иллюстрированный самоучитель по Tirbo Pascal
Общая характеристика объектов
Структура объектов
Контроллеры
Абстрактные объекты и методы
Функциональность объектов
Обзор видимых элементов
Группы видимых элементов
Терминальные видимые объекты
Потоки
Коллекции
Списки строк
Иллюстрированный самоучитель по Tirbo Pascal
Видимые элементы
Территориальность
Поле Options
Поле GrowMode
Поле DragMode
Поле State
Воздействие на состояние поля State
Заполнение области
Цвет изображения
Группы
Создание группы и изменение ее состава
Z-упорядочение и дерево видимых элементов
Активные элементы
Модальные видимые элементы
Изменение свойств элемента
Иллюстрированный самоучитель по Tirbo Pascal
События
Природа событий
События, определенные пользователем
Маскирование и очистка событий
Перекрытие HandleEvent
Перекрытие GetEvent
Неиспользованное время
Ненужные события
Взаимодействие видимых элементов
Контекстная помощь
Виды событий
События от мыши
События от клавиатуры
Сообщения
Пустые события
Маршрутизация событий
Позиционированные события
Общие события
Фаза событий
Команды
Преобразование активных событий в команды
Запрещение и разрешение команд
Иллюстрированный самоучитель по Tirbo Pascal
Коллекции
Элементы коллекций
Создание коллекций
Доступ к элементам коллекций
Отсортированные коллекции
Коллекции строк
Полиформные коллекции
Коллекции и управление памятью
Иллюстрированный самоучитель по Tirbo Pascal
Потоки
Сущность потоков
Регистрация объектов
Создание и удаление потока
Работа с потоком
Методы Put и Get
Методы Store и Load
Обработка ошибок
Прямой доступ к потокам
Использование потоков с произвольными данными
Иллюстрированный самоучитель по Tirbo Pascal
Ресурсы Turbo Vision
Создание ресурса
Использование ресурса
Строковые ресурсы
Иллюстрированный самоучитель по Tirbo Pascal
Объекты - контролеры
Типы объектов-контролеров
TPXPictureValidator
TFilterValidator
TRangeValidator
TLookupValidator
TStringLookupValidator
Контроль текстового ввода
Проверка других объектов
Реализация нестандартного контроля
Иллюстрированный самоучитель по Tirbo Pascal
Практика использования
Контроль за динамической памятью
Строка статуса
Меню
Диалоговое окно
Окно с текстом
Окно со скроллером
Просмотр списка файлов
Обработка ошибок инициации и модальных состояний
Отладка программ
Использование оверлея
Порядок вызова наследуемого метода
Конструктор
Деструктор
Другие методы
Примеры программных реализаций
Иллюстрированный самоучитель по Tirbo Pascal
Среда Турбо Паскаля
Элементы диалоговой среды
Работа с окнами
Меню опции OPTIONS
Меню опции WINDOW
Меню опции HELP
Директивы компилятора
Редактор
Команды перемещения курсора
Команды удаления/вставки
Команды работы с блоками
Прочие команды
Команды, передаваемые среде из редактора
Вызов Турбо Паскаля
Работа с меню
Работа с диалоговым окном
Система меню
Меню опции FILE
Меню опции EDIT
Меню опции SEARCH
Меню опции RUN
Меню опции COMPILE
Меню опции DEBUG
Меню опции TOOLS
Варианты кодировки знакогенераторов ПК
Иллюстрированный самоучитель по Tirbo Pascal
Сообщения и коды ошибок
Сообщения об ошибках периода компиляции
Ошибки возникающие во время выполнения программ
Ошибки, обнаруживаемые ДОС
Ошибки ввода-вывода
Критические ошибки
Фатальные ошибки
Иллюстрированный самоучитель по Tirbo Pascal
Стандартные библиотечные модули
Модуль SYSTEM
Константы
Переменные
Стандартные процедуры и функции
Процедуры
Функции
Модуль DOS
Типы
Модуль CRT
Модуль Graph
Иллюстрированный самоучитель по Tirbo Pascal
Тнексты программ
Программа определения дня недели
Определение биоритмов
Игра Ним
Программа Notebook
-
Турбо Паскаль 6.0
Это руководство содержит полное описание Turbo Vision - новому подходу к разработке прикладных систем. Мы опишем не только что и как может делать Turbo Vision, но и для чего. Если Вы потратите время на то, чтобы понять основные принципы Turbo Vision, Вы обнаружите, что это удобный, сохраняющий время и продуктивный инструмент: Вы сможете создавать разумные интерактивные программы, затрачивая на это меньше времени, чем Вы думаете.
Для чего Turbo Vision?
Что такое Turbo Vision?
Что Вам необходимо знать.
Что в этой книге.
ГЛАВА 1. НАСЛЕДОВАНИЕ КОЛЕСА.
Оболочка оконной программы.
Новый взгляд на разработку программ.
Элементы Turbo Vision.
Новые понятия.
Видимые элементы.
События.
Невидимые объекты.
Другие элементы.
"Hello, World!" в Turbo Vision.
Выполнение HELLO.PAS.
Выпадающие меню.
Диалоговое окно.
Кнопки.
Выход.
Внутри HELLO.PAS.
Прикладной объект.
Объект диалоговое окно.
Выполнение и отладка.
Главная программа.
Метод Init.
Метод Run.
Метод Done.
Итоги.
ГЛАВА 2. НАПИСАНИЕ ПРОГРАММ В TURBO VISION.
Ваша первая программа в Turbo Vision.
Панель экрана, полоса меню и строка статуса.
Панель экрана.
Строка статуса.
Создание новых команд.
Полоса меню.
Замечания по структуре.
Открытие окон.
Стандартное оформление окон.
Инициализация окна.
Метод Insert.
Закрытие окна.
Поведение окна.
Просмотр в любом окне.
Что Вы видите?
Лучший способ для Write.
Простой просмотр файлов.
Чтение текстового файла.
Буферизованный вывод.
Буфер вывода.
Пересылка текста в буфер.
Вывод содержимого буфера.
Сколько выводить?
Скроллинг вверх и вниз.
Несколько видимых элементов в окне.
Куда поместить функциональность.
Создание диалоговых окон.
Выполнение модального диалогового окна.
Управление.
Кнопки.
Нормальные кнопки и по умолчанию.
Активные элементы управления.
Выбор.
Создание кластера.
Значения независимых кнопок.
Одна из многих.
Метки управляющих элементов.
Строка ввода.
Установка и получение данных.
Краткие клавиши и конфликты.
Выход из дилогового окна.
Другие элементы управления.
Статический текст.
Просмотр списка.
Окно списка.
История.
Стандартные диалоговые окна.
ГЛАВА 3.ИЕРАРХИЯ ОБЪЕКТОВ.
Типология объектов.
Абстрактные объекты.
Абстрактные методы.
Порожденные типы и экземпляры объектов.
Создание экземпляра.
Порождение.
Методы Turbo Vision.
Псевдоабстрактные методы.
Виртуальные методы.
Статические методы.
Поля Turbo Vision.
Примитивные типы объектов.
TPoint.
TRect.
TObject.
Обзор видимых элементов.
Группы.
Абстрактная группа.
Программы.
Прикладные программы.
Окна.
Диалоговые окна.
Терминальные видимые элементы.
Рамки.
Кластеры.
Меню.
Строки ввода.
Просмотр списков.
Объекты скроллинга.
Текстовые устройства.
Строки статуса.
Невидимые элементы.
Потоки.
Потоки DOS.
Буферизованные потоки.
Потоки EMS.
Ресурсы.
Коллекции.
Отсортированные коллекции.
Коллекция строк.
Коллекции ресурсов.
Списки строк.
ГЛАВА 4. ВИДИМЫЕ ЭЛЕМЕНТЫ.
Управление экраном.
Простые видимые элементы.
Установка видимого элемента.
Получение TPoint.
Получение TRect.
Координаты Turbo Vision.
Появление видимых элементов.
Территориальность.
ование по требованию.
Установка поведения.
Сложные видимые элементы.
Группы и видимые подэлементы.
Получение группы.
Другой взгляд на Z-упорядочивание.
Групповые портреты.
Взаимосвязи между видимыми элементами.
Иерархия объектов.
Принадлежность.
Подэлементы и дерево видимых элементов.
Выбор и активизация видимых элементов.
Нахождение активного элемента.
Как сделать видимый элемент активным?
Цепочка активности.
Модальные видимые элементы.
Турбо Паскаль 6.0
Модификация поведения видимых элементов.
Флаг Options.
Флаг GrowMode.
Флаг DragMode.
Флаг State и SetState.
Действие на изменение состояние.
Цвет видимого элемента.
Палитры цветов.
Внутри палитры цветов.
Метод GetColor.
Перекрытие цветов по умолчанию.
Добавление новых цветов.
ГЛАВА 5. ПРОГРАММИРОВАНИЕ УПРАВЛЯЕМОЕ СОБЫТИЯМИ.
Воплощение Turbo Vision в жизнь.
Чтение ввода пользователя.
Природа событий.
Виды событий.
События от мышки.
События от клавиатуры.
События сообщений.
"Пустые" события.
События и команды.
Передача событий.
Откуда приходят события.
Куда идут события.
Позиционированные события.
Активные события.
Общие события.
События определенные пользователем.
Маскирование событий.
Фаза.
Поле Phase.
Команды.
Определение команд.
Связывание команд.
Разрешение и запрещение команд.
Обработка событий.
Запись события.
Очистка событий.
Ненужные события.
Модификация механизма событий.
Централизация сбора событий.
Перекрытие GetEvent.
Неиспользованное время.
Взаимодействие видимых элементов.
Посредники.
Сообщения между видимыми элементами.
Кто обрабатывает общие сообщения?
Есть ли кто-нибудь?
Кто сверху?
Вызов HandleEvent.
Контекстная помощь.
ГЛАВА 6. НАПИСАНИЕ НАДЕЖНЫХ ПРОГРАММ.
Все или ничего.
Пул надежности.
Метод ValidView.
Другие ошибки.
Сообщения об ошибках.
Основные потребители.
ГЛАВА 7. КОЛЛЕКЦИИ.
Объекты коллекции.
Динамический размер.
Полиморфизм.
Проверка типов и коллекции.
Коллекции не объектов.
Создание коллекции.
Итерационные методы.
Итератор ForEach.
Итераторы LastThat и FirstThat.
Коллекции строк.
Опять итераторы.
Поиск элемента.
Полиморфные коллекции.
Коллекции и управление памятью.
ГЛАВА 8. ПОТОКИ.
Вопрос: В/В объектов.
Ответ: потоки.
Потоки являются полиморфными.
Управление объектами в потоке.
Сущность использования потоков.
Установка потока.
Чтение и запись потока.
Вывод в поток.
Ввод из потока.
В случае ошибки.
Удаление потока.
Использование объектов с потоком.
Методы Load и Store.
Регистрация потока.
Номера ID объектов.
Автоматические поля.
Регистрация.
Механизм потоков.
Работа Put.
Работа Get.
Обработка nil указателей на объект.
Коллекции в потоках: полный пример.
Добавление методов Store.
Записи регистрации.
Запись в поток.
Кто сохраняет?
Экземпляры видимых подэлементов.
Равные экземпляры видимого элемента.
Сохранение и загрузка панели экрана.
Копирование потоков.
Прямой доступ к потокам.
Не-объекты в потоке.
Проектирование Ваших потоков.
Обработка ошибок потока.
ГЛАВА 9. РЕСУРСЫ.
Для чего используются ресурсы?
Что в ресурсе?
Создание ресурса.
Чтение ресурса.
Список строк.
Создание списков строк.
ГЛАВА 10. СОВЕТЫ.
Отладка программ на Turbo Vision.
Это здесь не получить.
Проверьте маску.
Украденные события.
Вина Ваших предков.
Делается не то, что ожидалось.
Зависания.
Встраивание программ в Turbo Vision.
Удаление "мусора" из старого кода.
Переосмысление проекта.
Использование побитовых полей.
Значения флагов.
Битовые маски.
Побитовые операции.
Установить бит.
Очистить бит.
Проверить биты.
Использование масок.
ГЛАВА 11. КАК ИСПОЛЬЗОВАТЬ СПРАВОЧНИК.
Как найти информацию.
Объекты вообще.
Соглашения об именовании.
ГЛАВА 12. СПРАВОЧНИК ПО МОДУЛЯМ.
Модуль Objects.
Типы.
Константы.
Переменные.
Процедуры и функции.
Модуль Views.
Модуль Dialogs.
Модуль App.
Модуль Menus.
Модуль Drivers.
Турбо Паскаль 6.0
Модуль TextView.
Модуль Memory.
Модуль HistList.
ГЛАВА 13.СПРАВОЧНИК ПО ОБЪЕКТАМ.
Объект TSample Модуль объекта
TApplication App
TBackground App
TBufStream Objects
TButton Dialogs
TCheckBoxes Dialogs
TCluster Dialogs
TCollection Objects
TDeskTop App
TDialog Dialogs
DosStream Objects
TEmsStream Objects
TFrame Views
TGroup Views
THistory
THistoryViewer Dialogs
THistoryWindow Dialogs
TInputLine Dialogs
TLabel Dialogs
TListBox Dialogs
TListViewer Views
TMenuBar Menus
TMenuBox Menus
TMenuView Menus
TObject Objects
TParamText Dialogs
TPoint Objects
TProgram App
TRadioButtons Dialogs
TRect Objects
TResourceCollection Objects
TResourceFile Objects
TScrollBar Views
TScroller Views
TSortedCollection Objects
TStatusLine Menus
TStream Objects
TStringCollection Objects
TStringList Objects
TStrListMaker Objects
TTerminal TextView
TTextDevice TextView
TView Views
TWindow Views
ГЛАВА 14. ГЛОБАЛЬНЫЕ ССЫЛКИ.
Процедура Sample Модуль
Процедура Abstract Objects
Переменная Application App
Переменная AppPalette App
Константы apXXXX App
Процедура AssignDevice TextView
Константы bfXXXX Dialogs
Переменная ButtonCount Drivers
Переменная CheckSnow Drivers
Процедура ClearHistory HistList
Процедура ClearScreen Drivers
Константы cmXXXX Views
Константы coXXXX Objects
Функция CStrLen Drivers
Переменная CtrlBreakHit Drivers
Функция CtrlToArrow Drivers
Переменная CursorLines Drivers
Переменная DeskTop App
Процедура DisposeMenu Menus
Процедура DisposeStr Objects
Константы dmXXXX Views
Процедура DoneEvents Drivers
Процедура DoneHistory Drivers
Процедура DoneMemory Memory
Процедура DoneSysError Drivers
Процедура DoneVideo Drivers
Переменная DoubleDelay Drivers
Переменная EmsCurHandle Objects
Переменная EmsCurPage Objects
Константы evXXXX Drivers
Тип FNameStr Objects
Переменная FocusedEvents Views
Процедура FormatStr Drivers
Процедура FreeBufMem Memory
Функция GetAltChar Drivers
Функция GetAltCode Drivers
Процедура GetBufMem Memory
Процедура GetKeyEvent Drivers
Процедура GetMouseEvent Drivers
Константы gfXXXX Views
Константы hcXXXX Views
Процедура HideMouse Drivers
Переменная HiResScreen Drivers
Процедура HistoryAdd HistList
Переменная HistoryBlock HistList
Функция HistoryCount HistList
Переменная HistorySize HistList
Функция HistoryStr HistList
Переменная HistoryUsed HistList
Процедура InitEvents Drivers
Турбо Паскаль 6.0
Процедура InitMemory Memory
Процедура InitSysError Drivers
Процедура InitVideo Drivers
Константы kbXXXX Drivers
Функция LongDiv Objects
Функция LongMul Objects
Тип LongRec Objects
Функция LowMemory Memory
Переменная MaxBufMem Memory
Переменная MaxCollectionSize Objects
Константа MaxViewWidth Views
Константа mbXXXX Drivers
Функция MemAlloc Memory
Функция MemAllocSeg Memory
Переменная MenuBar App
Функция Message Views
Переменная MinWinSize Views
Переменная MouseButtons Drivers
Переменная MouseEvents Drivers
Переменная MouseIntFlag Drivers
Переменная MouseWhere Drivers
Процедура MoveBuf Objects
Процедура MoveChar Objects
Процедура MoveCStr Objects
Процедура MoveStr Objects
Функция NewItem Menus
Функция NewLine Menus
Функция NewMenu Menus
Функция NewSItem Dialogs
Функция NewStatusDef Menus
Функция NewStatusKey Menus
Функция NewStr Objects
Функция NewSubMenu Menus
Константы ofXXXX Views
Тип PChar Objects
Переменная PositionalEvents Views
Процедура PrintStr Drivers
Тип PString Objects
Тип PtrRec Objects
Процедура RegisterDialogs Dialogs
Процедура RegisterType Objects
Переменная RepeatDelay Drivers
Переменная SaveCtrlBreak Drivers
Константы sbXXXX Views
Переменная ScreenBuffer Drivers
Переменная ScreenHeight Drivers
Переменная ScreenMode Drivers
Переменная ScreenWidth Drivers
Тип SelectMode Views
Процедура SetVideoMode Drivers
Константы sfXXXX Views
Переменная ShadowAttr Views
Переменная ShadowSize Views
Переменная ShowMarkers Drivers
Процедура ShowMouse Drivers
Константы smXXXX Drivers
Переменная SpecialChars Views
Константы stXXXX Objects
Переменная StartupMode Drivers
Переменная StatusLine App
Переменная StreamError Objects
Переменная SysColorAttr Drivers
Переменная SysErrActive Drivers
Переменная SysErrorFunc Drivers
Переменная SysMonoAttr Drivers
Функция SystemError Drivers
Тип TByteArray Objects
Тип TCommandSet Views
Тип TDrawBuffer Views
Тип TEvent Drivers
Тип TItemList Objects
Тип TMenu Menus
Тип TMenuItem Menus
Тип TMenuStr Menus
Тип TPalette Views
Тип TScrollChars Views
Тип TSItem Dialogs
Тип TStatusDef Menus
Тип TStatusItem Menus
Тип TStreamRec Objects
Тип TStrIndex Objects
Тип TStrIndexRec Objects
Тип TSysErrorFunc Drivers
Тип TTerminalBuffer TextView
Тип TTitleStr Views
Тип TVideoBuf Views
Тип TWordArray Objects
Константы wfXXXX Views
Константa wnNoNumber Views
Тип WordRec Objects
Константы wpXXXX Views
-
Паскаль. Основы программирования
Этот язык разработал сравнительно недавно, в 1970 году, профессор кафедры вычислительной техники Швейцарского федерального института технологии - Николас Вирт.
Обо всех достоинствах и преимуществах Паскаля перед другими языками мы узнаем после первоначального знакомства с ним, в конце первой части этой книги, а теперь обратимся к составлению простейших программ на этом языке.
Изучение конструкции программ на Паскале начнем с простого примера.
Переменные и их имена
Команда присваивания
Операторы write и writeln Процедуры вывода информации
Операторы read и readln Процедуры ввода информации
Глава Ввод и выполнение программ
Программирование в среде Microsoft Windows на языке Pascal
Глава Арифметические операции
Арифметические операции с целыми числами и переменными целого типа в языке Паскаль
Операции отношения или сравнения
Логические операции
Комментарии
Оператор if then else
Вещественный тип real в операторах if then else
Формы записи вещественных чисел
Арифметические операции с вещественными переменными
Форматированный вывод информации
Блок-схемы, изображающие условные операторы
Упражнения
Ответы
Что такое цикл?
Целый тип longint
Условия в программах с циклами
Досрочное прерывание цикла Метка Оператор безусловного перехода goto
Замечания
Циклы в циклах
Глава Цикл с последующим условием Оператор repeatuntil
Различия между циклом - while и циклом - repeat
Программы с совместным использованием циклов repeat и while do
Разные задачи
Глава Циклы с параметрами Операторы fortodo и fordowntodo
Оператор цикла fordowntodo
Преобразование типов
Глава Подпрограммы на паскале Процедуры и функции Рекурсия
Вызов процедуры из процедуры
Рекурсия
Функции
Применение ряда Фибоначчи
Задачи с применением НОД
Решение уравнений с одной переменной методом половинного деления
Вычисление корней уравнения нахождением минимума функции на промежутке
Паскаль. Основы программирования
Библиотека часто встречающихся процедур и функций
Повторение
Глава Элементы комбинаторики
Размещения
Задачи, решаемые с помощью размещений
Перестановки с повторениями
Сочетания
Сочетания и бином Ньютона
Для дополнительных занятий
Классическое определение вероятности
Формула Бернулли
Дискретная случайная величина, закон распределения вероятностей
Определение законов распределения дискретных величин эмпирическим (опытным) путем
Математическое ожидание
Свойства математического ожидания как операции осреднения
Умножение математических ожиданий
Дисперсия, среднее квадратическое отклонение и другие характеристики рассеяния
Правила вычисления дисперсий и средних квадратических отклонений
Биномиальное распределение
Задание
Числовые характеристики биномиального распределения
Наиболее вероятное число событий биномиального распределения
Гипергеометрическое распределение
Распределение Пуассона
Числовые характеристики распределения Пуассона
Предельная теорема Муавра-Лапласа
Интегральная формула Муавра-Лапласа
Двумерные случайные величины
Новый способ задания случайной величины
Непрерывные случайные величины
Второе определение непрерывной случайной величины
Равномерное распределение в интервале (a, b)
Математическое ожидание и дисперсия непрерывной случайной величины
Нормальное распределение
Метод статистических испытаний
Геометрические вероятности "геометрическая схема" испытания
Функция random и процедура randomize
Задача о встрече
Задача Бюффона
Применение метода Монте-Карло для вычисления площадей фигур
Дополнительные задания
Паскаль. Основы программирования
Глава Числовые последовательности
Классические методы нахождения изолированного корня
Выбор метода Оператор Caseof
Приближенное вычисление интегралов
Глава Числовые и функциональные ряды
Функциональные ряды
Сходимость числовых и функциональных рядов
Задачи с использованием последовательностей и рядов
Бесконечные произведения
Приближенное вычисление интегралов с помощью рядов
Некоторые замечательные функции
Литература
-
Система программирования Турбо паскаль 7.0
Синтаксические ошибки, связанные с нарушением правил языка Паскаль, обнаруживаются компилятором. Место этой ошибки будет указывать курсор, помещаемый компилятором на ошибочный оператор. При этом появляется выделенное цветом повышенной яркости сообщение об ошибке (диагностика). В нем приводятся номер ошибки и поясняющий текст на английском языке.
Второй тип ошибок – это ошибки, приводящие к аварийному останову программы на этапе выполнения. Часто это может происходить при попытке выполнить некорректную арифметическую операцию, например, извлечь корень квадратный из отрицательного числа или разделить на ноль.
Наконец, алгоритмические ошибки программист должен самостоятельно “отлавливать” и устранять, решая серию вспомогательных тестовых задач.
Клавиатура
Системный блок
Монитор
Файловая система MS DOS
Команды MS-DOS
Инструментальная система NC
Основные приемы работы в NC
Контрольные вопросы
Организация вычислений в среде Турбо Паскаль
Главное меню
Команда File
Команда Edit
Команда Search
Команда Run
Команда Compile
Команда Debug
Команда Options
Команда Window
Команда Help
Работа с окнами
Текстовый редактор
Интегрированный отладчик
Алфавит языка
Константы и переменные
Арифметические выражения
Контрольные задания
Оператор присваивания
Операторы ввода – вывода
Структура основной программы
Контрольные задания
Логические выражения
Условные операторы
Оператор выбора
Контрольные задания
Операторы цикла с условием
Операторы цикла с параметром
Базовые алгоритмы
Кратные циклы
Понятие массива
Одномерные массивы
Двумерные массивы
Структура сложной программы
Процедуры
Функции
Параметры-массивы
Символьный тип данных
Понятие записи
Файлы входных данных
Пример решения задачи создания документа