середа, 15 березня 2017 р.

Вправа 10.3

Напишіть програму для реалізації процедури сортування даних методом обмінів з глобально оголошеного одновимірного масиву цілих чисел. Використовуючи процедуру виводу масиву з Вправи 10.2 доповніть програму кодом для реалізації наступних дій:
1) прочитати масив цілих чисел з багаторядкового текстового поля;
2) вивести невідсортований масив до другого текстового поля Edit1;
3) відсортувати масив;
4) вивести відсортовані дані до третього текстового поля Edit2.

Для реалізації п.2 та п.4 однією процедурою передбачте параметр типу TEdit для передачі в процедуру поля, у яке слід вивести результат.

Один із варіантів розв'язку вправи:
var
   words: array[1..100] of integer;
   p: integer;

procedure WriteArray (Edit:TEdit);
var i:integer;
begin
   Edit.Text:='';
   for i:=1 to p do begin
        Edit.Text:=Edit.Text+' '+IntToStr(words[i]);
   end;
   Edit.Text:=Trim(Edit.Text);
end;

procedure Sort;
var i,j,tmp:integer;
begin
   for i:=1 to p-1 do begin
        for j:=i+1 to p do begin
             if words[i]>words[j] then begin
               tmp:= words[i];
               words[i]:=words[j];
               words[j]:=tmp;
             end;
        end;
   end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
    s:string;
begin
   s := trim(Memo1.Text);
   while pos(#13, s)<>0 do Delete(s,pos(#13, s),1);
   while pos(#10, s)<>0 do Delete(s,pos(#10, s),1);
   p:=0;
   while pos(' ', s) <> 0 do
   begin
     p:=p+1;
     words[p]:=StrToInt(copy(s,1,pos(' ', s)-1));
     delete(s,1,pos(' ', s));
   end;
   p:=p+1;
   words[p]:=StrToInt(s);

   WriteArray(Edit1);

   Sort;

   WriteArray(Edit2);
end


Немає коментарів:

Дописати коментар