неполная форма условного оператора:

If <Условие> Then <Оператор >.

Структура оператора выбора:

Case <Селектор> Of

<Константа 1> : <Оператор 1> ;

<Константа 2> : <Оператор 2> ;

<Константа n> : <Оператор n> ;

Else <Оператор>

End

Лабораторная работа № 3П

Графические средства ТурбоПаскаля.

Графические примитивы.

Задание к лабораторной работе № 3П

1.
Набрать и отладить программу, рисующую голову робота (рис. 1).

Рис. 1.

Рисунок головы робота содержит два прямоугольника, две окружности, две дуги, эллипс, три прямые линии и две черные точки.

2. В программе предусмотреть вывод на экран под рисунком строку с текстом "РИСУНОК ГОЛОВЫ РОБОТА".

Рекомендации по выполнению задания

к лабораторной работе № 3.

1. Для составления программы сначала необходимо определить все координаты и размеры элементов рисунка: головы, левого и правого глаза, левой и правой брови, носа, рта, шеи, левого и правого зрачков. Некоторые координаты уже проставлены на рис. 1, остальные координаты необходимо определить самостоятельно. После этого можно начинать писать программу.

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

1. Линия с заданными координатами концов (XI, Y1) и (Х2, Y2):

Procedure Line(XI, Yl, Х2, Y2 : Integer);

2. Линия от текущей точки до точки с координатами (X, Y):

Procedure LineTo(X, Y : Integer);

3. Линия от текущей точки до точки с заданными приращения­ми координат (DX, DY):

НЕ нашли? Не то? Что вы ищете?

Procedure LineRel(DX, DY : Integer);

4. Прямоугольник с заданными координатами верхнего левого угла (XI, Y1) и нижнего правого угла (Х2, Y2):

Procedure Rectangle(XI, Yl, Х2, Y2 : Integer);

5. Окружность с центром в точке (X, Y) и с радиусом R в пикселах:

Procedure Circle(X, Y : Integer; R : Word);

6. Дуга окружности с центром в точке (X, Y), с радиусом R, с начальным углом BegA и конечным углом EndA (углы измеряются в градусах против часовой стрелки от направления оси X):

Procedure Arc(X, Y : Integer; BegA, EndA, R : Word);

7. Эллипсная дуга с центром в точке (X, Y), с начальным и конечным углами соответственно BegA и EndA, с горизонталь­ным радиусом RX и вертикальным радиусом RY:

Procedure Ellipse(X, Y : Integer; BegA, EndA, RX, RY : Word);

3. Для вывода на экран строки с текстом "РИСУНОК ГОЛОВЫ РОБОТА" можно воспользоваться оператором
OutTextXY(195, 400, 'РИСУНОК ГОЛОВЫ РОБОТА');

4. Для проверки правильности написанной Вами программы рисования головы робота сравните ее с одним из возможных вариантов этой программы, приведенным ниже:

Program ROBOT;

Uses Graph;

Var Driver, Mode : Integer;

Begin

{- Инициализация графического режима }

Driver := Detect;

InitGraph(Driver, Mode, 'C:\TP\BGI');

SetColor(White); {Белый цвет рисунка} SetBkColor(Black) ; {Черный цвет фона}

Rectangle(100, 100, 300, 300); {Голова}

Circle(150, 170, 30); {Левый глаз}

Circle(250, 170, 30); {Правый глаз}

Arc(150, 170, 45, 135, 40); {Левая бровь}

Arc (250, 170, 45, 135, 40); {Правая бровь}

Ellipse(200, 250, 0, 359, 10, 20); {Нос}

Rectangle(130, 280, 270, 290); {Рот}

MoveTo(100, 300); {Установка граф. курсора вниз влево}

LineTo(50, 350); {Три}

LineTo(350, 350); {Линии}

LineTo (300, 300); {Шеи}

PutPixel(150, 170, Black); {Левый зрачок}

PutPixel(250, 170, Black); {Правый зрачок}

ReadLn; {Задержка}

CloseGraph; {Выход из модуля графики}

End.

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

Лабораторная работа № 4П

Графические средства ТурбоПаскаля.

Построение графика функции.

Задание к лабораторной работе № 4П

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

Рекомендации по выполнению задания

к лабораторной работе № 4.

1. В соответствии с порядком построения на экране дисплея графика функции y=F(x) сначала необходимо определить границы значений аргумента, в пределах которых будет строиться график, обозначив их Xmin и Xmax.
Из условия задачи следует, что
Xmin=0, Xmax=2p.

2. На следующем этапе для найденной области значений аргумента определяются предельные значения функции Ymin иYmax. В пределах Xmin=0, Xmax=2p функция sin x изменяется от −1 до 1, поэтому Ymin=−1, Ymax=1.

3. На следующем этапе необходимо задать границы графического окна, в пределах которого будет рисоваться график: [Xgmin, Xgmax], [Ygmin, Ygmax]. Поскольку в крафических координатах вертивкальная ось направлена вниз, то Ygmin>Ygmax.
Выберем следующие границы графического окна:
Xgmin=10; Xgmax=200; Ygmin=140; Ygmax=40.

