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

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

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

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

 Ñ++ ëþáûå âðåìåííûå îáåêòû ñ÷èòàþòñÿ êîíñòàíòíûìè.Àäà-83 è Àäà ââîáùå. Òàì íà ñàìîì äåëå íå óêàçûâàåòñÿ ñïîñîá ïåðåäà÷è ïàðàìåòðîâ, à óêàçûâàåòñÿñåìàíòèêà, òî åñòü ïðè ïåðåäà÷å ïàðàìåòðîâ óêàçûâàåòñÿ îäíî èç êëþ÷åâûõ ñëîâ -in, out èëè inoutprocedure P(X: in T;y: out TT; z : inout TTT);Ïðè ýòîì êîìïèëÿòîð ñàì âûáèðàåò ñïîñîá ïåðåäàè÷ ïàðàìåòðîâ. Ïðè ýòîì â ñòàíäàðòå Àäà - 95 âåðíóëèñüê ñïîñîáó, êîòîðûé áûë ðåàëèçîâàí ïî÷òè âî âñåõ ßÏ. Âñå ßÏ ðåàëèçóþò ïåðåäà÷ó ëèáî ïî ññûëêå, ëèáî ïîçíà÷åíèþ.Îäíàêî, â íåêîòîðûõ ñëó÷àÿõ ïðîãðàììû íà ÿçûêå Àäà ðàáîòàëè ïî ðàçíîìó íà ðàçíûõ êîìïèëÿòîðàõ.Íàïðèìåð ðàññìîòðèì òàêóþ ïðîãðàììó.procedure P(x,y : out T) isbeginX:=...;raise ERROR;Y:=...;end P;P(A,A);Åñëè ïàðàìåòðû ïåðåäàþòñÿ ïî ññûëêå, òî çíà÷åíèå À ìåíÿåòñÿ, à åñëè ïî ðåçóëüòàòó - òî ìåíÿåòñÿ.

Òàêèìîáðàçîì, íîðìàëüíàÿ ïðîãðàììà âåäåò ñåáÿ ïî ðàçíîìó â çàâèñèìîñòè îò êîìïèëÿòîðà.Java - ïåðåäà÷à ïî çíà÷åíèþ, íî èç-çà ðåôåðåíöèàëüíîé ñåìàíòèêè îáúåêòîâ - ôàêòè÷åñêàÿ ïåðåäà÷à ïîçíà÷åíèþ òîëüêî ïðîñòûõ òèïîâ äàíííûõ. Âñå îñòàëüíûå îáúåêòû (â òîì ÷èñëå è ìàññèâû) - ïî ññûëêå. Òàêèìîáðàçîì äëÿ âñåõ ïðîñòûõ îáúåêòîâ - in-ñåìàíòèêà, äëÿ âñåõ îñòàëüíûõ - inout ñåìàíòèêà. Java åñòü êëþ÷åâîå ñëîâî nal - àíàëîã â äàííîì êîíòåêñòå ìîäèôèêàòîðà const.

À äëÿ ïðîñòûõ òèïîâäàííûõ îñòàåòñÿ òîëüêî in ñåìàíòèêà. Ðàñìîòðèì ïîíÿòèå ïîáî÷íîãî ýôôåêòà ôóíêöèè. Ïîáî÷íé ýôôåêòîçíà÷àåò, ÷òî ôóíêöèÿ ìîæåò ìåíÿòü ëèáî êàêèå - òî ãëîáàëüíûå îáúåêòû è/èëè ìåíÿåò ñâîè ôàêòè÷åñêèåïàðàìåòðû. Òàêèì îáðàçîì, îñíîâíàÿ çàäà÷à ïðîöåäóðû - èìååííî ïîáî÷íûå ýôôåêòû, êîãäà êàê ôóíêöèÿïî õîðîøîìå íå äîëæíà èìåòü îíûõ.Ãëîáàëüíàÿ ïåðåìåííàÿ - ïðèçíàê äóðíîãî äèçàéíà ïðîãðàììû â ñîâðåìåííîì ïîíèìàíèè.function F(x: T) return T; { in }procedure FF(x: inout T): return T; { inout } íå âîøëî â îêîí÷àòåëüíûþ âåðñèþ Àäàprocedure P(x: out T; r: inout T); Java äëÿ êàæäîãî ïðîñòîãî òèïà äàííûõ ñóùåñòâóåò êëàññ - îáåðòêà â ïàêåòå java.lang.int a;Integer v = a;f(v); //inoutÂñå ÷òî íàõîäèòñÿ â ïàêåòå java.lang - âñòðîåíî â êîìïèëÿòîð.Ðàññìîòðìè ÿçûê Ñ#.

