Ez hogy hogy müködik?
program osztaly;
const n=50;
type oszt=record
nev:string;
szulet:string;
szh:string;
end;
var o:array [1..n] of oszt;
i,l,k:byte;
sn,ssz,sh:string;
begin
writeln('Kérem az osztály létszámot!');
readln(l);
for i:=1 to l do begin
writeln('Kérem a(z) ',i,'. tanuló nevét!');
readln(o[i].nev);
writeln('Kérem a(z) ',i,'. tanuló születési dátumát!');
readln(o[i].szulet);
writeln('Kérem a(z) ',i,'. tanuló születési helyét!');
readln(o[i].szh);
end;
//Rendezés
for i:=1 to l do
for k:=1 to l-1 do
if o[k].nev>o[k+1].nev then begin
sn:=o[k].nev;
o[k].nev:=o[k+1].nev;
o[k+1].nev:=sn;
ssz:=o[k].szulet;
o[k].szulet:=o[k+1].szulet;
o[k+1].szulet:=ssz;
sh:=o[k].szh;
o[k].szh:=o[k+1].szh;
o[k+1].szh:=sh;
end;
writeln('Névsor: ');
for i:=1 to l do writeln(o[i].nev);
end.
Én úgy tudtam hogy a minimumosrendezésnél a külső ciklusnak kellene az l-1-ig mennie de úgy nem müködik helyesen a program. Viszont ha a külső ciklus l-ig megy de a belső l-1-ig akkor igen. Jó a megoldásom így?





Először pár javaslat:
- kis L betűt nem használnék változónak, mert zavaró
- rekord-cserénél a mezők külön átadása helyett egy "oszt" típusú változóval egy műveletben nem működhetne?
A minimum rendezéssel igazad van, tankönyv szerint a külső ciklus megy (L-1)-ig, azonban kicsit máshogy néz ki. Jelen állapotban inkább a buborék rendezéshez hasonlít, de attól is eltér.
Talán így nézne ki a rendezés része, de SimkoL remélem majd kijavítja, ha hibás:
...
letszam: byte;
csere: oszt;
for i:=1 to (letszam-1) do
begin
minimum:=i;
for k:=(i+1) to letszam do
if (o[minimum].nev>o[k].nev) then minimum:=k;
csere:=o[i];
o[i]:=o[minimum];
o[minimum]:=csere;
end;
...





Gondolom a saját megoldásod elfogadására gondolsz.
Ha működik és nincs benne hiba, akkor miért ne fogadnák el?
Persze ha a tananyagban szerepelnek pontos algoritmusok és a tananyagot kérik vissza, akkor valószínűleg erre nem kapsz maximális pontot.
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!