4. График строится в виде последовательности точек со следующими математическими координатами:
Xi=Xmin+ih; Yi=sin(Xi); i=0,…,190.
Шаг
h выбирается минимально возможным, соответствующим шагу графической сетки:

Формулы пересчёта математических координат в графические примут следующий вид:

Вместе с графиком функции строятся оси координат. Ось X имеет координату Yg=90, а ось Y – координату Xg=10.

5. После составления своей программы можно для проверки правильности сравнить ее с одним из возможных вариантов программы, приведенным ниже.

Program GRAFIK_SIN;

Uses Graph;

Var Drive, Mode : integer;

X : Real; Xg, Yg, I : integer;

Begin

--- Инициализация графического режима ---

Driver := Detect;

InitGraph (Driver, Mode, ‘C:\TP\BGI’);

SetColor (White); {Белый цвет линий}

SetBkColor (Black); {Чёрный цвет фона}

Line (10, 90, 200, 90); {ОсьX}

Line (10, 20, 10, 160); {Ось Y}

--- Построение графика функции жёлтыми точками ---

X:= 0;

For I:= 0 To 190 Do

Begin Xg := 10+Round (95/Pi*X);

Yg := 90-Round(50*Sin(X));

PutPixel (Xg, Yg, Yellow);

X := X+Pi/95

End;

--- Разметка осей, запись функции ---

OutTextXY (15, 30, ‘Y’);

OutTextXY (205, 90, ‘X’);

OutTextXY (130, 40, ‘Y=Sin(X)’);

ReadLn; {Задержка}

CloseGraph; {Выход из графики}

End.

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

Лабораторная работа № 5П

Символьные строки в ТурбоПаскале.

Задание к лабораторной работе № 5П

1. Набрать и отладить программу получения из слова «ВЕЛИЧИНА» слова «НАЛИЧИЕ».

2. Набрать и отладить программу получения из слова «СТРОКА» слова «СЕТКА».

3. Набрать и отладить программу, формирующую символьную строку, состоящую из N звездочек. Здесь N – целое число, 1 < N < 255.

Краткие теоретические сведения

Строковый тип данных есть в ТурбоПаскале и отсутствует в стандартном Пас­кале.

Строка — это последовательность символов. Каждый символ занимает I байт памяти (код ASCII). Количество символов в стро­ке называется ее длиной. Длина строки может находиться в диапа­зоне от 0 до 255. Строковые величины могут быть константами и переменными.

Строковая константа — это последовательность символов, зак­люченная в апострофы. Например:

' Язык программирования ПАСКАЛЬ',

' IBM PC computer',

' '.

Строковая переменная описывается в разделе описания пере­менных следующим образом:

Var <идентификатор> : String[<максимальная длина

строки>].

Например:

Var Name : String[20].

Длина строки может и не указываться в описании. В этом слу­чае подразумевается, что она максимальна — 255 символов. На­пример:

Var Slovo : String.

Строковая переменная занимает в памяти на 1 байт больше, чем указанная в описании ее длина. Дело в том, что один (нуле­вой) байт содержит значение текущей длины строки. Если строко­вой переменной не присвоено никакого значения, ее текущая дли­на равна нулю.

По мере заполнения строки символами ее текущая длина воз­растает, но она не должна превышать максимального по описа­нию значения.

Символы внутри строки индексируются (нумеруются), начи­ная с единицы. Каждый отдельный символ идентифицируется име­нем строки с индексом, заключенным в квадратные скобки. На­пример:

Name[5], Name[i], Slovo[k+1].

Индекс может быть положительной константой, переменной величиной и выражением целого типа. Значение индекса не долж­но выходить за границы описания.

Тип String и стандартный тип Char совместимы. Строки и сим­волы могут употребляться в одних и тех же выражениях.

Строковые выражения строятся из строковых констант, пере­менных, функций и знаков операций. Над строковыми данными допустимы операции сцепления и операции отношения.

Операция сцепления (+) применяется для соединения несколь­ких строк в одну результирующую строку. Сцеплять можно как строковые константы, так и переменные. Например:

'ЭВМ'+' IBM'+' PC'.

В результате получится строка

'ЭВМ IBM PC'.

Длина результирующей строки не должна превышать 255 сим­волов.

Операции отношений (=, <, >, <=, >=, <>) производят сравне­ние двух строк, в результате чего получают логическую величину (True или False). Операция отношения имеет более низкий при­оритет, чем операция сцепления. Сравнение строк производится слева направо до первого несовпадающего символа, и большей считается та строка, в которой первый несовпадающий символ имеет больший номер в таблице символьной кодировки.

Если строки имеют различную длину, но в общей части сим­волы совпадают, считается, что более короткая строка меньше, чем более длинная. Строки равны, если они полностью совпадают по длине и содержат одни и те же символы. Например:

Выражение

Результат

'cosml' < 'cosm2'

True

'pascal' > 'PASCAL'

True

'Ключ_' <>'Ключ'

True

'MS DOS' = 'MS DOS'

True

• Функция Copy (S, Poz, N) — выделяет из строки S подстроку длиной N символов, начиная с позиции Poz. Здесь N и Poz — целочисленные выражения. Например:

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8