Äëÿ íåãî áûëè êðàéíå àêòóàëüíû âîïðîñû ýôôåêòèâíîñòè. Âñå ïàðàìåòðû òàì ïåðåäàþòñÿ ïî çíà÷åíèþ ïî óìîë÷àíèþ, òî åñòü ïåðåäà÷à ïîëíîñòüþ àíàëîãè÷íà Java. Íî åñòü äâà îòäåëüíûõìîæäèôèêàòîðà - ref è out, êîòîðûå ðåàëèçóþò ïåðåäà÷ó ïàðàìåòðîâ ïî ññûëêå.Òî åñòü40void f(ref int a) {a = -1};// ïåðåäà÷à ïî ññûëêåint a = 0;f(ref a);{a == -1}Îäíàêî çäåñü òðåáóåòñÿ ïåðåäà÷à èíèöèàëèçèðîâàííîé ïåðåìåííîé. Äëÿ ïåðåäà÷è íå èíèöèàëèçèðîâàííîéïåðåìåííîé èñïîëüçóåòñÿ ìîäèôèêàòîð out. ÿçûêå Delphiprocedure P ([var] a: X);Ñïèñîê àðãóìåíòîâ ïåðåìåííîé äëèíûprintf (const char *, ...);va_listva_startva_nextva_endÍåäîñòàòîê - íåíàäåæíîñòü. Òî åñòü íåò âîçìîæíîñòè êîíòðîëèðîâàòü êîëè÷åñòâî ïåðåäàííûõ ôóíêöèèàðãóìåíòîâ.CString.format (const char *, ...);Íåñìîòðÿ íà òî ÷òî â Ñ++ ñóùåñòâóåò ñâîé ìåõàíèçì ââîäà - âûâîäà, ìíîãèå äî ñèõ ïîð èñïîëüçóþò Ñ-øíûéprintf èç-çà åãî óäîáñòâà. ÿçûêå îáåðîí èëè ìîäóëà-2 íåò ñïèñêîâ ïåðåìåííîé äëèíû, òî åñòü îïåðàöèè âûâîäà íàìíîãî ìåíååóäîáíû, ÷åì â Ñ.printf ("Count = %d i); // CInOut.WriteString ("Count = ");InOut.WriteInt (i); ìîäóëà - 2 Ñ++ îñòàëèñü ñèøíûå ìàêðîñû äëÿ ñïèñêîâ àðãóìåíòîâ ïåðåìåííîé äëèíû. Java è Ñ# ïðîáëåìà îáåñïå÷åíèÿ íàäåæíîñòè áûëà ðåøåíà.

 ýòèõ ÿçûêàõ ðåàëèçàöèÿ îïèðàëàñü íàòî, ÷òî âñå îáúåêòû èìåëè îáùåãî ïðåäêà - êëàññ Object. Òàêèì îáðàçîì, ñïèñîê ïåðåìåííîé äëèíû - ìàññèâîáúåêòîâ òèïà object.void f(params int[] integer);Òàêèì îáðàçîì, write (String format, params Object[] objs);Íàäåæíîñòü îáåñïå÷èâàåòñÿ íà óðîâíå âûïîëíåíèÿ, ïóòåì êîíòðîëÿ ïàðàìåòðîâ.Ñëåäóåò ðàçëè÷àòü îáúÿâëåíèÿvoid f(params int [] elements);void f(int [] integers);Àíàëîãè÷íàÿ ïðîáëåìà áûëà â ÿçûêå java, ïðè÷åì ñîçäàòåëè ÿçûêà íå õîòåëè ðàñøèðÿòü ÿçûê, ââîäÿíîâûå êëþ÷åâûå ñëîâà. Âìåñòî ýòîãî îíè ïðîñòî ñèíòàêñè÷åñêè ðàñøèðèëè ÿçûê.

