Advertisement
rhouland

microseconds for random number2

Jun 21st, 2018
346
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 6.95 KB | None | 0 0
  1. unit Unit1;
  2.  
  3. interface
  4. // Copyright:  rhouland@epastas.lt  2018.06.21.
  5. uses
  6.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7.   Dialogs, jpeg, ExtCtrls, StdCtrls;
  8.  
  9. type
  10.   TForm1 = class(TForm)
  11.     Image1: TImage;
  12.     Button1: TButton;
  13.     Label1: TLabel;
  14.     Label2: TLabel;
  15.     Button2: TButton;
  16.     Button3: TButton;
  17.     Button4: TButton;
  18.     Edit1: TEdit;
  19.     Button5: TButton;
  20.     Button6: TButton;
  21.     Label3: TLabel;
  22.     Label4: TLabel;
  23.     procedure Button1Click(Sender: TObject);
  24.     procedure FormCreate(Sender: TObject);
  25.     procedure Button2Click(Sender: TObject);
  26.     procedure Button5Click(Sender: TObject);
  27.     procedure Button3Click(Sender: TObject);
  28.     procedure Button4Click(Sender: TObject);
  29.     procedure Button6Click(Sender: TObject);
  30.   private
  31.     { Private declarations }
  32.   public
  33.     { Public declarations }
  34.   end;
  35.  
  36. var
  37.   Form1: TForm1;
  38. var ss, ms, mm, ss2, ms2, mm2, bb, dd, yy, sss, ssss: String;
  39. var int, a, x, y, z, v, ii, pp, gg, tt, rr, ff, cc, hh, kk, kk2, po, cik, j, u, w, ww, www, nt, jo: integer;
  40. hours, mins, secs, milliSecs : Word;
  41. var flag:boolean;
  42. ee: Array[0..999] of Integer;
  43. zz: array[0..999] of integer;
  44. nn: array[0..999] of integer;
  45. qq: array[0..999] of integer;
  46. res: set of 0..99;
  47.  
  48. t: TStream;
  49. i:integer;
  50. m: array[1..999] of integer;
  51. f: textfile;
  52. { Name_g : array[1..255,1..255] of string;  }
  53.  
  54. implementation
  55.  
  56. type
  57.   TMEdit = class(TEdit)
  58.     procedure CreateParams(var Params: TCreateParams); override;
  59.   end;
  60.  
  61. { TMEdit }
  62.  
  63. procedure TMEdit.CreateParams(var Params: TCreateParams);
  64. begin
  65.   inherited;
  66.   Params.Style := Params.Style or ES_CENTER;
  67. end;
  68.  
  69. {$R *.dfm}
  70.  
  71. procedure TForm1.Button1Click(Sender: TObject);
  72. begin
  73. // generuojams milisekundziu taimeris:
  74.  
  75. x:=x+1;
  76. ms:=IntToStr(x);
  77. Label2.Caption:=ms;
  78.  
  79. DecodeTime(now, hours, mins, secs, milliSecs);
  80. RandSeed := milliSecs;
  81. begin
  82. int := 0 + Random(100);
  83. end;
  84. a:= int;
  85. ee[x]:=a;
  86. ss:=IntToStr(a);
  87. Label1.Caption:=ss;
  88.  
  89. // o cia bus patikrinimas ar jau paskutinis elementas iskrito:
  90. // kiekviena masyvo elementa patikrinti ar patenka i diapazona nuo 1 iki 100:
  91.  
  92. begin
  93.  
  94. res:=[0..99];
  95. for ii:=1 to 999 do
  96. if ee[ii] in res then exclude(res,ee[ii]);
  97. if res=[] then Label3.Visible := False;
  98. if res=[] then gg:=gg+1;
  99. if gg = 1 then dd:=ms;
  100. if gg = 1 then tt:=x;
  101. if gg = 1 then rr:=1;
  102. if rr = 1 then sss:=dd;
  103. if gg = 1 then cc:=StrToInt(dd);
  104. if gg = 1 then ff:=ee[cc];
  105. if gg = 1 then ssss:=IntToStr(ff);
  106. if gg > 0 then bb:= 'Rinkinys pilnas: ' + dd + ' element.!';
  107. if res=[] then Label4.Caption := bb;
  108. if res=[] then Label4.Visible := True;
  109.  
  110. end;
  111.  
  112. end;
  113.  
  114. procedure TForm1.FormCreate(Sender: TObject);
  115. begin
  116. Label1.Caption:=':';
  117. Label2.Caption:=':';
  118. x:=0;
  119. Edit1.Text:='0';
  120. ee[0]:=0;
  121. PPointer(Edit1)^ := TMEdit;
  122. sss:='999';
  123. end;
  124.  
  125. procedure TForm1.Button2Click(Sender: TObject);
  126. begin
  127. pp:=0;
  128. gg:=0;
  129. rr:=0;
  130. tt:=0;
  131. Label1.Caption:=':';
  132. Label2.Caption:=':';
  133. x:=0;
  134. Edit1.Text:='0';
  135. FillChar(ee, SizeOf(ee), 0);  // valom masyva
  136. end;
  137.  
  138. procedure TForm1.Button5Click(Sender: TObject);
  139. begin
  140. //atkurti nurodyto masyvo reiksme:
  141. Label1.Caption:='';
  142. Label2.Caption:='';
  143. mm:=Edit1.Text;
  144. y:=StrToInt(mm);
  145. ss2:=mm;
  146. z:=ee[y];
  147. ms2:=IntToStr(z);
  148. Label1.Caption:=ms2;
  149. Label2.Caption:=ss2;
  150.  
  151. end;
  152.  
  153. procedure TForm1.Button3Click(Sender: TObject);
  154. begin
  155. Label1.Caption:='';
  156. Label2.Caption:='';
  157. mm:=Edit1.Text;
  158. y:=StrToInt(mm);
  159. y:=y-1;
  160. mm2:=IntToStr(y);
  161. Edit1.Text:=mm2;
  162. ss2:=mm2;
  163. z:=ee[y];
  164. ms2:=IntToStr(z);
  165. Label1.Caption:=ms2;
  166. Label2.Caption:=ss2;
  167. end;
  168.  
  169. procedure TForm1.Button4Click(Sender: TObject);
  170. begin
  171. Label1.Caption:='';
  172. Label2.Caption:='';
  173. mm:=Edit1.Text;
  174. y:=StrToInt(mm);
  175. y:=y+1;
  176. mm2:=IntToStr(y);
  177. Edit1.Text:=mm2;
  178. ss2:=mm2;
  179. z:=ee[y];
  180. ms2:=IntToStr(z);
  181. Label1.Caption:=ms2;
  182. Label2.Caption:=ss2;
  183. end;
  184.  
  185. procedure TForm1.Button6Click(Sender: TObject);
  186. begin
  187.  
  188. // padaryti masyvo ee turinio kopija i masyva zz:
  189. for hh:=1 to 999 do begin
  190. zz[hh]:=ee[hh];
  191. end;
  192.  
  193. // surikiuoti masyva zz is masyvo ee:
  194. for cik:=1 to 999 do begin
  195. for hh:=cik to 999 do begin
  196. kk:=zz[cik];
  197. kk2:=zz[hh+1];
  198. if kk=kk2 then zz[hh+1]:=999;
  199. end;
  200. end;
  201. // rikiavimas baigtas. 999 elementu masyve zz be pasikartojimo plius 999
  202.  
  203. // pripildyti masyva nn sutraukiant visus elementus su 999:
  204. u:=0;
  205. for j:=1 to 999 do begin
  206. u:=u+1;
  207. nn[u]:=zz[j];
  208. if zz[j]=999 then u:=u-1;
  209. end;
  210. // masyvas nn sutrauktas ir parengtas.
  211.  
  212. // nustatome kiekvieno masyvo elemento pasikartojimu kiekius iki pilno uzpildymo:
  213. po:=StrToInt(sss); // elementu kiekis iki pilno uzpildymo.
  214. // visas pasikartojimu kiekis turi buti lygus po ( sss ), yrasomas i masyva qq
  215.  
  216. for i:=1 to 100 do begin
  217. w:=nn[i];
  218. www:=0;
  219. for jo:=1 to po do begin
  220. ww:=ee[jo];
  221. if w=ww then www:=www+1;
  222. if w=ww then qq[i]:=www;
  223. end;
  224. end;
  225.  
  226. //for nt:=1 to po do begin
  227. //www:=0;
  228. //for i:=nt to po do begin
  229. //w:=ee[nt];
  230. //ww:=ee[i+1];
  231. //if w=ww then www:=www+1;
  232. //if w=ww then qq[nt]:=www;
  233. //end;
  234. //end;
  235.  
  236. // tikslus elementu pasikartojimu kiekiai nustatyti.
  237.  
  238.   t := TMemoryStream.Create;
  239.   if gg <> 1 then tt:=x;
  240. if rr < 1 then sss:='PILNAS RINKINYS NEPASIEKTAS!';
  241.     for i:= 1 to tt do
  242.       m[i]:= ee[i];
  243.           begin
  244.           AssignFIle(F,'info.txt');
  245.           Rewrite(f);
  246.             yy:=IntToStr(tt);
  247.             Writeln(f,' Visas įvykusių įvykių skaičius yra: '+yy);
  248.             Writeln(f,' ');
  249.             Writeln(f,' Pilnas elementų rinkinys užsipildo sulig: '+sss);
  250.             Writeln(f, ' '+sss+' -as elementas yra: '+ssss);
  251.             Writeln(f, ' ');
  252.             Write(f, ' Tikslus ir pilnas elementų rinkinys eilės tvarka: ');
  253.             Writeln(f,' ');
  254.             Writeln(f, ' ');
  255.             for i:=1 to po do begin
  256.             Write(f, i, '=', ee[i],'      ');
  257.             end;
  258.             Writeln(f, '  ');
  259.             Writeln(f, '  ');
  260.             Writeln(f, '  visi 100-as atskiri ir skirtingi elementai: ');
  261.             Writeln(f, '  ');
  262.             for i:=1 to 16 do begin
  263.             Write(f, nn[i],'; ');
  264.             end;
  265.             Writeln(f, '  ');
  266.             for i:=17 to 32 do begin
  267.             Write(f, nn[i],'; ');
  268.             end;
  269.             Writeln(f, '  ');
  270.             for i:=33 to 49 do begin
  271.             Write(f, nn[i],'; ');
  272.             end;
  273.             Writeln(f, '  ');
  274.             for i:=50 to 66 do begin
  275.             Write(f, nn[i],'; ');
  276.             end;
  277.             Writeln(f, '  ');
  278.             for i:=67 to 83 do begin
  279.             Write(f, nn[i],'; ');
  280.             end;
  281.             Writeln(f, '  ');
  282.             for i:=84 to 100 do begin
  283.             Write(f, nn[i],'; ');
  284.             end;
  285.             Writeln(f, '  ');
  286.             Writeln(f, '  ');
  287.             Writeln(f, '  Elementų pasikartojimo Statistika : ');
  288.             Writeln(f, '  ');
  289.             for i:=1 to 100 do begin
  290.             Writeln(f, i, ' = ', nn[i],', (kiekis: ', qq[i], ' ) ');
  291.             end;
  292.             Writeln(f, '  ');
  293.           CloseFile(f);
  294.         end;
  295.       t.Free;
  296. end;
  297.  
  298. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement