Pascal fordítás?
Sziasztok!
Pascalban a következő anyagot kaptam, de én nem tudom értelmezni hogy mi lenne. Esetleg ha valaki tudna fordítani azt megköszönném!
Ez egy sz@rul leírt buborékos rendezés akarna lenni?
- Ez nem Pascal.
- Ez nem buborékrendezés, hanem - mint ahogy a változó neve is az arcunkba tolja - minimum kiválasztásos rendezés.
- És valóban hibás, egyfelől a belső ciklus kezdőértéke (j+1 helyett i+1 kell), másfelől a cserénél a 2. argumentum baromság (j helyett min kell).
Minimumkiválasztásos rendezés. Kezdetben i az első elem indexe, és minden ciklussal végigiterál i-től a tömb végéig, megkeresve a legkisebb elemet, majd kicseréli azt az i indexen levő elemmel, eztán megnöveli i értékét, és újrakezdi, de ekkor már a második indextől kezdve járja végig a tömböt. Minden iterációval megtalálja a következő legkisebb elemet, és a tömb elejétől kezdve egymás után pakolja őket.
Először megtalálja a legkisebb elemet, a tömb elejére rakja. Majd megtalálja a második legkisebbet, berakja az első után, és így tovább, míg végül egy rendezett tömböt fogsz kapni.
Sajnos nem jó a 'magyarázat'. Tessék itt van helyesen:
program Project1;
{$APPTYPE CONSOLE}
uses SysUtils;
const N = 20;
var tomb : array [1..N] of Integer;
procedure Feltolt;
var i : Byte;
begin
Randomize;
for i := 1 to N do
begin
tomb[i] := Random(100);
Write(tomb[i]:3);
end;
end;
procedure Rendez;
var min, i, j, tmp : Integer;
begin
for i := 1 to N - 1 do
begin
min := i;
for j := i + 1 to N do if tomb[j] < tomb[min] then min := j;
tmp := tomb[min];
tomb[min] := tomb[i];
tomb[i] := tmp;
end;
for i := 1 to N do Write(tomb[i]:3);
end;
begin
Feltolt;
WriteLn;
Rendez;
ReadLn;
end.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!