- •Пояснительная записка
- •Программирование на алгоритмическом языке pascal
- •«Ознакомление с работой в интегрированной среде Borland Pascal»
- •Задание 1
- •Ход работы:
- •Загрузите систему Borland Pascal.
- •После входа в систему появляется рабочий экран (рис. 2).
- •Изучите пункты главного меню.
- •Задание 2
- •Методические указания к лабораторным занятиям для учащихся.
- •Лабораторная работа №1
- •Вопросы для самоподготовки:
- •Краткие теоретические сведения
- •Задание 1
- •Ход выполнения работы.
- •Задание 2
- •Лабораторная работа №2
- •Краткие теоретические сведения
- •Правила работы с условным оператором.
- •Вопросы для самоподготовки:
- •Задание 1
- •Задание 2.
- •Задание 3
- •Правила организации цикла с параметром.
- •Вопросы для самоподготовки:
- •Задание 1
- •Задание 2
- •Решение:
- •Задачи для самостоятельного решения.
- •Лабораторная работа №4. Тема: «Разработка, отладка и испытание простых циклических алгоритмов и программ с неизвестным числом повторений».
- •Краткие теоретические сведения
- •Вопросы для самоподготовки:
- •Задание 1
- •Решение:
- •Задание 2
- •Домашнее задание
- •Вопросы для самоподготовки:
- •Определим необходимые формулы:
- •Составим графическую схему алгоритма.
- •Составим таблицу соответствия переменных.
- •В соответствии с пунктами 2 и 3 составьте программу.
- •Задание 2
- •Задание 3
- •Решение:
- •Составим графическую схему алгоритма:
- •Составим таблицу соответствия переменных
- •Составим программу на языке Pascal.
- •Задание 4
- •Лабораторная работа №6. Тема: «Разработка, отладка и испытание циклических алгоритмов и программ с известным числом повторений с внутренними ветвлениями».
- •Задание
- •Задание 2
- •Решение:
- •Задание 3
- •Решение:
- •Задание 4 (задачи повышенной сложности)
- •Решение:
- •Задания для самостоятельного решения. Напишите программы с использованием процедур.
- •Дана последовательность слов. Напечатайте все слова, предварительно преобразовав каждое из них по следующему правилу:
- •Задание 5
- •Решение:
- •Задание 8 (повышенной сложности)
- •Решение:
- •Задание для самостоятельного решения:
- •(Повышенной сложности)
- •Лабораторная работа №8. Тема: «Разработка алгоритмов и программ методом пошаговой детализации. Обработка двумерных массивов. Организация ввода-вывода с помощью текстовых файлов».
- •Вопросы для самоподготовки:
- •Краткие теоретические сведения
- •Задание 1
- •Задание 2
- •Решение:
- •Составим графическую схему алгоритма.
- •Составляем таблицу соответствия переменных.
- •Составляем программу на языке программирования Pascal.
- •Задание 3
- •Задание 4
- •Лабораторная работа №9. Тема: «Разработка алгоритмов и программ решения различных задач с использованием библиотечных модулей пользователя».
- •Краткие теоретические сведения
- •Задание
- •Задача для самостоятельного решения.
- •Лабораторная работа №10. Тема: «Разработка алгоритмов и программ обработки строк. Использование множеств для решения задач».
- •Вопросы для самоподготовки:
- •Задание 6
- •Решение:
- •Задачи для самостоятельного решения:
- •Лабораторная работа №11. Тема: «Разработка алгоритмов и программ с использованием методов внутренней сортировки».
- •Задание
- •Решение:
- •Для каждой команды в одной строке введите через пробел
- •Задание для самостоятельного решения:
- •Лабораторная работа №12. Тема: «Разработка рекурсивных алгоритмов и программ».
- •Краткие теоретические сведения
- •Задание.
- •Лабораторная работа №13. Тема: «Разработка алгоритмов и программ с использованием процедур и функций модулей crt и dos».
- •Краткие теоретические сведения
- •Задание 1
- •Задание 2
- •Задание 3
- •Задание.
- •Краткие теоретические сведения
- •Решение:
- •Задание 2
- •Андреев
- •Задание для самостоятельного решения.
- •Лабораторная работа №16. Тема: «Разработка алгоритмов и программ с использованием динамических структур данных».
- •Краткие теоретические сведения
- •Задание
- •Задание для самостоятельного решения
- •Задача о «Ханойских башнях».
- •Решение:
- •Задания для самостоятельного решения.
- •Задание для самостоятельного решения:
- •Задания для самостоятельного решения:
- •Лабораторная работа №22. Тема: «Разработка программ обработки созданных файлов».
- •Постановка задачи
- •Содержание отчета
- •Варианты задания:
- •Лабораторная работа №23. Тема: «Разработка программ с использованием прерываний bios и dos, процедурных типов».
- •Краткие теоретические сведения
- •Константы
- •Задание
- •Задание для самостоятельного решения.
- •Лабораторная работа №25. Тема: «Разработка простейших программ с использованием компонентов страницы Standart».
- •Вопросы для самоподготовки:
- •Задание 1
- •Лабораторная работа №26. Тема: «Разработка программ обработки массивов с использованием компонентов страницы Standart».
- •Задание
- •Procedure tForm1.Button2Click (Sender: tObject); {обработка массива}
- •Лабораторная работа №32. Тема: «Разработка программ создания и использования мультимедийных возможностей».
- •Задание
- •Лабораторная работа №34. Тема: «Создание и использование справочной системы».
- •Краткие теоретические сведения
- •Задание
- •Ход работы:
- •Лабораторная работа №35. Тема: «Создание установочного диска».
- •Задание
Константы
Константы флагов. Следующие константы используются для проверки отдельных битов флага в регистре Flags после вызова Intr или MSDOS:
Константа |
Значение |
Константа |
Значение |
FCarry |
$0001 |
FZero |
$0040 |
FParity |
$0004 |
FSign |
$0080 |
FAuxiliary |
$0010 |
FOverFlow |
$0800 |
Например, если R – запись типа «регистр», то тест
R. Flags and FCarry <> 0
R. Flags and FZero = 0
равен True соответственно, если флаг Carry установлен и если флаг Zero сброшен.
Константы режима файла. Эти константы используются процедурами обработки файлов при открытии и закрытии дисковых файлов. Поля режимов файловых переменных Turbo Pascal будут содержать одно из указанных ниже значений:
Константа |
Значение |
FmClosed |
$D7B0 |
FmInput |
$D7B1 |
FmOutput |
$D7B2 |
fmInOut |
$D7B3 |
Константы атрибутов файла. Эти константы используются для проверки, установки и очистки битов файловых атрибутов в процедурах GetFAttr, SetFAttr, FindFirst, FindNext:
Константа |
Значение |
Константа |
Значение |
ReadOnly |
$01 |
Directory |
$10 |
Hidden |
$02 |
Archive |
$20 |
SysFile |
$04 |
AnyFile |
$3F |
VolumeID |
$08 |
|
|
Эти константы можно суммировать. Например, оператор FindFirst (‘*.*’, ReadOnly+Directory, S); будет искать файлы «только для чтения» и подкаталоги в текущем каталоге. Константа AnyFile – это сумма всех атрибутов.
Типы файловых записей.
Определение записей, используемых Turbo Pascal, определены в модуле Dos. FileRec используется для типизированных и не типизированных файлов, а TextRec – внутренний формат переменной типа Text.
type {типизированные и не типизированные файлы}
FileRec=record
Handle: Word;
Mode: Word;
RecSize: Word;
Private: array [1..6] of Byte;
UserData : array [1..16] of Byte;
Name: array [0..79] of Char;
end;
{тип записи для текстовых файлов}
TextBuf=array [0..127] of Char;
TextRec=record
Handle: Word;
Mode: Word;
BufSize: Word;
Private: Word;
BufPos: Word;
BufEnd: Word;
BufPtr: ^TextBuf;
OpenFunc: Pointer;
InOutFunc: Pointer;
FlushFunc: Pointer;
CloseFunc: Pointer;
UserData: array [1..16] of Byte;
Name: array [0..79] of Char;
Buffer: TextBuf;
end;
Тип Registers.
Переменные типа Registers используются процедурами Intr и MS DOS для указания входных значений содержимого регистров и проверки выходных значений содержимого регистров процессора для программного прерывания.
type
Registers=record
Case Integer of
0: (AX, BX, CX, DX, BP, SI, DI, DS, ES, Flags: Word);
1: (AL, AH, BL, BH, CL, CH, DL, DH: Byte);
end;
Заметим, что можно пользоваться одновременно 8-разрядными и 16-разрядными регистрами.
Тип DataTime.
Переменные типа DataTime используются в сочетании с процедурами UnpacTime и PackTime для проверки и создания 4-байтных упакованных значений даты и времени в процедурах GetFTime, SetFTime, FindFirst и FindNext:
type
DataTime=record
Year, Month, Day, Hour, Min, Sec: Integer;
end;
Диапазон допустимых значений: Year 1980 .. 2009, Month 1..12, Day 1..31, Hour 0..23, Min 0..59, Sec 0..59.
Тип SearchRec.
Переменная типа SearchRec используется процедурами FindFirst и FindNext для просмотра справочников:
type
SearchRec=record
Fill: array [1..21] of Byte;
Attr: Byte;
Time, Size: Longint;
Name: String [12];
end;
Информация, найденная для каждого файла одной из этих процедур, возвращается в SearchRec. Поле Attr содержит атрибуты файла (сформированного из констант атрибутов), Time содержит упакованные время и дату, Size содержит размер файла в байтах и Name содержит имя файла. Поле Fill резервируется операционной системой и никогда не должно модифицироваться.
Строковые типы обработки файлов.
Эти строковые типы используются в процедуре FSplit:
DirStr=String [67]; {строка устройства и справочника}
NameStr= String [8]; {строка имени файла}
ExtStr= String [4]; {строка расширения файла}
ComStr= String [127]; {командная строка}
PathStr= String [79]; {полная строка пути файла}
Переменные.
Переменная DosError.
Переменная DosError используется многими программами в модуле Dos для указания ошибок.
var DosError: Integer;
Значение, возвращаемое в DosError, представляет собой код ошибки операционной системы. Значение 0 означает «нет ошибки», другие коды означают:
Код ошибки DOS |
Значение |
2 |
Файл не найден |
3 |
Путь не найден |
5 |
Доступ запрещен |
6 |
Неверный обработчик |
8 |
Нет памяти |
10 |
Неправильная среда |
11 |
Неправильный формат |
18 |
Больше нет файлов |