Òî åñòüvoid f(int ... integers){ for (int i:integers) {..} }Íà ýòîì çàêîí÷èì ñ ïåðåäà÷åé ïàðàìåòðîâ.Ïóíêò 3. Ïîäïðîãðàìíûå òèïû äàííûõTYPE PROCINT = PROCEDURE (INTEGER);VAR P: PROCINT;TYPE F = PROCEDURE (REAL):REAL;PROC PP = PROCEDURE (VAR T);V:= const {êîíñòàíòû - èìåíà ïðîöåäóð}P(5); Ñ/Ñ++ èìååòñÿ ìåõàíèçì óêàçàòåëåé íà ôóíêöèþ.  Àäà - 95 ïîÿâèëñÿ êàê ïîäïðîãðàìíûé òèï, òàêè ïîäïðîãðàìíûå ïåðåìåííûå. Êîãäà êàê â Àäà 85 èõ íå áûëî.

Çà âðåìÿ ñ Àäà 83 äî Àäà 95 èçìåíèëèñü êàêâçãëÿäè íà ïðîãðàììèðîâàíèå, òàê è óñëîâèÿ, â êîòîðûõ äîëæíû áûëè ðàáîòàòü ïðîãðàììû íà ýòîì ÿçûêå.41-ðåôåðåíöèÿ-êîìïîçèöèÿ-íàñëåäîâàíèå-äåëåãèðîâàíèåÄåëåãèðîâàíèå ïîñëóæèëî ïðè÷èíîé ââåäåíèåÿ ïîäïðîãðàìíûõ òèïîâ.

 ÿçûêå Îáåðîí îáðàáîò÷èê (handler)- àíàëîã ïîäïðîãðàìíîãî òèïà. Íåâîçìîæíî ïîëíîñòüþ ðåàëèçîâàòü ÎÎ ïîâåäåíèå áåç ïðîöåäóðíîãî òèïà.42Ëåêöèÿ 18.30.10.2008Ðàññìîòðìè ðåàëèçàöèþ ïîäïðîãðàìíûõ òèïîâ äàííûõ.1. Ïîäïðîãðàììû - óêàçàòåëè (CALL P). Ïðèìåðû ÿçûêîâ - Ñ, Ñ++, Îáåðîí, Ìîäóëà-2, Ïàñêàëü (Delphi),Ada-95.M-2, Oberon, Delphi: type PRCI = procedure (integer).Íàä îáúåêòàìè òàêîãî òèïà åñòü òîëüêî äâå îïåðàöèè - ïðèñâàèâàíèå è âûçîâ.  Àäà - 83 íå áûëî ïîäïðîãðàìíîãî òèïà, îí ïîÿâèëñÿ ëèøü â Àäà - 95. Àäà - 95 áûë ââåäåí ïîäïðîãðàìíûé òèï äàííûõ, êîòîðûé îïèñûâàëñÿ àíàëîãè÷íî óêàçàòåëþ.type PRCI is access procedure PRCi (i : in integer);procedure FCALL (p: PRCi) isbeginP(0);end FCALL;Ïîÿâëÿåòñÿ ñïåöèàëüíàÿ ðàçíîâèäíîñòü ôîðìàëüíûõ ïàðàìåòðîâà, êîòîðûå ÿâíî ïåðåäàâàëèñü ïî ññûëêå.Òàêèì îáðàçîì ïîïûòêà èñïîëüçîâàòü çàäàíèå ñåìàíòèêè, à íå ñïîñîáà ïåðåäà÷è ïðîâàëèëàñü.Îòäåëüíî ðàññìîòðèì Ñ++ è Delphi.

 ýòèõ ÿçûêàõ åñòü ïîíÿòèå êëàññà, ÷òî äàáàâëÿåò ê ïîíÿòèþ ïðîöåäóðû èëè ôóíêöèè ïîíÿòèå ìåòîäà êëàññà, òî åñòü ïðîöåäóðû èëè ôóíêöèè, êîòîðîé íåÿâíî ïåðåäàåòñÿîáúåêò êëàññà (this â C++, self â Delphi).void foo (int);typedef void (*footype)(int)footype f;f = foo;(*f)(0);f(0);class Bar{void foo (int);int i;};Òàêèì îáðàçîì, ïîÿâëÿåòñÿ ïîíÿòèå óêàçàòåëÿ íà ÷ëåí êëàññà.int Bar::*pb;pb = Bar::i;//îøèáêàBar b;pb = &b.i;//óêàçàòåëü íà ÷ëåí êëàññà òèïà inttypedef void (Bar::*)foom(int);foom f;f = Bar::foo;Îïåðàöèè .* èëè ->*type MEMPRC = procedure (integer) of Bar;Îòäåëüíî ðàññìîòðìè C# è java.  ÿçûêå java ïîíÿòèå ôóíêöèîíàëüíîãî òèïà îòñóòñòâóåò, òî åñòü ïåðåäàâàòü ôóíêöèè êàê ïàðàìåòðû íåëüçÿ.

