<HTML><HEAD> <META HTTP-EQUIV="content-type" CONTENT="text/html; charset=koi8-r"> <TITLE>Ada95 Lovelace Tutorial ������ 6.7 - ��������� � ������������ ��������� ����</TITLE> <LINK REV="made" HREF="mailto:dwheeler@ida.org"> <!-- Below are RSACi and SafeSurf ratings for this material. --> <META http-equiv="PICS-Label" content='(PICS-1.0 "http://www.rsac.org/ratingsv01.html" l gen true comment "RSACi North America Server" by "dwheeler@ida.org" for "http://www.adahome.com/Tutorials/Lovelace" on "1996.04.04T08:15-0500" exp "1997.07.01T08:15-0500" r (n 0 s 0 v 0 l 0))'> <META http-equiv="PICS-Label" content='(PICS-1.0 "http://www.classify.org/safesurf/" l gen true for "http://www.adahome.com/Tutorials/Lovelace/" by "dwheeler@ida.org" r (SS~~000 1 SS~~100 1))'> </HEAD> <BODY BGCOLOR="#FFFFFF"> <H1><FONT COLOR="#996600">������ 6.7 - ��������� � ������������ ��������� ����</FONT></H1> ���� ������ ��������� ���� � ������������ ������, ��� ���� �������� ����, �� �����, ��������� ��� ������������ � ������� <EM>with</EM>, ������ ������ � ������ ������ ������ ��� ��� ������. ����� ��� ������������, ��� ��� ������������ ����� (���������� ������ <EM>���������</EM>), ����� �������� �� ������� ����������. ����� ����������� �������� ��������� �������� ��������� � ���������� (��������, � ����� ��������� ������������������). <P> Ada ������������� ��������� ���������� ������� ������������ ���������� �� �������������. �� ��� ������ ����� ������, ��� <EM>�����������</EM> ������������ ������������ ������������� ������� ������� ��������, ����� ��� (��� ������������ ����) ����� ��������� � ������ ������� ��� ����������. ����� �� ������ �������� �������� ���������� � ����������. ��������, ���� � ������������ ������ ������ ����� ���, ��� ��� ���� �������� ����, ������������ �� ���� Integer, �� ������������ ������ ����������� � ���� ����� �������� ��������, ��������� � �.�. ���� ���� ����������, ����� ������������ ��� ������������ ������ �������� "������" (��������, ��� ��������������), ��, �� ��������� ���������� ���� �����������, ������ ������������ ����� ������ ��������, ������� ����� ��������� ��������� ������ ��� ����������� ������� �������. ����� ������������ ����������� ������������� ���� ��� �������� ���� Integer, ����� ��������� ��� �������� � ���� ����� ������ ���, ��� �������������, �, � ����������, ��������� �������� ��������� � ����������. <P> ������� ��� � �������� ������, ����� ������� ��� <EM>���������</EM>. �������� ���� ��� "private" ������ ������������ ������� �������� ��� ��� (��������, "+" ��� Integer). ����� �������� ���� ���������� �������� ������ �����������, ������� ����� �������� ��������� �������� ��� �������� ��� ������ �����. ���� ��� ������ ��� ���������, �� ���������� ������������ ��� � <EM>���������</EM> ������� ������������ ������. ��� �����, ������� ������ ��� <EM>���������</EM>, ������ ������ ����� ������������ ������ ��������������� �� �������� , � ����� �������� ������������ (:=) � ��������� (=). <P> �������� ������. ����� ���������� ������� ��� `Key', ���������� ���������������� ��������� ������, � ����� ������������ ������������ ������ ����������� ��������� ���� (key) � ���������� ����������� �������� ������ (������� ��� �������� "<"). ���� ��������� ���� �� ��������� ������� (������ ������ <A HREF="http://www.adahome.com/rm95/rm9x-07-03-01.html">�������� 7.3.1 Ada RM</A>) : <P> <!-- The following form permits compilation using WebAda. --> <P> <FORM METHOD="post" ACTION="http://sw-eng.falls-church.va.us/cgi-bin/webada/lovelace"> <PRE> <TEXTAREA NAME="code" ROWS=12 COLS=80> package Keys is type Key is private; Null_Key : constant Key; -- �������������������� ���������. procedure Get_Key(K : out Key); -- �������� ����� ����. function "<"(X, Y : in Key) return Boolean; -- True ���� X ��� ������� -- �� Y private -- ������ ��������� ����� ������. Max_Key : constant := 2 ** 16 - 1; -- ��������� ���������. type Key is range 0 .. Max_Key; -- ��������� ������������� ���� Null_Key : constant Key := 0; -- ���������������� ���������. end Keys; </TEXTAREA> </PRE> <INPUT TYPE="hidden" NAME="file" VALUE="keys.ads"> <!-- All Lovelace files are krunched to 8+3 filename lengths --> <INPUT TYPE="hidden" NAME="krunch" VALUE="8"> <TABLE BORDER=0><TR> <TH><INPUT TYPE=submit VALUE=" Compile with WebAda "></TH> <TH><INPUT TYPE=reset VALUE=" Reset "></TH> <TH><I>Verbose</I> <INPUT TYPE=checkbox NAME="verbose" CHECKED></TH> <TH><I>Configure</I> <INPUT TYPE=checkbox NAME="configure"></TH> </TR></TABLE> <BR CLEAR> </FORM> <P> <P> �������, ��� ��� ������ ��� ��������� � ������������ ������. ����� ����� ������� �������� ����� `private', ������� ���������� ��������� ������ ������������ ������. � ���� ������� ������ ���� ��������� ����������� ���, � ������� ���������, ����������� ��� ���������� ��� �����������. �������� �� ��, ��� Key �� ����� ���� �������� �������� �����, ������ ������ �� ����� ������������ ��������, ��������� � ������ �������������� ��������, ��� ��� �� ������ ��� ���������. ������������� ���������� ��� ���� ����� ����� ��������, ������������ � ������ (� ����� := � =). <P> �������� �������� �� ������� "<" � ����������� ���� �������. � Ada ����� �������������� ��������� ��������, ����� ��� "+", "*" � "<". ��� ����� �������, ������ �������� ��� �������, ����������� ��� ��������� ��� ���� ��������� � �������� ����� ���� ��������, ���������� � ������� ��������. ������� �����, ��� ����� ������� ��������� ��� �������� �� ������������ ��������, �.�. ����� �������� �������� ��� ��������� ������� ����, �� ������������� ��. ������, ����� ���������� ���� ������ �������� ��������� � ��������� �������. <P> ��������, ��� �� ����� �������� �� ��������� �������� ������������ (:=) � ��������� (=). � ����� ������ ���������� ������� ��� �� ��� <EM>���������</EM>, � ��� <EM>������������ ���������</EM>. ������������ ��������� ��� - ��� ��������� ���, � ������� �� ���������� ���� �������� ������������ � ���������. ����� ������� ����� "limited" ���������� � ����� `private'. ���� �������� ������ ���������� ���� Key, ��� ������������� ���������� ����. <P> <PRE> type Key is limited private; </PRE> <HR><P> <IMG SRC="q.gif" ALT="" HEIGHT=34 WIDTH=23> <A NAME="quiz"><FONT SIZE=+3 COLOR="#339900">����������:</FONT></A> <P> ��� ������� ���, ���� ���������� <EM>������</EM> ��� �������� `up' � `down'? <OL> <LI><A HREF="s6sfr1.htm">��� ���������</A> <LI><A HREF="s6sfr2.htm">��� ������������ ���������</A> <LI><A HREF="s6sfr3.htm">��� �����������</A> </OL> <HR> �� ������ �����: <P> <TABLE BORDER=0><TR> <TH><A HREF="s6s6.htm"> <IMG SRC="barrowl.gif" ALT="PREVIOUS " HEIGHT=31 WIDTH=31> ������� � ����������� �������</A> <P></TH> <TH><A HREF="s7s1.htm"> <IMG SRC="barrowr.gif" ALT="NEXT " HEIGHT=31 WIDTH=31> ������� � ���������� �������</A> <P></TH> <TH><A HREF="lesson6.htm"> <IMG SRC="barrowu.gif" ALT="OUTLINE " HEIGHT=31 WIDTH=31> ��������� � ���������� ����� 6</A> <P></TH> </TR></TABLE> <P> <P> <FONT SIZE=2> <ADDRESS><A HREF="dwheeler.htm">David A. Wheeler (dwheeler@ida.org)</A></ADDRESS> <BR> <I> �������: <A HREF="mailto:jus@univ.kiev.ua">���� �������</A> ����� �������� ��������: <A HREF="mailto:app@polytech.poltava.ua">�.�. �����</A> </I> <P> �������� ����� ����� ��������� ��������� �� ������ "<A HREF="http://www.adahome.com/Tutorials/Lovelace/s6sf.htm">http://www.adahome.com/Tutorials/Lovelace/s6sf.htm</A>". <P> �������� ����� �������� ��������� �� ����� <A HREF="http://www.ada-ru.org">http://www.ada-ru.org</A> </FONT> <!-- This text is part of the Ada95 Lovelace tutorial program. --> <!-- For the contents of lesson 18, the following applies: --> <!-- Copyright (C) 1996 Ada Resource Association --> <!-- Copyright granted to the ARA under the condition that this text --> <!-- will be redistributed to the public domain, without restriction; --> <!-- you may use this information in any way you with, commercially or not, --> <!-- without restriction. --> <!-- = --> <!-- For all other files in Ada95 Lovelace tutorial, the following applies: --> <!-- Copyright (C) 2003 David A. Wheeler --> <!-- This program is free software; you can redistribute it and/or modify --> <!-- it under the terms of the GNU General Public License as published by --> <!-- the Free Software Foundation; either version 2 of the License, or --> <!-- (at your option) any later version. --> <!-- This freedom only applies to the electronic version; the author --> <!-- and/or publisher retain all rights to non-electronic versions. --> <!-- = --> <!-- This program is distributed in the hope that it will be useful, --> <!-- but WITHOUT ANY WARRANTY; without even the implied warranty of --> <!-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --> <!-- GNU General Public License for more details. --> <!-- = --> <!-- You should have received a copy of the GNU General Public License --> <!-- along with this program; if not, write to the Free Software --> <!-- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. --> </BODY> </HTML>