Kezdőoldal » Számítástechnika » Programozás » Ez hogy hogy müködik?

Ez hogy hogy müködik?

Figyelt kérdés

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?


2015. jún. 3. 20:12
 1/3 CspCsj ***** válasza:

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;

...

2015. jún. 4. 00:32
Hasznos számodra ez a válasz?
 2/3 A kérdező kommentje:
Köszönöm a segitséget. Egy kérdés..ezt a fajta megoldást elfogadnák egy dolgozatban? Leteszteltem többször is és hibát nem találtam .
2015. jún. 4. 05:45
 3/3 CspCsj ***** válasza:

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.

2015. jún. 4. 13:42
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!