рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Графические средства языка Паскаль

Графические средства языка Паскаль - раздел Транспорт, От автора Монитор Персонального Компьютера Может Работать В Двух Режимах - Текстовом И ...

Монитор персонального компьютера может работать в двух режимах - текстовом и графическом. Все, что мы делали до сих пор, мы делали в текстовом режиме. Текстовый экран содержит 2000 знакомест - 25 строк по 80 позиций, в каждом знакоместе может быть выведен один символ. Графический экран состоит из маленьких точек - пикселов, каждый из которых закрашен в какой-либо цвет. Для работы в графическом режиме существует обширная библиотека процедур и функций, находящихся в модуле Graph. Структуру модуля и правила создания пользовательских модулей мы рассмотрим несколько позже. Чтобы использовать стандартные модули, вам достаточно знать лишь один оператор:

Uses модуль , ... ;

Этот оператор должен быть первым оператором в программе, в нем перечисляются все модули, используемые данной программой; в частности, чтобы работать с графикой, вам достаточно записать Uses Graph;.Теперь рассмотрим графические средства, предоставляемые этим модулем. Здесь описаны только наиболее употребительные и наиболее полезные, по мнению автора, средства. Тот, кто хочет изучить все возможности модуля Graph, может сделать это, пользуясь справочной службой среды Turbo Pascal (или Borland Pascal).

1. Procedure InitGraph(Var GraphDriver,GraphMode: Integer; PathToDriver: String); - эта процедура инициализирует графический режим, т.е. переключает монитор из текстового режима в графический. Любые графические процедуры и функции могут быть успешно выполнены только в графическом режиме. Перед вызовом InitGraph необходимо первому аргументу присвоить значение Detect (константа, описанная в модуле Graph). PathToDriver - это строка, содержащая путь к файлу - графическому драйверу, для мониторов от EGA до SVGA это файл EGAVGA.BGI. Графические драйверы всегда содержатся в директории, где находится сам Turbo Pascal (обычно в поддиректории BGI). Вы можете либо отыскать на диске этот файл и в программе правильно задать путь к нему, например 'D:TPBGI', либо иметь этот файл в вашей рабочей директории, тогда путь задается пустой строкой. Если ни то ни другое не сделано, графический режим не будет инициализирован.

2. Procedure CloseGraph; - закрывает графический режим.

3. Function GetMaxX : Integer;

4. Function GetMaxY : Integer; - возвращают соответственно номер самого правого и самого нижнего пиксела экрана. Пикселы нумеруются от0 до GetMaxX слева направо и от0 доGetMaxY сверху вниз. Разрешение графического экрана зависит от типа монитора и от выбранного графического режима. Например, для монитора VGA максимальное разрешение 640 ´ 480, т.е. GetMaxX вернет 639, а GetMaxY - 479.

5. Procedure SetBkColor(Color: Word); - устанавливает фоновый цвет, после ее выполнения весь экран будет закрашен в цвет Color. Цветовая палитра также зависит от типа монитора и выбранного графического режима, но стандартная палитра для цветного монитора включает 16 цветов :

0 - Black,1 - Blue,2 - Green,3 - Cyan, 4 - Red,5 - Magenta,6 - Brown,7 - LightGray,8 - DarkGray,9 - LightBlue,10 -LightGreen,11 - LightCyan,12 - LightRed,13 - LightMagenta,14 - Yellow,15 - White.Приведенные названия - это имена констант, описанных в модуле Graph, вы можете использовать их или задавать цвета числами.

6. Procedure SetViewPort(x1,y1,x2,y2: Integer; Clip: Boolean); - инициализирует графическое окно; x1,y1,x2,y2 - координаты соответственно левого верхнего и правого нижнего углов окна. После выполнения этой процедуры пикселы будут отсчитываться от левого верхнего угла окна. Логический параметр Clip определяет, следует ли усекать изображения на границах окна. Выполнять эту процедуру не обязательно, по умолчанию графическое окно занимает весь экран.

7.Procedure ClearDevice; - закрашивает фоновым цветом экран.

8. Procedure PutPixel(X,Y: Integer; Color: Word); - закрашивает пиксел с координатами X,Y цветом Color.