Ïðè ýòîì â java ìîæíî ðåàëèçîâàòü ïîäîáíûé ìåõàíèçì íà îñíîâåíàñëåäîâàíèÿ.Ðàññìîòðèì ïðèìåð - ïðîöåäóðó èíòåãðèðîâàíèÿ, òî åñòü âû÷èñëåíèÿ îïðåäåëåííîãî èíòåãðàëà f(x)typedef doube (*FI)(double);double Integer (double a, double b, double eps, IF f); ÿçûêå java âñå íåñêîëüêî èíà÷å, ïîäîáíàÿ ðåàëèçàöèÿ âîçìîæíà òîëüêî ñ ïîìîùüþ êëàññîâ.class integral{public double IF (double) ..public double integrate (double a, double b, double eps);}43Òåïåðü ÷òîáû ïåðåäàòü â êëàññ íóæíóþ ôóíêöèþ, íóæíî óíàñëåäîâàòü êëàññ integral è ïåðåîïðåäåëèòüâ íîâîì êëàññå ôóíêöèþ IF. Òàêîå ðåøåíèå áûëî âûçâàíî òåì, ÷òî èç - çà ñîîáðàæåíèé áåçîïàñíîñòè ðàçðàáîò÷èêè java ïîëíîñòü îòêàçàëèñü îò âñåõ óêàçàòåëåé, â òîì ÷èñëå è óêàçàòåëåé íà ôóíêöèè.×òî æå êàñàåòñÿ ÿçûêà C#, òî òàì åñòü ïîíÿòèå delegate - ñïåöèàëèçèðîâàííîãî ôèóíêöèîíàëüíîãî òèïàäàííûõ, êîòîðûé ñâîäèòñÿ ê óêàçàòåëþ íà ôóíêöèè.public delegate void Operation(int);Äåëåãàòó ìîæíî ïðèñâàèâàòü íîâûå çàí÷åíèåÿ.public Operation dlgt;class Bar{public Foo (int x) {..}public static void Foo2 (int i) {...}};Bar b;dlgt = new Operation (b.Foo);Òåïåðü dlgt (0) == b.Foo (0);Ïðè ýòîì ìîæíî íàïèñàòü è òàê:dlgt = new Operation (Bar.Foo2);// òåïåðü óêàçûâàåò íà ñòàòè÷åñêóþ ôóíêöèþ.Áîëåå òîãî äëÿ äåëåãàòîâ îïðåäåëåíèà îïåðàöèÿ += è -=, ñîçäàþùèå öåïî÷êè îïåðàöèé.dlgt += new Operation (b.Foo);dlgt += new Operation (Bar.Foo2);dlgt += new Operation (new X().b);Òî åñòü ìû ïðèâÿçûâåì ê äåëåãàòó ôóíêöèþ îò íîâîãî êëàññà, îïðåäåëåííîãî ïðè âûçîâå.Ïðè âûçîâå dlgt (0), áóäóò ïðèìåíåíû âñå ýòè îïåðàöèè â òîì ïîðÿäêå, â êîòîðîì îíè áûëè çàäàíû.

