|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Чтение из файла и сортировка
НЕ получается толком провести сортировку в результате выводит дикие числа - отсортированные. Я так полагаю что сортирует он мусор, который перезаписывает в массив, который ранее выводится.
Подскажите люди де ошибка, если кто знает или сталкивался с этим: Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, Menus; type TForm1 = class(TForm) Label2: TLabel; GroupBox1: TGroupBox; Label1: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; GroupBox2: TGroupBox; Button1: TButton; Button2: TButton; Button3: TButton; Edit1: TEdit; Label8: TLabel; Button4: TButton; MainMenu1: TMainMenu; Memo1: TMemo; Memo2: TMemo; N1: TMenuItem; Label9: TLabel; N2: TMenuItem; Label10: TLabel; OpenDialog1: TOpenDialog; procedure Button4Click(Sender: TObject); procedure N1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; i,k,Num,j: Integer; implementation {$R *.dfm} procedure TForm1.Button4Click(Sender: TObject); begin Close; end; procedure TForm1.N1Click(Sender: TObject); var b:array[1..10]of integer; t:textfile; sum:Integer; begin If OpenDialog1.Execute then begin assignfile(t, OpenDialog1.FileName); reset(t); end; While NOT EOF(t) do begin read(t,b[i]); Memo1.Lines.Add(IntToStr(b[i])); k:=k+1; Label10.Caption:=IntToStr(k); end; CloseFile(t); for i:=1 to 10 do begin j:=i; Num:=b[i]; while (j>0) and (Num<b[j-1]) do begin b[j]:=b[j-1]; Dec(j); end; b[j]:=Num; end; Memo2.Clear; for i:=1 to 10 do begin Memo2.Lines.Add(IntToStr(b[i])); end; end; end. Последний раз редактировалось Admin, 01.06.2010 в 14:54. |