9.Function GetPixel(X,Y: Integer): Word; - возвращает цвет пиксела с координатами X,Y.

10. Procedure SetColor(Color : Word); - устанавливает цвет линий, все выводимые на экран линии будут иметь цвет Color до выполнения следующей процедуры SetColor.

11. Procedure SetLineStyle(LineStyle,Pattern, Thickness: Word); - устанавливает стиль линий, действует для всех выводимых линий до выполнения SetLineStyle с другими аргументами. Параметр LineStyle может принимать следующие значения :

0 - SolidLn - сплошная линия;

1 - DottedLn - пунктирная линия;

2 - CenterLn - штрих-пунктирная линия;

3 - DashedLn- штриховая линия;

4 - UserBitLn - линия, задаваемая программистом.

Если стиль линии - 4, то форма линии определяется вторым параметром процедуры - Pattern. Толщина линии может принимать всего два значения : 1 -NormWidth(тонкая линия), 3 - ThickWidth (жирная линия).

12. Procedure Line(x 1,y1,x2,y2: Integer); - рисует отрезок прямой от точки с координатами x1,y1 до точки x2,y2.

13. Procedure MoveTo(x,y: Integer); - перемещает графический курсор в точку x,y. Графический курсор не виден на экране, но ряд процедур использует текущее положение графического курсора.

14. Procedure LineTo(x,y: Integer); - рисует отрезок от текущей точки (текущего положения графического курсора) до точки x,y.

15. Procedure MoveRel(Dx,Dy:Integer);- перемещает графический курсор на Dx по горизонтали и на Dy по вертикали.

16. Procedure LineRel(Dx,Dy: Integer); - рисует отрезок от текущей точки до точки, со смещением Dx,Dy.

17. Function GetX: Integer;

18. Function GetY: Integer; - возвращают текущие координаты графического курсора.

19. Procedure Rectangle(x1,y1,x2,y2: Integer); - рисует прямоугольник, x1,y1 - координаты левого верхнего угла, x2,y2 - координаты правого нижнего угла.

20. Procedure Circle(X,Y: Integer; R: Word); - рисует окружность радиуса R с центром в точке X,Y.

21. Procedure Ellipse(X,Y: Integer; f1,f2,Rx,Ry: Word); - рисует дугу эллипса с полуосями Rx,Ry и центром в точке X,Y от угла f1 до угла f2 (углы задаются в градусах).

22. Procedure Arc(X,Y: Integer; f1,f2,R: Word); - рисует дугу окружности радиуса R с центром в точке X,Y от угла f1 до угла f2.

23. Procedure SetFillStyle(Pattern,Color:Word); - устанавливает способ закраски. Параметр Pattern может принимать следующие значения : 0 - EmptyFill - не закрашивать, 1 - SolidFill - сплошная закраска, 2 - LineFill, 3 - LtSlashFill,4 - SlashFill,5 - BkSlashFill,6 - LtBkSlashFill,7 - HatchFill,8 - XHatchFill,9 - InterleaveFill,10 - WideDotFill,11 - CloseDotFill.

24. Procedure Bar(x1,y1,x2,y2: Integer); - рисует закрашенный прямоугольник, используя способ закраски, установленный процедурой SetFillStyle.

25. Procedure FillEllipse(X,Y: Integer; Rx,Ry: Word); - рисует закрашенный эллипс.

26. Procedure Sector(X,Y: Integer; f1,f2,Rx,Ry: Word); - рисует закрашенный эллиптический сектор.

27. Procedure PieSlice(X,Y: Integer; f1,f2,R: Word); - рисует закрашенный круговой сектор.

28. Procedure FloodFill(X,Y: Integer; Border: Word); - закрашивает замкнутую область, ограниченную линией цвета Border, X,Y - координаты любой внутренней точки области. Используется способ закраски “заливка жидкостью”, поэтому если ограничивающая линия имеет разрывы, “жидкость” выльется и закрасит все области экрана, которые сможет. Автор рекомендует самостоятельно провести эксперимент с этой процедурой.

