{"id":2177,"date":"2009-02-27T16:00:34","date_gmt":"2009-02-27T13:00:34","guid":{"rendered":"http:\/\/studentpmr.ru\/?p=2177"},"modified":"2009-02-27T16:00:34","modified_gmt":"2009-02-27T13:00:34","slug":"%d0%bf%d1%80%d0%b8%d0%bb%d0%be%d0%b6%d0%b5%d0%bd%d0%b8%d0%b5","status":"publish","type":"post","link":"https:\/\/studentpmr.ru\/?p=2177","title":{"rendered":"\u041f\u0420\u0418\u041b\u041e\u0416\u0415\u041d\u0418\u0415"},"content":{"rendered":"<p>\/\/ Set.h \u041e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u043b\u0430\u0441\u0441\u0430 TSet<br \/>\n#ifndef SET_H<br \/>\n#define SET_H \t\/\/\u041f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e include<br \/>\nclass TElem;<!--more--><br \/>\ntypedef TElem* PTElem;<br \/>\ntypedef PTElem* PPTElem;<\/p>\n<p>class TSet;<br \/>\ntypedef TSet* PTSet;<\/p>\n<p>class TSet {<br \/>\nprivate:<br \/>\nint max;<br \/>\nint index; \/\/\u0438\u043d\u0434\u0435\u043a\u0441 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430<br \/>\nPPTElem set; \/\/\u0423\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u043c\u0430\u0441\u0441\u0438\u0432 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0435\u0439 \u043d\u0430 PTElem<br \/>\nprotected:<br \/>\nvirtual int CompareElem(PTElem p1, PTElem p2) = 0;<br \/>\npublic:<br \/>\nTSet(int n)<br \/>\n{ max=n; index=0; set=new PTElem[n]; }<br \/>\nvirtual ~TSet()\t{ delete[] set; }<br \/>\nvoid AddElem(PTElem p);<br \/>\nint HasElem(PTElem p);<br \/>\n};<br \/>\n#endif \/\/SET_H<\/p>\n<p>\/\/ Set.cpp \u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u0430 TSet #include &lt;stdlib.h&gt; #include &#171;set.h&#187; \/\/ \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0432 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e void TSet::AddElem(PTElem p)<br \/>\n{<br \/>\nif (set == NULL) {<br \/>\ncout &lt;&lt; endl &lt;&lt; &#171;ERROR: Out of memory&#187;;<br \/>\nexit(1);<br \/>\n}<br \/>\nif (index&gt;= max) {<br \/>\ncout &lt;&lt; endl &lt;&lt; &#171;ERROR: Set limit exceeded&#187;;<br \/>\nexit(1);<br \/>\n}<br \/>\nset[index] = p;<br \/>\n++index;<br \/>\n}<br \/>\n\/\/\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0438\u0441\u0442\u0438\u043d\u0443, \u0435\u0441\u043b\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u0430\u0434\u0440\u0435\u0441\u0443\u0435\u043c\u044b\u0439 \u0440, \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u043c\u043d\u043e\u0436\u0441\u0442\u0432\u0435<br \/>\nint TSet::HasElem(PTElem p)<br \/>\n{<br \/>\nif (set == NULL)<br \/>\nreturn 0; \/\/\u0412 \u043f\u0443\u0441\u0442\u043e\u043c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435 \u043d\u0435\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432<br \/>\nfor( int i=0; i&lt;index; i++)<\/p>\n<p>if(CompareElem(p,set[i])==0)<br \/>\nreturn 1;<br \/>\nreturn 0;<br \/>\n}<\/p>\n<p>\/\/ TSet.cpp \u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043b\u0430\u0441\u0441\u0430 TSet<br \/>\n#include &lt;iostream.h&gt;<br \/>\n#include &lt;string.h&gt;<br \/>\n#include &#171;set.h&#187;<br \/>\nclass TElem {<br \/>\nprivate:<br \/>\nchar *sp; \/\/\u0423\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442-\u0441\u0442\u0440\u043e\u043a\u0443<br \/>\npublic:<br \/>\nTElem(const char *s)  {sp = strdup(s);}<br \/>\nvirtual ~TElem() {delete sp;}<br \/>\nvirtual const char *GetString(void) {return sp;}<br \/>\n};<br \/>\nclass TMySet: public TSet {<br \/>\nprotected:<br \/>\nvirtual int CompareElem(PTElem p1, PTElem p2);<br \/>\npublic:<br \/>\nTMySet(int n): TSet(n) {}<br \/>\n};<br \/>\nvoid Test(const char *s, PTSet setp);<br \/>\nvoid main()<br \/>\n{<br \/>\nTMySet array(10);  \/\/\u041c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0438\u0437 10 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 TElem<br \/>\narray.AddElem(new TElem(&#171;Sep&#187;));<br \/>\narray.AddElem(new TElem(&#171;Apr&#187;));<br \/>\narray.AddElem(new TElem(&#171;Jun&#187;));<br \/>\narray.AddElem(new TElem(&#171;Nov&#187;));<br \/>\nTest(&#171;Jun&#187;,&amp;array);<br \/>\nTest(&#171;Feb&#187;,&amp;array);<br \/>\nTest(&#171;Sep&#187;,&amp;array);<br \/>\nTest(&#171;Nov&#187;,&amp;array);<br \/>\nTest(&#171;Apr&#187;,&amp;array);<br \/>\nTest(&#171;Jul&#187;,&amp;array);<br \/>\n}<br \/>\n\/\/\u0421\u043e\u043e\u0431\u0449\u0430\u0435\u0442, \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0438\u0442 \u043b\u0438 \u0441\u0442\u0440\u043e\u043a\u0430 s \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0443 setp<br \/>\nvoid Test(const char *s, PTSet setp)<br \/>\n{<br \/>\nTElem testElem(s);<br \/>\nif (setp-&gt;HasElem(&amp;testElem))<br \/>\ncout &lt;&lt; s &lt;&lt; &#187; is in the set &#187; &lt;&lt; endl;<br \/>\nelse<br \/>\ncout &lt;&lt; s &lt;&lt; &#187; is not in the set &#187; &lt;&lt; endl;<br \/>\n}<br \/>\n\/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 0, \u0435\u0441\u043b\u0438 \u0434\u0432\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b, \u0438\u043d\u0430\u0447\u0435 \u043d\u0435 \u043d\u0443\u043b\u044c<br \/>\nint TMySet::CompareElem(PTElem p1, PTElem p2)<br \/>\n{<br \/>\nreturn (strcmp(p1-&gt;GetString(), p2-&gt;GetString()));<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\/\/ Set.h \u041e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u043b\u0430\u0441\u0441\u0430 TSet #ifndef SET_H #define SET_H \/\/\u041f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e include class TElem;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[36],"tags":[],"_links":{"self":[{"href":"https:\/\/studentpmr.ru\/index.php?rest_route=\/wp\/v2\/posts\/2177"}],"collection":[{"href":"https:\/\/studentpmr.ru\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/studentpmr.ru\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/studentpmr.ru\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/studentpmr.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2177"}],"version-history":[{"count":1,"href":"https:\/\/studentpmr.ru\/index.php?rest_route=\/wp\/v2\/posts\/2177\/revisions"}],"predecessor-version":[{"id":2178,"href":"https:\/\/studentpmr.ru\/index.php?rest_route=\/wp\/v2\/posts\/2177\/revisions\/2178"}],"wp:attachment":[{"href":"https:\/\/studentpmr.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2177"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/studentpmr.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2177"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/studentpmr.ru\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2177"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}