Âñåêëàññû delegate ïðîèñõîäÿò îò êëàññàSystem.Delegate {static Delegate Combine (Delegate rst, Delegate second);static Delegate Remove (Delegate rst, Delegate second);static Delegate GetInvocationList (Delegation smth); }Ïîíÿòèå ñîáûòèÿ.subcribe - æåëàíèå ïîëó÷àòü óâåäîìëåíèå î òîì ÷òî ïðîèçîøëî ñîáûòèå.distribute - ãåíåðàöèÿ ñîáûòèÿ.Ïðèìåð îáðàòíîãî - òàéìåð èëè ïî÷òîâàÿ ñèñòåìà.EventSource - åìó ïðèíàäëåæèò ïåðåìåííàÿ äèëàãàòñêîãî òèïà, à EventConsumer - ïîäïèñ÷èê, îí èñïîëüçóåò+= è -=.Ñîáûòèÿ - ÷àñòíûå ñëó÷àè äåëåãàòîâ, òî åñòü Event - ÷àñòíûé ñëó÷àé ýêçàìïëÿðà äåëåãàòà.public event Operation;Ïðè ýòîì ó ñîáûòèÿ îãðàíè÷åííû îïåðàöèè.Äëÿ áîëüøèíñòâà ßÏ åäèíèöåé èíêàïñóëÿöèè ÿâëÿåòñÿ òèï, îäíàêî ýòî íå òàê â ñëó÷àå ñîáèòèé, òàê êàêâ çàâèñèìîñòè îò îáúåêòà ðàçëè÷àåòñÿ íàáîð îïåðàöèé (+= è -= èëè ñîçäàíèå ñîáûòèÿ (âûçîâ)).Operation op;public delegate int Operation2(int x, int y);Operation2 op;op = delegate (int x, int y){return x+y}int i;op = delegate (int x, int y){return x + y + i};Oper0 o;public Delegate[] Create(){Oper0 [] ops = new Oper0 [3];int i = 0;for (int k = 0; k < 3; k ++) ops [k] = delegate ()return i ++;44}return ops;Àíîíèìíûé äåëåãàò ìîæåò çàõâàòûâàòü íå òîëüêî ëîêàëüíûå ïåðåìåííûå, íî è íàïðèìåð ñâîé êîíòåêñò- êëàññ.

Òî åñòü ñóùåñòâóåò âîçìîæíîñòü ðåàëèçàöèè ñâÿçûâàíèÿ.class Binder{private Operation2 d;private int arg;public Buiner (Operation2 a, int x)del = a, arg = xpublic Operation1 Get_Bind (){return delegate(int a){return d (a, arg)}}}Âñå ýòî ÿâëÿåòñÿ àíàëîãîì çàìûêàíèÿ è Lambda ôóíêöèé.45Ëåêöèÿ 196.11.2008Ãëàâà 5. Ëîãè÷åñêèå ìîäóëè òðàäèöèîííûõ ßÏ.Îïðåäåëåíèå íîâûõ òèïîâ äàííûé ñ ïîìîùüþ ëîãè÷åñêèõ ìîäóëåé.Èíêàïñóëÿóöèÿ è ÀÒÄ.Ïóíêò 1.

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

Òàêèì îáðàçîì, êëàññ ÿâëÿåòñÿ êàê òèïîì äàííûõ, òàê è ëîãè÷åñêèì ìîäóëåì.Ïðè ýòîì îñíîâíîé çàäà÷å êëàññà âñå æå îñòàåòñÿ çàäà÷à ñîçäàíèÿ íîâîãî òèïà. ÿçûêå Ôîðòðàí -âñå ïîäïðîãðàììû - ôèçè÷åñêèå ìîäóëè.Ëîãè÷åñêèå ìîäóëè â ñëó÷àÿõ Ì-2, Îáåðîí, Delphi Ìîäóëà - 2:- Ãëàâíûé ìîäóëü- Áèáëèîòå÷íûé ìîäóëü- Ëîêàëüíûå ìîäóëè.MODULE èìÿ;ÎáúÿâëåíèÿBEGINÎïåðàòîðûEND èìÿ.Áèáëèîòå÷íûå ìîäóëè:DEFINITION MODULE M;Îáúÿâëåíèÿ;END M;- Ìîäóëü îïðåäåëåíèåÿ- îáúåêòû äàííûõ- òèïû äàííûõ- çàãîëîâêè ïðîöåäóð è ôóíêöèé- Ìîäóëü ðåàëèçàöèè:IMPLEMENTATION MODULE M;Îáúÿâëåíèÿ è ðåàëèçàöèèEND M.- ÎïðåäåëåíèÿDEFINITION MODULE STACK;CONST N = 256;TYPE Stack =RECORDTOP:INTEGERBODY:ARRAY [0..N] of REAL46END;PROCEDURE INIT (VAR S:Stack);PROCEDURE POP (VAR S: Stack) : REAL;VAR Done : Boolean; ìîäóëå ðåàëèçàöèè äîëæíû áûòü ðåàëèçàöèè îáúÿâëåííûõ ôóíêöèé.

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

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

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

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