29. Procedure SetTextStyle(Font,Direction,Size: Word); - устанавливает способ вывода текста. Font - номер графического шрифта, принимающий значения 0 - DefaultFont,1 - TriplexFont,2 - SmallFont,3 - SansSerifFont,4 - GothicFont.Нулевой шрифт - стандартный и поддерживается всегда. Если вы используете штриховые шрифты с 1-го по 4-й, то должны иметь в вашей рабочей директории шрифтовые файлы TRIP.CHR, LITT.CHR, SANS.CHR, GOTH.CHR(те из них, которые вам нужны). Параметр Direction определяет направление вывода текста: слева направо или сверху вниз и принимает значения 0 - HorizDir ,1 - VertDir. Параметр Size определяет размер символов и изменяется от1 до 10.

30. Procedure OutText(S: String); - выводит текст на графический экран, используя текущие координаты графического курсора (процедура Write[Ln] в графическом режиме не работает).

31. Procedure OutTextXY(X,Y: Integer; S: String); - выводит текст на графический экран, используя координаты X,Y.

32. Procedure SetTextJustify(Horiz, Vert: Word); - устанавливает способ позиционирования текста. Параметр Horiz может принимать значения:

0 - LeftText - по левому краю,

1 -CenterText - по середине текста,

2 - RightText- по правому краю.

Параметр Vert может принимать значения:

0 - BottomText - по нижнему краю,

1 - CenterText - по середине текста,

2 - TopText - по верхнему краю.

Выводя текст на графический экран, мы задаем координаты некоторой точки экрана, но текст - не точечный, а протяженный объект, поэтому заданная точка может быть совмещена с различными точками текста; так, если мы хотим, чтобы заданные нами координаты были координатами левого верхнего угла текста, мы выполняем процедуру SetTextJustify (LeftText,TopText); если нам нужно задать координаты середины нижнего края текста, то выполняем SetTextJustify (CenterText,BottomText), и т.д. - всего девять вариантов. Не пренебрегайте этой процедурой, если хотите аккуратно вывести подписи к вашему рисунку.

33. Function TextWidth(S: String): Word; - возвращает длину текста в пикселах.

34. Function TextHeight(S: String): Word; - возвращает высоту текста в пикселах.

35. Procedure SetVisualPage(Page : Word); - устанавливает видимую графическую страницу (если в данном графическом режиме есть несколько видеостраниц). Page - номер страницы, равный 0,1, и т.д.

36. Procedure SetActivePage(Page : Word); - устанавливает текущую графическую страницу, куда будет направлен весь вывод. Две последние процедуры могут быть использованы для создания мультипликации.

37. Procedure SetGraphMode(Mode: Integer); - устанавливает графическую моду. Большинство графических драйверов допускает несколько мод. Какой графический драйвер задействован в данном компьютере, можно узнать по значению параметра GrDriver после выполнения процедуры InitGraph. Присваивая этой переменной значение Detect, мы не задаем никакого драйвера, а лишь указываем, что процедура сама должна определить этот драйвер. В Паскале определены следующие константы драйверов: Detect=0, CGA=1, MCGA=2, EGA=3, EGA64=4, EGAMono=5, IBM8514=6, HercMono=7, ATT400=8, VGA=9, PC3270=10. При успешном выполнении процедура InitGraph возвратит одно из этих значений через параметр GrDriver. Параметру GrMode присваивается значение установленной графической моды (от 0 до 4), причем устанавливается старшая мода. У драйвера VGA есть 3 моды, различающиеся разрешением экрана и количеством видеостраниц:

0 - 640 ´ 200 пикселов, 4 страницы;

1 - 640 ´ 350 пикселов, 2 страницы;

2 - 640 ´ 480 пикселов, 1 страница.

Именованные константы для графических мод также описаны в модулеGraph; так, для перечисленных выше мод это: VGALo, VGAMed, VGAHi.

38. Function GetGraphMode : Integer; - возвращает установленную графическую моду.

