Главная » Просмотр файлов » лекции (2008) (by Kravets) (укороченное)

лекции (2008) (by Kravets) (укороченное) (1160827), страница 10

Файл №1160827 лекции (2008) (by Kravets) (укороченное) (лекции (2008) (by Kravets) (укороченное)) 10 страницалекции (2008) (by Kravets) (укороченное) (1160827) страница 102019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 10)

Òàêîé ïîäõîä ðåàëèçîâàíâ Ñ# è Java.Äëÿ ýêçåìïëÿðà äëèíà êâàçèñòàòè÷åñêèé àòðèáóò, òî åñòü çàäàåòñÿ âî âðåìÿ âûïîëíåíèÿ, íî íåò âîçìîæíîñòè ìåíÿòü åå âî âðåìÿ âûïîëíåíèÿ. Àíàëîãè÷íàÿ ñèòóàöèÿ ñî ñòðîêàìè.  Ñ# è Java åñòü ñïåöèàëüíûåêëàññû äëÿ ñîçäàíèå ñòðîê StringBuilder. Âî âðåìÿ ðàáîòû ñî ñòðîêàìè, íàïðèìåð âî âðåìÿ ñîçäàíèÿ íîâîéñòðîêè, òðåáóåòñÿ ÷àñòîå èçìåíåíèå ðàçìåðà âûäåëåííîé ïàìÿòè, ÷òî ïðèâîäèò ê îãðîìíîé ôðàãìåíòàöèèïàìÿòè.StringBuilder áîëåå îïòèìàëüíûì îáðàçîì ðàñïðåäåëÿåò ïàìÿòü ïîä ñòðîêè, ïîëüçóÿñü òåì, ÷òî âîâðåìÿ åãî ðàáîòû êîëè÷åñòâî òðåáóåìîé ïàìÿòè ìîæåò òîëüêî óâåëè÷èâàòüñÿ.

Òî åñòü òàêèå ìàññèâû ðåàëüíîÿâëÿþòñÿ êâàçèñòàòè÷åñêèìè. Àäå åñòü ïîíÿòèå äèíàìè÷åñêîãî ìàññèâà, ôàêòè÷åñêè íå ïîõîæåãî íà ñâîé àíàëîã â C# èëè Java.procedure P(N:integer) isA:array (1..N) of real;begin...end; äàííîì ïðèìåðå ïðîèñõîäèò íåêîòîðîå îòñòóïëåíèå îò ïðàâèë ÿçûêà Àäà, òàê êàê ãðàíèöû ìàññèâàíå çàäàíû ñòàòè÷åñêè. Ïðè ýòîì ãðàíèöû ìàññèâà ÿâëÿþòñÿ àòðèáóòàìè èìåííî êîíêðåòíîãî îáúåêòà, à íå27âñåãî òèïà.Òåïåðü íåìíîãî ïðî ìíîãîìåðíûå ìàññèâû è îïåðàöèþ âûðåçêè (slice).Ñðåç ìàññèâà íåêîòîðûé äèàïàçîí åãî ýëåìåíòîâ. Òàêàÿ îïåðàöèÿ åñòü â PL/I, Fortran 90, Ada.A:Array (1..10) of T;A(2..5); Âûðåçêè îäíîé äëèíû ìîãóò áûòü ñîâìåñòèìû ìåæäó ñîáîé.

 ñîâðåìåííûõ ÿçûêàõ ïðîãðàììèðîâàíèÿ îïåðàöèÿ copy(i,j) àíàëîã âûðåçêè.A(2..5,1..3) òàêèì îáðàçîì âûðåçêè óæå íå âñåãäà ìîãóò ðàñïîëàãàòüñÿ â ïàìÿòè íåïðåðûâíî.Äëÿ ðåàëèçàöèè ìíîãîìåðíûõ ìàññèâîâ ÷àùå âñåãî ïðèìåíÿåòñÿ ñëåäóþùèé ñïîñîá. Ìíîãîìåðíûé ìàññèâ ýòî ïðîñòî íåïðåðûâíàÿ ïîñëåäîâàòåëüíîñòü ìàññèâîâ ìåíüøåé ðàçìåðíîñòè.Type T2 = array [1..N] of T1;T1 = array [1..M] of T;X[i][j] X[i,j];Àíàëîãè÷íîType T2 = array [1..N,1..M] of T;ßçûê Ñ/Ñ++;int i[3][3];//i ≡ int**Åäèíñòâåííîå èñêëþ÷åíèå ÿçûê ôîðòðàí òàì ìàññèâ ðàñïîëàãàåòñÿ íå ïî ñòðîêàì, à ïî ñòîëáöàì.Ïðè ýòîì âî âñåõ îñòàëüíûõ ÿçûêàõ ïî ñòðîêàì.Ñòóïåí÷àòûå ìàññèâû åñòü â Java, ìîãóò ìîäåëèðîâàòüñÿ â Ñ (ññûëêàìè).Äâóìåðíûé ìàññèâ ÿçûêà Java òðàêòóåòñÿ êàê ìàññèâ ìàññèâîâ èëè êàê ìàññèâ óêàçàòåëåé/ññûëîê. Ñ# åñòü 2 âàðèàíòà îáúÿâëåíèÿ.int [,] = new int [3,5];È êëàññè÷åñêîå îáúÿâëåíèå (ìàññèâ ìàññèâîâ).

