1. Íà÷àëüíîå ñî÷åòàíèå îáðàçóåò ïîñëåäîâàòåëüíîñòü 1, 2, .. m, à ïîñëåäíåå n-m+1,…,n.
2. Ïåðåõîä ê ñëåäóþùåìó ñî÷åòàíèþ îñóùåñòâëÿåòñÿ ïî ñëåäóþùåìó ïðàâèëó: òðåáóåòñÿ ïðîñìîòðåòü òåêóùåå ñî÷åòàíèå ñ êîíöà è íàéòè ýëåìåíò, êîòîðûé ìîæíî óâåëè÷èòü. Òî åñòü òàêîé ýëåìåíò ÷òî Sochet[kol,i] <> n-m+i. Äàëåå óâåëè÷èâàåì ýòîò ýëåìåíò íà 1, à îñòàâøóþñÿ ÷àñòü ñî÷åòàíèÿ çàïîëíÿåì ÷èñëàìè íàòóðàëüíîãî ðÿäà áîëüøèìè èçìåíåííîãî ýëåìåíòà â ïîðÿäêå èõ ñëåäîâàíèÿ.
Ôóíêöèÿ Summ(Chisla:Arr;Idxs:Arr2;m,nom:integer):integer ïðåäíàçíà÷åíà äëÿ îïðåäåëåíèÿ ñóììû ÷èñåë ñîîòâåòñòâóþùåãî ñî÷åòàíèÿ, ãäå:
Chisla – ìàñèâ èñõîäíûõ ÷èñåë, êîòîðûå áóäóò ñóììèðîâàòüñÿ;
Idxs – ìàññèâ ñãåíåðèðîâàííûõ ñî÷åòàíèé (ñîäåðæèò òîëüêî íîìåðà ïîçèöèé);
M – êîëè÷åñòâî ýëåìåíòîâ â ñî÷åòàíèè;
NOM – íîìåð ñî÷åòàíèÿ èç ìàññèâà Idxs, ñóììó êîòîðîãî íóæíî íàéòè.
 ôóíêöèè áóäåò àíàëèçèðîâàòüñÿ ñòðîêà NOM ìàññèâà Idxs, òî÷íåå íå âñÿ ñòðîêà, à òîëüêî ïåðâûå M ýëåìåíòîâ. Ýòè ýëåìåíòû çàäàþò íîìåðà ÷èñåë â ìàññèâå Chsila, êîòîðûå íóæíî ïðîñóììèðîâàòü.
