Concetti Chiave
- The procedure sorts an array of 20 integers either in descending or ascending order based on a checkbox selection.
- A bubble sort algorithm is used for sorting, swapping elements until the array is sorted in the desired order.
- For descending order, the procedure iterates through the array, swapping elements if the current one is less than the next.
- If the descending order checkbox is not selected, the array is sorted in ascending order, swapping elements if the current one is greater.
- The sorted array is displayed in a string grid, with integer values converted to strings for presentation in the grid cells.
procedure TForm1.OrdinaClick(Sender: TObject);
const
n = 20;
var
i,j,k,aux,tmp,lim: integer;
trovato: boolean;
vett:array [1..20] of integer;
begin
if Decrescente.
Descending order
Checked then
begin {inizia l'ordinamento decrescente}
lim:=n;
trovato:=true;
while (lim>0) and (trovato=true) do
begin
trovato:=false;
for i:=1 to lim-1 do
begin
if vett
begin
tmp:=vett;
vett:=vett[i+1];
vett[i+1]:=tmp;
trovato:=true;
end;
end;
lim:=lim-1;
end; {finisce l'ordinamento decrescente}
for i:=1 to 20 do {inizio stampa dell'array ordinato su string grid}
begin
k:=i-1;
StringGrid1.Cells[k,1]:=IntToStr(vett);
end; {fine stampa dell'array ordinato}
end
else
begin {inizia l'ordinamento crescente}
for j := n downto 2 do
for i := 1 to j-1 do
begin
if vett > vett[i+1] then
begin
aux := vett;
vett := vett[i+1];
vett[i+1] := aux;
end;
end;{finisce l'ordinamento crescente}
for i:=1 to 20 do {inizio stampa dell'array ordinato su string grid}
begin
k:=i-1;
StringGrid1.Cells[k,1]:=IntToStr(vett);
end;
end; {fine stampa dell'array ordinato}
end; {fine della procedura}
Domande da interrogazione
- How does the procedure handle sorting in descending order?
- What happens if the "Decrescente" checkbox is not checked?
- How is the sorted array displayed in the application?
The procedure uses a bubble sort algorithm to sort the array in descending order. It iterates through the array, swapping elements if the current element is less than the next one, and continues until no more swaps are needed, indicating the array is sorted.
If the "Decrescente" checkbox is not checked, the procedure sorts the array in ascending order using a similar bubble sort algorithm. It compares each element with the next and swaps them if the current element is greater, continuing until the array is sorted.
After sorting, the procedure displays the sorted array in a string grid. It iterates through the array and assigns each element to a cell in the grid, converting the integer values to strings for display.