Òîãäà ïîëó÷àåì ñòóïåí÷àòûé ìàññèâ. Java:int [][]X = new int[][3];Äàëåå èíèöèàëèçàöèÿ êàæäîãî èç 3-õ ýëåìåíòîâ ìàññèâà.for (int i=0; i < 3; i++)x[i] = new int [i+1];int [N]x = {{1,2,3}, new int [5],{0}};ßâíàÿ èíèöèàëèçàöèÿ.Ïóíêò 2. Çàïèñè.Ñîâðåìåííîå ïîíÿòèå çàïèñè ïðàêòè÷åñêè íå èçìåíåííàÿ çàïèñü ÿçûêà Pascal.type R = recordx,y:T;i,j: real;end;Òî åñòü åñëè ìàññèâ DxDxDx..xD; òî çàïèñü ýòî äåêàðòîâî ïðîèçâåäåíèå ðàçíîòèïíûõ ýëåìåíòîâ.Îñíîâíàÿ îïåðàöèÿ äîñòóï ïî èìåíè ïîëÿ.ßçûê Ñ: struct tags{int i,j;};Àäà:record//ïîëÿ çàïèñè.end record;28 ñîâðåìåííûõ ÿçûêàõ ïðîãðàììèðîâàíèÿ ïîíÿòèå çàïèñè ïðåâðàòèëîñü â ïîíÿòèå êëàññà.Oberon:RECORDïîñëåäîâàòåëüíîñòü ïîëåéEND;Çàïèñü ñ âàðèàíòàìè <=> union //Ñ.

≡ îáúåäèíåíèå Ñ/Ñ++ ≡ ïàðàìåòðèçîâàííûå çàïèñè (Àäà).Îáúåäèíåíèå òèïîâ.Òðàäèöèîííûå ßÏ êàæäîìó îáúåêòó äàííûõ ñîîòâåòñòâóåò åäèíñòâåííûé òèï äàííûõ. ÎÎßÏ âñåîáúåêòû îòíîñÿòñÿ ê íåêîòîðîìó êëàññó îáúåêòîâ.int i = 0;object o = i;//êîððåêòíî â Ñ#ßíóñ ïðîáëåìà ðàçëè÷íûå îáúåêòû ìîãóò âûñòóïàòü â ðàçíûõ ðîëÿõ, òî åñòü êàæäûé îáúåêò ìîæåòèìåòü íåñêîëüêî ðîëåé / òèïîâ. ßð÷å âñåãî ýòà ïðîáëåìà ïðîÿâèëà ñåáÿ ïðè ïðîåêòèðîâàíèè ïîëüçîâàòåëüñêèõ èíòåðôåéñîâ.

