- •Пояснительная записка
- •Программирование на алгоритмическом языке 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. Тема: «Создание установочного диска».
- •Задание
Лабораторная работа №13. Тема: «Разработка алгоритмов и программ с использованием процедур и функций модулей crt и dos».
Цель работы: составление на языке Pascal программ с использованием модулей.
Краткие теоретические сведения
Модуль Crt содержит функции и процедуры, полезные при выводе на экран. Например, при помощи процедур библиотеки можно задать цвет выводимых символов и цвет фона, на котором они будут выводиться, вывести текст в нужной точке экрана.
Управлением курсором.
Инструкции write и writeln выводят информацию, начиная с той позиции экрана, в которой находится курсор. Положение курсора на экране определяется номером строки и номером позиции в строке, которые можно рассматривать как координаты курсора. В стандартном режиме на экране могут быть отображены до 25 строк текста длиной до 80 символов. Поэтому горизонтальная координата (х), определяющая номер позиции в строке, может меняться от 1 до 80, а вертикальная координата (у), определяющая номер строки, может меняться от 1 до 25. за начало координат принят левый верхний угол экрана. Левая верхняя точка экрана имеет координаты (1, 1), правая нижняя (80, 25), (рис. 9).
(1, 1)
Х
(80, 25) рис. 9
У
Если нужно вывести текст, начиная с определенной позиции экрана, то перед выполнением инструкции вывода надо установить курсор в эту позицию. Это можно сделать с помощью процедуры GoToXY, инструкция вызова которой в общем виде выглядит так: GoToXY (34, 13);
Write (‘Turbo Pascal’);
выводят сообщение примерно в середине экрана.
Следующая процедура, ее текст приведен ниже, рисует на экране рамку. При вызове процедуры задаются координаты левого верхнего угла рамки, ширина и высота.
Procedure Frame (1: integer; t: integer; w: integer; h: integer);
{l, t – координаты верхнего левого угла, w – ширина рамки, h – высота рамки}
var
x, y: integer;
i: integer;
c1, c2, c3, c4, c5, c6: char; {символы, из которых рисуется рамка}
begin
c1:=chr (218); {символ верхнего левого угла}
{функция chr возвращает символ, номер которого указан при вызове функции}
c2:=chr (196); {символ горизонтальной линейки}
c3:=chr (191); {символ правого верхнего угла}
c4:=chr (179); {символ вертикальной линейки}
c5:=chr (192); {символ левого нижнего угла}
c6:=chr (217); {символ правого нижнего угла}
GoToXY (l, t);
write (c1);
for i:=1to w-2 do {символ верхней границы рамки}
write (c2);
write (c3);
y:=t+1;
x:=l+w-1;
for i:=1to h-2 do {символы левой и правой границ}
begin
GoToXY (l, y);
write (c4);
GoToXY (x, y);
write (c4);
y:=y+1;
end;
GoToXY (l, y);
write (c5);
for i:=1to w-2 do {символы нижней границы}
write (c2);
write (c6);
end;
Управление цветом.
Используя процедуры TextColor и TextBackGround, можно задать цвет символов и цвет фона для текста, выводимого инструкциями write и writeln. Каждый цвет кодируется целым числом, которому соответствует именованная константа, таблица приведена ниже.
Таблица цветов для используемых процедур.
Цвет |
Код |
Константа |
Черный |
0 |
Black |
Синий |
1 |
Blue |
Зеленый |
2 |
Green |
Бирюзовый |
3 |
Cyan |
Красный |
4 |
Red |
Сиреневый |
5 |
Magenta |
Коричневый |
6 |
Brown |
Белый (светло-серый) |
7 |
Light Gray |
Серый |
8 |
Dark Gray |
Голубой |
9 |
Light Blue |
Светло-зеленый |
10 |
Light Green |
Светло-бирюзовый |
11 |
Light Cyan |
Светло-красный (алый) |
12 |
Light Red |
Светло-сиреневый |
13 |
Light Magenta |
Желтый |
14 |
Yellow |
Белый (яркий) |
15 |
White |
Процедура TextColor (цвет) устанавливает цвет символов, а процедура TextBackGround (цвет) – цвет фона выводимого теста. В качестве параметра Цвет для процедуры TextColor можно использовать код цвета или именованную константу в диапазоне от 0 до 15, а для процедуры TextBackGround – в диапазоне от 0 до 7.
Например, после выполнения инструкций
TextColor (LightGray);
TextBackGround (Blue);
Инструкции write и writeln будут выводить текст светло-серым цветом на синем фоне.
Установленные цвета символов и фона называются текущими. Инструкции вывода используют текущие цвета символов и фона до тех пор, пока они не будут изменены.
Например, следующие инструкции
TextBackGround (Blue);
TextColor (15);
write (‘1’);
TextColor (7);
Writeln (‘Вывод на экран’);
NextColor (7);
Writeln (‘Вывод на принтер’);
Выводят на экран фрагмент меню. Названия пунктов меню выводятся на синем фоне светло-серым цветом, а номера пунктов меню – ярко-белым.
Информация о текущем цвете символов и фона хранится в глобальной переменной TextAttr (атрибуты текста) типа byte. Значение переменной TextAttr можно использовать для того, чтобы перед завершением работы программа установила свои цвета. Например, следующая программа в начале своей работы сохраняет текущие установки цвета, а в конце – восстанавливает старые значения.
Program p;
Uses Crt;
Var
oldTextAttr: byte;
begin
{сохраним цвет символов и фона}
oldTextAttr:= TextAttr;
{установим свои цвета}
TextBackGround (Red);
TextColor (White);
{инструкции программы}
{восстановим цвет символов и фона}
TextArrt:= oldTextAttr;
End.
Помимо использования процедур TextColor и TextBackGround для установки цвета символов и цвета фона, установить атрибуты текста можно непосредственным присвоением значения переменной TextAttr, определяемого по формуле: НомерЦветаФона*16+НомерЦветаСимволов.
Например, чтобы установить белый цвет символов на красном фоне, переменной TextAttr надо присвоить значение 79 (79=4*16+15).
В качестве значения, присваиваемого переменной TextAttr, удобно использовать двузначную шестнадцатеричную константу, старший разряд которой определяет номер цвета фона, младший – номер цвета символов. Например, синий цвет фона обозначается числом 1, желтый цвет обозначается десятичным числом 14, которому соответствует шестнадцатеричная цифра Е. Таким образом, желтый цвет на синем фоне кодируется шестнадцатеричным числом 1Е. Так как в изображении шестнадцатеричных чисел используются латинского алфавита от А до F, то для того чтобы компилятор различал шестнадцатеричные числа и имена переменных, перед шестнадцатеричным числом ставится символ $. Так, инструкция TextAttr:=$1E; задает синий фон (номер цвета 1) и желтый цвет символов (номер цвета 14 в десятичной форме, и Е – в шестнадцатеричной).
Если к сообщению надо привлечь особое внимание, то можно установить его атрибуты так, что оно будет мигать. Чтобы это сделать, надо к константе, определяющей атрибуты, прибавить 128. Следующая последовательность инструкций выводит мигающее предупреждающее сообщение.
TextAttr:=$1E+128;
Write (‘Ошибка ввода данных’);
