Ocena użytkownikóww: ***** / 3
Nadesłany przez Michał Knasiecki, 13 sierpnia 2005 01:00
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.Jeżeli nie odpowiada Ci sposób formatowania kodu przez autora skorzystaj z pretty printer'a i dostosuj go automatycznie do siebie.
count_d/Unit1.pas:
//Program pobrany ze strony www.algorytm.org
//Opracowal Michal Knasiecki
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
ListBox1: TListBox;
ListBox2: TListBox;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
Tab=array[1..32000]of integer;
var
Form1: TForm1;
Tablica:tab; //Tablica wejsciowa i wyjsciowa
count:tab; //Tablica pomocnicza do przechowywania ilosci liczb z tablicy
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
k:integer;
c:integer;
begin
for i:=1 to 10 do tablica[i]:=strtoint(listbox1.items[i-1]);//Pobieranie danych do tablicy
for i:=1 to 10 do count[i]:=0;//zerowanie tablicy pomocniczej
for i:=1 to 10 do inc(count[tablica[i]]);//pobieranie i-tego wyrazu z tablicy i
//zwiekszanie i-tego wyrazu tablicy pomocniczej
c:=1;
for i:=1 to 10 do
begin
if count[i]>0 then for k:=1 to count[i] do//tworzenie tablicy wynikowej
begin
tablica[c]:=i;
inc(c);
end;
end;
listbox2.clear;
for i:=1 to (c-1) do listbox2.items.add(inttostr(tablica[i])); //wypisywanie tablicy wynikowej
end;
end.