Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
288.26 Кб
Скачать

3. Объекты и средства исследования

1. Персональный IBM PC совместимый компьютер;

2. Среда программирования TurboPascal 7.0.

4. Задание на работу

Вводится текстовая строка, состоящая из одного предложения. Подсчитать число знаков препинания в этой строке.

program stroka;

uses crt;

var strok:set of char;

s:char;

n:integer;

begin

clrscr;

strok:=[',',':',';','.','!','?'];

n:=0;

{read(s);

while (s<> '.') and (s<>'!') and(s<>'?') do begin

if s in strok then n:=n+1;

read(s);

end; }

repeat

read (s);

if s in strok then n:=n+1;

until (s='.') or (s='!') or (s='?');

writeln ('Число знаков препинания=',n);

repeat until keypressed;

end.

5. Порядок выполнения работы

Перед началом работы следует:

  • Включить компьютер;

  • Войти в локальную сеть со своим зарегистрированным именем и паролем;

1. Запустить среду программирования TurboPascal 7.0. Создать новый файл с расширением pas.

2. Разработать алгоритм программы в соответствии с вариантом задания.

3. По разработанному алгоритму составить программу.

4. Произвести компиляцию программы, а также провести ее отладку при необходимости.

5. Запустить выполнение программы и ознакомиться с результатами работы.

6. Завершить работу программы и закрыть среду программирования TurboPascal 7.0.

6. Содержание отчета

Отчет должен содержать название, цели и задачи лабораторной работы, задание, блок схему алгоритма работы программы в соответствии с ГОСТ 19.003 – 80, листинг программы, результат работы программы и выводы по работе.

7. Контрольные вопросы

1. Что такое множество? Для чего они применяются?

2. Каков формат объявления множества?

3. Какие операции допустимы над множествами?

4. Что такое объединение множеств?

5. Что такое разность множеств?

6. Что такое пересечение множеств?

Лабораторная работа №13

«Работа с графической библиотекой языка Паскаль»

1. Цель и задачи работы

Приобретение навыков работы с функциями и процедурами графической библиотеки языка Паскаль, построение графиков.

2. Основные теоретические положения

Одним из важнейших достоинств современных ПЭВМ является возможность вывода на экран графической информации. Для реализации возможности работы в графическом режиме используется библиотека графических подпрограмм с именем Graph. В модуль Graph включены стандартные графические программы, позволяющие высвечивать на экране дисплея точки, прямые, окружности, многоугольники, выводить текстовую информацию и прочее.

При работе с библиотекой графических модулей необходимо в разделе uses указать имя используемой библиотеки.

Инициализация графического режима осуществляется путем обращения к процедуре initgraph(gt,gm,pt). Эта процедура проверяет конфигурацию технических средств на наличие видеоадаптера, загружает соответствующий драйвер, выбирает нужный графический режим и переключается на него. Здесь gt, gm – переменные типа integer; pt – переменная типа string. Переменная gt определяет тип графического адаптера; переменная gm определяет режим работы графического адаптера; переменная pt определяет путь к графическому адаптеру, т.е. его местонахождение. Для автоматического выбора адаптера переменной gt необходимо присвоить значение detect, при этом переменные gm и pt не определяются. Если вместо строковой переменной pt стоит пустая строка, то процедура initgraph осуществляет поиск в текущем каталоге.

В составе графической библиотеки Graph есть функции, позволяющие определить код ошибки при инициализации графического режима. Так функция graphresult:integer выдаёт код ошибки, возникающей при инициализации графического режима. Если операция прошла без ошибок, то код равен 0 (grok=0), в противном случае – с ошибками. Функция grapherrormsg(graphresult:integer):string выдаёт строку текста сообщения об ошибке по её номеру, который передаётся через параметр graphresult.

В случае ошибки программа прерывается с выдачей соответствующего текстового сообщения. Программа, использующая библиотеку Graph, должна завершаться обращением к процедуре closegraph. Эта процедура завершает работу в графическом режиме, освобождает буфер, сбрасывает все графические режимы.

Типовой программный фрагмент инициализации графического режима на языке Паскаль может выглядеть следующим образом:

gt:=detect;

initgraph(gt,gm,'d:\tp7\bgi');

ec:=graphresult;

if ec<>grok then

begin

write ('Ошибка в графике');

writeln(grapherrormsg(ec));

closegraph;

halt;

end;

В графическом режиме экран представляет собой матрицу точек, причем есть возможность высветить любую из них. Координаты каждой точки определяются парой целых чисел: порядковым номером в строке – координата x (нумерация идёт слева направо, начиная с нуля) и порядковым номером строки экрана – координата y (нумерация идёт сверху вниз, начиная с нуля). Таким образом, координаты левого верхнего угла экрана (0,0), ось абсцисс идёт слева направо, ось ординат – сверху вниз.

При работе с новой ПЭВМ или другим адаптером пользователь должен знать максимальные значения координат экрана. Для этого следует воспользоваться функциями getmaxx:integer - выдаёт максимальное значение координаты x и getmaxy:integer - выдаёт максимальное значение координаты y.

Координаты центра экрана определяются следующим образом:

x_sr:=getmaxx div 2;

y_sr:=getmaxy div 2;

Простейшей геометрической фигурой является отрезок прямой между двумя заданными точками. Прямую линию можно сгенерировать двумя способами:

  1. с помощью процедуры line(x1, y1,x2, y2:integer)

С помощью этой ghjwtlehs проводится отрезок прямой из точки с координатами (x1,y1) в точку с координатами (x2,y2);

2) с помощью процедуры moveto(x1,y1:integer) помещают текущую графическую позицию по указанным координатам (x1,y1) графического окна, а затем с помощью процедуры lineto(x2, y2:integer) проводится отрезок прямой до конечной точки с координатами (x2,y2).

Пользователь имеет возможность установить желаемый тип выводимой на экран линии с помощью процедуры setlinestyle (linestyle:word, pattern:word, thick:word). Первый аргумент этой функции задаёт характер выводимой линии: сплошная (solid_line=0), точечная (dotted_line=1), штрихпунктирная (center_line=2), штриховая (dashed_line=3), определяемая пользователем (userbit_line=4). При значениях linestyle от 0 до 3 второй аргумент upattern игнорируется. Третий аргумент определяет толщину выводимых линий. Он может принимать два значения: NORM_WIDTH =1 – определяет линии толщиной в 1 пиксель и THICK_WIDTH=3 определяет линии толщиной в 3 пикселя. Например, функция setlinestyle(3,0,1) определяет пунктирную линию обычной толщины.

Пример. Пусть мы хотим начертить график кривой линии y=f(x) в интервале от a до b. Типичный программный фрагмент для решения этой задачи имел бы следующий вид:

x1=a;

y1=f(x1);

while x1<=b do

begin

x2=x1+h;

y2=f(x2);

line(round(x1*scalex),y_sr-round(y1*scaley),round(x2*scalex),y_sr-round(y2*scaley));

x1=x2;

y1=y2;

end;

Для построения реального графика надо начертить координатную сетку. Программный фрагмент для вертикальных линий может выглядеть следующим образом:

line(0,0,0,480);

x:=79;for i:=1 to 8 do

begin

line(x,0,x,480);

str(x/scalex:2:3,s);

outtextxy(x+5,ym+5,s);

x:=x+80;

end;

Процедура str(val:real(или integer); st:string) преобразует числовое значение val в последовательность символов, которую записывает в строку st.

Процедура outtextxy(x,y:integer;text:string) выводит строку текста text , начиная с точки, имеющей координаты (x,y).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]