![]() Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву ![]() Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Внешние устройства в качестве файлов.Содержание книги
Поиск на нашем сайте
Связь с внешними устройствами в языке Паскаль осуществляется также через файловые переменные. В Турбо Паскале существует два типа внешних устройств: устройства операционной системы и текстовые устройства. Устройства операционной системы, с которыми осуществляется обмен информацией, могут быть описаны как файлы со стандартными именами. Эти имена следующие: CON – консоль (клавиатура, дисплей). С этим устройством стандартно связаны файловые переменные Input и Output. LPT1, LPT2, LPT3 – печатающие устройства. Если в системе один принтер, то он будет иметь имя LPT1. Если в программе используется стандартный модуль Printer (указан в разделе Uses), можно использовать для вывода на принтер стандартную файловую переменную Lst. PRN – синоним LPT1. COM1, COM2 – имена двух портов. AUX – синоним COM1. NUL – фиктивное внешнее устройство. К текстовым устройствам относятся устройства, не поддерживаемые операционной системой или имеющие другие способы обращения. Например, устройство CRT, поддерживаемое стандартным модулем Сrt. Оно эквивалентно CON в операционной системе, но более быстродействующее и позволяет использовать разные цвета и окна. С текстовым устройством нельзя связаться процедурой assign. Для связи с ним служит специальная модификация этой процедуры, например, для связи с устройством CRT следует использовать процедуру AssignCrt в модуле Crt. Граф Занятие 1. Основные понятия. Граф – это непустое множество точек (вершин) и множество отрезков (ребер), концы которых принадлежат заданному множеству точек. Если на каждом ребре задать направление, то граф будет ориентированным.
Если, двигаясь по ребрам графа в заданном направлении, можно попасть из заданной вершины 1 в заданную вершину 2, то говорят, что эти вершины соединены путем. Замкнутый путь, состоящий из различных ребер, называется циклом. Граф называется связным, если любые две его вершины соединены путем. ![]() Связный граф без циклов называется деревом. С каждой вершиной дерева связывается конечное число отдельных деревьев, называемых поддеревьями. Рассмотрите пример дерева, в узлах которого располагаются символы. Для дальнейшей работы с деревьями необходимо определить ряд понятий.
• Вершина у, находящаяся непосредственно ниже вершины х, называется непосредственным потомком х, а вершина х называется предком у. • Если вершина не имеет потомков, то она называется терминальной вершиной или листом, если имеет, то называется внутренней вершиной. • Количество непосредственных потомков внутренней вершины называется ее степенью. • Степенью дерева называется максимальная степень всех вершин. Например, • вершины F, D, E являются непосредственными потомками вершины В; • вершины F, D, E являются листьями; • вершины C, G, H – внутренние; • степень вершины В – 3, а вершины Н – 1; • степень дерева равна 3. Определение. Двоичное дерево – это дерево, в котором из каждой вершины исходит не более двух ребер. Задание. Наберите текст программы на компьютере и рассмотрите ее действие. Данная программа демонстрирует создание произвольного двоичного дерева. Program DemidenkoS; Uses Crt, Graph; Const Arr: array [1..6] of integer=(160,80,40,20,10,5); Arr1: array [1..6] of integer=(120,80,70,60,50,40); Type ss=^sp; sp=record elem:byte; Next: array[1..2] of ss; end; Var a, b, c, d: longint; s: string; grDriver: integer; grMode: integer; a1, b1: real; x, Some, Max, Min: ss; Procedure Zap(y: ss; n: integer); Var aa,bb:integer; Begin y^.elem:=random(99)+1; bb:=random(3); if n<1 then bb:=2; if n<a then for aa: =1 to bb do begin new(y^.next[aa]); y^.next[aa]^.next[1]:=nil; y^.next[aa]^.next[2]:=nil; zap(y^.next[aa],n+1); end; End; Procedure Strel(x1, y1: integer; k: Real); Var aa: Real; Begin aa:=arctan(k); if k>0 then begin line(x1,y1,x1+round(10*cos(aa+pi/18)),y1-round(10*sin(aa+pi/18))); line(x1,y1,x1+round(10*cos(aa-pi/18)),y1-round(10*sin(aa-pi/18))); line(x1+round(10*cos(aa+pi/18)),y1-round(10*sin(aa+pi/18)),x1+round(10*cos(aa-pi/18)),y1-round(10*sin(aa-pi/18))); end else begin aa:=-aa; line(x1,y1,x1-round(10*cos(aa+pi/18)),y1-round(10*sin(aa+pi/18))); line(x1,y1,x1-round(10*cos(aa-pi/18)),y1-round(10*sin(aa-pi/18))); line(x1-round(10*cos(aa+pi/18)),y1-round(10*sin(aa+pi/18)),x1-round(10*cos(aa-pi/18)),y1-round(10*sin(aa-pi/18))); end end; Procedure Wiv(y: ss; n, x1, y1: integer); Var spi: ss; Begin SetColor(n+1); Circle(x1,y1,10); Str(y^.elem, s); if length(s)=2 then OutTextXY(x1-6, y1-2, s) else OutTextXY(x1-3, y1-2, s); if n<a then begin if y^.next[1]<>nil then begin SetColor(n+1); Line(x1,y1+10,x1-(arr[n] div 2),y1+((arr1[n]-20) div 2)+10); SetColor(n+2); Line(x1-(arr[n] div 2),y1+((arr1[n]-20) div 2)+10,x1-arr[n],y1+arr1[n]-10); Strel(x1-arr[n],y1+arr1[n]-10,(arr1[n]-20)/arr[n]); Wiv(y^.next[1],n+1,x1-arr[n],y1+arr1[n]); end; if y^.next[2] <> nil then begin SetColor(n+1); Line(x1,y1+10,x1+arr[n],y1+arr1[n]-10); SetColor(n+2); Line(x1+(arr[n] div 2),y1+((arr1[n]-20) div 2)+10,x1+arr[n],y1+arr1[n]-10); Strel(x1+arr[n],y1+arr1[n]-10,-(arr1[n]-20)/arr[n]); Wiv(y^.next[2],n+1,x1+arr[n],y1+arr1[n]); end; end; end; Begin ClrScr; Randomize; Repeat new(x); a:=6; x^.next[1]:=Nil; x^.next[2]:=Nil; Zap(x,0); Max:=x; Min:=x; writeln; grDriver:= Detect; InitGraph(grDriver, grMode,'c:\tp7\bgi\');
SetFillStyle(solidfill,15); SetColor(15); Wiv(x,1,320,50); Delay(5000); until KeyPressed; End. Задание. Поэкспериментируйте над предложенной программой, внося свои изменения. Результат покажите учителю.
|
||||||||||
Последнее изменение этой страницы: 2016-08-12; просмотров: 167; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.84.91 (0.01 с.) |