Àëãîðèòì âûïîëíåíèÿ îïèñàííûõ äåéñòâèé ïðèâåäåí íà ðèñóíêå À.2 ïðèëîæåíèÿ À, à êîä ôóíêöèè ïðèâåäåí â ñòðîêàõ 36-48 ïðèëîæåíèÿ Á.
Ïîñëå ýòîãî îñóùåñòâëÿåòñÿ ââîä èñõîäíûõ äàííûõ, à èìåííî: ÷èñëà ýëåìåíòîâ ïîñëåäîâàòåëüíîñòè N è ñàìîé ïîñëåäîâàòåëíîñòè ÷èñåë. Ââîä èñõîäíûõ äàííûõ îðãàíèçîâàí â ñòðîêàõ 76-85 ëèñòèíãà â ïðèëîæåíèè Á.
Ïîñëå ââîäà èñõîäíûõ äàííûõ îðãàíèçóåòñÿ öèêë ïî m (ïî êîëè÷åñòâó ýëåìåíòîâ â ñî÷åòàíèè).  òåëå ýòîãî öèêëà âûïîëíÿþòñÿ äåéñòâèÿ:
- ãåíåðèðóþòñÿ âñå âîçìîæíûå ñî÷åòàíèÿ ïî m íàòóðàëüíûõ ýëåìåíòîâ 1.. N ïðè ïîìîùè ïðîöåäóðû GenerateSochet;
- îðãàíèçóåòñÿ öèêë ïî i, â êîòîðîì ïåðåáèðàþòñÿ âñå èç ñãåíåðèðîâàííûõ íà ïðåäûäóùåì ýòàïå ñî÷åòàíèÿ è âûïîëíÿþòñÿ äåéñòâèÿ:
- âûâîä íà ýêðàí è â ôàéë ýëåìåíòîâ ñî÷åòàíèÿ (öèêë ïî j â ñòðîêàõ 95-99);
- âû÷èñëåíèå ñóììû ïðè ïîìîùè ôóíêöèè SUMM (ñòðîêà 100);
- ïðîâåðêà ïîëó÷åíîé ñóììû íà äåëåíèå íà K (îñòàòîê îò äåëåíèÿ îïðåäåëÿåòñÿ ïðè ïîìîùè îïåðàòîðà MOD), (ñòðîêè 103-113);
Äëÿ ïðåîáðàçîâàíèÿ öåëîãî ÷èñëà â ñòðîêó èñïîëüçóåòñÿ ïðîöåäóðà STR(a;var S:string), ãäå a çàäàåò öåëîå ÷èñëî, à ÷åðåç ïàðàìåòð S âîçâðàùàåòñÿ ñòðîêîâîå çíà÷åíèå. Åñëè ñóììà Sm óäîâëåòâîðÿåò óñëîâèþ è èñêîìîå ñî÷åòàíèå ÷èñåë íàéäåíî, óñòàíàâëèâàåòñÿ ôëàã fnd è îñóùåñòâëÿåòñÿ âûõîä èç öèêëà.
 êîíöå ïðîãðàììû àíàëèçèðóåòñÿ çíà÷åíèå ôëàãà fnd , è åñëè ôëàã óñòàíîâëåí â false, òî çíà÷èò íå áûëà íàéäåíà ïîñëåäîâàòåëüíîñòü, óäîâëåòâîðÿþùàÿ óñëîâèþ, î ÷åì âûâîäèòñÿ ñîîòâåòñòâóþùåå ñîîáùåíèå íà ýêðàí è â òåêñòîâûé ôàéë.
4. ÈÍÑÒÐÓÊÖÈß ÎÏÅÐÀÒÎÐÓ
Ðàçðàáîòàííàÿ ïðîãðàììà ïðåäñòàâëÿåò ñîáîé èñïîëíÿåìûé ôàéë SOCHET.EXE ðàçìåðîì 8096 áàéò.  ïðîãðàììå âûïîëíÿåòñÿ îáðàáîòêà ÷èñëîâîé ïîñëåäîâàòåëüíîñòè.
Ïîñëå çàïóñêà ïðîãðàììû ïîÿâëÿåòñÿ îêíî, èçîáðàæåííîå íà ðèñóíêå 4.1.
Ðèñóíîê 4.1 – Ãëàâíîå îêíî ïðîãðàììû
Ïîñëå ýòîãî ïîëüçîâàòåëü ìîæåò âåñòè äëèíó ïîñëåäîâàòåëüíîñòè. Íà ðèñóíêå 4.2 çàäàí ïðèìåð ðåàêöèè ïðîãðàììû â ñëó÷àå îøèáî÷íîãî íàáîðà.
Ðèñóíîê 4.2 – Ðåàêöèÿ ïðîãðàììû íà îøèáî÷íûé ââîä êîëè÷åñòâà N
Ïîñëå êîððåêòíîãî ââîäà äëèíû ïîñëåäîâàòåëüíîñòè ïîëüçîâàòåëü ìîæåò çàäàòü ñàìó ïîñëåäîâàòåëüíîñòü öåëûõ ÷èñåë. Ïîñëå êîððåêòíîãî ââîäà ïðîãðàììà âûïîëíÿåò ïåðåáîð âñåõ ñî÷åòàíèé. Íà ðèñóíêå 4.3 ïîêàçàí ïðèìåð âûïîëíåíèÿ ïðîãðàììû, à ñîäåðæèìîå ôàéëà sochet.res ïðèâåäåí â ïðèëîæåíèè Â.
Ðèñóíîê 4.3 – Ðåçóëüòàò ðàáîòû ïðîãðàììû
Íà ðèñóíêå 4.4 ïðèâåäåí ïðèìåð âûïîëíåíèÿ ïðîãðàììû, êîãäà ñðåäè âñåõ ñî÷åòàíèé íå áûëî íàéäåíî íè îäíîãî , óäîâëåòâîðÿþùåãî óñëîâèþ çàäà÷è.
Ðèñóíîê 4.4 – Ðåçóëüòàò ðàáîòû ïðîãðàììû (ïîèñê íåóäà÷åí)
Ôóíêöèîíèðîâàíèå ïðîãðàììû ïîëíîñòüþ ñîîòâåòñòâóåò çàäàíèþ.
ÂÛÂÎÄÛ
Äàííàÿ êóðñîâàÿ ðàáîòà áûëà âûïîëíåíà â ïîëíîì ñîîòâåòñòâèè ïîñòàâëåííîìó çàäàíèþ è îòëàæåíà â ñðåäå Turbo Pascal 7.0.  õîäå âûïîëíåíèÿ êóðñîâîé ðàáîòû áûëà ðàçðàáîòàíà ïðîãðàììà äëÿ îáðàáîòêè ÷èñëîâîé ïîñëåäîâàòåëüíîñòè.
 ðåçóëüòàòå âûïîëíåíèÿ äàííîé êóðñîâîé ðàáîòû, ÿ óáåäèëàñü â øèðîêèõ âîçìîæíîñòÿõ ÿçûêà ïðîãðàììèðîâàíèÿ Turbo Pascal, çàêðåïèëà ïðàêòè÷åñêèå íàâûêè ïðîãðàììèðîâàíèÿ â cðåäå Turbo Pascal.