Íàïðèìåð îêíî ìîæåò ñîäåðæàòü â ñåáå íåêîòîðûé íàáîð ýëåìåíòîâ, çàâèñÿùèé îò êîíêðåòíîãî îêíà.recordïîñòîÿííàÿ ÷àñòü.âàðèàíòíàÿ ÷àñòü.end;ïîñòîÿííàÿ ÷àñòü ïîñëåäîâàòåëüíîñòü îáúÿâëåíèÿ ïåðåìåííûõ.âàðèàíòíàÿ ÷àñòü-ðàçìå÷åííîå ðàñïðåäåëåíèå.ïîëå, ãäå åñòü äèñêðèìèíàíò, îïðåäåëÿþùèé âèä ïîëÿ.-íå ðàçìå÷åííîå ðàñïðåäåëåíèå.type event = recordT:time;case Evtype:ETEventKBEvent: (scancode : integer,up:Boolean);MouseEvent :(....); end:Âàðèàíòíàÿ ÷àñòü âñå ïåðåìåííûå ðàñïîëàãàþòñÿ ñ îäíîãî è òîãî æå àäðåñà. Íå ðàçìå÷åííîå ðàñïðåäåëåíèå îòñóòñòâóåò ïîëÿ äèñêðèìèíàíòà.type BitCell = recordcase Boolean oftrue:(i:integer)false:(bits:packed array [1..48] of Boolean)end;X:BitCell;X.i= 249;X.bits [48] := 1;union íå èíêðèìèíèðîâàííîå îáúåäèíåíèå áåç ïîñòîÿííîé ÷àñòè.29Ëåêöèÿ 13.Èòàê, îáúåäèíåíèå òèïà ñèíòàêñè÷åñêè îáîáùåíèå ïîíÿòèå çàïèñè èëè ñòðóêòóðû. Íàëè÷èå îáúåäèíåíèé ãîâîðèò ÷òî òðàäèöèîííàÿ ñèñòåìà òèïîâ èìååò íåêîòîðóþ ¾óùåðáíîñòü¿.

Ñóùåñòâóåò èíêðèìèíèðîâàííûå îáúåäèíåíèÿ â íèõ ó êàæäîãî ïîëÿ åñòü îïðåäåëåííîå çíà÷åíèå äèñêðèìèíàíò, ïî êîòîðîìóîïðåäåëÿåòñÿ òèï ïîëÿ. Îáúåäèíåíèå òèïîâ ðåàëèçîâàíî òàê, ÷òî âñå ýëåìåíòû íà÷èíàþòñÿ ñ îäíîãî è òîãîæå àäðåñà â ïàìÿòè.Ïàñêàëü, Modula-2 èìåþò ïî÷òè ýêâèâàëåíòíûå îáúåäèíåíèÿ òèïîâ. ÀÄÀ âñå îáúåäèíåíèÿ ðàçëè÷íû.Ñ òîëüêî ÷èñòûå íå ðàçìå÷åííûå îáúåäèíåíèÿ.Îïèñàíèå îáúåäèíåíèé ïðåäûäóùàÿ ëåêöèÿ.Ðàçëè÷èÿ â îáúÿâëåíèå ìàëû. Ïðè ýòîì ðàçëè÷èÿ â îáúÿâëåíèè âûçâàíû ðàçëè÷èÿìè â îïåðàòîðå âûáîðà(switch) â ñîîòâåòñòâóþùèõ ßÏ.Äèñêðèìèíàíò ìîæåò áûòü 2-õ âèäîâ:1.èìÿ: òèï.2.òèï.Ïðè ýòîì ïåðâûé ñïîñîá â ðàçìå÷åííûõ è âòîðîé â íå ðàçìå÷åííûõ.  ÿçûêå Ñ ðàçìåð îáúåäèíåíèÿ ðàçìåðìàêñèìàëüíîãî ýëåìåíòà.  Ïàñêàëå ñóùåñòâóåò è äðóãîé ñèíòàêñèñ.NEW (P, t1, t2, t3 ...);Ðàñïðåäåëåíèå ïàìÿòü ïîä çàïèñü ñ âàðèàíòàìè, ïðè÷åì âûäåëåíèå ïàìÿòè èäåò ïî òèïó äàííîãî âàðèàíòàt1. Ïðè ýòîì ïîñëåäîâàòåëüíîñòü tn èäåò êîãäà åñòü n âëîæåííûõ ïîä-çàïèñåé.

