- •Содержание
- •Раздел 2.Программирование на процедурном языке turbo pascal 3
- •Раздел 2.Программирование на процедурном языке turbo pascal Лабораторная работа №1. Знакомство с интегрированной средой Turbo Pascal 7.0. Разработка первой программы.
- •Лабораторная работа № 2. Разработка программ, реализующих линейный процесс в среде Turbo Pascal 7.0.
- •Лабораторная работа № 3. Разработка программы, включающей различные форматы ввода/вывода данных средствами языка Pascal.
- •Лабораторная работа № 4. Вычисление алгебраических выражений с использованием стандартных процедур и функций языка Pascal.
- •Лабораторная работа № 5. Разработка программы для решения текстовой задачи в среде Turbo Pascal 7.0.
- •Лабораторная работа № 6. Вычисление заданного выражения при произвольных значениях переменных с использованием нескольких окон на одном экране. Работа с цветом в текстовом режиме.
- •If выражение then оператор1
- •Лабораторная работа № 7. Использование языка программирования для разработки программ вычисления математических выражений с использованием оператора if.
- •Лабораторная работа № 8. Разработка программы для решения текстовых задач, содержащих ветвление
- •Лабораторная работа № 9. Использование языка программирования для реализации разветвляющихся алгоритмов с использованием выражения – селектора в среде Turbo Pascal 7.0.
- •Лабораторная работа № 10. Разработка программ для реализации простых циклических алгоритмов средствами языка Pascal.
- •Лабораторная работа № 11. Разработка программ, включающих алгоритмы работы с числом
- •Лабораторная работа № 12. Реализация задачи табулирования функции на заданном отрезке в среде Turbo Pascal.
- •Лабораторная работа № 13. Вычисление суммы бесконечного ряда с заданной степенью точности в среде Turbo Pascal.
- •Лабораторная работа № 14. Разработка программ, включающих циклический процесс средствами языка Turbo Pascal.
- •Лабораторная работа № 15. Разработка программы реализации текстовой задачи, содержащей условия и циклы.
- •Лабораторная работа № 16. Разработка программы реализации задачи, содержащей одномерный массив данных.
- •Лабораторная работа № 17. Разработка программы реализации задачи, содержащей двумерный массив данных.
- •Лабораторная работа № 18. Методы сортировки массива в среде Turbo Pascal
- •Лабораторная работа № 19. Разработка программы работы со строками в среде Turbo Pascal
Лабораторная работа № 6. Вычисление заданного выражения при произвольных значениях переменных с использованием нескольких окон на одном экране. Работа с цветом в текстовом режиме.
Цель работы:
научиться использовать различные окна на одном экране
изучить на практике графические возможности Turbo Pascal 7.0 в текстовом режиме
закрепить практические навыки в отладке программы и контрольном просчете
Оборудование:
програмная часть – интегрированная среда Turbo Pascal 7.0
аппаратная часть - ПЭВМ IBM PC/XT
задание на выполнение работы в электронном варианте
Теоретическая часть
Дисплей компьютера может работать в двух режимах: текстовом и графическом. Изображения на экране ы обоих режимах формируетс из светящихся точек (пикселей). В графическом режиме компьютер с помощью программы должен управлять каждым пикселом. В текстовом режиме экран состоит из 25 строк, нумеруемых сверху вниз от 1 до 25. Каждая строка содержит 80 знакомест, т.е. в строке можно выводит до 80 символов. Нумерация знакомест – слева направо. Управление экраном в текстовом режиме осуществляется с помощью специальных процедур и функций.
Все описанные ниже процедуры и фкнкции входят в стандартный модуль CRT библиотечного файла TURBO.TPL и становятся доступными только песле использования в начале программы предложения: USES CRT.
Процедура TEXTBACKGROUND (<цвет>) позволяет устанавливать цвет фона экрана. TEXTCOLOR(<цвет>) – процедура, с помощью которой устанавливается цвет выводимых на экран символов. В модуле CRT определены следующие константы цветов для процедур TEXTBACKGROUND и TEXTCOLOR:
CONST
BLACK = 0 ;{черный}
BLUE = 1 ;{синий}
GREEN = 2 ;{зеленый}
CYAN = 3 ;{голубой}
RED = 4 ;{красный}
MAGENTA = 5 ;{фиолетовый}
BROWN = 6;{коричневый}
LIGHTGRAY = 7;{светло-серый}
DARKGRAY = 8;{темно-серый}
LIGHTBLUE = 9;{ярко-синий}
LIGHTGREEN = 10;{ярко-зелёный}
LIGHTCYAN = 11;{ярко-голубой}
LIGHTRED = 12;{розовый}
LIGHTMAGENTA = 13;{малиновый}
YELLOW = 14;{желтый}
WHITE = 15;{белый}
BLINK = 128;{мерцание символа}
Для опасания фона используются первые семь цветов, а если аргумент процедуры больше 7, цвет определяется остатком от деления аргумента на 8.
WINDOW (X1,Y1,X2,Y2) – процедура установки границ активного окна (X1,Y1 – координаты левого верхнео угла окна, X2,Y2 – координаты правого нижнего угла окна). Координаты определяются относительно леаого верхнего угла экрана, который имеет координаты 1,1.
GOTOXY(X,Y) – процедура перевода курсора в заданную координатами X и Y точку экрана или окна. X – горизонтальная координата, Y – вертикальная координата.
CLRSCR – процедура очистки всего экрана дисплея или активного окна.
Практическая часть
Пример:
1. Вычислить площадь треугольника по двум сторонам и углу между ними. Угол вводится в градусах и переводится в радианы.
uses crt;
var
a,b: real; { длины сторон }
angle: real; ( величина угла в градусах }
area: real; { площадь треугольника }
begin
textbackground(blue); { цвет фона }
textcolor(green); ( цвет символов }
clrscr; ( очистка экрана }
writeln('Вычисление площади треугольника');
write('Введите длины двух сторон треугольника в одной строке (см.):');
readln(a,b);
write('Введите угол между сторонами в градусах: ');
readln(angle);
{ переводим угол в радианы }
angle:=angle*pi/180;
{ area=a*h/2, где h (высота треугольника) может быть }
{ вычислена по формуле: h=b*sin(angle) }
area:=a*b*sin(angle)/2;
writeln('Площадь треугольника:', area:7:3,' кв.см.');
readln;
end.
Задания для самостоятельного выполнения
Составьте программу «Вычисление заданного выражения при произвольных значениях переменных», ввод и вывод данных которого организован следующим образом:
в указанном месте экрана открывается окно № 1 с заданными цветами фона и символов, в котором выводится выражения для вычисления Y и вводятся значения переменных A и B.
в указанном месте экрана открывается окно № 2 с заданными цветами фона и символов, в котором выводиться результат вычесления выражения Y.
Индивидуальные задания:
Вариант |
Параметры задания |
|||||
Расположение окна №1 |
Расположение окна №2 |
Цвет фона/символа экрана |
Цвет фона/символа окна №1 |
Цвет фона/символа окна №2 |
Выражение Y |
|
1 |
Слева вверху |
Слева внизу |
1/9 |
1/14 |
2/10 |
Y=(A+3*B)/(B-A) |
2 |
Слева внизу |
Справа вверху |
1/13 |
2/12 |
3/9 |
Y=(A-3*B)/(B+A) |
3 |
Спрва вверху |
Слева вверху |
2/11 |
3/10 |
4/8 |
Y=(A*4-3*B)/(2*B-A) |
4 |
Справа внизу |
Слева вверху |
3/9 |
4/8 |
5/7 |
Y=(A/2+3*B)/(B*A) |
5 |
Слева вверху |
Справа вверху |
4/7 |
5/15 |
6/11 |
Y=(A+3/B)/(B-11*A) |
6 |
Слева внизу |
Справа внизу |
5/14 |
6/13 |
0/12 |
Y=(A*6-3*B*B)/(B-A) |
7 |
Справа вверху |
Слева внизу |
6/12 |
0/11 |
1/13 |
Y=(A/3+3*B)/(B/2-A) |
8 |
Справа внизу |
Слева внизу |
0/10 |
3/9 |
4/14 |
Y=(A+B/3)*(B-A)/2 |
9 |
Слева вверху |
Справа внизу |
1/8 |
5/7 |
6/15 |
Y=(A*12-3*B)/(B-3*A) |
10 |
Слева внизу |
Слева вверху |
2/15 |
0/14 |
1/6 |
Y=(A+3*B)*(B-A)/2 |
11 |
Справа вверху |
Справа внизу |
3/13 |
2/12 |
4/5 |
Y=(A-5*B)/(B+9*A) |
12 |
Справа внизу |
Справа вверху |
4/11 |
5/10 |
6/0 |
Y=(A-3*B/2)/(3*B-A) |
13 |
Слева внизу |
Справа внизу |
5/9 |
0/8 |
5/15 |
Y=(A*A+B*B)/(B-A) |
14 |
Справа вверху |
Слева внизу |
6/7 |
2/15 |
1/9 |
Y=(A+3*B)/(B-4*A) |
15 |
Справа внизу |
Слева внизу |
0/14 |
4/13 |
5/3 |
Y=(A+B/5)/(B-A/2) |
16 |
Слева вверху |
Справа внизу |
1/6 |
6/11 |
0/11 |
Y=(2*A-B/2)/(2*B-B) |
17 |
Слева внизу |
Справа вверху |
2/4 |
5/9 |
1/9 |
Y=(2A+3*B/5)/(4*B-A) |
18 |
Слева вверху |
Справа внизу |
3/11 |
4/12 |
2/10 |
Y=(A-B*B/2)/(3*B-A) |
19 |
Слева внизу |
Справа вверху |
4/5 |
3/5 |
3/8 |
Y=(A/3-3*B*B)/(7*B-A) |
20 |
Слева внизу |
справа внизу |
5/12 |
2/7 |
4/11 |
Y=(2/A-B*B/2)/(4*B-A) |
21 |
Слева вверху |
Справа внизу |
6/8 |
1/11 |
5/14 |
Y=(B*A-3/2*B)/(2*B-A) |
22 |
Слева вверху |
Справа внизу |
5/7 |
6/12 |
6/9 |
Y=(B-A-3*B*A/2)/(5-B) |
23 |
Справа вверху |
справа внизу |
4/2 |
0/15 |
0/13 |
Y=(A*3-7*B/2)/(3*B-A) |
24 |
Слева вверху |
Справа вверху |
3/13 |
4/7 |
2/14 |
Y=(A-3*B/2)/(3*B-A/6) |
25 |
Справа внизу |
Справа вверху |
2/14 |
2/5 |
4/6 |
Y=(2*A-3*B/2)/(3*A-B) |
Контрольные вопросы
В каких режимах может работать экран дисплея?
Что общего и в чем разница между двумя режимами?
Как осуществляется управление экраном в текстовом режиме?
Какая процедура устанавливает цвет фона экрана?
С помощью какой процедуры можно устанавливать цвет выводимых на экран символов?
Как задается палитра цветов?
Если аргумент процедур задания цвета больше 7, то как в этом случае опеделяется цвет?
Как установить границы активного окна?
Какую процедуру использовать для перевода курсора в заданную позицию?
Как очистить экран от предыдущих результатов?