Ïåðå÷åíü ññûëîê
1. Çóåâ Å.À. Ïðîãðàììèðîâàíèå íà ÿçûêå Turbo Pascal 6.0,7.0. – Ì.: Ðàäèî è ñâÿçü, Âåñòà, 1993.
2. Ôàðîíîâ Â.Â. Turbo Pascal 7.0. Íà÷àëüíûé êóðñ. - Ì.: Íîëèäæ, 2000.
3. Éåíñåí Ê., Âèðò Í. Ïàñêàëü. Ðóêîâîäñòâî äëÿ ïîëüçîâàòåëÿ è îïèñàíèå ÿçûêà. — Ì.: "Ôèíàíñû è ñòàòèñòèêà", 1982. — Ñ. 151.
4. Âèðò Í. Àëãîðèòìû+ñòðóêòóðû äàííûõ= ïðîãðàììû. — Ì.: "Ìèð", 1985. — Ñ. 406.
5. Ãðîãîíî Ï. Ïðîãðàììèðîâàíèå íà ÿçûêå Ïàñêàëü. — Ì.: "Ìèð", 1982. — Ñ. 384.
6. Ïåðìèíîâ Î. Í. ßçûê ïðîãðàììèðîâàíèÿ Ïàñêàëü : Ñïðàâî÷íèê. — Ì.: "Ðàäèî è ñâÿçü", 1989. — Ñ. 128. — ISBN 5-256-00311-9
7. Êóëüòèí Í.Á. Delphi 6. Ïðîãðàììèðîâàíèå íà Object Pascal. — ÑÏá.: "ÁÕÂ-Ïåòåðáóðã", 2001. — Ñ. 528. — ISBN 5-94157-112-7
8. Ìîðãóí À. Í. Ïðîãðàììèðîâàíèå íà ÿçûêå Ïàñêàëü (Pascal). Îñíîâû îáðàáîòêè ñòðóêòóð äàííûõ. — Ì.: "Äèàëåêòèêà", 2005. — Ñ. 576. — ISBN 5‐8459‐0935‐X
9. Ãðàíïåð Æ., Êîòòý Ð. Òðåõìåðíàÿ ãðàôèêà íà Òóðáî-Ïàñêàëå
10. Áåëåöêèé ß. Òóðáî-Ïàñêàëü ñ ãðàôèêîé äëÿ ÏÊ.- Ì.: Ìàøèíîñòðîåíèå, 1991. - 320 ñ.
11. Áîðîäè÷ Þ.Ñ. è äð. Ïàñêàëü äëÿ ÏÊ: Ñïðàâî÷íîå ïîñîáèå. - ÌÍ.: Âûñø. øê.: ÁÔ ÃÈÒÌÏ "ÍÈÊÀ", 1991. - 365 ñ.
12. Çóåâ Å.À. ßçûê ïðîãðàììèðîâàíèÿ Turbo Pascal 6.0. - Ì.: Óíèòåõ, 1992. - 298 ñ.
13. Ôàðîíîâ Â.Â. Òóðáî-Ïàñêàëü (â 3 êíèãàõ). - Ì.: "ÌÂÒÓ-ÔÅÑÒÎ ÄÈÄÀÊÒÈÊ", 1992-1993.
|
Àëãîðèòì ïðîãðàììû
Ðèñóíîê À.1 – Àëãîðèòì ïðîöåäóðû ãåíåðàöèè ñî÷åòàíèé GenerateSochet
Ðèñóíîê À.2 – Àëãîðèòì ôóíêöèè îïðåäåëåíèÿ ñóììû SUMM
Ðèñóíîê À.3 – Àëãîðèòì âûïîëíåíèÿ òåëà ïðîãðàììû
ÏÐÈËÎÆÅÍÈÅ Á
Ëèñòèíã ïðîãðàììû
1. unit Unit1;
2. program sochet;
3. uses crt;
4. type
5. Arr = array[1..20] of integer;
6. Arr2=array[1..1000,0..20] of byte;
7. var
8. i,j,m,n,k,kol:integer;
9. Sm : integer;
10. Idx : Arr2;
11. Chisla: Arr;
12. fnd : boolean;
13. tf:TEXT;
14. S,St:string;
15. Procedure Info(var ft:TEXT);
16. begin
17. writeln('************************************************');
18. writeln('**** ÊÓÐÑÎÂÀß ÐÀÁÎÒÀ ÏÎ ÏÐÎÃÐÀÌÌÈÐÎÂÀÍÈÞ ****');
19. writeln('** **');
20. writeln('** Çàäàíà ïîñëåäîâàòåëüíîñòü èç n ÷èñåë **');
21. writeln('** Âûáðàòü â ïîñëåäîâàòåëüíîñòè íåñêîëüêî òàêèõ ÷èñåë, **');
22. writeln('** ÷òîáû èõ ñóììà äåëèëàñü íà m. **');
23. writeln('**** ****');
24. writeln('************************************************');
25. writeln;
26. writeln(ft,'**********************************************');
27. writeln(ft,'**** ÊÓÐÑÎÂÀß ÐÀÁÎÒÀ ÏÎ ÏÐÎÃÐÀÌÌÈÐÎÂÀÍÈÞ ****');
28. writeln(ft,'** **');
29. writeln(ft,'** Çàäàíà ïîñëåäîâàòåëüíîñòü èç n ÷èñåë **');
30. writeln(ft,'** Âûáðàòü â ïîñëåäîâàòåëüíîñòè íåñêîëüêî òàêèõ ÷èñåë, **');
31. writeln(ft,'** ÷òîáû èõ ñóììà äåëèëàñü íà m. **');
32. writeln(ft,'**** ****');
33. writeln(ft,'**********************************************');
34. writeln(ft,'');
35. end;
36. {ïðîöåäóðà ñóììèðóåò ÷èñëà ñ íîìåðàìè, êîòîðûå çàäàíû â ñòðîêå nom ìàññèâà Idxs}
37. Function Summ(Chisla:Arr;Idxs:Arr2;m,nom:integer):integer;
38. var
39. idx,i,Sm:integer;
40. begin
41. Sm:=0;
42. for i:=1 to m do
43. begin
44. idx:= Idxs[nom,i];
45. Sm:=Sm + Chisla[idx];
46. end;
47. Summ:=Sm;
48. end;
49. {ïðîöåäóðà ãåíåðàöèè ñî÷åòàíèÿ èç n ïî m, äëÿ ÷èñåë 1,2, ... , n}
50. Procedure GenerateSochet(var Sochet:Arr2; n,m:integer;var kol:integer);
51. var
52. ii,jj:integer;
53. begin
54. kol:=1;
55. { Ãåíåðàöèÿ ñàìîãî ïåðâîãî ñî÷åòàíèÿ }
56. for ii:=0 to m do
57. Sochet[kol,ii]:=ii;
58. repeat
59. { Vivod(Sochet,nom,m);}
60. kol := kol+1;
61. for ii:=0 to m do
62. Sochet[kol,ii]:=Sochet[kol-1,ii];
63. ii:=m;
64. while (Sochet[kol,ii]=(n-m+ii))and(ii>0) do
65. ii:=ii-1; { ïîèñê ýëåìåíòà äëÿ èçìåíåíèÿ }
66. Sochet[kol,ii]:=Sochet[kol,ii]+1;
67. for jj:=ii+1 to m do
68. Sochet[kol,jj]:=Sochet[kol,jj-1]+1; { èçìåíåíèå ïðàâîé ÷àñòè ñî÷åòàíèÿ }
69. until ii=0;
70. end;
71. begin
72. clrscr;
73. assign(tf,'sochet.res');
74. rewrite(tf);
75. INFO(tf);
76. write('Çàäàéòå êîëè÷åñòâî ÷èñåë n :'); readln(n);
77. while (n<1) or (n>20) do
78. begin
79. write('Îøèáî÷íûé ââîä! Çàäàéòå êîëè÷åñòâî ÷èñåë n (n>0;n<21):');
80. readln(n);
81. end;
82. write('Çàäàéòå ÷èñëà :');
83. for i:=1 to n do
84. read(Chisla[i]);
85. write('Çàäàéòå k (íà íåãî äîëæíà äåëèòüñÿ ñóììà áåç îñòàòêà) :'); readln(k);
86. fnd:=false;
87. for m:=1 to n do
88. begin
89. GenerateSochet(Idx,n,m,kol);
90. Writeln (' * * * Ïåðåáîð ñî÷åòàíèé ïî ',M,' ýëåìåíòîâ! * * *');
91. Writeln (tf,' * * * Ïåðåáîð ñî÷åòàíèé ïî ',M,' ýëåìåíòîâ! * * *');
92. for i:=1 to kol-1 do
93. begin
94. S:='';
95. for j:=1 to m do
96. begin
97. Str(Chisla[Idx[i,j]],St);
98. S := S + St + ' ';
99. end;
100. Sm := Summ(Chisla,Idx,m,i);
101. Str(Sm,St);
102. S:= S + ' Sum = '+St;
103. if (Sm mod k) = 0 then
104. begin
105. S:=S+ ' Èñêîìàÿ ïàðà!';
106. writeln(S);
107. writeln(tf,S);
108. fnd := true;
109. break;
110. end else begin
111. writeln(S);
112. writeln(tf,S);
113. end;
114. end;
115. if fnd then break;
116. end;
117. if fnd then begin
118. writeln('Èñêîìàÿ êîìáèíàöèÿ íàéäåíà!');
119. writeln(tf,'Èñêîìàÿ êîìáèíàöèÿ íàéäåíà!')
120. end else begin
121. writeln('Èñêîìàÿ êîìáèíàöèÿ ÷èñåë ÍÅ íàéäåíà!');
122. writeln(tf,'Èñêîìàÿ êîìáèíàöèÿ ÷èñåë ÍÅ íàéäåíà!');
123. end;
124. Close(tf);
125. readln;
126. end.
|
Ïðèìåð âûïîëíåíèÿ ïðîãðàììû (ïîèñê óäà÷åí)
Ïðèìåð âûïîëíåíèÿ ïðîãðàììû (ïîèñê íåóäà÷åí)
... ýòî îñîáûå îáúåêòû – áåãóíêè. Íèæíèå áåãóíêè – ïðàâûé è ëåâûé – îòâå÷àþò çà îòñòóï îñíîâíîãî òåêñòà îò ãðàíèö ñòðàíèöû, à âåðõíèé áåãóíîê – çà àáçàöíûé îòñòóï. - 10 - 4. Òåêñòîâûé ïðîöåññîð Microsoft Word. Microsoft Word – îñíîâà ëþáîãî îôèñà è, ïîæàëóé, ñàìàÿ íóæíàÿ è ïîïóëÿðíàÿ ïðîãðàììà âî âñåì Microsoft Office. Ýòà ïðîãðàììà ...
... êîìïëåêñ, ïðåäíàçíà÷åííûé äëÿ îáó÷åíèÿ ïîëüçîâàòåëåé, êîòîðûé îñóùåñòâëÿåò ïåðåäà÷ó çíàíèé ïîëüçîâàòåëÿì â çàâèñèìîñòè îò ñòåïåíè èõ ïîäãîòîâêè è ñïîñîáíîñòè óñâàèâàòü ïîëó÷åííóþ èíôîðìàöèþ. Êîíöåïöèÿ ýëåêòðîííîãî äîêóìåíòà Äëÿ ýôôåêòèâíîãî óïðàâëåíèÿ ïðîöåññàìè íà ïðåäïðèÿòèÿõ è â îðãàíèçàöèÿõ íåîáõîäèìà ýôôåêòèâíàÿ ñèñòåìà ýëåêòðîííîãî äîêóìåíòîîáîðîòà. Äîêóìåíòû ÿâëÿþòñÿ îñíîâíûì ...
... . Ïåðåêëþ÷àòåëåì ìåæäó ðåæèìàìè âñòàâêè è çàìåíû ñëóæèò êëàâèøà Ins. Ïðè âñòàâêå âñå ïîñëåäóþùèå ñèìâîëû ñäâèãàþòñÿ âïðàâî. Ïðè çàìåíå òåêóùèé ñèìâîë èñ÷åçàåò. Äîêóìåíòû, ñîçäàâàåìûå â ðåäàêòîðå MS-DOS Editor, ìîæíî ñîõðàíÿòü â òåêñòîâûõ ôàéëàõ, äëÿ ýòîãî ñëåäóåò ïîëüçîâàòüñÿ ìåíþ File Save. Ìåíþ File Save As... ïîçâîëèò ñîõðàíèòü ôàéë ïîä äðóãèì èìåíåì. Äëÿ î÷èñòêè ðåäàêòîðà è íà÷àëà ðàáîòû ...
... ýêðàíå è òðåáóåò ñäâèãà (ïðîêðóòêè) ââåðõ-âíèç èëè âëåâî-âïðàâî.  íèæíåé ÷àñòè Ãëàâíîãî îêíà Word 2003 íàõîäèòñÿ ñòðîêà ñîñòîÿíèÿ, íà êîòîðóþ âûâîäèòñÿ èíôîðìàöèÿ î ïîëîæåíèè òåêñòîâîãî êóðñîðà â äîêóìåíòå è î òåêóùåì ðåæèìå ðàáîòû [3, Ñ. 5-6]. Ñîçäàíèå îãëàâëåíèÿ, ñíîñîê è êîëîíòèòóëîâ Îãëàâëåíèå ïðåäñòàâëÿåò ñîáîé ñïèñîê çàãîëîâêîâ äîêóìåíòà. Îíî èñïîëüçóåòñÿ äëÿ ïðîñìîòðà òåì, îáñóæäàåìûõ â ...
0 êîììåíòàðèåâ