Ïðè ýòîì îáúåäèíåíèå òèïîâ íåñåò â ñåáå ïðîáëåìû ñâÿçàííûå ñ íåíàäåæíîñòüþ. Åñëè çàïèñü íå ðàçìå÷åííàÿ, òî íàäåæíîñòü êðàéíåìàëà, åñëè æå çàïèñü ðàçìå÷åíà, òî èçìåíèâ äèñêðèìèíàíò ìû ìîæåì ñäåëàòü äàëüíåéøèé êîä ïîëíîñòüþíåðàáî÷èì.ßçûê Àäà.type varrec (D:DT) is recordïîñòîÿííàÿ ÷àñòü.case D:DT ofwhen v1 => âàðèàíò 1;when v2|v3 => âàðèàíò 2;when others => âàðèàíò6;end record;type stack (N:integer) isrecordtop : Integer range 1..N = 1;body : array (Integer range 1..N) of real;end record;X:stack (50);type PVARREC isaccess VARREC;p:PVARREC;p= new VARREC (v1); //îáÿçàòåëüíî ÿâíî óêàçàòü ïàðàìåòð. ÎÎÏ è ÷èñòûõ ÎÎßÏ íóæäà â çàïèñè ñ âàðèàíòàìè îòïàäàåò.

Îíè îñòàþòñÿ òîëüêî äëÿ ñîâìåñòèìîñòèñî ñòàðûì êîäîì. Òî åñòü ïîñòîÿííàÿ ÷àñòü base êëàññ. Âàðèàíòíàÿ ÷àñòü êëàññû ïîòîìêè. Ñóùåñòâóåòâàðèàíò íàñëåäîâàíèå ñ ïîëåì òèïà, íî ïðèâîäèò ê âñåì ïðîáëåìàì ñ íåíàäåæíîñòüþ, êîòîðûå åñòü ïðèèñïîëüçîâàíèè îáúåäèíåíèé.Âàæíà äèíàìè÷åñêàÿ îáðàáîòêà ìåòîäîâ.  èäåàëå äëÿ ìîäèôèêàöèè íåêîòîðîãî êëàññà ïðè èñïîëüçîâàíèè äèíàìè÷åñêîãî ñâÿçûâàíèÿ òðåáóåòñÿ òîëüêî èñõîäíèêè ñàìîãî êëàññà.Èòàê çàïèñü ñ âàðèàíòàìè ñåé÷àñ (èç - çà ÎÎÏ) ìîæíî ñ÷èòàòü óñòàðåâøåé. Ïîíÿòèå çàïèñè îáîáùàåòñÿïîíÿòèåì êëàññà. Òî åñòü äîáàâëÿþòñÿ ôóíêöèè ÷ëåíû, êîòîðûì íåÿâíî ïåðåäàåòñÿ àäðåñ çàïèñè.  Ñ++ñòðóêòóðà ñòàëà êëàññîì.

Îòëè÷èå ìåæäó ñòðóêòóðîé è êëàññîì â äîñòóïå ïî óìîë÷àíèþ. ÑîâìåñòèìîñòüÑ++ è Ñ îáðàçåö õîðîøåé ñîâìåñòèìîñòè ñ ïðîøëûìè âåðñèÿìè. Ïðè ýòîì áûëî ðåøåíî ìíîæåñòâîïðîáëåì (íàïðèìåð ïðîáëåìà ñ èìåíîâàíèåì ñòðóêòóð â Ñ). Ïðè ýòîì Ñ++ ñèëüíî óñëîæíèëñÿ. Ó òåãîâñòðóêòóð â Ñ èìååòñÿ îñîáîå ïðîñòðàíñòâî èìåí, ïðè ýòîì Ñ++ íå ìîã ýòîãî äîïóñòèòü.Îñíîâíàÿ ïðîáëåìà ñî ñòðóêòóðàìè çàãîëîâî÷íûå ôàéëû UNIX íàïèñàííûå íà Ñ, â êîòîðûõ àêòèâíîèñïîëüçóþòñÿ ñòðóêòóðû.30Ïðèìåðstruct C{struct B{}b;}struct B b;C::b == b;Ñòðàóñòðóï óòâåðäèë ÷òî ñòðóêòóðû â Ñ++ ïî÷òè ïîëíîñòüþ àíàëîãè÷åí êëàññàì, ïðè ýòîì åñëè åñòüêîíôëèêò ñ ñóùåñòâóþùèìè èìåíàìè, òî îí äîïóñòèì, ïðè ýòîì äîñòóï ê ñòðóêòóðå äàëåå âîçìîæåí òîëüêî÷åðåç ìîäèôèêàòîð struct. Delphi âîïðîñ áûë ðåøåí ïðîùå åñòürecord...end;Êîòîðûå ÿâëÿþòñÿ àíàëîãàìè çàïèñåé ÿçûêà ïàñêàëü.

