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

PDF-файл лекции (2008) (by Kravets), страница 10 Языки программирования (54051): Лекции - 7 семестрлекции (2008) (by Kravets): Языки программирования - PDF, страница 10 (54051) - СтудИзба2019-09-19СтудИзба

Описание файла

PDF-файл из архива "лекции (2008) (by Kravets)", который расположен в категории "". Всё это находится в предмете "языки программирования" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст 10 страницы из PDF

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

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

Âñîâðåìåííûõ ÿçûêàõ ïðîãðàììèðîâàíèÿ îïåðàöèÿ copy(i,j) àíàëîãâûðåçêè.A(2..5,1..3) òàêèì îáðàçîì âûðåçêè óæå íå âñåãäà ìîãóò ðàñïîëàãàòüñÿâ ïàìÿòè íåïðåðûâíî.47Äëÿ ðåàëèçàöèè ìíîãîìåðíûõ ìàññèâîâ ÷àùå âñåãî ïðèìåíÿåòñÿ ñëåäóþùèé ñïîñîá. Ìíîãîìåðíûé ìàññèâ ýòî ïðîñòî íåïðåðûâíàÿ ïîñëåäîâàòåëüíîñòü ìàññèâîâ ìåíüøåé ðàçìåðíîñòè.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}};ßâíàÿ èíèöèàëèçàöèÿ.48Ïóíêò 2. Çàïèñè.Ñîâðåìåííîå ïîíÿòèå çàïèñè ïðàêòè÷åñêè íå èçìåíåííàÿ çàïèñüÿçûêà Pascal.type R = recordx,y:T;i,j: real;end;Òî åñòü åñëè ìàññèâ DxDxDx..xD; òî çàïèñü ýòî äåêàðòîâî ïðîèçâåäåíèå ðàçíîòèïíûõ ýëåìåíòîâ.

Îñíîâíàÿ îïåðàöèÿ äîñòóï ïî èìåíèïîëÿ.ßçûê Ñ: struct tags{int i,j;};Àäà:record//ïîëÿ çàïèñè.end record; ñîâðåìåííûõ ÿçûêàõ ïðîãðàììèðîâàíèÿ ïîíÿòèå çàïèñè ïðåâðàòèëîñü â ïîíÿòèå êëàññà.Oberon:RECORDïîñëåäîâàòåëüíîñòü ïîëåéEND;Çàïèñü ñ âàðèàíòàìè <=> union //Ñ. ≡ îáúåäèíåíèå Ñ/Ñ++ ≡ ïàðàìåòðèçîâàííûå çàïèñè (Àäà).Îáúåäèíåíèå òèïîâ.Òðàäèöèîííûå ßÏ êàæäîìó îáúåêòó äàííûõ ñîîòâåòñòâóåò åäèíñòâåííûé òèï äàííûõ. ÎÎßÏ âñå îáúåêòû îòíîñÿòñÿ ê íåêîòîðîìóêëàññó îáúåêòîâ.int i = 0;object o = i;//êîððåêòíî â Ñ#ßíóñ ïðîáëåìà ðàçëè÷íûå îáúåêòû ìîãóò âûñòóïàòü â ðàçíûõ ðîëÿõ, òî åñòü êàæäûé îáúåêò ìîæåò èìåòü íåñêîëüêî ðîëåé / òèïîâ. ßð÷åâñåãî ýòà ïðîáëåìà ïðîÿâèëà ñåáÿ ïðè ïðîåêòèðîâàíèè ïîëüçîâàòåëüñêèõèíòåðôåéñîâ. Íàïðèìåð îêíî ìîæåò ñîäåðæàòü â ñåáå íåêîòîðûé íàáîðýëåìåíòîâ, çàâèñÿùèé îò êîíêðåòíîãî îêíà.49recordïîñòîÿííàÿ ÷àñòü.âàðèàíòíàÿ ÷àñòü.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 íå èíêðèìèíèðîâàííîå îáúåäèíåíèå áåç ïîñòîÿííîé ÷àñòè.50Ëåêöèÿ 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) isrecord51top : 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 íàïèñàííûå íà Ñ, â êîòîðûõ àêòèâíî èñïîëüçóþòñÿ ñòðóêòóðû.Ïðèìåðstruct C{struct B{}b;}struct B b;C::b == b;Ñòðàóñòðóï óòâåðäèë ÷òî ñòðóêòóðû â Ñ++ ïî÷òè ïîëíîñòüþ àíàëî52ãè÷åí êëàññàì, ïðè ýòîì åñëè åñòü êîíôëèêò ñ ñóùåñòâóþùèìè èìåíàìè,òî îí äîïóñòèì, ïðè ýòîì äîñòóï ê ñòðóêòóðå äàëåå âîçìîæåí òîëüêî ÷åðåç ìîäèôèêàòîð 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];//íåëüçÿ53Point p1 = point(o[1]);// íîðìàëüíîÏðè ýòîì äëÿ ñòðóêòóð íåëüçÿ ïåðåãðóæàòü êîíñòðóêòîð óìîë÷àíèÿ.Ïðè ñîçäàíèè ìàññèâà âñåãäà çàïóñêàåòñÿ êîíñòðóêòîð ïî óìîë÷àíèþäëÿ ñòðóêòóð.

Äëÿ îáúåêòîâ êëàññà òàêîé ïðîáëåìû íåò, òàê êàê òàììîæíî ÿâíî âûçâàòü êîíñòðóêòîð.Äðóãèå òèïû äàííûõ.Ïî èäåå èõ íåò. Åäèíñòâåííûé ßÏ êîòîðûé èìååò äîï òèïû Ïàñêàëü, â êîòîðîì åñòü âñòðîåííûå òèïû è îïåðàöèè ââîäà âûâîäà. Âîñòàëüíûõ ßÏ ýòî ÿâëÿåòñÿ ÷àñòüþ ñòàíäàðòíîé áèáëèîòåêè.Ìíîæåñòâà, òàáëèöû. Ïàñêàëå áûëî ïîíÿòèå ìíîæåñòâà, â ìîäóëå áûëî òàê æå ïîíÿòèå ìíîæåñòâà à òàê æå ïîíÿòèå bitset. Bitset áûë óäîáåí äëÿ ìàíèïóëÿöèè áèòàìè âíóòðè ñëîâà, ïðè ýòîì â Îáåðîíå îñòàëñÿ òîëüêî òèï äàííûõ set(àáñòðàêöèÿ ïîíÿòèÿ ìíîæåñòâà).54Ëåêöèÿ 14.Îïèñàíèå ââîäà âûâîäà òðåáóåò íàëè÷èå ôóíêöèé ñ ïåðåìåííûì ÷èñëîì ïàðàìåòðîâ. Êðèòåðèé ìîùíîñòè ÿçûêà âîçìîæíîñòü íàïèñàòü íàíåì áèáëèîòåêó ââîäà âûâîäà äëÿ íåãî ñàìîãî.Ìíîæåñòâà, òàáëèöû è ïðî÷åå ðåàëèçóþòñÿ èìåííî ñòàíäàðòíîé áèáëèîòåêîé, òàê êàê íåò óíèâåðñàëüíîãî ïðåäñòàâëåíèÿ òàêèõ îáúåêòîâ äëÿâñåõ àðõèòåêòóð.

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