{"id":7513,"date":"2009-04-08T16:13:28","date_gmt":"2009-04-08T13:13:28","guid":{"rendered":"http:\/\/studentpmr.ru\/?p=7513"},"modified":"2009-04-08T16:13:28","modified_gmt":"2009-04-08T13:13:28","slug":"%d0%bf%d1%80%d0%b8%d0%bb%d0%be%d0%b6%d0%b5%d0%bd%d0%b8%d0%b5-2","status":"publish","type":"post","link":"https:\/\/studentpmr.ru\/?p=7513","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<\/p>\n<p>#ifndef SET_H<\/p>\n<p>#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<\/p>\n<p>class TElem;<\/p>\n<p> <!--more-->  <\/p>\n<p>typedef TElem* PTElem;<\/p>\n<p>typedef PTElem* PPTElem;<\/p>\n<p>class TSet;<\/p>\n<p>typedef TSet* PTSet;<\/p>\n<p>class TSet {<\/p>\n<p>private:<\/p>\n<p>int max;<\/p>\n<p>int index; \/\/\u0438\u043d\u0434\u0435\u043a\u0441 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430<\/p>\n<p>PPTElem 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<\/p>\n<p>protected:<\/p>\n<p>virtual int CompareElem(PTElem p1, PTElem p2) = 0;<\/p>\n<p>public:<\/p>\n<p>TSet(int n)<\/p>\n<p>{ max=n; index=0; set=new PTElem[n]; }<\/p>\n<p>virtual ~TSet() { delete[] set; }<\/p>\n<p>void AddElem(PTElem p);<\/p>\n<p>int HasElem(PTElem p);<\/p>\n<p>};<\/p>\n<p>#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<\/p>\n<p>#include &lt;iostream.h&gt;<\/p>\n<p>#include &lt;stdlib.h&gt;<\/p>\n<p>#include &quot;set.h&quot;<\/p>\n<p>\/\/ \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<\/p>\n<p>void TSet::AddElem(PTElem p)<\/p>\n<p>{<\/p>\n<p>if (set == NULL) {<\/p>\n<p>cout &lt;&lt; endl &lt;&lt; &quot;ERROR: Out of memory&quot;;<\/p>\n<p>exit(1);<\/p>\n<p>}<\/p>\n<p>if (index&gt;= max) {<\/p>\n<p>cout &lt;&lt; endl &lt;&lt; &quot;ERROR: Set limit exceeded&quot;;<\/p>\n<p>exit(1);<\/p>\n<p>}<\/p>\n<p>set[index] = p;<\/p>\n<p>++index;<\/p>\n<p>}<\/p>\n<p>\/\/\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<\/p>\n<p>int TSet::HasElem(PTElem p)<\/p>\n<p>{<\/p>\n<p>if (set == NULL)<\/p>\n<p>return 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<\/p>\n<p>for( int i=0; i&lt;index; i++)<\/p>\n<p>if(CompareElem(p,set[i])==0)<\/p>\n<p>return 1;<\/p>\n<p>return 0;<\/p>\n<p>}<\/p>\n<p>\/\/ TSet.cpp \u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043b\u0430\u0441\u0441\u0430 TSet<\/p>\n<p>#include &lt;iostream.h&gt;<\/p>\n<p>#include &lt;string.h&gt;<\/p>\n<p>#include &quot;set.h&quot;<\/p>\n<p>class TElem {<\/p>\n<p>private:<\/p>\n<p>char *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<\/p>\n<p>public:<\/p>\n<p>TElem(const char *s) {sp = strdup(s);}<\/p>\n<p>virtual ~TElem() {delete sp;}<\/p>\n<p>virtual const char *GetString(void) {return sp;}<\/p>\n<p>};<\/p>\n<p>class TMySet: public TSet {<\/p>\n<p>protected:<\/p>\n<p>virtual int CompareElem(PTElem p1, PTElem p2);<\/p>\n<p>public:<\/p>\n<p>TMySet(int n): TSet(n) {}<\/p>\n<p>};<\/p>\n<p>void Test(const char *s, PTSet setp);<\/p>\n<p>void main()<\/p>\n<p>{<\/p>\n<p>TMySet array(10); \/\/\u041c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0438\u0437 10 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 TElem<\/p>\n<p>array.AddElem(new TElem(&quot;Sep&quot;));<\/p>\n<p>array.AddElem(new TElem(&quot;Apr&quot;));<\/p>\n<p>array.AddElem(new TElem(&quot;Jun&quot;));<\/p>\n<p>array.AddElem(new TElem(&quot;Nov&quot;));<\/p>\n<p>Test(&quot;Jun&quot;,&amp;array);<\/p>\n<p>Test(&quot;Feb&quot;,&amp;array);<\/p>\n<p>Test(&quot;Sep&quot;,&amp;array);<\/p>\n<p>Test(&quot;Nov&quot;,&amp;array);<\/p>\n<p>Test(&quot;Apr&quot;,&amp;array);<\/p>\n<p>Test(&quot;Jul&quot;,&amp;array);<\/p>\n<p>}<\/p>\n<p>\/\/\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<\/p>\n<p>void Test(const char *s, PTSet setp)<\/p>\n<p>{<\/p>\n<p>TElem testElem(s);<\/p>\n<p>if (setp-&gt;HasElem(&amp;testElem))<\/p>\n<p>cout &lt;&lt; s &lt;&lt; &quot; is in the set &quot; &lt;&lt; endl;<\/p>\n<p>else<\/p>\n<p>cout &lt;&lt; s &lt;&lt; &quot; is not in the set &quot; &lt;&lt; endl;<\/p>\n<p>}<\/p>\n<p>\/\/ \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<\/p>\n<p>int TMySet::CompareElem(PTElem p1, PTElem p2)<\/p>\n<p>{<\/p>\n<p>return (strcmp(p1-&gt;GetString(), p2-&gt;GetString()));<\/p>\n<p>}<\/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":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[55],"tags":[],"_links":{"self":[{"href":"https:\/\/studentpmr.ru\/index.php?rest_route=\/wp\/v2\/posts\/7513"}],"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=7513"}],"version-history":[{"count":0,"href":"https:\/\/studentpmr.ru\/index.php?rest_route=\/wp\/v2\/posts\/7513\/revisions"}],"wp:attachment":[{"href":"https:\/\/studentpmr.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7513"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/studentpmr.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7513"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/studentpmr.ru\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7513"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}