È åñòüobject...end;Àíàëîãè êëàññîâ.Äëÿ java.  íåì íåò çàïèñåé â èõ îáû÷íîì ñìûñëå, íî åñòü êëàññû.Îòäåëüíî ðàññìîòðèì ÿçûê Ñ#. Struct â Ñ# ýòî íå ñîâñåì òî, ÷òî åñòü â Java. Èì òðåáîâàëàñü ñòðóêòóðà,êàê ïðîñòî ïîñëåäîâàòåëüíîñòü îáúåêòîâ ïîñëåäîâàòåëüíî ðàçìåùåííûõ â ïàìÿòè. Íàïðèìåð:class Point{public int x;public int y;};void DrawLine (Point[] points);Òî åñòü ïåðåäàåòñÿ ìàññèâ óêàçàòåëåé íà îáúåêòû êëàññà. Äëÿ ïåðåäà÷è òðåáóåòñÿ ñîçäàòü ìàññèâ, ïîòîìóíè÷òîæèòü ìàññèâ, ÷òî òðåáóåò îãðîìíûõ çàòðàò ïàìÿòè.

Ïðè ýòîì ýòîò ìàññèâ òðåáóåòñÿ òîëüêî äëÿ õðàíåíèÿ òî÷åê, òî åñòü íå îïòèìàëüíî èñïîëüçîâàòü êëàññû ïðîñòî êàê êîíòåéíåðû äëÿ îáúåêòîâ. Ïîýòîìó áûëîââåäåíî ïîíÿòèå ñòðóêòóðû, ñèíòàêñèñ îáúÿâëåíèÿ ñòðóêòóðû è êëàññà àíàëîãè÷åí, ïðè ýòîì íåò íèêàêèõîòëè÷èè îò êëàññ (â òîì ÷èñëå è ïðàâà äîñòóïà), êðîìå òîãî ÷òî ñòðóêòóðà íå èìååò ðåôåðåíöèàëüíîñòè, òîåñòü îòíîñèòñÿ ê òèïàì çíà÷åíèé è ðàçìåùàåòñÿ íå â äèíàìè÷åñêîé ïàìÿòè. Òî åñòüpoint[] points = new point[1000]; Òî â ñëó÷àå ñòðóêòóðû ýòî áóäåò èìåííî ìàññèâ îáúåêòîâ íî íå óêàçàòåëåé.Ïðè ýòîì ðàñïðåäåëåíèå ïàìÿòè èäåò îäíèì êóñêîì. Ñ# íå ñóùåñòâóåò ãëîáàëüíîé ïåðåìåííûõ, çà èñêëþ÷åíèåì èõ íåêîòîðûõ àíàëîãîâ ñòàòè÷åñêèõ÷ëåíîâ êëàññà.

Òàê æå íåò ãëîáàëüíûõ ôóíêöèé. Äëÿ òàêèõ ñòðóêòóð îïðåäåëåíû îïåðàöèè ðàçâåðòêè / çàâåðòûâàíèÿ â êëàññû, ÷òî ïîçâîëÿåò ðàáîòàòü ñ íèìè êàê ñ îáû÷íûìè êëàññàìè.Point p1 = o[1];//íåëüçÿPoint p1 = point(o[1]);// íîðìàëüíîÏðè ýòîì äëÿ ñòðóêòóð íåëüçÿ ïåðåãðóæàòü êîíñòðóêòîð óìîë÷àíèÿ.

Ïðè ñîçäàíèè ìàññèâà âñåãäà çàïóñêàåòñÿ êîíñòðóêòîð ïî óìîë÷àíèþ äëÿ ñòðóêòóð. Äëÿ îáúåêòîâ êëàññà òàêîé ïðîáëåìû íåò, òàê êàê òàììîæíî ÿâíî âûçâàòü êîíñòðóêòîð.Äðóãèå òèïû äàííûõ.Ïî èäåå èõ íåò. Åäèíñòâåííûé ßÏ êîòîðûé èìååò äîï òèïû Ïàñêàëü, â êîòîðîì åñòü âñòðîåííûå òèïûè îïåðàöèè ââîäà âûâîäà.

Характеристики

Тип файла
PDF-файл
Размер
364,52 Kb
Тип материала
Высшее учебное заведение

Список файлов лекций

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6616
Авторов
на СтудИзбе
295
Средний доход
с одного платного файла
Обучение Подробнее