39. Procedure RestoreCrtMode; - устанавливает текстовый режим монитора. Эта процедура совместно с SetGraphModeможет использоваться для отладки графических программ. Предположим, что мы написали, но пока еще не отладили графическую программу. Мы хотим вывести какую-либо информацию, вычисляемую программой на экран, но использовать для вывода процедуру OutText довольно затруднительно. Организуем нашу программу следующим образом: ...InitGraph...{здесь мы хотим вывести информацию}RestoreCrtMode; WriteLn(...{ вернемся в графику }SetGraphMode(GetGraphMode);...

40. Function GraphResult :Integer; - возвращает код завершения последней графической операции, если этот код равен grOK (=0), то операция выполнена успешно, в противном случае произошла ошибка.

41. Procedure SetWriteMode(WriteMode:Integer); - устанавливает режим вывода линий на графический экран. Параметр WriteMode может принимать значения CopyPut=0, XorPut=1, OrPut=2, AndPut=3, NotPut=4. По умолчанию устанавливается режим CopyPut - это означает, что, задав некоторый цвет линии, мы получим линию именно этого цвета на любом фоне. Но если установлен другой режим, то цвет рисуемой линии определяется следующим образом: прежде чем закрашивать некоторый пиксел на экране, определяется цвет этого пиксела (каким он был до рисования линии), и над этим цветом и заданным процедурой SetColor цветом линии выполняется битовая операция Xor, Or или And и выводится пиксел полученного цвета. Если установлен режим NotPut, то применяется операция Not к цвету фонового пиксела и цвет, заданный SetColor, не используется. Таким образом, рисуя линии на “пестром” фоне, мы получим “пеструю” линию. Отметим, что, дважды нарисовав одну и ту же линию одним и тем же цветом в режиме XorPut, мы получим первоначальное состояние экрана согласно свойству a Xor b Xor b = a для любых a и b.

Чтобы продемонстрировать некоторые из графических возможностей языка Паскаль, напишем программу, рисующую график функции y=lg(x)+cos4(x/10) на отрезке [1,100]. Постараемся не только правильно изобразить кривую, но и аккуратно оформить рисунок. Обратите внимание, как используются константы настройки, которых будет довольно много в этой программе.

 

Uses Graph;

Const {константы настройки}

grX0= 100; {X-координата левого края рисунка}

grY0= 400; {Y-координата нижнего края рисунка}

grLx= 300; {ширина рисунка}

grLy= 300; {высота рисунка}

grScreen_Color=8; {фоновый цвет}

grAxis_Color=15; {цвет координатных осей}

grLine_Color=9; {цвет кривой}

grText_Color=14; {цвет пояснительных надписей}

grTic_Size=4; {размер делений на осях}

grBlank=2; {маленький отступ, используемый при оцифровке осей}

grTic_Num_X=5; {количество делений на оси X}

grTic_Num_Y=10; {количество делений на оси Y}

grLen_X=5; {количество символов в подписях к делениям на оси X}

grDec_X=1; {количество дробных цифр в подписях на оси X}

grLen_Y=4; {количество символов в подписях к делениям на оси Y}

grDec_Y=2; {количество дробных цифр в подписях на оси Y}

grText:String='y=lg(x)+cos^(x/10)'; {подпись к графику, символ ^ будет заменен на верхний индекс}

grMask='^'; {заменяемый символ в подписи}

grReplace='4'; {символ, заменяющий grMask}

N=100; {количество отрезков, из которых будет состоять график}

x1=1;

x2=100;

h=(x2-x1)/N; {шаг по x-координате}

 

Function y_function(x:Real):Real;

Begin

y_function:=Ln(x)/Ln(10)+Sqr(Sqr(Cos(x/10)));

End;

 

Var

grDriver,grMode,grX,grY :Integer;

Ymin,Ymax,Mx,My,x,y :Real;

j :Word;

s :String;

p :Byte;

Begin

{перейдем в графический режим}

grDriver:=Detect;

InitGraph(grDriver,grMode,'');

If GraphResult<>grOK Then Begin

{не удалось инициализировать графику}

WriteLn('Графический драйвер не найден');

Halt(0);

End;

{закрасим экран в фоновый цвет}

SetFillStyle(SolidFill,grScreen_Color);

Bar(0,0,GetMaxX,GetMaxY);

{нарисуем координатные оси}

SetColor(grAxis_Color);

MoveTo(grX0,grY0-grLy);

LineRel(0,grLy);

LineRel(grLx,0);

{вычислим масштаб по X - количество пикселов (возможно не целое), соответствующее единичному приращению x-координаты}

Mx:=grLx/(x2-x1);

{вычислим масштаб по Y, для этого предварительно необходимо найти минимальное и максимальное значения функции на отрезке [x1,x2]}

Ymin:=y_function(x1);

Ymax:=y_function(x1);

For j:=1 To N Do Begin

x:=x1+j*h;

y:=y_function(x);

If Ymin>y Then Ymin:=y

Else

If Ymax<y Then Ymax:=y;

End;

My:=grLy/(Ymax-Ymin);

{оцифруем ось X}

SetColor(grAxis_Color);

SetTextJustify(CenterText,TopText);

{позиционируем текст по середине верхнего края}

For j:=1 To grTic_Num_X Do Begin

x:=x1+j*(x2-x1)/grTic_Num_X;

{значение x, соответствующее j-му делению}

grX:=grX0+Round(Mx*(x-x1));

{номер соответствующего пиксела}

MoveTo(grX,grY0);

LineRel(0,grTic_Size); {нарисовали деление}

MoveRel(0,grBlank); {отступили немного вниз}

Str(x:grLen_X:grDec_X,s);

{преобразовали число x в строку s}

OutText(s); {вывели s}

End;

{оцифруем ось Y}

SetTextJustify(RightText,CenterText);

{позиционируем текст по середине правого края}

For j:=1 To grTic_Num_Y Do Begin

y:=Ymin+j*(Ymax-Ymin)/grTic_Num_Y;

{значение y, соответствующее j-му делению}

grY:=grY0-Round(My*(y-Ymin));

{номер соответствующего пиксела}

MoveTo(grX0,grY);

LineRel(-grTic_Size,0); {нарисовали деление}

MoveRel(-grBlank,0); {отступили немного влево}

Str(y:grLen_Y:grDec_Y,s);

{преобразовали число y в строку s}

OutText(s); {вывели s}

End;

{выведем пояснительный текст, но сначала определим позицию заменяемого символа и исправим его на пробел}

p:=Pos(grMask,grText);

grText[p]:=' ';

{выведем текст (пока без показателя степени), позиционируя его по середине верхнего края - он будет расположен под рисунком, симметрично относительно оси X}

SetColor(grText_Color);

SetTextJustify(CenterText,TopText);

MoveTo(grX0+grLx ShR 1,grY0); {это середина оси X}

MoveRel(0,grTic_Size+grBlank+TextHeight('#'));

{сместились ниже подписей к делениям}

MoveRel(0,TextHeight('#'));

{отступили вниз еще на одну высоту символа, помня о показателе степени; конечно, три последних оператора можно объединить в один}

OutText(grText);

{теперь определим место на экране, где нужно вывести показатель степени, сейчас графический курсор находится над серединой текста}

MoveRel(-(TextWidth(grText)ShR 1),0);

{переместим его в начало текста}

MoveRel(TextWidth(Copy(grText,1,p-1)),0);

{теперь курсор после буквы s , осталось вывести четверку, используем для этого маленький шрифт (в текущей директории должен быть файл LITT.CHR)}

SetTextStyle(SmallFont,0,4);

SetTextJustify(LeftText,BottomText);

OutText(grReplace);

SetLineStyle(0,0,3);

{Нарисуем график, используя жирную сплошную линию}

SetColor(grLine_Color);

MoveTo(grX0,grY0-Round(My*(y_function(x1)-Ymin)));

For j:=1 To N Do Begin

x:=x1+j*h; y:=y_function(x);

LineTo( grX0+Round(Mx*(x-x1)),

grY0-Round(My*(y-Ymin)));

End;

ReadLn;

CloseGraph;

End.

– Конец работы –

Эта тема принадлежит разделу:

От автора

B r... Теперь мы можем присвоить переменным их значения...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Графические средства языка Паскаль

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

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

Round(x) - округленное до целого вещественное число, преобразованное к типуLongInt
6. Sqr(x) - квадрат числа 7. Sqrt(x) - квадратный корень 8. Exp(x) - экспонента 9. Ln

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

Caseвыражение Of
список значений : оператор/блок .................................. список значений: оператор/блок

Процедуры и функции. Сфера действия описаний
В языке Паскаль (как вы уже поняли из предыдущего материала) существуют понятия процедуры и функции. Процедуры и функции можно определить как замкнут

Открытые массивы и нетипизированные параметры
Из предыдущего раздела мы узнали, что параметры подпрограмм описываются как [Var] имя : имя типа , это правда, но не вся правда - существует еще два

Множества
Понятие множества в Паскале очень близко к математическому определению: множество - это совокупность однотипных неиндексированных объектов. Множества

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

Case тип Of
константа 1 : (описание поля); константа 2 : (описание поля); .....................

Модуль Crt
Crt - еще один стандартный модуль Паскаля, в котором содержатся разнообразные средства консольного ввода-вывода (то есть ввода с клавиатуры и вывода на текстовый экран). Процедуры

Var TextAttr : Byte
В ней содержится текущий цвет фона и цвет символов, используемые при выводе на экран процедурами Write иWriteLn. Изменив эту переменную, вы задаете новый

Другие средства обработки файлов и модуль DOS
Для того чтобы определить, есть ли на диске файл с заданным именем, удобно использовать уже известную нам стандартную функцию IOResult , которая возвращает ноль при успешном завершении последней оп

Type SearchRec=Record
Fill : Array[1..21] of Byte; Attr : Byte; Time : LongInt; Size : LongInt; Name : Stri

Процедурные типы
Язык Паскаль позволяет использовать в программе данные типа “процедура” или типа “функция”. Такие данные можно передавать как аргументы подпрограмм, можно описывать и использовать массивы процедур

Указатели и динамическая память
Указателями называются переменные и константы, значениями которых являются адреса. Различаются два вида указателей - обобщенные указатели и

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

Открытые строки
  Открытыми строками, или длинными строками, или C-строками, называются символьные последовательности длиной до 65535 символов, ограниченные справа нуль-символ

Использование командной строки и вызов внешних программ
Паскаль позволяет передавать информацию в программу при ее запуске через командную строку. Для этого служат две стандартные функции -ParamCount и ParamStr.

Обработка программных прерываний
Программное прерывание - это ситуация, возникающая, когда дальнейшее выполнение программы невозможно. Например, деление на ноль, переполнение, ошибка Range check error, обращение по неверному адрес

Объекты
Объектом в языке Паскаль называется совокупность данных и подпрограмм, обрабатывающих эти данные. Программирование с использованием объектов называется объектно-о

Type имя типа=Object
описание полей описание методов End; Поля объектов описываются так же, как поля записей, а описание метода - это заголовок процедуры или функции. Сами методы распол

Рекурсия и динамическое программирование
В этом и всех последующих разделах речь пойдет уже не о языке программирования Паскаль, а о задачах, которые вы можете решать с помощью этого языка, о наиболее интересных и полезных алгоритмах и пр

Рекурсия и стек отложенных заданий
Рекурсивные алгоритмы далеко не всегда неэффективны, как можно подумать, прочитав предыдущий раздел. Во многих задачах рекурсивные процедуры и функции очень полезны, кроме того, они исключительно п

Стеки и очереди
Значение стека как структуры данных в программировании не исчерпывается лишь стеком отложенных заданий. В этом разделе мы решим с помощью стека задачу о вычислении значения арифметического выражени

Комбинаторные алгоритмы
В этом разделе мы рассмотрим три наиболее важные задачи комбинаторики: нахождение всех подмножеств множества из n элементов; нахождение всех выборок по m элементов из n элементов и нахождение всех

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

Упорядоченные бинарные деревья и приоритетные очереди
Упорядоченным бинарным деревом, или бинарным деревом поиска, называют дерево, в любой части которого элементы левого поддерева меньше корневого элеме

Алгоритмы сортировки
В этом разделе мы рассмотрим различные алгоритмы решения задачи сортировки. Задача сортировки ставится следующим образом: дана последовательность записей R1,R

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги